Category Archives: Dynamics 365
Create a marketing segment in Dynamics 365 for Marketing
Introduction: In this blog we will be discussing about marketing segments in Dynamics 365 for Marketing Preview.Marketing is basically promoting some products or services which an individual or organization has to offer. While marketing the main aim to decide a target audience. Once the audience is know, the marketing content can be tailored to target that specific group of people. A market segment is the collection of contacts that you target in a marketing campaign. There are three types of segments a follows: Static Dynamic Compound Implementation: Static Segments: Members in the static segments are added explicitly. These members can be added by the marketer based on the personal interaction that he/she had with the customer. Step 1: Here we created a new static segment in the definitions tab we select the members using the check box as shown below. Initially the segment is in the Draft state. A point to be noted is that segment names can’t have blank spaces. Step 2: Then we save and click the Check for Error on the top ribbon which validates the changes done as shown Step 3: After the validation is passed successfully we can click the Go Live button on the top of the ribbon. Dynamic Segments: The members in dynamic segment keep on changing based on the criteria that is setup. Every time a new contact is added to the system and it fulfills the condition specified in the query, it gets added to the dynamic segment. Step 1: In the designer at the bottom of the page we can see the total segment size which is the total number of members who will be added in the segment. In dynamic segments we design rules using the Designer or Flow or Query. Once we design the view using the designer we can see in the Query tab the query is populated. There are three operators that can be used is, is not and contains. Compound Segments: The third and final type of segment is the compound segment.Compound segments make use of static and dynamic segments which are live. As seen in the image below first we have to select the segment from the drop down and only the segments that are live will appear in the drop down list. Once the segment is selected we click on the arrow and then select one of Union/Exclude/Intersect. Finally, we see at the top of each segment how many members are included or excluded. Conclusion: These segments are used in customer journeys when we want to send marketing emails to a particular group of people.
Share Story :
How to Pause SLA in Dynamics 365
Introduction: This blog explains how to Pause SLA in Dynamics 365. Steps to be followed: Only Enhanced SLA can be Paused. Go to Settings –> Administration –> System Settings –> Service Select the Entity for which SLA is Created. (I have Created SLA for Word Order so I will select Word Order from that list). Now from Available Values select that Status that will Pause SLA. For Work Order entity we will create new Status as “On Hold”. (because it does not have any status which we can use to Pause SLA) Save and Publish. Now Select “On Hold”. Go to Work Order entity and select the Status = ‘On hold’ and Save. SLA is Paused now.
Share Story :
How to issue and redeem Gift Card in Dynamics 365 For Finance and Operations
Introduction: In this blog we shall see how to Issue and redeem Gift Card in Dynamics 365 for Finance and Operations. Issue Gift Card: On POS go to Sales. Go to Action and select Gift Card. Click on Issue Gift Card. Enter the Gift Card Number. Enter the Amount for gift Card. Select any Tender to pay. You Can check the details of the Gift card under Gift card in Dynamics 365 FOE. Redeem Gift Card: On the Transaction Screen select the Products. To redeem the gift card select on Pay gift card. Enter the Gift card number. You can check the balance by clicking on check balance. Proceed to pay. You can manually enter the amount and remaining due can be paid by other mode of payment. You can check the details of the gift card under gift card in Dynamics 365 FOE.
Share Story :
Connecting to On-Prem SQL from Azure Web App
Background: When an enterprise transitions to Cloud, it may still need to leave some assets on-premises for technical or security reasons. Typically SQL DBs will be On-premises for most enterprises. But this should not stop the enterprise from having their Web apps, APIs, services and mobile apps on cloud. The major hindrance in this scenario will be the feasibility for connecting the Cloud based services to On-Prem SQL for seamless transition. Azure allows you to create layer on top of this On-prem assets while safely connecting to them back on your premises using Hybrid Connections. Supported assets include MS SQL Server, MySQL or any resource that runs on static TCP Port. Prerequisites: Visual Studio 2013 or later SQL Server 2008/ 2012 with SQL server authentication Azure SDK Microsoft Azure Subscription Steps: Create SQL Server DB and table. Cerate an SQL User to connect which will be used in the .NET application. Also create some sample data in the table. Create a .NET web application which will read data from table create in Step 1. The connection string will look something like below. Host the application on Local IIS and ensure it works and can connect to SQL. Now host the application on Azure as web-app. You can refer the below link for steps to create Azure Web app. https://github.com/Microsoft/HealthClinic.biz/wiki/Create-and-deploy-an-ASP.NET-web-app-in-Azure-App-Service You will notice that the application will throw error because it will not be able to connect to the On-prem SQL. We will now create a Hybrid connection to the SQL DB. Navigate to App Service which we created in Step 4 in Azure, and navigate to Networking. Click on Hybrid Connections > Configure your Hybrid Endpoints Create New Hybrid Connection. Enter the details for Hybrid connection like below: Note: usually the TCP Port no for SQL is 1433. Please check for the SQL you are configuring. Download the Hybrid connection manager and install on the SQL server or any server on the same network. Open the installed Hybrid Connection Manager UI, and enter the connection string of the Hybrid connection we created in Azure. You can get the connection string of the Hybrid connection by clicking on it like below. Enter the Connection String in Hybrid Connection Manager UI. If everything is proper, you should see the status as Connected Like below in the tool as well as in Azure. In Azure: Other Notes: If you are facing issues with connection, you can restart the Hybrid Connection service from Local services. Please comment below in case of queries.
Share Story :
Barcode Control in Dynamics 365
Overview: Here’s a quick helpful control to enter barcodes in D365 fields. Here is how it goes – Adding Barcode Control: Here’s how you can add the Barcode Control. Select Add Control in the Field Property section. Select Barcode Scanner and click on Add. Select the appropriate configuration of devices for the control and click OK Finally, save and publish your customization. Seeing it Work: Now, since I have published a field called Brochure Barcode. I can use the same on the mobile device to capture barcodes without having to type them manually I can see the icon on the right end of the text box of type Barcode. On clicking the barcode icon, my phone’s camera opens. Show it in front of the barcode. And it automatically detects and enters the same in the textbox. That’s it. Hope this helps!
Share Story :
Editable Grid Validation
Introduction: In this blog we will be discussing about the Business Rule validation issue in Editable grids caused when the fields are not present in the views. Scenario: In our demonstration we will take the example of a contact form and design a business rule to lock the email field if the Job Title field is blank. Implementation: Step 1: First we enable editable gird for the contact entity as shown in the image below. Step 2: Then we create a business rule for the contact form to lock the Email field if the Job Title field is blank. The Business Rule is shown below. Step 3: Now in the editable grid we can see that the Email field is locked as the Job Title is blank. The field is unlocked once the job title is entered. Step 4: Now we edit the criteria of the Business Rule and add a new condition to also check if the Description field contains data as shown in the image below. Step 5: When we go to the editable grid we see that even though the Job Title field is blank the Email field is unlocked which should have been locked. Step 6: The reason behind this is that the My Active Contacts view does not contain the field description hence the validation fails. Step 7: To solve this we add the Description column to the view as shown below. Step 8: Now if we check in the editable grid we see that the validation works correctly and the email field is locked. Conclusion: This is important to be noted as, if there is some validation done using business rules, JavaScript and field is not present in the views the validation wont work and there will be incorrect data entries made using the editable grid.
Share Story :
Email Migration from D365 CRM v8.2 to D365 CRM v9 using TIBCO Cloud Integration: Activity Parties
Introduction: In this blog, I will detail how to migrate Activity Parties of Emails from one CRM to another. In my previous blog, I outlined the first step of the Email migration process which is migrating the body of the email. Migrating the corresponding Activity Parties of an Email is the second step of this process, as the Email body now exists in the Target CRM. What are Activity Parties? Other than the Body, an Email Activity consists of: Sender: The person(s) sending the email. Recipient: The person(s) receiving the email. CC & BCC: The person(s) that are copied in the email. Owner: The person who is the owner of the email. Regarding: This generally links to an entity in CRM which pertains to the email. For example, a Case or a Project in CRM. ‘Sender’, ‘Recipient’, CC’, ‘BCC’, ‘Owner’ and ‘Regarding’ are each stored in CRM as a separate Activity Party of that email with a ‘Participation Type’ code (field name: ‘participationtypemask’) to establish the field that specific party belongs to i.e. 1 = Sender, 2= To Recipent and so on (as shown below). Generally, in an Activity Party, the person(s) are either System Users or Contacts. This is specified in the field ‘partyobjecttypecode’ as shown above. Keeping this in mind, one can lookup to these entities to obtain the corresponding GUIDs in the Target System and map it as the ‘partyid ‘. After the Activity Party is created, the owner of the Activity Party should be updated as per its owner in the Source environment. The ‘Owner’ Activity Party is automatically created by CRM as the same User as the Owner of the Email (configured when you migrate the Email Body in Step 1). The ‘Regarding’ Activity Party links to a Case/ Project and not a ‘person’, however, the same logic applies i.e. map the required GUID and its type. Migrating Activity Parties is not as complicated once understood. Unfortunately, not much is easily available online about this. I hope this blog demystified a few concepts about Activity Parties of an Email and how they can be migrated from one CRM to another. My next blog will detail how to migrate Email Attachments and update the status of an Email.
Share Story :
Email Migration from D365 CRM v8.2 to D365 CRM v9 using TIBCO Cloud Integration: Email Body
Introduction: Data migration can be a little challenging, especially when it comes to Emails. In this blog, I will outline the steps that need to be followed to successfully migrate Emails as well as important things to keep in mind during the process. Steps: There are four main steps to follow to successfully migrate an Email from Source to Target: Send the body of the Email. Send all the related Activity Parties. Send the details of the related Email Attachment(s). Update the Status of the Email. In this blog, we will be dealing with the first step i.e. creating the map in TIBCO Cloud Integration to send the Body of an Email. Migrating the body of the Email is straightforward compared to the next step but there are a few aspects to keep in mind: 1) Send the email as Open so that Activity Parties and Attachments can be migrated in the following steps. Not sending the email with an “Open” status could lead to Activity Parties and Attachments not being migrated to the corresponding email. 2) When an email is migrated, the owner of the email will be the User configured in the CRM Connection in Scribe. In order to maintain the same owner as in the Source, you can update the email with the correct owner after it is created. In the screenshot below, I am using a Lookup Table in Scribe to map the User GUID of the Target System. 3) If you want the GUID of the email to remain the same in Source and Target, do not forget to map the ‘activityid’ of the Email entity. Conclusion: I hope this blog provided some insight into the migration process for Email Activities. In the next blog ‘Email Migration from CRM v8.2 to CRM v9 using TIBCO Cloud Integration: Activity Parties‘, I will talk about migrating ‘Activity Parties’ which can be the most challenging part of Email Migration.
Share Story :
Print Custom Size Report using Document Routing in D3FOE
Introduction: Recently I was working on Cheque Report. I created a custom size Cheque design and it was working fine while downloading it. Then the task was to print the cheque and test but the printout was off size. In this blog I will guide you how the custom size report prints using document routing agent in Dynamics 365 for Operations. Pre-requisites: Install Document Routing agent Configure Network Printers Adobe Reader Note: Click here to refer how to configure Document routing and network printer Steps: 1. Setup Printer Page Size You need to configure your printer to print custom size report. Go to Printer Paper size and select custom. A new dialog will ask for page size. Enter the Custom Paper size. Make this custom size as your default size. 2. Setup Adobe Reader Once you print the report from Operations with Print Destination as Printer, The Document Routing will take the command and send the document to Adobe Reader. Thus, it takes printing configurations of Adobe Reader and send it to Printer for printing. So, we need to setup the Adobe Reader as well. Please refer below screenshot for Adobe Reader Settings. Conclusion: After setting up Printer size and Adobe Reader with same orientation and page size you can print the Custom size report from D365 Operations directly to Printer with correct print layout.
Share Story :
Fetch Parameter name from ID for SSRS Report in D365 Operations
Introduction: I was stuck in an issue recently where I was working on SSRS report with multiple filter parameters. In multiple parameter, one parameter was Brand ID and in report I had to display the Brand name instead of its ID. In this blog article, we will see how we can get the name of brand as parameter using brand id in Dynamics 365 Operations. Steps: Override getFromDialog() Method getBrandName() method to fetch Brand name. parmBrandName() to set the value 1. Override getFromDialog() Method: In UI Builder class override getFromDialog() method. This method gets the value of Brand Id. /// <summary> /// Transfers data from the dialog into the data contract object. /// </summary> public void getFromDialog() { super(); RecId r; r = contract.parmEcoResCategoryId(); if (r) contract.parmBrandName(this.getBrandName(r)); } 2. getBrandName() method to fetch Brand name: This method is used to find Brand name and called from getFromDialog() method. The return value is passed as parameter to contract class. /// <summary> /// This method looks up name of the organization using the hierarchy relationship id. /// </summary> /// <param name = “hierarchyRelationshipId”>The hierarchy relationship id for the organization.</param> /// <returns>Name of the organization.</returns> public EcoResCategoryName getBrandName(RecId hierarchyRelationshipId) { EcoResCategory category; select firstonly Name from category where Category.RecId == hierarchyRelationshipId; return category.Name; } 3. parmBrandName() to set the value: This method gets or sets the value of Category Name. /// <summary> /// Gets or sets the value of the datacontract parameter Category Name. /// </summary> /// <param name=”_categoryName”> /// The new value of the datacontract parameter CategoryName; optional. /// </param> /// <returns> /// The current value of datacontract parameter CategoryName /// </returns> [ DataMemberAttribute(‘Retail Category Name’), SysOperationLabelAttribute(literalstr(“Brands”)), SysOperationHelpTextAttribute(literalstr(“Brands Category”)) ] public EcoResCategoryName parmBrandName(EcoResCategoryName _categoryName = categoryName) { categoryName = _categoryName; return categoryName; } Conclusion: This blog showed how we can fetch the parameter value from another parameter in SSRS report using filter parameters with Contract and UIBuilder class in D365 Operations.