Category Archives: Dynamics 365
Outlook Integration with Field Service for Dynamics 365
D365 field service or Dynamics 365 for field service is one complete field service management software. It is a product from Microsoft. It helps large and medium businesses to become quite efficient. This software can hold stuff such as service agreements, service locations, customer assets, preventive maintenance, resource management, work order management and so forth. You will have total control over your field service management teams. The scheduling options available on this software is quite flexible. You can significantly boost customer service when you use this particular ERP solution. So many excellent features are available in this particular ERP solution. Integrating the Outlook calendar with the field service is entirely possible when you are using this ERP suite. Introduction: This blog explains how to configure work order bookings for Field technicians who need them to show in the Outlook calendar. Prerequisites: 1. Dynamics 365 Field Service licenses 2. Office 365 Enterprise E3 licenses Configuration: Enable and Test email mailbox for relevant Users is successful. Working: Below are steps for setting up Outlook Integration with Field Service to set this up in the system Login to Dynamics 365 Field Service environment as an “Administrator”. Next, go to Settings > Administration > System Settings > Synchronization and check Synchronize resource bookings with Outlook. Login to Dynamics 365 Field Service environment as a “Technician”. Navigate to Options > Synchronization. And check Synchronize resource bookings with Outlook. Login to Dynamics 365 Field Service environment as an “Administrator” and schedule a Work Order to Technician. Login into Outlook with the User related to that “Field technician”. Open Calendar and booking is shown as below. Note: The Booking may take 10+ minutes to show in Outlook. This is because it is an asynchronous service.
Share Story :
Voice of Customer survey with SMS in Dynamics CRM
Customer service is the backbone of any organization. Any company that desires to progress or scale-up high should focus on providing the best customer service to their clients. But, with so many things happening at the same time, it is pretty tough to provide it. Hence, it is wise to use Dynamics 365 customer service, an ERP solution. It will not only help you to become effective but, it will help you and your team to be more efficient. Since it is cloud-based software, you get information from your team in real-time. The best part about this particular enterprise resource planning software is that it offers a host of different features. For example, ‘Voice of Customer Survey,’ is one of those salient features that you will love using. Voice of Customer is a feature of Dynamics CRM where you can create and send out surveys to gain valuable feedback from your customers about your products or services. Respondents can take your surveys on a phone, tablet, or computer. Anonymous surveys can be triggered in different ways: Email Social sites like Twitter, Facebook or other web pages SMS In this blog, we will discuss how we can achieve sending surveys using SMS. We had a requirement for the client that whenever work order status is changed to completed, send a survey SMS to the contact to fill out the feedback for the service provided. Pre Requisites: Voice of Customer Solution installed Power SMS solution. Download Power SMS from here- http://www.powerobjects.com/powerpacks/powersms/ Choose a Service Provider CallFire(for US numbers) Twilio Configuring Power SMS. The configurations steps can be found in Power SMS User guide here- http://www.powerobjects.com/guides/powersms/. Steps to be followed to send survey using SMS are listed below: Create survey in Voice of the Customer as per your requirement and publish the survey. Create a workflow on work order status field that creates Survey Activity. On creation of survey activity, survey link will be created. Populate and store the survey link in work order contact some custom field on work. Step: Create survey activity Step: Update contact Create a workflow that creates a SMS message on update of survey link field. After creation of SMS, set the status of the survey as “Pending Sent”. Step: Create SMS When a work order status will be changed to completed, SMS will be send using workflow. You can see the status reason whether the SMS send successfully or not. Thus, surveys can be distributed using SMS and feedback can be stored for analysis and improvement of the organization. For more information on Voice of Customer you can refer our blog “Voice of the Customer for Dynamics CRM 2016”.
Share Story :
Freeing Storage Space in Dynamics 365
Problem Statement: Data in you CRM is critical and storage space for CRM is expensive i.e. $9.99/GB/Month. Often, CRM space is taken up by Attachments and background data (ex: completed system jobs and it is difficult to realize where our space is being consumed. This blog is about some quick tips to free your storage space and optimize CRM data usage to reduce costs. Step1: Request Consumption of your storage in CRM to Microsoft Support We can create a Service Request with Microsoft requesting the storage details of CRM environment. Here’s how you can create a service request under the correct category in Office 365 Service Request to request the storage details of CRM. The type of Service Request should be Dynamics 365. Then, select Feature as Online Service Availability and Administration Center and Symptom as storage. Mention your description something like the below: Click Next and provide your details, email and phone number. Once Microsoft acknowledges this, they will provide you details of the top 10 utilized tables in Dynamics 365 / CRM. You’ll get an email from a Microsoft Support Representation mentioning the details of the storage consumption something like this: In this example I used, I could see that Attachments was the table that consumed about 13GB of data! That is very expensive to store attachments in CRM. So first, we will proceed towards how we can curb the usage of storage in CRM by first putting all attachments in SharePoint Online (which is available in most Office 365 plans). Since, SharePoint space is way cheaper than CRM ($0.20/GB/Month) and SharePoint provides 1TB in my base subscription at no additional cost. Step 2: Use PowerAttachment by PowerObjects to migrate attachments to SharePoint A very useful tool is PowerAttachment by PowerObjects. PowerAttachment moves your attachments from CRM to SharePoint, thus freeing up critical space in CRM which can be utilized for important data Once the PowerAttachment is configured with your CRM / D365, the attachments are moved to SharePoint and the attachment link in the parent items, say, email – is replaced by the link to the SharePoint location to where the file was moved. Thus, moving attachments to SharePoint frees a massive amount of space from CRM which usually attachments take and moves them over to a cheaper storage option. Step 3: Bulk Delete Background Data – Mailbox Alerts and Workflow/System Jobs Examples Now, among several types of background data, what applied in my case, was the alerts created behind the scenes since I configured the Mailboxes of users for Server Side Sync. As you can see in the above, you can see that there were about 3,808,246 records when I requested them. That was consuming way too much of data that was irrelevant to me. So, I chose to eliminate the same using Bulk Delete. Mailbox Alerts Mailbox Alerts are something created by Mailboxes when certain tests/authentication fails. In my scenario, they created gigantic amount of records. Using Bulk Delete, I queries all of those and started the Bulk Delete to Delete them. Here, we will use Bulk Delete. Navigate to Settings > Data Management > Bulk Record Deletion. I defined the Search Criteria to query Traces entity and I didn’t select any criteria since I wanted all the records to be removed. And this is how records will be shown. The above example shows very less records. Let’s assume there are huge records like more than 100,000 records. Depending on how many records are queries, the Bulk Delete operation took several hours but freed a great deal of expensive storage space. Completed System Jobs / Workflow Jobs Another important chunk of huge data is consumed by completed, failed System Jobs and workflow jobs from the System which take up hundreds and thousands of records of data. As shown in the above example, I am using Bulk Deletion job to remove the System Jobs/Workflow jobs. Below is the criteria I select considering that I might need to look at a few records in recent past and delete the rest of them: Also, I kept this Bulk Deletion job to re-occur every 90 so that it takes a fresh batch of records older jobs created in 1 month’s span. Above are only 2 of several types of data that can be cleaned depending on what is needed. Also, more effective ways are also mentioned by Microsoft. Here’s the link to the same: https://technet.microsoft.com/en-us/library/dn683569.aspx
Share Story :
Cross Company Depreciation
In Dynamics 365 for Operation, user can now start a depreciation run for assets across all legal entities from a single page. There is also a new option to automatically post the journals after they are created. The creation and posting of the journals can be sent to batch processing, allowing the depreciation to run in the background. Before running the Depreciation proposal, the user needs to do some setups in Fixed Asset Parameters. (Fixed Assets->Setups->Parameters). The user needs to add the journal names in the Fixed Asset Proposal with the respective Posting layer. This exercise needs to be done in all the entities for which depreciations needs to be ran. Once the setup is done, user can run the Depreciation proposal. (Fixed Assets->Journal Entries->Create depreciation proposal). In the Legal Entities dropdown, user will see the list of all entities where the initial setup of Journal names in parameters was done. The user can select all the entities or an entity based on his requirement of calculation and posting of depreciation. After selection of entities if the user requires that the entries should be posted automatically, he can just activate the Post journals button. This will calculate the depreciation and post all the required entries of depreciation. The user can also set the batch which will then run this process in background based on schedule and recurrence in batch. Conclusion These enhancements reduce the inefficiencies of starting individual depreciation runs separately for each company, as well as better centralized management of all the fixed assets.
Share Story :
Correct Posted Sales Invoice
Accounting team can correct posted sales invoice if there is mistake in Invoice or want to make some changes. This functionality help to correct posted ledger entries as well as other changes like Invoice discount, currency code, Payment terms etc. User cannot correct sales invoice which has been paid. By using below steps you can correct posted sales invoice: In the top right corner, choose the Search for Page or Report icon, enter Posted Sales Invoices, and then choose the related link. Select Posted Sales Invoice for which you want make correction. On the Home tab, In the Manage group, click on View. In correct group, click on correct button to make changes in Invoice. You will get below pop up when you click on correct, select yes to continue. System will create new sales invoice with new invoice number. Make the changes which are required example: Quantity, price, Invoice discount etc. Click on Post in posting group to Post Sales Invoice. Select yes to Post Invoice. You will get below pop-up once Invoice has been posted. Click yes to Open Posted Sales Invoice. Open original invoice for which you have made corrections and click on Show Cancelled/Corrective Credit Memo to view the posted sales credit memo that voids the initial posted sales invoice. You can see Posted Sales credit memo which has been posted for Sales Invoice. In Posted Sales Invoice, you can see closed and cancelled status for original invoice for which correction has been made. Conclusion By using this functionality you can correct Posted Sales Invoice if you make mistake, or customer request a change.
Share Story :
Out-of-Box Integration of CRM and Financials Pros and Cons
In this article, we are going to walk through the pros and cons of Financials feature of ‘Coupling’ which enables integration of records between Financials and Dynamics CRM. This will help customers understand suitability of using out-of-box Integration. Introduction: Out-of-box Integration enables user to integrate and synchronise data in Microsoft Dynamics Financials record types to corresponding Microsoft Dynamics CRM entities. For more detailed information please refer the link: https://www.cloudfronts.com/integrating-microsoft-dynamics-crm-with-microsoft-dynamics-nav/. Pros: 1. Easy Setup: Setting up Financials in CRM requires you to import DynamicsNAVIntegrationSolution and then just to provide the URL for Financials. Setting up CRM in Financials is easy. You just need to fill in few details and you are set for integration! 2. Initial Synchronisation: Initial Run Full Synchronisation starts all default integration jobs for synchronizing Financial record types and Dynamics CRM entities. Run Full Synchronisation integrates: 3. Real- Time Synchronisation: Integrations and Synchronisation are fast and simple. We can even schedule a synchronisation. Scheduled Synchronisation will synchronise modified coupled records. 4. Sales Order Integration: Sales Order is automatically integrated once it is Submitted in CRM. Cons: 1. No Custom Mappings: Currently, out of box integration mapping contains lot less field mapping. We cannot customize field mapping as we cannot access Financials backend. 2. Synchronisation cannot be triggered from CRM: Synchronisation of records can only be triggered form Financials. We can only view the coupled records from CRM; we cannot trigger synchronisation from CRM. 3. Multiple records cannot be synchronised: Once the initial ‘Run full Synchronisation’ is done, records created thereafter must be synchronised one by one. Note: Only Multiple Customers can be created in Financials. 4. Mandatory fields in Financials are not Mapped: There are lot of fields which are not present in CRM but are mandatory in Financials, those field values are not set by Integration. 5. Limited entities can be used for Integration: Not all entities can be used for Integration. Below screenshots displays the Out-of-Box Integration Mapping Table: Conclusion: Out-of-Box Integration in Dynamics 365 Financials is recommended for organisations having simple requirement for Integrations. Additionally, it is cost saving as you don’t need to pay a hundred dollars for a third-party Integration tool for very simple Integrations.
Share Story :
Integrating attachments to and from Dynamics 365 Operations
Dynamics 365 for finance and operations is an ERP solution that helps you to streamline the processes and helps you to become efficient. ERP stands for enterprise resource planning. It is a cloud-based application that helps the team members to work with each other with ease. This product is developed by Microsoft and is one of the most popular ERP solutions in the world. Installing and using this application is not that difficult. If you put in some effort, you will quickly learn how to use this system with ease. You will get to enjoy so many awesome features when you use this particular ERP suite. If you are a new user, it might take some time before you understand how to navigate or do certain tasks in it. In this blog article, we will see how we can integrate attachments to and from Dynamics 365 Operations. We need to create a Data Entity which will be general for integrating all attachments to other systems. Attached data will be passed in the Attachment field and transferred in Byte Array format. Prerequisites: D3fO Environment. Steps: Create new Project. Duplicate the Entity Make the Entity general for attachments. Build and Synchronize the Project. Create a new project Open Visual Studio. Go to File -> New -> Project. Select Operations Project. Provide a Project Name and Solution Name. Click OK. Duplicate the ‘EcoResDocumentAttachmentEntity’ Entity Go to AOT -> Data Model -> Data Entities -> EcoResDocumentAttachmentEntity. Right Click EcoResDocumentAttachmentEntity -> Duplicate in project. Make the Entity general for attachments. Change Entity Property. Delete EcoResProductImage DataSource Go to Data Source -> Docuref DataSource -> EcoResProductImage. Right Click EcoResProductImage -> Delete. Delete fields Change Entity name in methods Go to Methods. Press F7. Replace EcoResDocumentAttachmentEntity with new Entity Name. Build and Synchronize the Project. Build the Project and Synchronize the Database. So, this will create an entity to integrate attachments to and from D3fO. Let me know your reviews. I will soon come up with more articles, as I further explore D365 Operations.
Share Story :
Enterprise Integration with Azure Logic Apps
Understand Enterprise Integration Pack (EIP) The Enterprise Integration Pack is Microsoft’s cloud-based solution for seamlessly enabling Business-to-Business (B2B) communications. EIP is new features in Logic Apps which adds B2B and XML capabilities. Enterprise Integration Pack brings some of the enterprise B2B capabilities like AS2 and X12, EDI standards support (with EDIFACT coming shortly) and new set of XML capabilities like XML Validation, XSLT Transformation and Flat file to XML encode/decode. Why should you use Enterprise Integration? You can keep all your artifacts at one place like partner, schema, mapping. i.e. Integration Account. You can simply use all the connectors available to build B2B workflows and integration with 3rd Party SaaS applications. You can also test the Azure functions. Enterprise Integration supported standard Enterprise Integration supports these industry standards: EDI – Electronic Data Interchange EAI – Enterprise Application Integration Minimum Requirement An Azure subscription with an integration account Visual Studio 2015 to create maps and schemas Microsoft Azure Logic Apps Enterprise Integration Tools for Visual Studio 2015 2.0 You can refer this link to understand in the details. Entities Involved in the Enterprise Integration Enterprise Integration Architecture Integration account An integration account is an Azure Account which allows to store all the artifacts required to run the Enterprise Integration for example, schema, mapping, partner agreements, certificates. You need to include this integration account while developing the logic otherwise you will not be able to use the Enterprise Integration features To understand in the details, you need to refer here. Partner Partner is the entity that takes part in the integration process for which the data exchange process works. Before creating a partner participating organization needs to agree to share the information which will help both identify and validate messages that are sent by each other. Partners are used to create agreements. An agreement defines the details about the messages that will be exchanged between partners There must be two partners and one of them must be your own organization. The partner which represents your organization is known as host partner and the second partner is known as the guest partner. The guest partner can be another company, or even a department within your own organization. For more information on the partner and how to create a partner, you can refer this link. Agreements Agreements allows to communicate using the industry standard protocols. It makes is easy for different organization to send the data in the know format which improves the efficiency of data exchange. It is very easy to create and manage the agreements. The standard protocols that are used to Enterprise Integration AS2 X12 EDIFACT For more information on the partner and how to create a partner, you can refer the below link: https://docs.microsoft.com/en-us/azure/app-service-logic/app-service-logic-enterprise-integration-agreements Data Manipulation and Editing Schemas Many times it happens that while sending the data from one system to another the data format for both the system may differ. In that case, you may not be able to process the data on the target system. In that case you can create a schema which will validate the data structure received from the source system. To learn, how to create a schema you can refer the this link. Maps Map is a XML documents which transfers the document from one format to another format. Let’s assume that you are sending data from SalesForce to Dynamics 365. The two systems have different formats of data structures of date ‘DDMMYYYY’ and you want that to be in ‘MMDDYYYY’, then you can use the map to format the data. You can refer this link to understand the maps. XML message validation In B2B scenarios, the partners are need to have agreement to validate the XML message(s). In Enterprise Integration, you can validate the XML using the predefined XML schema XML transform XML transform provides the ability to convert an XML message based on the requirements of a destination endpoint. Other Terminology AS2 AS2 (Applicability Statement 2) is a specification about how to transport data securely and reliably over the Internet. Security is achieved by using digital certificates and encryption. MDN The Message Disposition Notification (MDN) is the acknowledgment sent in response to an AS2 message. If an MDN is enabled, the AS2 transmission is not complete until the MDN has been received and verified. BizTalk Server will always attempt to return an MDN to indicate the status of message processing, even if an error occurred in processing the AS2 message. Features and use cases The AS2 and X12 decode and encode actions allow you to receive data from and send data to trading partners using industry standard protocols using Logic apps. You can use AS2 and X12 with or without each other to exchange data with trading partners as required. The B2B actions make it easy to create partners and agreements in the Integration Account and consume them in a Logic app. By extending your Logic app with other actions you can send and receive data to and from other applications and services such as SalesForce. Sample code You can refer the below link for the AS2 send and receive, this sample code uses the AS2 technology the exchange the message: https://github.com/Azure/azure-quickstart-templates/tree/master/201-logic-app-as2-send-receive You can use the below sample code the use the schema and map validation: https://github.com/Azure/azure-quickstart-templates/tree/master/201-logic-app-veter-pipeline
Share Story :
Relevance Search in Dynamics 365
Introduction: Relevance Search brings the Global Search Experience powered by Azure Search. It uses scoring concepts where score is the indicator of the item’s relevance i.e. higher the score, more relevant the item. Users will get the comprehensive search results quickly in a single list that is sorted by relevance. How it Work’s Basically when a user looks for something like “Nancy ran in the retail store in New York”, the search is executed against the Azure Search Index and the results are returned with a match to any word present inside that particular sentence. This search will also look for the inflectional words like in our case words like running, run, runner and then will display the results accordingly. No wild cards are required to search anywhere in the text. Enhancements in Dynamics 365 Earlier Relevance Search was enabled only in web Browser but now it is enabled for Mobile Client i.e. on Mobile and Tablets. Explore results using Filters and Facets Global Facets Users will be able to see the refined search by Record Type based on following categories like Entity, Owner, Modified On and Created On. These categories cannot be changed as they are predefined by the system as shown in the leftmost image shown below. Entity Specific Facets When user clicks on particular record type such as Account, then user can see the additional facets specified for that particular entity as shown in the rightmost image attached below in our case Primary Contact and Industry. These Entity Level Facets are customizable based on the personal choice i.e. they can facet fields that they would like to see for every searchable entity in their Personal Options. Search within the Documents in Dynamics 365 Relevance Search will now search within the documents that are attached in Notes on a particular record. Relevance Search will also search in the attachments that are added in the Email in CRM. Search in the records that are being shared with you Search in the text of Option set and Lookup fields on any entity. Set Up and Configuration Enable Relevance Search Only System Administrators can enable Relevance Search. Configure Fields in Quick Find View The fields that are added in Quick Find View becomes the part of External Search Index. There is no limit on how many searchable fields can be added for a particular entity. However, there is a limit on total number of indexed fields i.e. maximum of 1000 fields can be added in an organization. Set Managed Properties System Customizer needs to check the managed properties on the entity. As the “Can Enable sync to External Search Index” option must be true. Configure Entities for Relevance Search The System Customizer can add entities that should be enabled for external searching in the Default Solution. So when a user selects the entity, the number in the parentheses indicates the number of fields of entity that will be synced to external search index shown in image below. Below the progress bar of Total Fields shows the percentage of indexed fields to maximum number of fields allowed of searchable fields. Configure Facets and Filters Facets and Filters refines the search in the organization. They are available on the left hand side of the pane immediately after user searches for some term. As mentioned above they can be customized based on the personal requirements. They can be configured from the Personal Settings as shown in the images given below. Drop down list contains the entities that are enabled for Relevance Search. And for a particular entity up to four facets fields can be selected accordingly. Users can modify the preference of the fields based on their choice. Key Take Away Relevance Search is only available for Dynamics 365 Online and now on Mobile Clients too. By Default, Relevance Search is disabled and can be enabled only by System Administrator. Enabling Relevance Search has no impact on the storage consumption and cost for Dynamics 365 database. Facets and Filters can be configured according the User Preference and can redefine the search as per the user’s personal choice. Thus, above are some highlights for Relevance Search in Dynamics 365.
Share Story :
Understanding Subgrid functions in CRM Online
Using the new subgrid functions, there are 2 ways to get count of the subgrid data. Based on requirement, we have to use one or the other way for achieving the requirement. getTotalRecordCount(): It determines the total no. of records that match the filter criteria of the view. Features: 1. The count is NOT limited by the current page size. You will get the total size across all pages. 2. You may not also get the latest count of the records using this function if new records are added on the subgrid. How to get around #2 above to get correct count: The idea is to make the grid refresh before executing the “getTotalRecordCount” function, which will enable us to get the correct count. We also have to add an onload event handler for the grid control. Whenever grid is refreshed through code or manually, the onload function will trigger. Note that we cannot do this without onload event. If we try to execute “getTotalRecordCount” just after the refresh line without onload event handler, you will get an error as the grid refresh happens asynchronously and it may not be ready. Sample Code var myContactsGridOnloadFunction = function () { console.log(“Contacts Subgrid OnLoad occurred”); var count = Xrm.Page.getControl(“Contacts”).getGrid().getTotalRecordCount(); }; /// bind an onload event to the grid control Xrm.Page.getControl(“Contacts”).addOnLoad(myContactsGridOnloadFunction); /// refresh the grid. This will trigger onload event. Xrm.Page.getControl(“Contacts”).refresh() getRows().getLength() getRows() will return collection of all gridrows in the grid. Features: 1. It will only return the rows currently visible on the grid. 2. getRows().getLength() will return the count of rows currently visible 3. Unlike getTotalRecordCount, we need not refresh the grid to get the correct row length using this function. Uses: In cases, where we want to know if the grid is empty we can use “getRows().getLength()” instead of getTotalRecordCount to know if the count is 0 or Not. Sample code: var rows = Xrm.Page.getControl(opptyProductSubGridName).getGrid().getRows(); var rowLength = rows.getLength();