Integrating SharePoint with D365 Portal
Introduction: This blog explains how we can add files from D365 Portal directly into SharePoint which was long awaited feature missing from Portals. Below are the Steps: Step 1: Set up SharePoint integration from Portal Admin Center 1. Go to the Dynamics 365 Administration Center page and select the Applications tab. 2. Select the name of the portal for which you want enable SharePoint integration, and then select Manage. 3. Click on Set up SharePoint integration –> Enable SharePoint integration. 4. Click on Enable button it will then ask you to sign in again. 5. Enter D365 CE (MS CRM) credentials to sign in again. 6. Click on Accept to grant the required permissions. 7. You will get the below message. Step 2: Enable document management for entities (Customization in D365 CE) NOTE: If document management is not enabled already then follow below steps. Go to Settings –> Document Management –> Document Management Settings Select entity Click on Next and Finish. Step 3: Configure the appropriate form to display documents We need to add Document Location subgrid in the form which will get displayed in portal. (NOTE: Add subgrid on Edit form to edit the record in portal only.) Step 4: Creating and Assigning Entity Permissions. 1. Create entity Permission of Scope “Global” for Case (Incident) Entity. 2. Click on “+” to Add Child Entity Permission for “Document Location”. 3. Click on “New”. 4. Enter below details. Entity Name: Document Location Scope: Parent Parent Entity Permission: Case_Global(Select the name of parent entity from lookup) Parent Relationship: Select the name from drop down. Select all the Privileges. 5. Save the record. 6. Your Global Entity Permission should look like below. 7. After Creating Entity Permission successfully assign web role to the entity permissions. Sign in to Portal 1. Open any Case record. 2. You can see Document Section below from where you can “Add files” or Create “New folder” 3. Click on “Add files” button you are shown a pop-up window from where you can choose the files to upload. 4. You can see the New Folder is created in SharePoint for that Particular Case and file is also uploaded inside respective folder. 5. Click on “New Folder” to create new folder this will get created inside the parent folder “Case_CaseGUID” in SharePoint. 6. From portal you can go inside the folder and then upload files which gets uploaded inside the respective folder in SharePoint. “Add Files” in newly created folder. New Folder and Files in SharePoint.
Share Story :
Run OnDemand Workflow in D365 CE UCI Apps
Introduction: This blog explains the steps on how to enable OnDemand Workflow in D365 CE UCI Apps. Scenario: After clients are upgraded to D365 CE V9 version, Users are unable to use Classic App functionality to run OnDemand Workflows which was showstopper since it was routine task and much needed functionality. Steps: Below are steps to be performed for enabling functionality 1. Admin user should enable the “Microsoft flow” option for all the users. Below are the steps: Navigate to the ‘users’ in Office 365. Post navigation, open a specific user. Enable license for “Flow for Dynamics 365” in D365 CE Plan. (below screenshot for reference). 2. Enable setting to Show Microsoft Flow in Sitemap. Navigate to Settings → Administrator →System Settings by System Administrator Role User. Open Customization Tab and Enable Microsoft Flow option. 3. Navigate to any Entity below screenshot for Account. Open Account Entity record. Navigate to Flow button on Ribbon and expand options, you will view all OnDemand Workflow for Entity under Run Workflow header. Conclusion: This is how enabling Microsoft Flows setting on specific environment allows Users to run OnDemand Workflows in UCI Apps of D365 CE. Hope the above process helps!
Share Story :
Hide table or column in Power BI
Introduction: In this article we will read on how to hide a table or column in Power BI Web Service. Scenario: I have a Power BI Report with 3 Tables; Orders, People and Returns. I want to hide People table when I am publishing the Power BI Report on Power BI Web Service. Steps: Open Power BI desktop file. Right click on the table or column you want to hide Select Hide. Voila! You are done. The Table People we not be visible in the Fields section of Power BI Desktop file. You can find the table in the Modelling view as a Grey table.
Share Story :
Resolving an “Error: Value cannot be null” issue in Microsoft Dynamics 365 Project Service Automation
Anyone who uses a CRM on a regular basis hopes that it will work seamlessly without errors. But from time to time, when creating and qualifying a lead, confusing error messages popup and leave users wondering about a resolution. A very common error in Dynamics 365 Project Service Automation comes up when trying to qualify a lead using the Project Information form when the lead is type is set as “Work Based.” The popup below shows the error message: This error cropped up after I did the following steps: Step 1: Create a lead with the basic required details Step 2: Ensure the form selected is Project Information form Step 3: The Type of lead field should have the value Work Based Step 4: Save the lead Step 5: Try Qualifying the lead. This will lead to the above error shown in the screen shot. The best way to resolve this issue is to check the parameter settings, shown in the screenshot below. Upon researching the issue, I found that there is an important parameter setting that is missing, which needs to be changed in order to get to a resolution. When the lead is created, even though we do not have a customer specific price list, PSA asks for a default price list, inferring that this could be a potential customer. The go to place where PSA checks the global parameter setting is Project Service–> Parameters. Click on the default organization unit. In my case, CloudFronts Mumbai. Click on the price list tab (shown in the screen shot below) and then click on the add new project parameter Price List button on the grid. A pop-up opens that asks for the price list. Select the price list and save. Now, when you create your lead in the Work Based type and qualify it, the error will not reappear. With these changes, the price list for the organization unit is updated in PSA. Whenever we use the organization unit again for a quote, contract, or project, this price list will be the default setting. Most importantly, the parameter helps to qualify the lead successfully. This process reflects my personal findings, based on my experience using PSA for the last five years. We have benefited a lot from the implementation of PSA, because we save time and money due to easy access to resources and the ability to manage them.
Share Story :
Setting the WorkHourTemplate to schedule resources correctly in Microsoft Dynamics 365 Project Service Automation
I was trying to explore the Extend Booking functionality in Dynamics 365 Project Service Automation (PSA) and saw that the users were getting allocated for the entire 24 hours in a day. Immediately, I realized that the issue was coming up because the work hour template was not set properly. When the new work hour template was created, the work hour parameters for the resources were not set back to eight hours. To check the work hours of a resource, navigate to Project Service–>Resources–>Select a Resource. Click on the button “show work hours” as highlighted in the screenshot below. A popup opens. The screenshot shows that the work hours are not defined for the resource as of now. As a result, the resource will be allocated for 24 hours if they are selected for a project unless there working hours are defined. I selected the resource in the Default Work Hour Template and then created the work hours for that resource (eight hours a day and Monday-Friday working). I assigned these work hours to all the resources in the navigation shown below. Select all resources and click on the ‘Set calendar’ button from the Ribbon Control. I assumed that the new work hours will be set for all the resources selected. I then tried to allocate via extend booking and saw that the resource was still not reflecting the new work hours set. Upon further research I worked out a solution that follows the proper way to define the work hour template of the resources. I created a new work hours template by navigating to Project Service Work Hour Templates. This new work hour template was created to define the following: Working hours per day of the resource. Working days in a week. Holidays in a year. The resource selected should have the proper work hours defined. Select all the resources and assign the newly created work hour template. Because Kuldeep Gupta is a template resource in this example, all the resources will get assigned from Kuldeep Gupta. As a result, it’s not possible to select more than one resource. Now while creating the project select this newly created Work Hour Template and the project will respect the new work hours. A word of caution: You will not be able to change the work hour template for the old projects as the field is locked and you are not allowed to change it in the midst of the project. I hope that these steps help you to create and assign the work hour template effectively.
Share Story :
Send Emails using WebApi in MS CRM
Introduction: This blog explains how to Send Emails using WebApi in MS CRM. Request: Post URL: <your instance url>/api/data/v9.1/ emails (<guid of the email record>)/Microsoft.Dynamics.CRM.SendEmail Header: Content-Type: application/json Parameter To be send in body: Parameter Value Comment IssueSend False If value is set as false, then email is market as sent only in MS CRM. IssueSend True If value is set as true, then email is sent and as well as marked as sent in MS CRM. Body: { “IssueSend”: “true” } Response:
Share Story :
Creating an Email activity in MS CRM through WebApi
Introduction: This blog explains how to Create an Email activity in MS CRM through WebApi Request: Post URL: <your instance url>/api/data/v9.1/emails Header: Content-Type: application/json Prefer: return=representation Body: 1. Creating Email with resolved emails (To field of email is record in MS CRM). { “description” : “Email Created”, ///Email Body “regardingobjectid_account@odata.bind” : “/accounts(69C38067-EDB7-E811-A961-000D3A363C81)”, “subject” : “Test Email Creation”, “email_activity_parties” : [ { “partyid_systemuser@odata.bind” : “/systemusers(CED2E02D-188E-4AA8-B6E2-D746E9B370C1)”, “participationtypemask” : 1 ///From Email }, { “partyid_account@odata.bind” : “/accounts(69C38067-EDB7-E811-A961-000D3A363C81)”, “participationtypemask” : 2 ///To Email }] } 2. Creating Email with unresolved emails (To field of email is not record in MS CRM). { “description” : “Email Created”, “regardingobjectid_account@odata.bind” : “/accounts(69C38067-EDB7-E811-A961-000D3A363C81)”, “subject” : “Test Email Creation”, “email_activity_parties” : [ { “partyid_systemuser@odata.bind” : “/systemusers(CED2E02D-188E-4AA8-B6E2-D746E9B370C1)”, “participationtypemask” : 1 }, { “addressused”:”vvyas@cloudfronts.com”, “participationtypemask” : 2 } ] } 3. Creating Email with multiple unresolved emails (To field of email is not record in MS CRM). { “description”: “Test Email”, “regardingobjectid_account@odata.bind”: “/accounts(69C38067-EDB7-E811-A961-000D3A363C81)”, “subject”: “Update Your Phone Number”, “email_activity_parties”: [ { “partyid_systemuser@odata.bind”: “/systemusers(CED2E02D-188E-4AA8-B6E2-D746E9B370C1)”, “participationtypemask”: 1 }, { “addressused”:” vvyas@cloudfronts.com”, “participationtypemask”: 2 }, { “addressused”:” smahato @cloudfronts.com”, “participationtypemask”: 2 } ] }
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 :
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 :
Actual vs Estimated hours myth
Introduction: All these years, I was calculating ‘Actuals’ as the billable hours on the project with the chargeable role. It was a myth that I continued to believe until I stumbled upon the solution that potentially demystifies this myth in PSA itself. Description: Below is how PSA helped to resolve this complex situation and this is how I cleared my understanding towards Actuals vs Estimated in PSA. In the project, I observed that the project was estimated to be a short project of 22 hours and the ‘Actuals’ were of 24 hours. Thereafter, I decided to dig deeper into it to understand the issue of these 2 additional hours, as this was not a big project and getting the additional 2 hours mistake would be very easy. To fix this, below are the actions that I followed: I accessed the Actuals from Project–> Project Name–> Actuals, as shown in the screen shot below. In the grid there, I sorted the “cost” aspect and calculated the number of hours which turned out to be 24. This was strange for me. Then I looked at the “Resource Role” column in the grid and found a 2-hour entry under the Non-Billable role. I pondered why these 2 hours Non-Billable hours are getting summed up in the actuals. But, if thought correctly, even the Non-Billable hours spent by the Resource is an Actual cost to the company. Conclusion: In this way, I could clear the air of confusion surrounding this and for my project budget calculations, I got another field created in the form named billable hours and calculated the sum of all the chargeable roles hours in that field. This now gave me all the three i. e Actuals, Estimated and billed hours in one go. Microsoft Dynamics 365 PSA is the next generation of cloud-based systems which provides an overview of business processes from Sales, Project Management, Customer Service and Fields Service.
