Category Archives: Blog
Getting the source code of the .app extension in Microsoft Dynamics Business Central
Objective: This blog demonstrates how to get the source code of the extension app installed in Microsoft Dynamics Business Central. Pre-requisite: Docker Microsoft Dynamics 365 Business Central on Container Nav-Container Helper Module installed in Powershell Demonstration: 1. List the Docker Container: Command: docker ps 2. Entering the Container: Command: Enter-NavContainer <Container Name> 3. List all directories in Container: Command: dir / ls 4. As Extensions are stored in C:\Extensions getting into Extension directory Command: i. cd C:\Extensions ii. dir 5. Exit the Container: Command: exit 6. Copy the .app file inside the container to local path: Command: docker cp <Container Name>:C:\Extensions\<Filename><LocalDirectory> 7. Make a copy & rename the file with .rar as extension 8. Extract the .rar file and explore the ‘src ‘ folder to get the source code in .AL files Conclusion: Thus, in this way the source code is visible and can be used for reference.
Share Story :
How to setup D365 Business Central?
Introduction: The much awaited Dynamics 365 Business Central officially released on 2 April 2018. We are often used to creating virtual machines and setting up Microsoft Dynamics NAV but D365 Business Central doesn’t require a VM, we can set it up on Azure and use it locally. Pre-requisites: Microsoft Azure Licence File Steps: 1. Create a resource group in Microsoft Azure. I have named it navbc. 2. Click on NAVBC resource group and open Azure cloud shell Enter the below command az container create –name MDBC –image “microsoft/dynamics-nav:12.0.21229.0″ –resource-group NAVBC –os-type Windows –cpu 2 –memory 3 –environment-variables ACCEPT_EULA=Y USESSL=N LICENSEFILE=” ” –ip-address public –port 80 443 8080 7049 Here, –name: your container name –resource-group: your resource group name –environment-variables ACCEPT_EULA=Y – mandatory parameter. –ip-address public: mandatory LICENSEFILE=” ” : Here upload your licence to the cloud and then copy the link. –port: list of ports. 8080 is a default value. Use 7049 port number to download symbols whichout which you cannot connect VS code to your container Open your Resource group, the container instace is created click on the instance. This will open the container instance overview page. This will take quite some time approx 15-30 mins get your container instance running. For more information on azure commands click https://docs.microsoft.com/en-us/azure/container-instances/container-instances-quickstarthere 3. To get the container infomation enter the below command az container logs –resource-group navbc –name mdbc 4. Download .vsix file Open your container Instance you will find your IP address. copy it. Copy the link under Files http://<containerIP>:8080/al-0.15.18771.vsix and replace b08.. with the conatiner IP address.This will download your .vsix file. now launch your VSCode and click on Extensions. Install .vsix and AL Language for D365 BC. 5. Publish an Extension Open the launch.json file and replace the server with “http://containerip”. Download symbols using command Ctrl+P Build(ctrl+shift+B) the package and publish it! (Ctrl+ F5). Yay! Now the final step open D365 Business Central. (http://containerip/NAV) This will prompt you for User name and pass word and bang D365 Business Central opens.
Share Story :
Document Fingerprint in Exchange Online
Introduction: If your organization uses forms to collect sensitive information, Document Fingerprint makes it easier for you to protect this information by identifying standard forms that are used throughout your organization. Document Fingerprint is a feature of Data Loss Prevention that converts a standard form into a sensitive information type which you can use to define DLP Policies. Working: Documents have unique word patterns. When you upload a file, the DLP agent identifies the unique word pattern in the document and creates a document fingerprint based on that pattern and uses that document fingerprint to detect outbound documents containing the same pattern. Limitation: Document Fingerprint DLP agent will not detect sensitive information in the following cases: Password protected files Files that contain only images Documents that don’t contain all the text from the original form used to create document fingerprint. To upload a blank form: Go to Exchange Admin Center > Compliance Management > Data Loss Prevention. Click Manage document fingerprints. Click + New, provide a Name and Description. The name you choose will appear in the sensitive information types list. Click Add + to upload a form. Choose a Form and click Open. Click Save. The Document Fingerprint is now part of your sensitive information types, and you can add it to a DLP policy . Creating a rule in DLP policy: Go to Compliance Management > Data Loss Prevention. Click + New, choose custom DLP policy. Provide a Name and Description for DLP policy, Enable the state of the DLP policy and Enforce the policy. Click Save. New created DLP policy will be shown. Click Edit and go to Rules > Create a new rule. Add a Condition, so that if this (Employee Information Form) sensitive info type is sent to the external Recipient. Depending upon your organization requirement add an Action, that it will block the message, but sender can override and can send the documents to external recipient if there is a business requirement. Fill out the other properties of this rule as per your requirements and Save. So, whenever a user will try to send a form which has been managed by Document Fingerprint to external contacts the results will be as below. Conclusion: In this way you can secure and monitor the sensitive information from leaking outside your organization.
Share Story :
Creating Entity Store in Dynamics 365 For Finance and Operations
Introduction: In this blog article, we will learn how to create entity Store in Dynamics 365 For Finance and Operations. Steps: 1. Add new Items 2. Under Dynamics 365 items –> Analytics –>Aggregate Measure. 3. Assign a table to the aggregate measure. 4. Add Measures to the aggregate Measure . Mention the field and Set appropriate properties of the measure. 5. Create a new dimension. 6. Assign a table or view to your Dimension. 7. Now from the solution explorer drag the newly created dimension to the aggregate measurement. The aggregate dimension will have system generated dimensions already present by default. Select the dimensional field and make appropriate relations. Save the Project. Clean and rebuild the project. Synchronize the database . This entity store will be available under entity store in Dynamics 365 for Finance and Operations.
Share Story :
Modifying the Primary keys of records in NAV
Introduction: This blog demonstrates how to modify the non-key fields with respect to the key fields. Pre-requisites: NAV 2017 Demonstration: Generally, when modifying the records, the syntax used is Record.FieldName := New_Value; Record.MODIFY(TRUE); In order to do modify the Key fields of the table, we need to know the order in which the keys are assigned. To modify the primary key, the syntax used is Record.RENAME(Key1,Key2,Key3); Where, Key1 corresponds to value that is supposed to be assigned to ‘No.’ field. Key2 corresponds to value that is supposed to be assigned to ‘LineNo.’ field. Key3 corresponds to value that is supposed to be assigned to ‘Leased to Driver No.’ field. Even when the single key field is to be changed, all the key fields should be present in their sequential order. If there is any mismatch in the number of keys, NAV throws the following runtime error. Note: Renaming operation is a costly operation. Creating a New record and Deleting the old record is faster as compared to Rename. In case where the performance is the requirement, the second method is preferred.
Share Story :
Payments in D365 Field Service
Introduction: This blog explains how a Technician can register Payments done by Customer during visit of Field Service. Scenario: We often get enquiry from Clients do we have option to register Payments done by Customer in D365 Field Service this as can achived as explained below. Details: Technician should create a record of Payments on Work Order in Field Service Mobile App as detailed below. 1. Open Work Order. 2. Click “More” and select Tab of Payments as highlighted below. 3. Create a record of Payment and fill the details as shown below. Note: OOB Payment Type are Case, Check, Credit Cards and Other. Conclusion: This blog explains how Technicians can register Payments done by Customer for Work Order in Field Service Mobile App. Also Payments will be reflected in Invoice by creating records of Payment Details which will be explained in next blog.
Share Story :
Delegating Time Entries in D365 PSA
Overview: Often you miss doing your time entries in PSA for the work done and go on a leave! You either then need to just struggle to find a system and do it yourself or raise some other kind of request to make sure billing is done right. But, you can delegate time entries to a colleague and it is all taken care of. Assigning Delegates in PSA: In Project Service, you can see the entity Delegates. In this entity, all you need to do is create a Delegate record as shown below You can either delegate a fellow resource for Time Entries or for the Expense entries. In this case, I’ll let Somesh make Time Entries on my behalf and hence make him my Delegate in PSA for a week on which I’m on PTO. Entering Time Entries as Delegates: Now, looking at Somesh’s angle, if he has needs to make time entries on my behalf. He would need to go to Time Entries, then he will need to look at the ribbon for his name and change the user to Priyesh Wagh. Once the other user is selected, their Timesheet appears and all the time entries by the other user appear. Here, Somesh can make time entries just as he would usually do for himself and they would actually be registered for the Resource Priyesh Wagh.
Share Story :
Purchase Order Workflow formatter error in D365 Finance and Operations
Introduction: In D365 Operations, when we create a workflow for Purchase Order we face a formatter error related to Time zone. This error is caused due to conflict as same time zone specified twice for a legal entity. First for the legal entity and second time for the address. In this blog, I will tell you how to resolve it. Solution: Go to Organization Administration -> Legal Entities In Address Tab, select More options -> Advanced In General Tab, Edit the Time zone to a different time zone.
Share Story :
Open report from custom ribbon button on entity form
Introduction: This blog explains how to open report from custom ribbon button on entity form. Steps to be followed: 1. Add custom button on entity form using Ribbon Workbench. (If you don’t have ribbon workbench solution installed, you can install it from here. ) 2. Once button is added on form, navigate to the Quote entity and run the report. Take note of the URL, it should look something like this. (I am doing it for quote entity) URL: https://portals1.crm.dynamics.com/crmreports/viewer/viewer.aspx?action=run&context=records&helpID=Quote.rdl&id=%7b18c85c59-7d04-e711-80e6-00155db8652a%7d&records=%7bBD891D3F-C92C-E811-A831-000D3A37CC26%7d&recordstype=1084 Specifically note the items I’ve bolded, these are the report name, report unique identifier, and the entity type code of the main entity. 3. code to our new JavaScript web resource. function OpenQuoteReport() { debugger; var rdlName = “Quote.rdl”; //Replace with your report name var entityType = “1084”; //Replace var entityGuid = Xrm.Page.data.entity.getId(); var reportGuid = “18C85C59-7D04-E711-80E6-00155DB8652A”; //Replace with your report guid var url = Xrm.Page.context.getClientUrl() + “/crmreports/viewer/viewer.aspx?action=run&context=records&helpID=” + rdlName + “&id={” + reportGuid + “}&records=” + entityGuid + “&recordstype=” + entityType; window.open(url, null, 800, 600, true, false, null); } 4. Create Command i.e. add JavaScript web resource to the button using Ribbon Workbench. 5. Add command on button. 6. Publish. 7. Now go to Quote entity and click on the custom button which you have created, your report will get open.
Share Story :
Design Marketing Emails in Dynamics 365 for Marketing
Introduction: In this blog we will see how to create a marketing email in Dynamics 365 for marketing preview. Dynamics 365 for marketing provides an easy drag and drop tool to design marketing emails with dynamic personalized content. Implementation: Step 1: We navigate to Marketing Emails and Click on New. We can see there are a number of pre defined email templates The templates are also categorized by purpose Step 2: At the top of the page we see three required fields Name, Subject and Form. The Name is the internal name for the designed email, Subject is the message that will be displayed in the emails subject and the From is the Dynamics 365 user who email recipients will see as the sender Step 3: In the toolbox we can see content blocks which can be used to design the email. We can add text, images , buttons etc as shown below. We can also add Surveys and Marketing Pages to the email which creates a button and on click the user is navigated to the Survey form and marketing page respectively. Step 4: The assist-edit button </> can be used to add dynamic content to the email. Step 5: Once the email is designed as per the requirement in the HTML tab we can see the code is auto-generated. In the preview tab we can see how the email would look in different clients like Desktops, Tablets and mobiles Step 6: It is important point to note is that every email message must include both a subscription centre link and your organizations physical address. These are required by the law in many jurisdiction and Dynamics 365 wont let you publish any marketing email that doesn’t have them. Email templates include them already but when we are working with a blank template you must add them yourself. Step 7: Once the email designing is done we can check for error by clicking on the button in the navigation bar. We can also Test send the email.
