Hi friends, I am aware that we can send email within plugins with entity reference of system user. Entity fromSysUser = new Entity("activityparty"); fromSysUser["partyid"] = new EntityReference("systemuser", fromUserId); EntityCollection fromParty = new EntityCollection() { EntityName = "activityparty" }; fromParty.Entities.Add(fromSysUser); email.Attributes["from"] = fromParty; However, not every mailbox has a system user as an owner. In this case, we are trying to send email in plugin using mailbox instead of system user. Is this doable please? Thanks.
↧
Forum Post: Can we send email in CRM plugin with a mailbox instead of system user
↧
Forum Post: RE: How to schedule crm workflows to send weekly reminder emails
I use a managed solution for scheduling workflows including notifications. I find it much simpler to implement than Microsoft Flow and works well as it is entirely within Dynamics. You could download it and try it out if you wish. It is also open source if you want the source code This article details how it works josephmcmac.wordpress.com/.../dynamics-365-workflow-scheduler This link is to the managed solution in the GitHub repository github.com/.../latest It has 2 features which I use for reminder emails 1. Configure the system to periodically poll a system view and if there are records in it send an email notification to a queue, or the owners of the records. The email contains a table listing the records as well as hyperlinks to open them (if the URL is entered in the configured record) 2. Configure the system to poll a system view and if there are records in it run a workflow against each of them. For notifications just sends an email in the target workflow The scheduling/recurrence uses a configuration record (custom entity named Workflow Task) for each schedule, and a recurring workflow is run against it. This is all part of the managed solution so you don’t need to implement any of it for a specific schedule instance It is mostly reliable in maintaining the schedule, especially as I have implemented monitoring including restarts where failures are identified, however the Dynamic workflow can fail for infrastructure reasons. Due to this on rare occasions in some environments I have seen the recurring workflows fail and I have to restart them (turn the configuration record off and on). This has not been a major issue for me though as they rarely fail and I just periodically check they are up and running as part of my support routine by ensuring all the next run dates are in the future
↧
↧
Forum Post: RE: You'll need a new app to open this crmolk.
I know it's a year later, but did you ever find a resolution to this particular issue? I have been all over the interwebs searching for a solution to this annoyance. -Matthew
↧
Forum Post: RE: edit ms CRM 365 interface using vs 2015(CRM SDK)
I`m so grateful, I find out how it works now I can search and find the answer but for your question (What is the business reason that you want to do this?) I have another question: You write an export to pdf plugin and wanna sell that to 10000 organization. You need a button in some pages to run this plugin, you do it automatically or manually for all of them?
↧
Forum Post: RE: You'll need a new app to open this crmolk.
I'll answer my own question here. To fix this stupid prompt, I created a new reg key and DWORD value as follows: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ProtocolExecute\crmolk WarnOnOpen=dword:00000000 I got the clue for this from this post: https://social.technet.microsoft.com/Forums/lync/en-US/3ed7a588-35a3-4a00-b67a-3535e96c2987/why-you-get-internet-explorer-popup-8220do-you-want-to-82308221-or-microsoft-edge-popup?forum=win10itprogeneral We had this problem affecting all our devices that use the CRM for Outlook plugin, so I deployed the reg fix using a GPO.
↧
↧
Blog Post: Tip #1295: Quickly search for multiple records in advanced find
If you want to quickly find multiple records in advanced find, you can type in semicolon-separated text values into your filter. This can be a huge time saver, as you can copy/paste the string in, and assuming they are legitimate records, each value will resolve. This is also helpful for testing a set of records after a data update. Note — there is a limit to the number of values you can enter. Based on testing, it is somewhere around 65. Thanks to Edgar Chan for this tip. Got any tips? Send them to jar@crmtipoftheday.com.
↧
Forum Post: RE: edit ms CRM 365 interface using vs 2015(CRM SDK)
Hi Sehati, Sorry to answer your question with a question, but the fact that you want to display the button in such pages is fine. The question is how do you know when you load the page if the button needs to be displayed? Is it based by security role or privilege, the value of a field, the type of a form... All of these conditions can control whether a button is displayed or not in the Xml. So what is your determination of show or hide the button? Also, the execution can be done as Plugin or Action? On the change of a particular value, or click of a button to execute the action. Hope this helps.
↧
Forum Post: RE: Can we send email in CRM plugin with a mailbox instead of system user
Hi, You can assign the email address to the queue and then send it from that queue.
↧
Forum Post: RE: Having trouble intercepting the Ribbon Button functionality (Activate Quote)
Hi, Another way to implement this functionality is to create a real time workflow, checks for the required fields, if the fields are blank then cancel the workflow and display error. The workflow needs to trigger on status change and then within the workflow first check if the status is active. community.dynamics.com/.../using-real-time-workflows-to-show-error-messages Hope this helps.
↧
↧
Forum Post: RE: Workflow to check for duplicates
Hi, If I am not wrong, your workflow must be running in background which is why it is picking up the record at the same time. If you change your workflow to real time then the execution will happen sequentially and thus you can avoid this scenario. Hope this helps.
↧
Blog Post: Filtered N:N lookup
If you ever tried using out of the box N:N relationships, you may have noticed that, out of the box, we cannot filter the lookups when adding existing items to the relationship subgrids. In other words, imagine you have 3 entities: Main entity Complaint entity Finding entity Main entity is the parent entity for the other two. However, every complaint may also be linked to multiple findings and vice versa… Although, that linkage should only be done within the main entity – if there are two main records, it should only be possible to link complaints and findings related to the same main record. Which is not how it works out of the box. I have two main records below, the first one has 2 complaints and two findings, and the second one has one complaint and one finding: There is an N:N between Findings and Complaints, so what if I wanted to link Complaint #1 on the first main record to both of the findings for the first main record? That’s easy – open the complaint, open related findings, click “add existing” and… Wait a second, why are there 3 findings? Let’s try it the other way around – let’s open Finding #1 (first), and try adding complaints: Only two records this time and both are related to the correct main record? The trick is that there is a custom script to filter complaints. In essence, that script has been around for a while: https://www.magnetismsolutions.com/blog/paulnieuwelaar/2018/05/17/filter-n-n-add-existing-lookup-dynamics-365-v9-supported-code It just did not seem to work “as is” in the UCI, so there is an updated version here: https://github.com/ashlega/ItAintBoring.FilteredNtoN/blob/master/FilteredNtoN.js All the registration steps are, mostly, the same. There are a couple of adjustments, though: You can use the same script for all N:N relationships, but, every time you introduce a new relationship, you need to update the function below to define the filters: For every N:N relationship you want to start filtering, you will need to add one or two conditions there since you may be adding, in my example above, findings to complaints or complaints to findings. Hence, it’s the same relationship, but it can be one or the other primary entity, and, depending on which primary entity it is, there will be different filters. When configuring command in the ribbon workbench (have a look at that original post above), there is one additional parameter to fill in – that’s the list of relationships for which you want entity lookup to be filtered: In the example above, it’s just one relationship. But it could be a comma-separated list of relationships if I wanted complaint entity to be filtered for different N:N-s. That’s about it… There is, also, a demo solution with those 3 entities(+the script) which you can import to try it all out: https://github.com/ashlega/ItAintBoring.FilteredNtoN/blob/master/DemoFilteredSelector_1_0_0_0.zip
↧
Forum Post: RE: Can we send email in CRM plugin with a mailbox instead of system user
Yes, we can send. Refer here for more other consideration to note about how to send an email using C# or Plugin
↧
Forum Post: Retrieving Related contacts information and save them on variables
Hi knowledgeable people, i have the following scenario: 1. Custom Contacts Related Grid(Entity) on opportunities which is N to N. 2. Related entity (mentioned above) have relationship to opportunities, contacts and another custom entity called roles, to select using a look up the opportunity contact role. 3. i need to retrieve contacts information from Contacts entity based on which role he has, for example if Opportunity Contact Role is Primary, i need from related contact his email, phone, etc... can be one role or multiple roles 4. I need to set those results on variables for example when it finds on related opportunity contacts the roles, primary, technical etc, save that information (email, name, phone) on a variable. i'm trying something like this, but no success for me with that... so any suggestion/helpful hand will be pretty awesome for me :) function RetrieveContacts (){ var getguid =Xrm.Page.data.entity.getId(); var idOppString = getguid.slice(1, -1); var stringResult = null; var ContactsArray = My.oData.GetEntityRecords("new_contactopportunity", null, "new_contactopportunityId,new_contactopportunityId/Name,new_opportunity/Name,new_contactrole/Name", "new_opportunity/Id eq guid'"+idOppString+"'", false, null, null, null); alert("Array: "+ContactsArray[0].new_contactopportunityId.Id); if (ContactsArray[0].new_contactopportunityId.Id > 0){ alert("into if"); stringResult = ""; for (var i = 0; i < ContactsArray[0]; i++){ alert(stringResult + ContactsArray[i].new_contactrole.Name); } } }
↧
↧
Blog Post: Using PCF to display contact cards
What is PCF? If you are building Model Driven Apps, you would have realised by now that Unified Interface is the future . Microsoft has made huge investments in this area to ensure that you have an optimal experience regardless of the device or form factor. Unified Interface is composed of several components/controls that help you to visualise and interact with the data. If you wanted to swap out the control or build a new one that is better than what comes out this box, the only way you could do this earlier was to build a custom webresource and embed it into an IFrame. Using IFrame is clunky, and you had to handle all the complexities of building a responsive interface. IFrame also cannot be displayed on a view, only on a form. But with the arrival of PowerApps Component Framework, you can build custom components/controls that can be used in fields or view fairly quickly. PCF entered public preview around April, 2019. The are three things that you will be using while developing a custom components/control: PCF, the framework that can be used to build the components, a CLI (similar to yeoman, if you are from node world) that is used to scaffold, build & deploy the control and a test harness to assist you during development. What do you need to know to build components/controls using PCF TypeScript (preferable) or JavaScript NodeJS Ability to run commands from commandline If you don’t like to live in the commandline, download XrmToolBox tool called PCF Custom Control Builder by Danish React (preferable) Office UI Fabric (preferable) Edge Dev Tools or Chrome Dev Tools (while build/debug) Fiddler (while build/debug) Where do I go to get inspired or assess the capabilities There are couple of places: Community Content on PCF Forum PCF Gallery In this post I will share a control that I built using PCF that displays the view as a set of cards. Here is how it looks on the contact grid when you choose the Full layout. You can also display the result in the compact layout. Clicking on the card takes you to the record, and you can load more records, by clicking on the “Load more” button on the command bar. In order to install the control, you would first need to install the managed solution by downloading Contact.Card.Component.zip from https://github.com/rajyraman/Office-UI-Fabric-Card/releases After you have downloaded and installed the managed solution, you can add the PCF component/control to an existing view or new view. As you can see above, I am configuring the view to show the results using “Cards” control, and not “Read only Grid” control. After this you need to configure each property to the correct field on the entity, that you would like be shown on the card. Each property on this control maps to the card as below How do you get the image to display on the custom control? If you don’t need image on the card, you can skip this step. This is the tricky bit. There is a field on each entity that is capable of storing a image. The name of the field is entityimage. This screenshot should jot your memory. You cannot however, add the entityimage field to a view, as this field is not visible in the View Builder: both classic experience and maker experience. But, entityimage is a valid field, so you can add this field using the awesome tool called “View Designer” in XrmToolBox. This allows you to modify both the FetchXML and LayoutXML of the view. Using this tool you can add the “entityimage” field. Once you do this, you can see the entityimage field on the view in the classic designer. If you try to open the same view in the modern designer it will fail. After save and publish, you should now be able to use the custom control on the view that it is bound to. You can also use a custom control to display results on the Quick Find as well, using similar update to FetchXML and LayoutXML, but Quick Find does not seem to be supporting entityimage attribute at the moment. TIL: It is possible to render QuickFind results using PCF by using API to modify SavedQuery’s LayoutXml. Not sure why this is not enabled on the UI yet. #PowerApps #PCF #MsDyn365 cc @98codes pic.twitter.com/CQ3mgV0dBC — Natraj Yegnaraman (@RajYRaman) August 14, 2019 I hope this is an useful control that everyone can use. Further reading: Using TypeScript with modern React (YouTube) Office UI Fabric Controls Office UI Fabric CodeSandBox What are custom components (docs.microsoft.com) PCF Forum People to Follow for PCF Andrew Butenko Andrew Ly Aung Khaing Greg Hurlman Jose Aguilera Oleksandr Olashyn Vignesh
↧
Forum Post: Dynamics 365 for phone/tablet auth error
Dear community, I am writing this question because where are facing a strange error on our Dynamics CRM installation. We try to get the app to work, but unfortunately we get a strange error and we cannot find any solution. Our environment consists; CRM 2016 on a 2012 server (version app/database 8.2.8.15) ADFS 3 on a 2012 server Claims based enabled and IDF too. Followed the documentation on setting this up correctly and also performed the post installation steps for Oauth and ADFSclient entries. Tests in browser internal and external are successful. We can login with all os on tablets/phones Here is the log I get from all app versions (tablet android/ios and phone os); 019-08-14 20:18:00.739+0200, 30580, 7317, "ScenarioStory Auth: Request Token (54c7368a-bd6c-42ec-9e17-723dec430955) Signaling Auth failure | Context: {"HeaderFields":{"null":["HTTP/1.1 500 Internal Server Error"],"Cache-Control":["private"],"Content-Type":["text/html"],"Cteonnt-Length":["75"],"Date":["Wed, 14 Aug 2019 18:17:55 GMT"],"X-Android-Received-Millis":["1565806680723"],"X-Android-Response-Source":["NETWORK 500"],"X-Android-Selected-Protocol":["http/1.1"],"X-Android-Sent-Millis":["1565806680714"]},"forceRefreshToken":false,"AuthRequestTask-OrgSvcUrl":""ResponseCode":500,"hasAuthCompleteCallback":true}"">drm.org-name.eu/.../web 2019-08-14 20:18:00.771+0200, 30580, 7317, "ScenarioEnd Auth: Request Token (54c7368a-bd6c-42ec-9e17-723dec430955): FAILURE ERROR Authentication: Security Token Response is 'AuthError' - Took 145ms | Context: {"HeaderFields":{"null":["HTTP/1.1 500 Internal Server Error"],"Cache-Control":["private"],"Content-Type":["text/html"],"Cteonnt-Length":["75"],"Date":["Wed, 14 Aug 2019 18:17:55 GMT"],"X-Android-Received-Millis":["1565806680723"],"X-Android-Response-Source":["NETWORK 500"],"X-Android-Selected-Protocol":["http/1.1"],"X-Android-Sent-Millis":["1565806680714"]},"AuthError-ErrorDescription":"BearerTokenChallenge: responseCode !\u003d 401","AuthRequestTask-OrgSvcUrl":""forceRefreshToken":false,"isAutoSignIn":false,"AuthError-Status":"Failed","ResponseCode":500,"AuthError-ErrorCode":"0","hasAuthCompleteCallback":true}"">drm.org-name.eu/.../web 2019-08-14 20:18:00.774+0200, 30580, 1, "ScenarioStart Player calls UCI (b4c41d27-b069-4e6a-87e9-44c289271615) | Context: {"handler":"javascript:PALNativeBridge.deviceCallback"}" 2019-08-14 20:18:00.827+0200, 30580, 1, I, CrmWebChromeClient, onConsoleMessage, 14, "UCI Webview ConsoleMessage:", " ">drm.org-name.eu/.../Microsoft.Crm.Client.Core.Framework.js , "1", "ERROR", "[authentication] Authentication: Failed" 2019-08-14 20:18:00.830+0200, 30580, 1, I, CrmWebChromeClient, onConsoleMessage, 14, "UCI Webview ConsoleMessage:", " ">drm.org-name.eu/.../Microsoft.Crm.Client.Core.Framework.js , "1", "WARNING", "[storage] Encountered error -2147093999 at at Microsoft.Crm.Client.Core.Framework.AuthenticationManager.$3Is ( drm.org-name.eu/.../Microsoft.Crm.Client.Core.Framework.js at Microsoft.Crm.Client.Core.Framework.PAL.Dispatchers.$Th.$147.$1wG ( drm.org-name.eu/.../MicrosoftAjax.js at Microsoft.Crm.Client.Core.Framework.PAL.Dispatchers.$Th.$147.$26k ( drm.org-name.eu/.../Microsoft.Crm.Client.Core.Framework.js at Microsoft.Crm.Client.Core.Framework.PAL.Dispatchers.$Th.$147.$1Oa ( drm.org-name.eu/.../Microsoft.Crm.Client.Core.Framework.js at Microsoft.Crm.Client.Core.Framework.PAL.Core.NativeBridge.$2nq ( drm.org-name.eu/.../Microsoft.Crm.Client.Core.Framework.js at Microsoft.Crm.Client.Core.Framework.PAL.Core.NativeBridge.deviceCallback ( drm.org-name.eu/.../Microsoft.Crm.Client.Core.Framework.js at :1:28" 2019-08-14 20:18:00.841+0200, 30580, 1, "ScenarioEnd Player calls UCI (b4c41d27-b069-4e6a-87e9-44c289271615): SUCCESS - Took 67ms | Context: {"handler":"javascript:PALNativeBridge.deviceCallback"}" 2019-08-14 20:18:00.847+0200, 30580, 7304, I, LoggingDispatcher, logMessage, 13, "[authentication] Authentication: Failed" 2019-08-14 20:18:00.850+0200, 30580, 7304, "ScenarioStart UCI calls the Player (1faf84d0-a16f-4d57-a5a7-3a3c0e5db955) | Context: {"methodName":"clientReady","jsonCallbacks":"{}","namespace":"Application","key":"e5fad19d-cecd-473d-b597-b0878b1a66fe","version":"Version1"}" 2019-08-14 20:18:00.853+0200, 30580, 7304, I, WebScriptBridge, clientReady, 16, "ClientReady", "{ Version = ; }" 2019-08-14 20:18:00.864+0200, 30580, 7304, "ScenarioEnd UCI calls the Player (1faf84d0-a16f-4d57-a5a7-3a3c0e5db955): SUCCESS - Took 13ms | Context: {"methodName":"clientReady","jsonCallbacks":"{}","namespace":"Application","key":"e5fad19d-cecd-473d-b597-b0878b1a66fe","jsonArgsLength":30,"version":"Version1"}" Any assistance in this matter would be much appreciated.
↧
Forum Post: RE: Microsoft.Xrm.Sdk.Metadata.EntityMetadata Contains method does not work
Could you share bit more of your code, to see how you are getting the currentEntity. And could you also share the details on .NET version you are using.
↧
Forum Post: Dynamics 365 entity metadata
Dear CRM Community, There is a difference between appointment entity metadata in our development environment and production environment. Here is the screenshot from MetadataBrowser for attribute "Required attendees" of entity appointment in development environment: In production environment the property "Targets" has no value, but it should have a value as in development: Due to this problem Resco Mobile CRM doesn't work properly for our users. How can we edit appointment entity metadata, so it has value for "Targets" property of attribute "Required attendees" in production environment either? Your help is much appreciated! Thank you very much!
↧
↧
Forum Post: Dynamics 365 for Marketing
Hello, everybody, I want to know if it is possible for me to access my Dynamics 365 for Marketing directly from the Dynamics 365 Cloud.(see the Picture )
↧
Forum Post: Dynamics 365 for Marketing
Hello, everybody, I want to know if it is possible for me to access my Dynamics 365 for Marketing directly from the Dynamics 365 Cloud.(see the Picture ) Thanx
↧
Forum Post: RE: edit ms CRM 365 interface using vs 2015(CRM SDK)
No problem Aric, It`s fine, I think I`m just new in CRM and can`t explain my problem well the problem is mine. You're the first person in the last two month that said it`s possible and showed me a way. There is no condition to show dude for the start I just want to put a button or sth in the ribbon or somewhere that run my plugin. for example, I wrote a cloning plugin for invoice records. I just need a button when u selected your record press that button and plugin do its job. But I really need to make that button automatically in my plugin code
↧