Category Archives: Dynamics 365
Setup and Design of Receipts in Dynamics 365 Operation Retail
Dynamics 365 for finance and operations is an ERP system built and designed to match your business needs in this modern day business scenario. Elements are currently as much a business system as it is innovation deliverable, some portion of a bigger biological system where data pulled from unique channels, (for example, social, IoT, and Office) is caught, investigated, and spread so as to help explicit business objectives. Make planning simpler by giving your spending chiefs simple to-utilize apparatuses. A wizard causes them to make spending plan worksheet formats for Microsoft Excel. This cloud-based ERP framework gives the pertinent data you have to convey vital, information-driven bits of knowledge to key divisions. Additional quick monetary bits of knowledge drive corporate procedure and development, declining obligation through effective assortment of the board. Introduction: Blow blog, describe you about how to create, modify Receipts, invoice, Order summery report and rest of other document for MPOS and CPOS. You can create multiple receipts with different layout for single entity. Let begin with this Exercise. Step 1:- Go to the Retail and commerce > Channel setup > POS setup > POS > Receipt formats. Step 2 :- Select Receipt format 1 and click on design button. Once you click on Design button browser will ask to Open Microsoft.Dynamics.Retail.RetailDesigner Host.application Click on Open Button. And sign in Dynamics Workflow Editor. Step 3:- Designer window is look like below screen shot. Step 4 :- In Designer window you can able to see Form Information. Form ID :- ID of receipts , Form Name :- Name of Form , Form Description :- Description of From. Step 5:- On Left Side, you can able to view Header, Line, Footer. In Header you can click on drag listed element in design work space. For E.g. Store ID, Staff Name, Receipts No. Transaction ID. Header element will print on top of the receipts and will print only at once. Step 6:- In Lines, you can click on drag listed element in design work space. For E.g. Product ID, Description, Unit Price, quantity. Line element will print on middle of the receipts. Step 7:- In footer, you can click on drag listed element in design work space. For E.g. Total, TAX Amount, Tender Name . Footer element will print on bottom of the receipts. Step 8:- Object Information is used to set property of Element of Header, Lines and footer which is Align – Set the alignment of the field to either Left or Right. Fill char – Specify the white space character. By default, an empty space is used, but you can enter any character. Prefix – Enter the value that appears at the beginning of the field. This setting applies only to the Lines section of the layout. Characters – Specify the maximum number of characters that the field can contain if the element contains a variable. If the text in the field is longer than the number of character that you specify, the text is truncated to fit the field. Variable – This check box is selected automatically if the element contains a variable and can’t be customized. Font type – Set the font style to either Normal or Bold. Bold letters use two times as much space as normal letters. Therefore, some characters might be truncated. Delete – Click this button to remove the selected part from the form layout. Step 9:- Click on Save button. You receipt Layout will be save. Conclusion: Follow this steps to Create or modify receipts layout which is used in CPOS and MPOS.
Share Story :
Add Notification method in Dynamics 365 forms
Introduction: In this blog, we are going to discuss the new feature of Dynamics 365 for form and field Notifications. The new method basically provides similar functionality like recommendation action in Business Rule. Method: addNotification This method displays an error or recommendation notification for a control. Based on the notification option selected specify actions. On Dynamics 365 mobile clients, tapping on the icon will display the messages you specified and two standard buttons: Apply and Dismiss. Clicking Apply executes the action you define; clicking Dismiss closes the notification message. Note: Setting an error notification on the control will block the saving of the form, setting a recommendation notification will not block the saving. By default, the notification level is set as ERROR if not specified. Arguments: Messages- (Array) The message that we want to display to user Notification Level- (String) Specifies if we want to display error or recommendation Unique ID- (String) Unique ID for notification Actions-(Array of Objects) Corresponding actions for the message Let’s implement a simple scenario. Based on the account type selected, the ticker symbol will be populated. If the account type is “Channel Partner User” than set the ticker symbol as “CPU” We can create a web resource and use following code: var AddTickerSymbolRecommendation = function () { var typeOfAccount = Xrm.Page.getControl(‘xcd_typeofaccount’); var typeOfAccountValue = Xrm.Page.getAttribute(‘xcd_typeofaccount’).getValue(); var tickerSymbol = Xrm.Page.data.entity.attributes.get(‘tickersymbol’); if (typeOfAccountValue == 1 && tickerSymbol.getValue() != “CPU”) { var actionsCol = { message: ‘Set the Ticker Symbol to CPU? ‘, actions: null }; actionsCol.actions = [function () { tickerSymbol.setValue(“CPU”); typeOfAccount.clearNotification(“2002”); }]; typeOfAccount.addNotification({ messages: [“Set Ticker Symbol”], notificationLevel: “RECOMMENDATION”, uniqueId: ‘2002’, actions: [actionsCol] }); } } Bind this code on change of Account type field. When user selects Channel Partner User it will show an information icon like following: When you click on the recommendation icon, you get a pop up to select Apply or Dismiss: When you click Apply respective actions are performed:
Share Story :
Add Custom Icons with tooltip for a column
Now, it’s possible to make your CRM views visually more informative. This is a cool new feature which is in preview for Dynamics 365 for December 2016 release. You can now add custom icon with tooltip text to display a column based on the column value. First thing need to be done to achieve this is – upload the custom icons as web resources in your Dynamics 365. Then, use these icons using JavaScript web resources. Adding JavaScript code The following 2 new attributes have been added to layoutxml of savedquery – imageproviderwebresource imageproviderfuntionname The JavaScript code gets executed when the page loads. Following is how you can add Icons to the columns: In this example, I will add 3 types of images to the Open Opportunity View and based on whether the Opportunity is Hot, Warm or Cold, I’ll display a different emoji representing each. 1. Take 16×16 images and upload them as Web Resource in Dynamics 365. In my example, I’m using a “happy” and “sad” emoji to represent if the Opportunity is Hot or Cold. 2. Create a new Web Resource of type JavaScript to handle these icons when the Opportunity is either Cold, Warm or Hot. In the above code, row object and the User’s LCID is passed as parameters. I’m selecting the image to be displayed (Web Resource names of the images in D365) based on the value in str.opportunityratingcode_Value. 3. Once I have this code ready, I’ll import this JS as a Web Resource in D365. 4. I’ll navigate to the view I want to add this functionality to and double click the column to edit the property of the column as shown below: 5. In the above example, I’m selecting my JS Web Resource new_IconInCols and the function as displayIconTooltip. 6. Once everything is set, I’ll publish all the changes and refresh my view with relevant data. 7. Finally, my data looks like this on the View: Hot = Happy Warm = Neutral Cold = Sad 8. Also, if you hover over the icon itself, you’ll see what tooltip it has – Hope this was helpful!
Share Story :
Issues with uninstalling ADX Portal from Microsoft Dynamics CRM Online and how to tackle them
In this blog, we shall see how can a user uninstall the ADX Portals from Microsoft Dynamics CRM Online and what are the various that a user might face while uninstalling the Adxstudio solutions from CRM before installing the new CRM Portals. Pre-Requisites: D365 CRM Portals D365 CRM Environment How to Uninstall the ADX Portals: According to ADX Studio the following is the procedure to uninstall ADX Portals from the CRM Environment: “The process of uninstalling the solutions is to delete the solutions in the reverse order they were installed. If customizations have been made that depend on any of the components in Adxstudio solutions, those customizations must be undone before a delete will be successful. Delete any suplementary Adxstudio solutions such as Adxstudio Forums, Adxstudio Ideas, etc. that may have been installed. Then delete Adxstudio Portals solution, then delete Adxstudio Portals Dependencies solution.” Process: Step 1: The user will have to go Settings in the ‘All Select Area’ and click on Solutions option. Step 2: The user will have to make a list of the Adxstudio solution that are present in the CRM Solution list. *Note: The solutions are already arranged in the grid view in descending order of their installation. The user must uninstall in that order only (with Adxstudio installer to be the last solution to be installed). The following below is the list of solution in the descending order of their uninstallation. *Note: The following list may/may not contain all the solution components of Adxstudio but consists of most of the solutions that are used in ADX Portals. Sr. No. Solution Name Display Name 1. AdxstudioIssuesWorkflows Adxstudio Issues Workflows 2. AdxstudioIssues Adxstudio Issues 3. AdxstudioIdeasWorkflows Adxstudio Ideas Workflows 4. AdxstudioIdeas Adxstudio Ideas 6. AdxstudioBadges AdxstudioBadges 7. AdxstudioCareersWorkflows Adxstudio Careers Workflows 8. AdxstudioCareers Adxstudio Careers 9. AdxstudioBlogs Adxstudio Blogs 10. AdxstudioIdentityWorkflows Adxstudio Identity Workflows 11. AdxstudioPortalsWorkflows Adxstudio Portals Base Work 12. CustomerServiceSurvey Customer Service Survey 13. AdxstudioHelpDeskWorkflows Adxstudio Help Desk Workflows 14. AdxstudioHelpDesk Adxstudio Help Desk 15. AdxstudioCommerce Adxstudio Commerce 16. AdxstudioForumWorkflows Adxstudio Forum Workflows 17. AdxstudioForums Adxstudio Forums 18. AdxstudioEventManagement Adxstudio Event Management 19. AdxstudioWebForms Adxstudio Web Forms 20. AdxstudioIdentity Adxstudio Identity 21. AdxstudioPortals Adxstudio Portals Base 22. AdxstudioPortalsDependencies Adxstudio Portals Dependencies 23. AdxstudioCRM2011ProductivityPack Adxstudio CRM 2011 Productivity Pack 24. AdxstudioInstaller Adxstudio Installer Step 3: Once all the solutions of ADX Portal are deleted or uninstalled from CRM Environment the user can then configure a new portal for the same CRM Environment. Problems Faced while Uninstalling/ Deleting solutions of ADX Portal The user might face many difficulties while uninstalling / deleting solutions from the CRM environment. One of the major problems which users mostly face is “Solution having other internal Dependencies” which prevents the solution from being uninstalled. In the below example we will try to uninstall the “Adxstudio Portal Base” solution from the CRM Online environment. Step 1: Select the ADX Portal solution that you want to delete from the system, in this case it is “Adxstudio Portal Base” solution. Step 2: On clicking the delete command the following dialog box will appear click on OK to proceed. Mostly the following error message appears as shown below(i.e. the error message pops up cause the solution that the user is trying to delete has internal dependencies), the user will have to click on ‘Details’ to view the list of dependencies. Fig 3.1 Pop up dialog to Uninstall the solution. Fig 3.2 Error message that solution cannot be deleted Fig 3.3 List of Dependency Details which are preventing the solution from being uninstalled. Step 3: The user has now the list of dependencies due to which the solution cannot be uninstalled from the CRM Environment. The user has to remove/delete the dependencies in order to uninstall the solution. If the user is able to remove the dependencies the user can proceed to uninstall the solutions. Issue Faced: Most of the times the dependencies cannot be deleted which in return causes the solution from being uninstalled from which in return causes the ADX Portal from not being uninstalled. The following are possible ways of dealing with the issue faced: Mostly the users will have to leave the solutions that aren’t being uninstalled as residual solutions and try provisioning the new CRM Portal. Else will have to wait for Microsoft to fix the following issue of not being able to uninstall the residual solution in their future updates on Portals. Conclusion: Dependencies in the Adxstudio solutions can cause the ADX Portal solution from not being uninstalled. In this case the user can try installing the CRM Portal leaving the uninstalled solutions as ‘Residual solution’. Waiting for the following issue to be fixed in further updates on portals from Microsoft.
Share Story :
Azure AD Authentication Error- AADSTS65001: The user or administrator has not consented to use the application
Recently while connecting to Dynamics 365 Operations STAGE environment through TIBCO Cloud Integration, we got authentication error of AADSTS65001. In this article, we will discuss how to resolve this authentication issue. Error details: Connection test failed: Verify that the associated connection information is valid and that you have access to this OData service. The following exception message was returned from the OData service: AADSTS65001: The user or administrator has not consented to use the application with ID ‘********-****-****-****-************’. Send an interactive authorization request for this user and resource. Trace ID: af595cf2-0b8c-4cd7-ae28-c56e18031300 Correlation ID: e1d5cece-89d1-4fda-a954-39f740c0cb4f Timestamp: 2017-04-05 08:38:45Z Solution: In Azure Active Directory, for connecting to Dynamics 365 Operations through SCRIBE we create a Native Application and use its Application ID and Redirect URI as Client Id and Authentication URL respectively in SCRIBE. TIBCO Cloud Integration Microsoft Dynamics 365 Operations Connector: AZURE Application Registration: In an Azure Active Directory, we had two Application (one Native and one Web app/API) pointing to same Dynamics 365 Operations STAGE environment; which was creating an authentication conflict. So, we changed the App ID URI in Web app/API Application. In our case, we appended /1234 in the App ID URI. After the modification, the authentication was successful. We were able to connect Dynamics 365 Operations STAGE through Scribe using the Native App’s Application ID and Reply URI.
Share Story :
Create Attachment of Signature/ Pen control data in Dynamics CRM
Introduction We already saw how to use Pen/ Signature control in Dynamics CRM in the previous blog: https://www.cloudfronts.com/adding-signature-control-mobile-tablets-dynamics-crm/ In this blog, we will see how to generate an image of the pen control data and store in Record as an attachment. Steps As we saw in the previous blog, the signature captured from phone is stored as a multi-line text field in Dynamics CRM record. And we cannot see the signature image in web browser. Now it will be a common scenario where the Users will need to see the Signature image in browser as well. This is how data is captured on Web browser. We need to write custom code which will: Read this data Convert the data to an image Store the converted image as an attachment in the CRM record For this I, have written a generic plugin which will do the above actions. You can see the core plugin code with comments below. I have also added the plugin to Github for reference: Github Link //// The plugin is registered on the Post Update on “Customer Approval” field on Opportunity. Entity entity = (Entity)context.InputParameters[“Target”]; //// The field which stores the data for Signature string signatureFieldName = “new_customerapproval”; if (entity.Contains(signatureFieldName)) { string encodedData = entity.GetAttributeValue<string>(signatureFieldName); //// Remove the additional Metadata from the text generated. int startIndex = encodedData.IndexOf(“base64,”) + 7; encodedData = encodedData.Substring(startIndex, encodedData.Length – startIndex); tracer.Trace(encodedData); string contentType = “image/png”; Entity Annotation = new Entity(“annotation”); Annotation.Attributes[“objectid”] = new EntityReference(entity.LogicalName, entity.Id); Annotation.Attributes[“objecttypecode”] = entity.LogicalName; Annotation.Attributes[“subject”] = “Customer Signature”; //// You can have any subject as required. Annotation.Attributes[“documentbody”] = encodedData; Annotation.Attributes[“mimetype”] = contentType; Annotation.Attributes[“notetext”] = “Customer Signature Attached”; //// Again, add any note text as needed Annotation.Attributes[“filename”] = “Customer Approval Signature.png”; //// OR Any name as required Guid annotation = service.Create(Annotation); } This plugin should be registered on update of the Signature control field. In this case, it is “Customer Approval”. It is preferable to have the step run asynchronously. We can now see the attachment on the record. If you have any issues or need more information, please post in the comments section below.
Share Story :
Sales Order Line error – Cannot create a record in order line. Record already exist
Introduction In this blog article, we will see how to resolve the below error while creating a record in Sales Line in AX 2012. Solution: This error causes because Sales Line has a primary index set as InventTransId and the value for it is not being generated while inserting a new record in Salesline. 1. Go to Inventory Management -> Setup -> Inventory Management Parameters -> Go to Number Sequence tab 2. Select Lot Id -> Right click -> Select View Details 3. In the General Tab -> Uncheck the manual checkbox. OR This error can also be caused because there exist unused Number Sequence list. 1. Go to Accounts Receivable -> Setup -> Accounts Receivable Parameters -> Go to Number Sequence Tab 2. Select Sales order -> Right click -> Select View Details 3. On Action Pane Select Manual Clean up -> Select current Tab. 4. On Number Sequence Form -> Select Cleanup 5. Click OK.
Share Story :
Adding Signature control on Mobile and Tablets in Dynamics CRM
Microsoft Dynamics CRM Sales Process aims to generate potential sales opportunities and gives a new lead and boost to your business. It is intended to help the business procedure from gaining another lead through the end of a deal and to create exact deals gauging. Via mechanizing and enhancing a few phases, it smoothes out the business procedure while improving the pace of the conclusion. It additionally helps track and measure each deal’s action and see each number and segment of the business pipe so as to develop pay. Utilizing the Dynamics CRM deals process, you can focus on the correct leads and construct a remarkable deals pipeline. The CRM sales process ultimately increases the revenue of a company which every organisation aims in doing by supporting the business from beginning to end Introduction: With CRM 2016, Dynamics added controls which can be used in Phones, tablets and some on web forms as well. One such important control is the signature control in Dynamics CRM. This control is available for Phones and tablets, and very important in the modern sales process. In this blog, we will see how to add Signature control on Mobile and Tablet forms. Steps: Create a Multi-line text field with minimum length greater than or equal to 15000. Let’s say the name of the field is “Customer Approval” Add the Customer Approval field to CRM form. Add the Pen Control on the Customer Approval field. Once you publish, you can now see this control on your Mobile and Tablet application. It will look like below. Note: You also need to select the check box below the signature for the app to save the data. Once Customer/ Person signs using the above, the information is stored back in CRM. Other Information: The control cannot be used on Web forms. It will look like a Text box field. So, it is advisable to have this field locked or hidden on Web. On web form, and in CRM DB, the data is stored as the base64 format inside the field. So if you open the form on CRM, it will look like below. Conclusion: Using controls for forms on mobile, and tablets vastly improves the user interface on handheld devices. It is important to understand controls and apply them at relevant places on CRM forms. PS: I will be writing another blog, which will automatically convert the base64 data of the signature and store it as an attachment on the entity.
Share Story :
Leveraging FetchXML with Dynamics CRM
Overview: FetchXML is used to query the Dynamics 365 database. A great advantage of using FetchXML is that it can be easily designed by using Dynamics 365 database and it is easy to understand. FetchXML tester is available in the XRM Toolbox which can let you test and fetch results quickly. FetchXML also provides facilities like aggregation and grouping of data. Using FetchXML: FetchXML must conform to the fetch.xsd schema provided with the Dynamics 365 SDK under the directory SDK\Schemas\fetch.xsd FetchXML must be built into a query string which can be used with IOrganizationService.RetrieveMultiple to retrieve data from Dynamics 365. FetchXML query can be saved in Dynamics 365 by creating a SavedQuery record. From the above sample query, a query can be constructed inside <fetch></fetch> tags. In the above example, I’m retrieving Contact records with the attributes Contact ID which is the Primary Key and the Full Name of the Contact. In the above query, using count=’3’ will retrieve a maximum of 3 records. Executing the FetchXML query: You can simply use the above query in the FetchXML tester provided in the XRM Toolbox and get results or you can construct a query string and use it with IOrganizationService.RetrieveMultiple() and get results in the EntityCollection object in your application. Using the above query, here’s how I can make it into a query string and retrieve the results in my application. Then, I can use foreach() to loop through the result returned in the EntityCollection. FetchXML Aggregation: The following aggregation functions are provided in FetchXML: sum avg min max count(*) count(attribute name) Example of max used with aggregation: In the above example, I’ve used the attribute aggregate=”true” in the FetchXML header and used an aggregate aggregate=”max” with the field Employee which is count of Employees in an Account. The result returned for the same was: The above result returned a formatted value of 13000 which is the max for an Account. Also, notice that the tag is <total></total> since it was the alias I used in the query. Likewise, you can use other aggregates and grouping functions. Understanding Results of FetchXML: FetchXML results are returned in the <resultset></resultset> tags as shown in the sample below: Each record is retrieved under an individual <result></result> tags. Paging: At maximum, a FetchXML query can return not more than 5000 records. If results are more than 5000, morerecords attribute in the resultset will return “1” and will be shown like below: In order to fetch further records, you’ll need to use PagingCookie. A sample code has been provided in the SDK under SampleCode\CS\GeneralProgramming\Queries\FetchPagingWithCookie.cs to leverage the same. Also, if you want to return results with even smaller numbers, you can use paging in the FetchXML tested by using the following: In the above example, I’m choosing to show only 2 records per page and I’m retrieving page no. 2 of all the records. Hope this was helpful!
Share Story :
Retrieve data using same data type fields from different entities
Introduction: We have various methods to query CRM like, “query expression”, “fetch expression” and “LINQ”. If we want to query data of two different entities, then we should have relationship between entities otherwise you will not get data. In case you want to process data of two different entities which are not related to each other then what to do. We can achieve this using fetch Expression in with the common field data type. Description: We had a requirement where we wanted to get the data from two different entities which were not related to each other but both of them had common field Email Address. So we can query the CRM using Fetch expression by providing from field and to field which will connect to each other. Solution: To demonstrate this how it works I have tested it with account and contact entities as an example. We are testing it with “email address”. To execute this query XRM tool box is used. You can download it from given link http://www.xrmtoolbox.com/ Account: Contact: Query: <fetch version=”1.0″ output-format=”xml-platform” mapping=”logical” distinct=”true” > <entity name=”contact” > <attribute name=”fullname” /> <attribute name=”emailaddress1″ /> <order attribute=”fullname” descending=”false” /> <link-entity name=”account” from=”emailaddress1″ to=”emailaddress1″ alias=”Account” > <attribute name=”emailaddress1″ /> <attribute name=”name” /> </link-entity> </entity> </fetch> As you can see that we have linked contact and account on the basis of emailaddress1. Once you execute the query you will have all the records which are related to each other with same email id As you can see there are more records matching with same email id on account and contact. So it returns all the records with the matching email id. Conclusion: You can query CRM data of two different entities using the same data type fields.