Latest Microsoft Dynamics 365 Blogs | CloudFronts - Page 15

CRM Option set in Power BI

Introduction: In this article, we will learn how to dynamically use Dynamics 365 CRM option set/ CRM picklist in Power BI. As you may be aware that CRM picklist stores Integer value in the backend and not the actual display name. So, whenever you query an entity with picklist fields in Power BI you will get picklist Integer value and not the display names. Pre-requisite: The option set/picklist should be a global. You can check the IsGlobal property for the picklist field in the Metadata Browser. In Metadata Browser, when you expand Get Options for OptionSet there is a (+) button. Click on that button and option set properties will appear. Steps to get Option Set Values: Login in to Power BI Click Get data Select Odata Feed as the connector Enter the OData URL for querying the Global option sets and click Ok. URL Format: https://orgname.api.crm.dynamics.com/api/data/v8.2/GlobalOptionSetDefinitions(OptionSetMetadataId) Example: https://contoso.api.crm.dynamics.com/api/data/v8.2/GlobalOptionSetDefinitions(ae2a3b9d-395a-4dbd-9abc-c32aeb10888b)Note: OptionSetMetadataId is highlighted in the Pre-requisite screen capture Once the query is loaded, the Edit Query window will pop up.  Click on Advance Editor and modify the code as below (Add null and MoreColumns parameter) and then click Done: let Source = OData.Feed(“https://fasttrackleasingllc.api.crm.dynamics.com/api/data/v8.2/GlobalOptionSetDefinitions(ae2a3b9d-395a-4dbd-9abc-c32aeb10888b)”, null, [MoreColumns = true]) in    Source After loading, an additional row will be added to the table named More Columns. Click on the Record field beside More Columns. A new view of the table will be loaded as shown in the below screenshot. Right Click on List and Select ‘Into Table’ Once the table is loaded, expand the Value column by clicking on ‘Expand to New Rows’ Expand the Value Column and select ‘Value’ and ‘Label’ Columns. Click Ok. Expand the Value.Label Column and select ‘UserLocalizedLabel’ Column. Click OK. Expand the Value Column and select ‘Value’ and ‘Label’ Columns. Click Ok. Finally, we get the Option set Code (Value.Value) and Option Set Value (Value.Label.UserLocalizedLabel.Label) from CRM. Conclusion: As the above method creates a separate table for option set, you have to add relationship (1-*) between the newly created Option Set table and the Main table.

Share Story :

Extend Schedule Board Filter Section in D365 Field Service/PSA

Introduction: This blog explains how to enable custom field in Filter section of Schedule Board in D365 Field Service & PSA. Scenario: Need to filter resources on Schedule Board by custom fields other than standard fields like characteristics, roles, business units, terriotries etc. Pre-requisites: Configure 2 Custom Entities with below Details 1. Crew Entity with Name as text field. 2. Crew Member Entity with Crew and Bookable Resource as lookup field. Steps: Below are steps to configure custom field “Crew” of type lookup in filter section of Schedule Board. 1. Open Schedule Board to Customize 2. Customize the Filter Layout Template Open Filter Layout as highlighted below. Insert below code above controls closing tag. <control type=”combo” source=”entity” key=”ResourceCrew” label-id=”Crew” entity=”cf_crew” multi=”true” /> Click “Save” button to save the changes to Schedule Board. Crew field will be shown in filter section as highlighted below. 3. Customize the Retrieve Resources Query. Open Query Template as highlighted below. Insert below code in Query template above closing tag of filter. Click “Save” button to save the changes to Schedule Board. 4. Click “Apply” button to save the changes to Schedule Board. 5. Select Crew and click Search button in Filter Section and  Resources are filtered as below Refer this link for more information. Conclusion: This blog explains steps to filter resources based on custom entities in Filter section of Schedule Board in D365 Field Service and PSA.

Share Story :

View Resource Skills and Roles on Schedule Board in D365 Field Service / PSA

Introduction: This blog explains how to view Resource Skills and Role in D365 Field Service / PSA. Scenario: We often get inquiry from Clients do we have option to view Resource Skills or Roles on Schedule Board before scheduling a Work Order to Resource. Steps: Open Schedule Board and follow below steps to view skills / roles of Resource. a. Select Resource in Resource Panel as highlighted b. Right Click on Selected Resource and Click on View Resource Card. c. Resource Details will displayed as shown below screenshot with details like Time Zone, Sills, Roles of Resource and many options to connect Resource like chat/email/phone call. Note: Above explained blog is with Reference to D365 Field Service Version 7.5.1 Conclusion: Using  above mentioned steps, you can view Skills or Roles of Resource and many options to connect Resource like chat/email/phone call on Schedule Board in D365 Field Service and PSA.

Share Story :

Creating Case in Dynamics 365 from Microsoft Social Engagement Posts

Introduction: This blog explains how to Create Case in Dynamics 365 from Microsoft Social Engagement Posts. Steps to be followed: Steps in Dynamics 365: Go to Settings –> Service Management –> Automatic Record Creation and Update Rule.  Click on +NEW. Enter Name and Set the Source Type to Social Activity. Save the record Under Channel Properties section for additional properties select the search button and Create new record. Enter details. Save record Create Channel Properties Under Newly Created Channel Property Group. Enter Name and Data Type. Save record  Add specify record creation and update details Enter Name and save the record. Under Condition, choose Select, and scroll to the bottom of the drop-down list to find Channel Properties under Local Values. Then, select userPreferredTargetEntity Equals incident. Under Action, select Add Step, and then select Create Record. Set the value to Case. If you want to set or change any field value you can do it by clicking on set properties and changing the fields accordingly. Save and close the record. Finally select Activate to activate the rule. Steps in Microsoft Social Engagement: Go to settings –>Automation Rule Click on + to create new automation rule. Enter Name. Filter according to your criteria. Click on + ADD NEW ACTION to add actions. Click on link to Dynamics 365. Select Instance and Entity. Click on Apply. You can also Assign this case to user from MSE. Click on Apply Click on ADD NEW ACTION Select Set label. Click on Apply. Record Details: Save the rule. Case in Dynamics 365:

Share Story :

Set up Dynamics 365 connection in Microsoft Social Engagement

Introduction: This blog explains how to Set up Dynamics 365 connection in Microsoft Social Engagement. Steps to be followed: Go to settings Under connections tab go to Microsoft Dynamics 365. Click in + to create connection and then click on Accept. Select the connection type. You can click on CHECK INSTANCES it will load the instances. Or you can enter the URL of the instance in Dynamics 365 instance URL box. Finally give name to your connection. If you want to make this as your default connection. click ON the set as default option.       Save.Note:  You can only connect to those instances who are in same office 365 tenant. 

Share Story :

Using Variable Connector In TIBCO Cloud Integration

Posted On July 10, 2018 by Admin Posted in Tagged in , ,

Introduction: The Variable Connector, created as part of the Scribe Labs initiative, adds a much-needed feature to TIBCO Cloud Integration i.e. to store and retrieve variables in a Scribe Map. However, keep in mind, these variables cannot be shared between maps or solutions. Steps For Installation: To begin using the connector, install it from the Scribe Marketplace. Go to Marketplace. Search for ‘Variables’. Select Scribe Labs – Variables and click ‘Install’. The Connector will install for your Organisation in a few minutes. Steps To Create A Variable Connection: From the ‘More’ dropdown menu, click on ‘Connections’. Click on the plus sign (+) on the right of the page to add a new connection. Select your Connector Type, input the name of the variable connection and select the Agent. Click OK. Steps to use in a Map: Add the variable connection to your map. To store a value in the variable, select the Upsert block. In the General Tab, select the data type of the variable you want to store from the Entity dropdown menu. In the Fields Tab, input the name of the variable in the ‘name’ field and the data you want to store in the variable in the ‘val’ field. Click OK. To retrieve a variable, use the Lookup Block from the Variable Connection. Select the data type of the variable in the Entity tab. In the Lookup Criteria tab, lookup the name of the variable you had set. Select the ‘val’ field in the Field List tab. Click OK. You can now use the data stored in the ‘val’ field of the variable in your map. Conclusion: I hope this helps understand the usage of the Variable Connector in TIBCO Cloud Integration. This feature is very useful when one needs the functionality of a variable while using TIBCO Cloud Integration.

Share Story :

Generating Azure Blob file SAS key using Azure SDK

With a demand for concrete strategy to determine how applications, workloads & data remain available during downtime organizations need a disaster recovery & business continuity strategy which is given by Microsoft azure. Azure BCDR covers people, communication, transportation that includes physical facilities & information technology. Even the smallest of the outage can prove to be a major setback for your business and with a business continuity plan and a disaster recovery system all your major information technology systems can be well saved without the expense of another secondary infrastructure. With the implementation of BCDR strategy the workload and applications of the organization is kept up and running in the occurrence of any outage. It is an effective and cloud based data recovery solution that is simple to implement and cost effective. Why do we need SAS key for Blob File? Azure Blob is massively scalable object storage for unstructured data. Blob Storage can handle all your unstructured data, scaling up or down as your needs change. You no longer have to manage it You only pay for what you use and you save money over on-premises storage options. A shared access signature (SAS) provides you with a way to grant limited access to objects in your storage account to other clients, without exposing your account key. A SAS gives you granular control over the type of access you grant to clients who have the SAS, including: The interval over which the SAS is valid, including the start time and the expiry time. The permissions granted by the SAS. For example, a SAS for a blob might grant read and write permissions to that blob, but not delete permissions. An optional IP address or range of IP addresses from which Azure Storage will accept the SAS. For example, you might specify a range of IP addresses belonging to your organization. The protocol over which Azure Storage will accept the SAS. You can use this optional parameter to restrict access to clients using HTTPS. Using SDK to Generate SAS key from C-Sharp code: You need to include the Azure SDK DLLs: You can get the DLLs from Nuget package manager as well. Refer below names to search in Nuget: WindowsAzure.ConfigurationManager WindowsAzure.Storage The first step is to connect to the Blob storage using Connection String. You can add the Blob connection string in the App.config and use that in code to create connection like below: Your connection string should be of the format: The below code creates the connection: //Parse the connection string and return a reference to the storage account. CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting(“StorageConnectionString”)); //Create the blob client object. CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); Once connection is created, we can retrieve the blob container which contains the blob: We can use the container reference, blob file name and the connection to create the SAS key like below: I have uploaded the entire code to my Github as well for reference. Why we can’t use Azure Storage Explorer tool to do this: The Azure storage explorer also has the option to connect to your blob and generate SAS key with clean User Interface. But recently for last 2-3 months, I am facing issues with generating Key with Azure Storage Explorer. This is the reason I implemented this code to remove dependency on the tool.

Share Story :

Calendar Rule Entity not supported in Power BI

Posted On July 4, 2018 by Admin Posted in

In Power BI, Dynamics 365 is connected using its Web API i.e [organization URI]/api/data/v9.0 Dynamics 365 Web API does not support GET Request for calendarrule entity; because of which Power BI cannot retrieve calendar rule entity details. You can verify by browsing to the URL: [organization URI]/api/data/v9.0/calendarrules Please refer to the screen capture below for the error details in browser. Also, you will not be able to load the calendar rule entity in Power BI. Below screen capture displays an error received in Power BI.

Share Story :

How to send Notes to the Customer from a Custom Page using an Action button in Dynamics NAV

Business central from Dynamics 365 is an ERP solution from Microsoft which is designed to understand your business needs and change it for better.  Dynamics 365 business central development is a business management solution that is extremely easy to use and implement across several domains in your organization. Business central is the cloud version of the Dynamics NAV Platform. Which is being implemented by many companies across various industries in almost every part of the world. This cloud based ERP is designed for small and medium businesses which allows you to focus on your core business needs and strategies without having to invest on any infrastructure and installation. Implementation of Dynamic 365 business central to your organization helps you to connect your business and make smarter decisions. Introduction: The requirement is explained in the Scenario below: Scenario: A Custom page called Collection Module-Per User has details of Customers Transaction. This Collection Per User page is a List page. The User will select the line and Click on Notes. Notes will written and saved. The user will Click on the Action button Send Notes to Customer.TheNotes from this Custom page should be sent to standard page Customer (Page 18) Notes in Microsoft Dynamics NAV: Notes are like reminders or notification which is ideally used for Customers,Vendors or Items.  Notes are saved in binary format in a field Note of Blob data type in the table Record Link  (2000000068) Read notes : The “Record ID” of the record using Record Reference is used to filter the Record Link table and convert the data stored in the Note field in Record Link table to text. Write Notes: The “Record ID” of the record using Record Reference is used to filter the Record Link table and convert the text to bytes and store in the Note field Pre-requisites: Microsoft Dynamics NAV 2017 Steps: Functionality: 1. Select the line in the Custom page and click on Notes. Type in your Notes and Save it. 2. Click on Send Notes to Customer. 3. Open the Customer page and filter the Customer No to which Notes are sent and Open Notes. Customization: 1. Create an Action button Send Notes to Customer and create global variables as below image: 2. The Custom Table has primary key as No. so first GET the primary key and assign Customer No. to a variable Rec_CustNo ReadText: Rec_CF_CollectionModuleTempTable.GET(No); Rec_CustNo:=Rec_CF_CollectionModuleTempTable.CustNo; Set the Recfilter and use the Recorf reference to GETTABLE. Rec_CF_CollectionModuleTempTable.SETRECFILTER; CLEAR(RecRef); RecRef.GETTABLE(Rec_CF_CollectionModuleTempTable); RecRef.FINDFIRST; 3. SETRANGE with the Record Link’s Table Record ID and Record referrence RECORDID 4. Convert the blob field into text by using InStream and Use a BigText variable to read the Stream. RecordLink.RESET; RecordLink.SETCURRENTKEY(“Record ID”); RecordLink.SETRANGE(“Record ID”,RecRef.RECORDID); IF RecordLink.FINDFIRST THEN BEGIN RecordLink.CALCFIELDS(Note); IF RecordLink.Note.HASVALUE THEN BEGIN CLEAR(NoteText); RecordLink.Note.CREATEINSTREAM(Stream); NoteText.READ(Stream); NoteText.GETSUBTEXT(NoteText,2); END; END; Write Text: 1. GET the Customer No. of the Cuatomer Table and Use Record refernce to GETTABLE Customer. Use SetText function to write the text to bytes and store it in Note field in Record Link Customer.GET(Rec_CustNo); RecRef.GETTABLE(Customer); RecordLink.INIT; RecordLink.”Link ID”:=0; RecordLink.”Record ID”:=RecRef.RECORDID; RecordLink.URL1:=GETURL(CLIENTTYPE::Windows,COMPANYNAME,OBJECTTYPE::Page,PAGE::”Customer”); RecordLink.Type:=RecordLink.Type::Note; RecordLink.Created:=CURRENTDATETIME; RecordLink.”User ID”:=USERID; RecordLink.Company:=COMPANYNAME; RecordLink.Notify:=TRUE; SetText(NoteText,RecordLink); RecordLink.INSERT; The Complete Code : Send Notes to Customer – OnAction() Rec_CF_CollectionModuleTempTable.GET(No); Rec_CustNo:=Rec_CF_CollectionModuleTempTable.CustNo; //MESSAGE(‘%1 no’,Rec_CF_CollectionModuleTempTable.CustNo); Rec_CF_CollectionModuleTempTable.SETRECFILTER; CLEAR(RecRef); RecRef.GETTABLE(Rec_CF_CollectionModuleTempTable); RecRef.FINDFIRST; RecordLink.RESET; RecordLink.SETCURRENTKEY(“Record ID”); RecordLink.SETRANGE(“Record ID”,RecRef.RECORDID); IF RecordLink.FINDFIRST THEN BEGIN REPEAT RecordLink.CALCFIELDS(Note); IF RecordLink.Note.HASVALUE THEN BEGIN CLEAR(NoteText); RecordLink.Note.CREATEINSTREAM(Stream); NoteText.READ(Stream); NoteText.GETSUBTEXT(NoteText,2); MESSAGE(FORMAT(NoteText)); END; UNTIL RecordLink.NEXT=0; END; Customer.GET(Rec_CustNo); RecRef.GETTABLE(Customer); RecordLink.INIT; RecordLink.”Link ID”:=0; RecordLink.”Record ID”:=RecRef.RECORDID; RecordLink.URL1:=GETURL(CLIENTTYPE::Windows,COMPANYNAME,OBJECTTYPE::Page,PAGE::”Customer”); RecordLink.Type:=RecordLink.Type::Note; RecordLink.Created:=CURRENTDATETIME; RecordLink.”User ID”:=USERID; RecordLink.Company:=COMPANYNAME; RecordLink.Notify:=TRUE; SetText(NoteText,RecordLink); RecordLink.INSERT; PROCEDURE SetText@1000000002(NoteText@1000000000 : BigText;VAR RecordLink@1000000001 : Record 2000000068); VAR s@1000000002 : BigText; Ostr@1000000003 : OutStream; lf@1000000004 : Text; c1@1000000005 : Char; c2@1000000006 : Char; x@1000000007 : Integer; y@1000000008 : Integer; i@1000000009 : Integer; SystemUTF8Encoder@1000000011 : DotNet “‘mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’.System.Text.UTF8Encoding”; SystemByteArray@1000000010 : DotNet “‘mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089’.System.Array”; BEGIN s := NoteText; SystemUTF8Encoder := SystemUTF8Encoder.UTF8Encoding; SystemByteArray := SystemUTF8Encoder.GetBytes(s); RecordLink.Note.CREATEOUTSTREAM(Ostr); x := SystemByteArray.Length DIV 128; IF x > 1 THEN y := SystemByteArray.Length – 128 * (x – 1) ELSE y := SystemByteArray.Length; c1 := y; Ostr.WRITE(c1); IF x > 0 THEN BEGIN c2 := x; Ostr.WRITE(c2); END; FOR i := 0 TO SystemByteArray.Length – 1 DO BEGIN c1 := SystemByteArray.GetValue(i); Ostr.WRITE(c1); END; END; LOCAL PROCEDURE HtmlEncode@20(InText@1000 : Text[1024]) : Text[1024]; VAR SystemWebHttpUtility@1001 : DotNet “‘System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’.System.Web.HttpUtility”; BEGIN SystemWebHttpUtility := SystemWebHttpUtility.HttpUtility; EXIT(SystemWebHttpUtility.HtmlEncode(InText)); END;

Share Story :

How to Configure Alert Configuration in Microsoft Social Engagement

Introduction: This blog explains how to Configure Alert Configuration in Microsoft Social Engagement. Steps to be followed: Go to Message Center Click on + to create alert configuration. Enter the following details: Name: Give name to your alert. Alert Type: select the type of alert  you want. Post alert/Trend alert Email recipients: Enter the email address of recipients to whom alert mail should go. Filters: Select filters to narrow the posts to the data set you want to work with. i.e. which posts will be received by recipients.   Add Search Topic: You can also filter based on the following criteria. Example filtering based on source and Language: After configuring click on SAVE.Post alert in mail:

Share Story :

SEARCH BLOGS:

FOLLOW CLOUDFRONTS BLOG :


Secured By miniOrange