Category Archives: Dynamics 365
How to ensure we open Project Information form when the Lead is Qualified in D365 PSA
I tried many ways to figure out why the “Project Information” form is not opening in Opportunity when a lead is Qualified in D365 PSA. I tried manually opening the “Project Information” form on Opportunity, but, it turns back to default “Opportunity” form. I figured out lastly that the tweak was with one of the fields in Lead form. To open the Project information form on opportunity, the “Order Type” value should be “Work based” this ensures the lead is for Project Service. If we select “Service-Maintenance Based”, it opens “Field Service Information” form on opportunity. Lastly, “Item Based” open the default “Opportunity” Form.
Share Story :
Embed D365 Field Service Views in Dashboard of D365 Online Portal
D365 Field Service is about something other than having the correct instruments for the activity regardless of where you are. It’s tied in with having the option to associate with your most significant resource, your clients. With Dynamics 365 and field administration the board arrangements from PowerObjects, you can make a client support story that traverses different channels, amplifies your workers’ effectiveness, and surpasses client desires. Accomplish total hierarchical arrangement with Sales, Marketing, Customer Service, and Field Service groups for client records. Deal with all gear parts for complete perceivability into guarantee and administration understandings; all out income and related expenses; and review history. Field Service Management platform providing enterprise companies with tools to streamline their business processes – from real-time mobility across every major device, to routing and workflow automation. Introduction: This blog explains how to embed D365 Field Service Views in Dashboard of D365 Online Portal. Steps of Implementation: Create a new Entity List in D365 Field Service. Set key on Entity list as highlighted below. Add View to Web Template as shown below. Note: You can refer blog how to configure Dashboards in D365 Online Portals by referring to link – https://www.cloudfronts.in/embedding-d365-field-service-charts-d365-online-portals/ Conclusion: Above description in blog helps users to embed D365 Field Service Views in Dashboard of D365 Online Portal.
Share Story :
Decompiling the code from the plugin dlls
Introduction: There can be a possibility that we lost our plugin code and dlls are already present in Dynamics CRM and we want to extract the code from Dynamic CRM. We don’t have a code backup and we are supposed to make changes in the code as we have some errors in plugin or we need to reconstruct the code. In such situation, we can follow the below steps to decompile the code. We can make use of XRM Tool Box and some tool to decompile dll. Steps: Steps to be followed are given below: Open XRM Tool Box–> Assembly Recovery Tool–> Select the plugin–> Click on Export to disk Dll will be downloaded in the local drive Download the code Decompile tool. Link is given below https://www.jetbrains.com/decompiler/ After download Open the Decompile Toolà Open the dll from local drive Your code will be decompiled as shown below Only issue is we must disable the previous plugin and register the plugin assembly and steps again. Now we can make changes in the code. Conclusion: Retrieving the codes from dynamics CRM dlls can be done by following the above easy steps.
Share Story :
Accessing Business Process Flow as Entities – D365 July 2017 Update
Overview: Another new feature announced in the Dynamics 365 July 2017 Update is that the Business Process Flows are now available as entities in D365! That means, you can access them like entities from SiteMap and see the records of their respective entities in an Entity View like you would do with other entities. Turning BPF Entity customization support: Since this is in preview for Dynamics 365 July 2017 Update, you’ll need to turn it on from the Previews section under Settings > Administration. BPF as Entity in Solution: Just like any other entity, the Process appears like an entity. Accessing BPF as entity records: Once this is enabled from the Previews section, you’ll see the entities in the default Sales area as shown below: Business Process Flow as records: Now, so far you’ve seen records having the same business process flows and once you open them, you’d see which records were in which stage. This view gives you which records use a particular Business Process Flow and where has the record reached in the flow. In the above view, each record will open the record of their respective entities. Ex. Jake Cormick is in Process stage and Process stage belongs to Opportunity entity. So opening this record will open the Opportunity record as shown below: Quite Simple! Hope this was helpful.
Share Story :
CRM – Issue with retrieving large document body using Fetch XML
Problem Statement: When we want to export Attachments from CRM (both Notes and Email attachments), we can do this using a Console Application where we read the documentbody from CRM using Fetch XML, and then we convert that to bytes and export to a local folder (or any target system) This Method is proper and should work properly, which it doss most of the time, but fails on some occasions. We have observed an issue, where we were not able to open the downloaded document. It would give below error: “There was an error opening the document. The file is damaged and could not be repaired“. This was the code that we used: private static void ExportEmailAttachments() { string fetchXML = @”<fetch version=’1.0′ output-format=’xml-platform’ mapping=’logical’ distinct=’true’> <entity name=’activitymimeattachment’> <attribute name=’filename’ /> <attribute name=’body’ /> <filter type=’and’> <condition attribute=’filesize’ operator=’gt’ value=’0′ /> <condition attribute=’filename’ operator=’not-null’ /> <link-entity name=’email’ from=’activityid’ to=’objectid’ alias=’ac’> <attribute name=’subject’ /> <attribute name=’regardingobjectid’ /> <attribute name=’activity /> <order attribute=’subject’ descending=’false’ /> <filter type=’and’> <condition attribute=’regardingobjectid’ operator=’not-null’ /> <condition attribute=’modifiedon’ operator=’last-x-months’ value=’3′ /> >”; string FolderPath = @”D:\Attachments\”; EntityCollection allEmailAttachments = crmSvc.RetrieveMultiple(new FetchExpression(fetchXML)); foreach (Entity mimeAttachment in allEmailAttachments.Entities) { string fileName = mimeAttachment.GetAttributeValue<string>(“filename”); if (fileName.EndsWith(“pdf”, StringComparison.OrdinalIgnoreCase)) { string documentBody = mimeAttachment.GetAttributeValue<string>(“body”); byte[] documentBytes = Convert.FromBase64String(documentBody); File.WriteAllBytes(FolderPath + fileName, documentBytes); } } } Solution: We triel lot of methods and various ways to solve, but we found the document was not opening properly. This is what we observed: The issue does not happen with all the files It only happens with large files Observed that the document body from CRM is always exactly 2000 characters From the above, we got to know that CRM is not sending all the document body in the Fetch XML response. We were able to solve the above by removing the “distinct=’true’“. We don’t know how it affects the query, but this was the resolution which worked for us. It is strange, but this fixed the issue. This is the final Fetch XML. string fetchXML = @”<fetch version=’1.0′ output-format=’xml-platform’ mapping=’logical’ distinct=’true’> <entity name=’activitymimeattachment’> <attribute name=’filename’ /> <attribute name=’body’ /> <filter type=’and’> <condition attribute=’filesize’ operator=’gt’ value=’0′ /> <condition attribute=’filename’ operator=’not-null’ /> <link-entity name=’email’ from=’activityid’ to=’objectid’ alias=’ac’> <attribute name=’subject’ /> <attribute name=’regardingobjectid’ /> <attribute name=’activity /> <order attribute=’subject’ descending=’false’ /> <filter type=’and’> <condition attribute=’regardingobjectid’ operator=’not-null’ /> <condition attribute=’modifiedon’ operator=’last-x-months’ value=’3′ /> “; Anyone, who can tell why this is the behavior, please feel free to comment below.
Share Story :
Deprecated Feature in D365 Customer Engagement – July Release (v9)
Introduction: “Deprecated” means Microsoft intends to remove the feature or capability from a future major release of Dynamics 365. The feature or capability will continue to work and is fully supported until it is officially removed. This deprecation notification can span a few years. After removal, the feature or capability will no longer work. Microsoft notifies the Customers and Developers well in advance so that they have sufficient time to take action and update the code. Consolidated list of Deprecated Features in July 2017 release of D365 for Customer Engagement: Click on each of the link for details on Microsoft Official documentation site: Dynamics 365 for Outlook (Outlook client) is deprecated Service scheduling in Dynamics 365 for Customer Service is deprecated Dialogs are deprecated Usage of Parature knowledgebase as the Dynamics 365 knowledge management solution is deprecated Project Service Finder app is deprecated Contracts, Contract Line Items, and Contract Templates entities are deprecated Standard SLAs in Dynamics 365 for Customer Service are deprecated Relationship Roles are deprecated Mail Merge is deprecated Announcements are deprecated Ready-to-use business processes available through Add Ready to Use Business Processes setting are deprecated Some client APIs are deprecated – Details of APIs deprecated with their replacements in the link. EntityMetadata.IsInteractionCentricEnabled property is deprecated Silverlight (XAP) web resource is deprecated We will keep posting more on the details and alternatives for each feature above.
Share Story :
Advanced Find Changes
Introduction: While working with Microsoft Dynamics CRM we wanted to make query or advanced find to list down all the account which does not have any opportunity associated to it. But in the dynamics CRM with current or earlier version we cannot write down the simple advanced find query which list down the record does not associate to it. Description: With upcoming update of Microsoft Dynamics 365 CRM, you can perform the Search on that criteria as well. You can design this query in the advanced find. Query: Get all the account which does not have any opportunities. 1. Open advance find and select account entity and in filter select opportunitie in related entities, as show below. 2. You will notice that a new attribute has been added, by which you can apply additional filter on opportunities. 3. Here you need to select the “Does Not contains data”. 4. Now click on result. 5. It will list down all the records which does not have any opportunities as shown 6. Fetch XML: let see what modification has been done in the fetch XML <fetch version=”1.0″ output-format=”xml-platform” mapping=”logical” distinct=”true”> <entity name=”account”> <attribute name=”name” /> <attribute name=”primarycontactid” /> <attribute name=”telephone1″ /> <attribute name=”accountid” /> <order attribute=”name” descending=”false” /> <link-entity name=”opportunity” from=”parentaccountid” to=”accountid” notinvalue=”DoesNotContain” link-type=”outer” alias=”af” /> <filter type=”and” isnotinfilter=”true”> <condition entityname=”opportunity” attribute=”parentaccountid” operator=”null” /> </filter> </entity> </fetch> 7. As you can see that it has an addition filter attribute is added. Query: Get all accounts contains opportunities. 1. Similarly, you can get all the accounts which have opportunities associated to it. 2. Here you need to apply filter criteria as contains data; as shown below. 3. It will list down all the account records with opportunities as shown below. Conclusion: Hope this helps while doing advanced find or designing fetch Xml query.
Share Story :
Embedding D365 Field Service Charts in D365 Online Portals
D365 Field Service has everything to manage your complex business needs from scratch till the end. On the off chance that Field Service is a fundamental piece of your everyday business, Dynamics 365 for Field Service is a start to finish arrangement that can enable your association to oversee complex assistance understandings, track resources and stock, oversee administration orders, rapidly distinguish and dispatch assets, and addition the insight expected to offer prescient and preventive assistance and backing. Robotize and improve booking to dispatch the correct professional and get the most incentive out of your assets. Upgrade your administration experience by proactively recognizing, investigating, and settling issues so a specialist is dispatched just when vital. Give clients self-administration entries, proactive updates, and expert following to guarantee a positive involvement with each progression. Introduction: This blog explains how to embed D365 Field Service Charts in D365 Online Portals. Steps of Implementation: 1. Get Guid of Chart and View used for Chart in D365 Field Service. 2. Create a new Web Template, Portals -> Web Templates and write code in Source field with Chart ID and View ID as copied in Step 1 as below. 3. Create a new Page Template, Portals -> Page Templates and set details as highlighted below. 4. Create a new Web Page in D365 Online Portals and set Page Template created in Step 3. 5. Create a new Link for Dashboard in D365 Online Portals. Hover Mouse on Home button and click on Edit option. Click on New button as highlighted below. Enter details as shown below and click on Save button. Conclusion: Above description in blog helps users to create Dashboard in D365 Online Portals by embedding D365 Field Service Charts as below.
Share Story :
OData API – Exposing Data Entities in D3FOE (Part 1)
Introduction: In this blog article, we will see how we can expose standard and custom data entities using OData Client code generator to OData API for CRUD operations. Steps: Install OData Client Code Generator v4 Create new Project Execute the OData Client code. 1. Install OData Client Code Generator v4: Open Visual Studio. Go to Tools -> Extensions and Updates Go to Online Fast Tab -> Visual Studio Gallery -> Type ‘OData V4 Client Code Generator’ Click Download. In the VSIX Installer dialog box, Click Install. After Installation, it will ask you to restart the Visual Studio. Click Restart now. 2. Create new Project: Click on new Project. Go to Visual C# -> Windows -> Select Console ApplicationNote: Client Code Generator can work with any project. Enter details and click OK. 3. Execute the OData Client code: In Solution Explorer, right click the solution. Go to Add -> New Item. Select OData Client. Click Add. You will see 2 files added in the solution. Open the file with .tt extension (Text Template). In the file, update the Metadata URI. Save and execute the .tt file. You can see a .cs file generated under the .tt file. Conclusion: This will generate a code that exposes all the Data Entities of D365 Operations. You can use this generated code for CRUD operations. In the next part, we will see how to use this generated code to read and write data in tables using exposed data entities.
Share Story :
Step Action in Business Process Flow in Dynamics 365 July 2017 update – Preview
Since this is in Preview, it won’t be available for users until next update. However, this is how it works and seems so easy to implement it. Enable Step Action from System Settings: Since this is a Preview feature in Dynamics 365 July 2017 update, it appears in the Previews section where you can go and enable the same. Once you’ve enabled the Preview feature, you should be able to see Action Step visible in the Business Process Flow editor as shown below: Add Action Step in BPF: You can trigger an Action or a Workflow in the Step Action feature. I have a Workflow to create a New Invitation entity record in D365. I’ll be adding the same in the BPF. In the Business Process Flow editor, I’ll add an Add Action Step in one of the stages as shown below: I’ll add the already created a Workflow to the Business Process Flow in the Step Action. Once done, I’ll simply activate the BPF and we can see it in action. Working with Step Action: Let’s see how easy it is to execute this workflow using the Step Action. On the Business Process Flow, I can see that the step appears from what the Display Name in Business Process Flow is set. And clicking on it, the workflow will run the background performing it’s operation. (You’ll see a quick ‘Processing’) message while it triggers the workflow. As seen below, the record for New Invitation was created as directed in the Workflow I created. Conclusion: Putting it simply, it works very quickly and is as simple as clicking a button.
