Category Archives: Dynamics 365
Migrating Activities Of Type ‘Case Resolution’ Between Two Microsoft Dynamics CRM Environments
Introduction: While migrating Cases, the migration of activities of type ‘Case Resolution’ is necessary. However, the complexity in migrating this increases due to the fact that when the status of a case is updated, a blank case resolution activity is created automatically by the system. This system-generated case resolution needs to be deleted as this would result in each case having two case resolution activities after migration – one system-generated and one with the correct migrated data from the source. Solution: To tackle this issue, one must follow the following steps during migration: 1. Send all Cases (no matter what the status in the source environment) to the target with their status as ‘Open’. 2. Send all related activities to the target environment. 3. Update the case status in the target environment to its status as in the source environment. 4. For cases with status ‘Resolved’, a system-generated case resolution activity will be created. 5. In your case resolution migration map, first add a step to delete the existing case resolution in the target and then insert the case resolution from the source environment. 6. Now your case with status ‘Resolved’ will have only one case resolution and that will be the one migrated from the source environment with the correct data. Conclusion: Above steps shed some light on how to preserve the integrity of case resolution activity data in your target environment during data migration.
Share Story :
Issue : Database Sync Error while applying deployable packages or Updates.
Issue : Database Sync Error while applying deployable packages or Updates. Usually the Database sync error occurs at step 11:GlobalUpdate script for service model: AOSService on machine: —- Follow the steps to resolve the issue and resume the deployment. In this environment, go to Environment Monitoring –> SQL INSIGHTS –> ACTIONS tab In List of Actions, choose “Drop index” In Parameters, input “I_6640RECID” and “BANKIBANCOUNTRYACCOUNTSTRUCTURE” in Index name & Table name respectively. Choose Execute to drop the index then resume deployment.
Share Story :
Issue: Void Transaction Appears in show journal in POS for Dynamics 365 for finance and Operations 8.1
Issue: Void Transaction Appears in show journal in POS for Dynamics 365 for finance and Operations 8.1 When the system is upgraded to dynamics 365 finance and operation version 8.1 the user will observe that all the void transactions appear in Show journal. This bug is resolved as “By Design” means this is the expected behavior to show voided transaction with return button disabled If the voided Transactions are being returned you need to apply the APPMU general application 8.1.2 update and this will resolve the issue! On application of this update the user will not be able to return the voided transaction.
Share Story :
Rename Dynamics 365 Sales Entity
Introduction: This blog explains how to rename the Dynamics 365 Sales Entity Scenario: In this we will rename Account Entity To Company. Steps: 1. Rename the Entity. Go to your solution. Select the entity and change the Display Name and Plural Name of entity. Save and Publish your Customizations. 2. Export Translations Click on Translations –> Export Translations. Extract the downloaded .zip file. Open the CrmTranslations.xml file in Excel 3. Now we have to make changes in CrmTranslation file. Steps: a. Unprotect all the sheets. Go to Review tab –> Click on Unprotect Sheet button Repeat this for all the sheets. Information Display Strings Localized Labels b. Go to Display Strings Sheet Highlight the whole column C Find and Replace (or press Ctrl-H) Open Options on the Replace window and ensure that Match Case is ticked You need to replace the plural names first and then the singular names. Find – Accounts, Replace with – Companies Find – accounts, Replace with – companies Find – Account, Replace with – Company Find – account, Replace with – company c. Go to Localized Label sheet. Highlight the whole column D and repeat the steps performed in Display Strings sheet. d. Save the file. 4. Import Translation File Create .zip file. Make sure you select both the files and zip them rather than zip the folder. Go To solutions. Click on Translations -> Import Translations. Choose your .zip file and click import. Publish your Customization after Successful Import. Now you can see changes Account entity is renamed as Company.
Share Story :
Filter Customer Type field to display only Accounts in D365 V9.0 using JavaScript
Introduction: In this blog we will see how to filter customer type field in Dynamics 365 to only show Accounts/Contacts dropdown. Implementation: Step 1: For demonstration purpose we will filter to only show Accounts. In the below image we can see that we have a Customer type field which allows to choose from Contacts as well as Accounts. Note: Here accounts are called as Companies. Step 2: To display only Companies in the dropdown we register an event on Form Load. Here we are working on the Contacts form, hence we first write a JavaScript code to filter the lookup to show only companies. Below shown in the code: Code: var oContactFormCustomization = { setCustomerLookupToShowCompany: function (execContext) { var formContext = execContext.getFormContext(); if (formContext.getControl(“parentcustomerid”)) { var company = formContext.getControl(‘parentcustomerid’); if (company.getEntityTypes().length > 1) { company.setEntityTypes([‘account’]); } } }}; We add this script in CRM JS Web resource and add the library on the Contact form Properties Below shown is the Handler Properties Once this is done we can see when the form loads the scripts executes and we can now view only the Companies and not the Contacts Hope this helped!
Share Story :
Default Teams of other Business Unit can’t be added
I would like to share a consideration I take while designing Teams that you might need to make certain records shareable. I faced an issue once when users started to use Default Teams created on Business Units. And after several months, it occurred that some users from other Business Units too needed to be on that Team. And several records were already assigned to BU provided Default Teams. Scenario Priyesh belongs to Southeast Asia BU and Somesh belongs to North America BU. Some records were assigned to North America team which is the Default Team created by BU. Priyesh wanted to be in the North America team and hence the user tried to add him in that Team. So adding North America to Teams under the user Priyesh, but I get the below error – That is because you cannot add Default Teams to users in some other BUs. As a workaround, I only created a new Team and named it “<BU Name> – Shareable” team and assigned records to this team so that I know where I want the records to be visible as per my Security Roles setup. And hence, added the North America – Shared team for Priyesh. I would also like to hear your suggestions and any workarounds you may have. Thanks! 😊
Share Story :
Set Field Visiblity based on Security Roles in Dynamics 365
Introduction: In this blog we will demonstrate how to set visibility of a field in Dynamics CRM based on Security Roles using JavaScript. Implementation: Step 1: First we create a security role, Here for our demonstration I have created a Blank Security Role with the name “CustomEditAccess”. Copy the GUID of the security Role as this will be used later in the Code. Step 2: If the user does not have the custom security role that we have created we will hide the Parent Account field else we will show the Parent Account field. For this first we go to the Form Editor and set the Visible by Default to “No” for the field “Parent Account” Step 3: Create a new JavaScript Web resource and add the following code: var accountFormCustomization = { customEditAccess: function (execContext) { debugger; var formContext = execContext.getFormContext(); var userSettings = Xrm.Utility.getGlobalContext().userSettings; //Get Security Roles of the current User var securityRoles = userSettings.securityRoles; //Below is the GUID of the Security Role “CustomEditAccess” var securityRoleId = “B9E23C5A-F5F9-E811-A96C-000D3AF29D99”; for (i = 0; i < securityRoles.length; i++) { //If current User contains the Required Security Role if (securityRoles[i].toUpperCase() == securityRoleId.toUpperCase()) { //Field should be Set to Visible formContext.getControl(“parentaccountid”).setVisible(true); }}}} Note: Here we have set the visibility of the Parent Account(parentaccountid) field to “True” to show the field on the form. Step 4: Once this is done we register an Event On Form Load, as shown below: Remember to pass the Execution context as the first parameter Step 5: Once this is done when the form is loaded, the script will check if the User has the required Security Role, if yes then the “Parent Account” field will be shown else it will be hidden by default. Tip: Here we have hardcoded the GUID of the security role, what we could also do if fetch the GUID of the security role based on the Name of the Security role and then follow with the Hide/Show visibility logic. Conclusion: This is another alternative to field level security and this can be implemented if you find Field level security too complex as your requirements in the organization grow.
Share Story :
Dynamics 365 Online Authentication with Client Credentials
Introduction: This blog explains how to Authenticate Dynamics 365 Online with Client Credentials. Steps: Steps in Azure 1. Register a App in Azure Active Directory. Login to portal.azure.com Navigate to Azure Active Directory –> App Registration –> New Application registration 2. Create App with Application type -> Web app/ API. Copy the Value of Application ID. 3. Give permission to Dynamics 365 Online. Go to Settings –> Required permissions –> Add –> Dynamics CRM Online –> Select Select the following permission. 4. Click on Grant Permissions –> Yes 5. Generating client secret key. Go to Settings –> Keys Create a new key and copy its value Steps in D365 Sales Create Application user. 1. Add a user from Portal.office.com 2. Go to settings -> security -> users. Change the view to Application Users. Add New user. 3. Enter User name and Application ID. Value of Application ID is obtained from MS Azure. 4. save 5. After Saving values of Application ID and Azure AD Object ID will come automatically. Steps in Azure 1. Add this user as Owner of the App which we created in MS Azure. Settings –> Owners –> Add owner 2. Obtain tenant id Azure Active Directory –> Properties –> Directory ID Making a Request using Postman POST URL: https://login.microsoftonline.com/<tenant id> /oauth2/token Header:Content-Type: application/json Body: Key Value client_id Application ID of the registered app in Azure resource https://trial.crm.dynamics.com (Dynamics 365 Online Insance URL Client_secret Key value from the registered app in Azure Grant_type client_credentials Below screen shows how to use above given keys to generate the access token. This token has expiration time. You need to refresh this token.
Share Story :
How to change the no. of decimal points for a particular field in Dynamics 365 for Finance and Operation
Introduction: In Dynamics 365 for finance and operations the default decimal point is set up till 2 decimal place. To change the decimal point according to customers wish follow the following steps. Steps: 1. In the development environment run the Visual studio in administration mode. 2. In AOT find the EDT of the field and change the No of Decimals Property to 4-6 depending on the customers requirement. 3. Compile and build the solution. 4. The changes will be visible on Dynamics 365 finance and operations.
Share Story :
D365 PSA v3 – Resource Assignment and Booking
Introduction: There is no limit to what D365 PSA can do. However, it has undergone some significant upgrades. since PSA v3 is a major shift from its previous version, some processes have changed which has greatly enriched the experience of using D365 PSA V3. Let’s quickly look at how you can assign resources and then book them on the Project in PSA v3 using a perfect example. Project I have a sample Project called Grand Chocolatiers Inc. whose schedule looks like this (the WBS is now Schedule in PSA v3) – I will now Assign and Book a Resource to show you how this is done in PSA v3. Assigning Resources: Now, you don’t have any resources Assigned to the Project you just created, so let’s go to the Schedule in the Project and add a new Resource, say, Alicia Baker. I’ve added Alicia Baker without booking her. Coming to the Team and refreshing the grid, I’ll see Alicia being assigned the 12 Hours. Booking Resource: Now, I’ll come to the Resource Reconciliation section and see how I can book Alicia on the task. I’ll select the Previous Difference in order for me to see the distribution I want to book Alicia on. After I double click on the Hours denoted (1), I’ll see an expanded view (2). Now, if I only select the below highlighted days, I’ll be booking Alicia for those hours on the 3 selected days only. Then, I’ll click on Extend Booking. Once I confirm the 3 days that I see, the resource will be booked for that time. And I’ll see the updated Reconciliation View after I book the resource. Now, if you check the Team or the Schedule Board, you’ll be able to see that Alicia is now Booked for the selected duration. Conclusion: Microsoft Dynamics 365 for Project Service Automation enables companies to deliver projects more productively and profitably with higher client satisfaction and this is my personal experience. Today, being a project-based organization, we deliver end to end projects on time and this has helped us achieve an enhanced reputation as a service company. To check out more on the core functionalities and features, please see Kuldeep’s blog below: https://community.dynamics.com/365/projectserviceautomation/b/kuldeepsblog/archive/2018/10/16/reconciliation-view-amp-scheduling-a-resource-in-psa-v3
