Category Archives: Blog
D365 Retail POS Customization – Adding Custom Column to Picking and Receiving View
Introduction: In D365 Retail POS, if you want to customize anything you need Extension Points. Over-layering is completely sealed. So, now if you want add custom columns to your View which is designed using code you can do it using Custom column extension. Each view has its own custom column interface which you can import and use to add columns. You can view the available Views for adding custom columns in ‘Pos.Api.d.ts’ file. Scenario: In Picking and Receiving, Update view you want to view details of Product variants like Size, Color and Config for all lines. Steps: Open ‘ModerPOS.sln’ from K:\RetailSDK\POS. Navigate to Pos.Extensions -> SampleExtensions -> ViewExtensions. Create a new Folder ‘PickingAndReceivingDetails’. In Folder, Add a TypeScript file and name it ‘CustomPickingAndReceivingListColumn’. Add the below code in file. //Added new column size, color and config; Also, take care of existing column by mentioning it else it will throw error //Note: Summation of ratio should be 100 import { IOrderLinesListColumn } from “PosApi/Extend/Views/PickingAndReceivingDetailsView”; import { ICustomColumnsContext } from “PosApi/Extend/Views/CustomListColumns”; import { ClientEntities } from “PosApi/Entities”; export default (context: ICustomColumnsContext): IOrderLinesListColumn[] => { return [ { title: “Product Number”, computeValue: (row: ClientEntities.IPickingAndReceivingOrderLine): string => { return row.productNumber; }, ratio: 15, collapseOrder: 9, minWidth: 60, isRightAligned: false }, { title: “Description”, computeValue: (row: ClientEntities.IPickingAndReceivingOrderLine): any => { return row.description; }, ratio: 30, collapseOrder: 8, minWidth: 70, isRightAligned: false }, { title: “Size”, computeValue: (row: ClientEntities.IPickingAndReceivingOrderLine): string => { return row.sizeTranslation; }, ratio: 5, collapseOrder: 7, minWidth: 40, isRightAligned: false }, { title: “Color”, computeValue: (row: ClientEntities.IPickingAndReceivingOrderLine): string => { return row.colorTranslation; }, ratio: 10, collapseOrder: 6, minWidth: 40, isRightAligned: false }, { title: “Config”, computeValue: (row: ClientEntities.IPickingAndReceivingOrderLine): string => { return row.configurationTranslation; }, ratio: 10, collapseOrder: 5, minWidth: 40, isRightAligned: false }, { title: “UOM”, computeValue: (row: ClientEntities.IPickingAndReceivingOrderLine): string => { return row.unitOfMeasure; }, ratio: 10, collapseOrder: 4, minWidth: 40, isRightAligned: true }, { title: “Quantity Ordered”, computeValue: (row: ClientEntities.IPickingAndReceivingOrderLine): any => { return row.quantityOrdered; }, ratio: 10, collapseOrder: 3, minWidth: 40, isRightAligned: true }, { title: “Quantity Received”, computeValue: (row: ClientEntities.IPickingAndReceivingOrderLine): any => { return row.quantityReceived; }, ratio: 5, collapseOrder: 2, minWidth: 40, isRightAligned: true }, { title: “Quantity Received Now”, computeValue: (row: ClientEntities.IPickingAndReceivingOrderLine): any => { return row.quantityReceivedNow; }, ratio: 5, collapseOrder: 1, minWidth: 40, isRightAligned: true } ]; }; Open manifest.json file and Add the View to manifest.json File inside the Views section. “PickingAndReceivingDetailsView”: { “orderLinesListConfiguration”: { “modulePath”: “ViewExtensions/PickingAndRecivingDetails/CustomPickingAndReceivingDListColumnExtension” } }, Build and Run the POS.
Share Story :
Email in Unified Interface as a separate app in D365
Introduction: Email in Unified Interface Dynamics 365 is also available as a separate app! Here’s how you can get it. By default, the new email capabilities are already available in the Unified Interface of D365. But you can have it as a separate app if you’d like. Installing the App: Here’s how you get it – 1. Navigate to the Instance Picker on the D365 Admin Centre, then go to Solutions area on the instance picker. 2. Once installed, it will appear as Installed. Provide Users access to the app & access it: The following security role should be provided to the users for them to access it – You can access the application from here. And here it is – Just a better way around than going into UCI and then looking for emails.
Share Story :
Enable SharePoint for Dynamics 365
Introduction: If you try to configure SharePoint with dynamics 365 sales, it will pop up with “Microsoft Dynamics 365 list component is not installed”. This error used to come in earlier version of dynamics CRM but now we are start receiving message to install the list component. Description: As it is explained in the introduction you need to install the List Component. If you follow steps provided in alert box you will not able to configure. As provided steps are for on premise version and would not install online. So, this will not help us as our environment is online, now what to do. Solution: You need to enable the server base SharePoint integration to configure the SharePoint. Go to setting ==> Document management and follow the steps provided. Once server-based configuration is completed you need to enable it for the document management setting. Provide the value valid SharePoint url.
Share Story :
Integrating Twilio with D365 CRM Online to send SMS Messages using Microsoft Flow
One of the most popular ERP systems that is amazingly popular among all small and mid sized businesses is Microsoft dynamics NAV integration. Installing CRM NAV integration is extremely easy and simple and its interface is so easy to understand that anybody can learn it within no time. This is the reason NAV integration has earned a good reputation in the market and people love using it as well. In today’s cloud based environment if you upgrade dynamics NAV you will surely have an edge in your business as compared to your peers. With improved functionality enhanced capabilities and new features your business productivity will be boosted multiple times reducing your overall business cost improving customer service. Introduction: SMS Messages can be sent from a D365 CRM Online to an individual using the Twilio. In this blog, we will see how we can send SMS Messages from CRM using Twilio and we will be using Microsoft flows to achieve this. Pre-Requisites: Twilio Account D365 CRM Microsoft Flow Steps to be followed: Dynamics 365- Create two fields in Contact Entity, named as a. Send SMS b. SMS Sent Data Type (Two options) Twilio- To Connect Twilio in Microsoft Flow You require: Twilio Account Id Twilio Access Token Steps: Sign in to your Twilio account Click on Dashboards Under Project info tab you can find the Account SID and Auth Token (Copy this value and paste it somewhere you will require this values in MS Flows) Setup Phone Number. a. Click on “All Products & services” b. # Phone Numbers MS Flow Login to Microsoft flow. Select Create from Blank. Select Dynamics 365 connector.a. Select when a record is updated trigger.b. Select the organization name and Entity. Select “+New Step” and “Add a condition”a. Enter condition in “Edit in advance mode”.Condition: @and ( equals(triggerBody()?[‘cf_sendsms’], true), equals(triggerBody()?[‘new_smssent’], false) ) If Yes a. Enter Twilio Account Id which is Acoount SID and Twilio Access Token which is Auth Token. b. After Connection is being established. Enter the From and To Phone Number. Enter Text message which you want to send. Click on “Add a connection” –> Dynamics 365 – Update a record. Overall Flow:
Share Story :
Applying Pivot Table in Excel using Automation Server Objects in NAV
Introduction: In NAV when building a custom report that deals with totalling the amount by multiple G/L accounts by week then the report becomes tough to read as well as develop in standard SSRS Report. A possible and easy workaround is dumping all the entries in the Excel and performing the pivot table operation on the entries to give a precise results. Pre-requisite: Microsoft Dynamics NAV 2017 Demonstration: 1. List of Variables: 2. UpdateRange function to automatically update the sheet range of the current row: 3. Creation of Excel Entries Sheet: Creation of Excel Sheet: Creation of Column Titles: Insertion of Data Entries: 4. Pivoting the Data from the sheet containing entries: Pivoting operation in Excel takes place with the help of Pivot Cache. This Cache is modified using the Automation Variable. Conclusion: The method of using Automation Variable is allowed in On-Prem version of NAV, as it uses Excel libraries that already installed with Microsoft Office. Although this method works perfectly fine Windows Client, it does not work on WebClient. Thanks for reading!!
Share Story :
Conditional Formatting By Values in Power BI: August Update
In the August 2018 update of Power BI, we can now apply conditional formatting based on field value. This allows us to use a measure or column that contains a color name, a hex name/code and apply that color to the background of the cells and the font in the cells of that column. For example, if I want to use color to signify the product name, we can create a calculated column to assign color names to each product as shown below: Then add that calculated column (‘Color’) to your table, and go to the Conditional Formatting dialog for ‘Color’. Select ‘Background Color’. Select ‘Field Value’ in the ‘Format by’ drop-down menu. Since I only have one color name per row, I will select First ‘Column Name’, Summarization ‘First’ and click OK. The background color of the cells in the calculated column will now be according to the color name in the cell. If you don’t want to see the color names, repeat the steps but select ‘Font Color’ as shown below. The entire cell will now be filled. If you want to use hex names/codes instead of color names, you can create a calculated measure/column using them as shown below. Now follow the same steps as above to apply conditional formatting to the table using hex codes/names. This can help highlight sets of data easily based on their values and without the need to set rules.
Share Story :
Row Numbering Issue for Grouped Data in SSRS
Issue: In SSRS if we are using an aggregate function in a group at the Tablix level, then you may realize that the simple row numbering function does not give a current sequential ranking. Using the function RowNumber(Nothing) gives something like this. Using RowNumber(“GroupName”) would also give an incorrect row numbering and look something like this. This is because RowNumber does not actually give the row count. Rather it counts the incidences of the data in the group and returns that value. Solution: We can use the “RunningValue” function in SSRS. The format for the expression would be. =RunningValue(<Grouped field>,CountDistinct,”<DataSet>”) Eg: =RunningValue(Fields!Name.Value,CountDistinct,”Accounts”) This would return something like this. This should fix your issue!
Share Story :
HTTP POST Requests using Microsoft Flows
Introduction: In this blog we will demonstrate the working of HTTP Request -Response in Microsoft Flows. Implementation: Step 1: In our example we will make a POST call to our Microsoft Flow so that we can further apply some logic in Flows. The POST request contains the following data. JSON: [{ “name”: “TestName”, “Address”: “TestAddress” }] Now we can use online editor tools to create a schema file of the above JSON. (https://jsonschema.net/). Submit the JSON data and the schema will be generated as shown below. Step 2: Now we go to Microsoft Flows,create a new flow and add the first step as “Request” as shown below: Step 3: We then paste the JSON schema that we earlier saved In the “Show advanced” options we have to add the following details: Once that is done we select a condition. In our example we will pass a JSON Array hence we will loop through each item. Here we add a apply to each condition as shown And we add a dynamic output from the previous stage Then inside the apply to each loop we can add any action and take the values passed from the POST request. For this example I create a new account in CRM with the name and address provided as shown below Step 4: Now when we save this flow a URL is generated in the First HTTP Request step. We test the flow by calling this URL from Postman. The URL generated is show below Step 5: Now we open Postman and write the request as shown below Also in the Header section we add the following details Step 6: Once we click on Send the two records are created in CRM as shown below Conclusion: We can call this URL from outside Dynamics CRM as well and using this we explore many more functionalities provided by Microsoft Flows to achieve the desired outcome.
Share Story :
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 :
Room list not showing in Room Finder (Outlook Client)
Introduction: While scheduling a meeting from Outlook client, sometimes we may also need to select the room where the meeting will be held. Room Finder in Outlook client helps us to find the available rooms. Sometimes it may happen that when a user creates a new meeting in Outlook, no conference rooms are listed in Choose an available room box in Room Finder. The issue is that the user doesn’t select a room list. Users can select a room list from Show a room list option in Room Finder. But before that admin needs to create a room list so that the option “Show a room list” will be visible in Room Finder. Steps: Open Exchange Online Power Shell and connect your Office 365 environment. Run the following command to create a Room List Distribution Group – New-DistributionGroup <RoomListName> -RoomList -Members $Members<RoomListName> – Provide a name to the Room list. Run the following command to add existing rooms to the list –Add-DistributionGroupMember <RoomListName> -Member <RoomMailbox><RoomListName> – Put the name of the room list which was created in the earlier step.<RoomMailBox> – Put the name of the room mailbox. You can find the room mailbox name from the Exchange Admin Center. If you want to add multiple rooms at once, you need to create a .txt file and add all the room mailboxes and save the file. Run the following command to add multiple rooms –Get-Content <EnterFileLocation> | Add-DistributionGroupMember -Identity <RoomListName> <EnterFileLocation> – Where the .txt file has been saved.<RoomListName> – Provide the room list name. You might need to confirm whether the rooms have been added to room list. Run the following command to check the same –Get-DistributionGroupMember -Identity <RoomListName><RoomListName> – Put a name of the room list, which you have created. After following above steps, you will be able to see the Show a room list option in Room Finder. There you can choose the room list and select the rooms. Conclusion: This is how you can enable Room List in Room Finder, which helps users while scheduling a meeting through Outlook clients and can easily see the available rooms and timings through Room Finder. Want to get consultation or training for your company? Please email us at ashah@cloudfronts.com
