Category Archives: Blog
Form and Table Customization in Dynamics 365 For Finance and Operations
Introduction: Customization of any particular form or table is done by creating extensions. Any modifications or to add some fields to an original object can be done by creating extensions. At run time all these extensions run as single object. In this blog we demonstrate how to add fields to an existing form. Consider the form CustTable and add two fields in the form. Passport Number Age Step 1: From Application explorer open DirPerson Table –> right click and click on create extension Step 2: Open the table designer and expand the fields. Add the two fields and set the appropriate properties. Step 3: From Application explorer open CustTable Form –>right click and click on create extension Step 4: Open the form designer of CustTable. Expand the deign portion until you reach the control, where you want to add required field. for example I want to add New fields in Person Detail section. Step 5: Open the data sourceà go to fields and drag and drop the newly created field. Save the changes and build the project. Step 6: This adds the fields to the form.
Share Story :
New Email capabilities in Unified Interface – D365 v9
Overview: After much wait, the new Email feature in the Unified Interface is finally here. So this blog is about what all the new Email functionality can do in the Unified Interface. This feature is only for the Unified Interface. Now, you can see the Email button appearing on the ribbon. In the To field, you can select the record type in more intuitive way without having to load the Lookup view. Rich Text Editing: Now, the new Unified Interface offers Rich Text Editing capabilities wherein you can add new media to your email body. HTML Preview: Even you get to see the HTML preview of your email Preview of the Email You’d definitely want to see what goes out before sending the email out. You can also preview the final email before sending the same. Email: And this is how it looks when received by the recipient Hope this helps to a great start in email editing in D365!
Share Story :
Set SSRS Report Parameter to allow null values in D365 Operations
Introduction: Reports are used to see summary of data. We also set parameter to filter data but at times we don’t want to filter using a parameter and keep it as blank. By default, parameter values are always mandatory in D365 Finance and Operations, Enterprise Edition. In this blog article, we will see how we set property to allow null values to a parameter in SSRS Report. Steps: Go to Report -> Parameters. Select the Parameter which you don’t want to be mandatory. Go to Properties -> Nullable. Set the value to True. This will allow you to pass null value. This is how you can make the report parameter as optional.
Share Story :
Trick to find the fields Workflows trigger on
Introduction: This blog consists of information on how you can find the triggering parameter of the Workflow. Scenario: There are many workflows on update of a record and which workflow is triggering for which fields and on which fields the workflow is dependent on. It may be handy to identify which fields are being used to trigger workflows. You would open each workflow and check or you could click field in every entity and Check Dependencies. But there is much easier way for it. Solution: We can make use of Advance Find on the Process Entity. There are some fields like 1) Trigger On Update Attribute List 2)Trigger On Create 3) Trigger On Delete 4) Is Child Process This fields can be useful in many ways. Trigger On Update Attribute List has a field list separated by comma. This are the fields on which the workflow triggers.
Share Story :
Creation of Reports using AL Extension in Microsoft Dynamcis NAV Development Preview
Introduction: This blog demonstrates the creation of Reports through extensions in Microsoft Dynamics NAV Development Preview Environment(Microsoft Dynamics 365 for Financials and Operation, Business Edition). Pre-requisite: Microsoft Dynamics NAV Development Preview Environment Visual Studio Code with AL Extensions Demonstration: 1. Creating a Report using AL extensions. report 50100 MyReport { UsageCategory = ReportsAndAnalysis; ApplicationArea = All; CaptionML = ENU = ‘MyCustomerList’; RDLCLayout = ‘ReportLayouts/MyReport.rdl’; // WordLayout=’ReportLayouts/MyReportWord.docx’; // DefaultLayout=Word; dataset { dataitem(DataItemName; Customer) { column(CustomerName; Name) { } column(CustomerNumber; “No.”) { } } } requestpage { layout { area(content) { group(GroupName) { field(HideDetails; HideDetails) { } } } } actions { area(processing) { action(ActionName) { } } } } var HideDetails: Boolean; } 2. Creating a Page Action to run the Report using AL extensions. pageextension 50100 MyExtension extends “Customer List” { layout{ } actions { // Add changes to page actions here addlast(“&Customer”) { action(ShowMyReport) { ApplicationArea = All; trigger OnAction(); begin clear(myReport); myReport.Run; end; } } } var MyReport : Report MyReport; } 3. Installing the extension and executing the Report, the results are blank as the Layout for the Report is not set. 4. To create the layout, search for ‘Report Layout Selection’. 5. Then select the report added through the extensions and Export the template. 6. Open the RDL Export file in SSRS or Visual Studio and add the relevant fields or tables. 7. In the Visual Studio Code add the following lines of code. RDLCLayout=<PATH of RDL File>; UsageCategory = ReportsAndAnalysis; ApplicationArea = All; 8. Viewing the Report Conclusion: Thus according to the NAV 2018, the report when created in C/SIDE automatically has an RDL file associated with it. But when creating reports through extensions separately the layout needs to be created.
Share Story :
Implementing extensions in NAV Development Preview using Docker
Introduction: This blog describes Container, Docker, and Benefits of using Containers. As containers was a new functionality in Microsoft Dynamics NAV Development Preview from September Update, this document also demonstrates creating containers and how to implement extensions using containers. Also, it includes saving the image into Azure Container Registry Service. Pre-requisites: Microsoft NAV Development Preview(December update) Visual Studio Code(VS Code) Description of Containers: 1. What is a Container? A container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings. Available for both Linux and Windows based apps, containerized software will always run the same, regardless of the environment. Containers isolate software from its surroundings, for example differences between development and staging environments and help reduce conflicts between teams running different software on the same infrastructure. 2. Why do we use container? When you are running an app on a computer, you stand the risk that it will conflict with everything else on the machine. If two apps are having the same name and utilizing the same folder structure on the hard drive, there is a conflict and if 2 apps are using different versions of the same DLL, there might be problems.With a container, you achieve a higher level of isolation. Each container has its own file system, its own registry, its own network layer with its own published ports, and of course its own memory space – kind of like a virtual machine, just without the fat guest operating system. 3. What is a Docker? Docker is the company driving the container movement and the only container platform provider to address every application across the hybrid cloud.Docker enables true independence between applications and infrastructure and developers and IT ops to unlock their potential and creates a model for better collaboration and innovation. 4. Implementing Docker: What is a Docker Image? An image is an inert, immutable, file that’s essentially a snapshot of a container. Images are created with the build command, and they’ll produce a container when started with run. Images are stored in a Docker registry such as registry.hub.docker.com. i. List of Docker Images ii. List of Containers PS C:\Users\cfadmin> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c45e57849c56 microsoft/dynamics-nav:devpreview-finus “powershell -Comma…” 14 hours ago Up 2 minute s (healthy) 80/tcp, 1433/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:7046-7049->7046-7049/tcp, 7045/tcp, 0.0.0.0:8080->8080/t cp navserver iii. Creating a new Container PS C:\demo> docker run -e ACCEPT_EULA=Y a9 Initializing… Starting Container Hostname is 0b04fbea782e PublicDnsName is 0b04fbea782e Using NavUserPassword Authentication Starting Local SQL Server Starting Internet Information Server Creating Self Signed Certificate Self Signed Certificate Thumbprint 52600A924814D5A8848D7990BC3F76F7FB6FAF66 Modifying NAV Service Tier Config File with Instance Specific Settings Starting NAV Service Tier Creating DotNetCore NAV Web Server Instance Enabling Financials User Experience Creating http download site Creating Windows user admin Enabling SA WARNING: This license is not compatible with this version of Dynamics NAV. Creating NAV user WARNING: This license is not compatible with this version of Dynamics NAV. WARNING: This license is not compatible with this version of Dynamics NAV. Container IP Address: 172.18.232.162 Container Hostname : 0b04fbea782e Container Dns Name : 0b04fbea782e Web Client : https://0b04fbea782e/NAV/WebClient/ NAV Admin Username : admin NAV Admin Password : Tyvo6712 Dev. Server : https://0b04fbea782e Dev. ServerInstance : NAV Files: http://0b04fbea782e:8080/al-0.12.15359.vsix http://0b04fbea782e:8080/certificate.cer Initialization took 105 seconds Ready for connections! Note: Instead of full Image ID starting few characters can be used as Identifiers. Image Name can also be instead of Image ID. Download the Certificate from the URL and installed in Enterprise Trust, Trusted Publisher. iv. Viewing the created Container PS C:\demo> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORT S NAMES 0b04fbea782e a9 “powershell -Comma…” 3 hours ago Up 3 hours (healthy) 80/t cp, 443/tcp, 1433/tcp, 7045-7049/tcp, 8080/tcp stupefied_stonebraker ca1980d041c6 microsoft/dynamics-nav:devpreview-finus “powershell -Comma…” 28 hours ago Up 6 hours (healthy) 80/t cp, 1433/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:7046-7049->7046-7049/tcp, 7045/tcp, 0.0.0.0:8080->8080/tcp navserver Newly Created Container with name as ‘stupefied_stonebraker’ and ID as ‘0b04fbea782e’ 5. In Visual Studio Code: i. Contents of Launch.json file ii.Contents of App.json file iii. Contents of Code unit which displays a Hello Message iv. Contents of Customer Card which Creates a field and an action that triggers the CodeUnit above v. Contents of Customer Table Extension that adds a field vi. in the Extension Management Pane vii. Action in Customer Action vii Displaying Hello Message viii. Added field in the Customer Card Page 6. Merging the Containers in Image and Managing with Azure Container Service i. Comitting the Container ‘stupefied_stonebraker’ to Image ‘microsoft/dynamics-nav:devpreview–finus’ PS C:\Users\vmadmin> docker stop stupefied_stonebraker stupefied_stonebraker PS C:\Users\vmadmin> docker commit stupefied_stonebraker microsoft/dynamics-nav:devpreview-finus sha256:eca05b64ed3619c688225685613e27fb4dbb6823aee46e24e96f3d813158440f ii. Tag the Image ’ microsoft/dynamics-nav:devpreview–finus’ as ‘navcontainerregister.azurecr.io/dynamics-nav:v1’ and push the committed image to Azure Container Service PS C:\Users\vmadmin> docker tag microsoft/dynamics-nav:devpreview-finus navcontainerregister.azurecr.io/dynamics-nav:v1 PS C:\Users\vmadmin> docker login –username NavcontainerRegister –password 6QiIyg9ICAa=aEg1jL2Wp8JumxvfPAEd navcontainerregister.azurecr.io Login Succeeded PS C:\Users\vmadmin> docker push navcontainerregister.azurecr.io/dynamics-nav:v1 The push refers to a repository [navcontainerregister.azurecr.io/dynamics-nav] 79bb52c8ab0d: Preparing 9c54b1a40ebc: Preparing 0d828dcd4895: Preparing b52bf723b284: Preparing 4beec416a215: Preparing 282537c6428c: Preparing b786ae432ac1: Preparing b07b88fd6145: Preparing 28c2b5be05f7: Preparing cc91b1f75f98: Preparing 7305c5891baa: Preparing bb5530559b18: Preparing 021428a01c82: Preparing 13b346524402: Preparing cda2d40c0d33: Preparing 64efa9cbaf9b: Preparing aa2b81bfb0aa: Preparing 505553846eae: Preparing 7a83b9538cb1: Preparing 20c2a3ed5225: Preparing 5437ac367abf: Preparing c856f8e0a2f7: Preparing f358be10862c: Preparing b07b88fd6145: Waiting 28c2b5be05f7: Waiting cc91b1f75f98: Waiting 7305c5891baa: Waiting bb5530559b18: Waiting 021428a01c82: Waiting 13b346524402: Waiting cda2d40c0d33: Waiting 64efa9cbaf9b: Waiting aa2b81bfb0aa: Waiting 505553846eae: Waiting 7a83b9538cb1: Waiting 20c2a3ed5225: Waiting 5437ac367abf: Waiting c856f8e0a2f7: Waiting f358be10862c: Waiting 282537c6428c: Waiting b786ae432ac1: Waiting b52bf723b284: Pushed 9c54b1a40ebc: Pushed 4beec416a215: Pushed b07b88fd6145: Pushed 282537c6428c: Pushed b786ae432ac1: Pushed cc91b1f75f98: Pushed 28c2b5be05f7: Pushed bb5530559b18: Pushed 021428a01c82: Pushed cda2d40c0d33: Pushed 13b346524402: Pushed aa2b81bfb0aa: Pushed 64efa9cbaf9b: Pushed 505553846eae: Pushed 20c2a3ed5225: Pushed 79bb52c8ab0d: Pushed c856f8e0a2f7: Skipped foreign layer f358be10862c: Skipped foreign layer 0d828dcd4895: Pushed 7305c5891baa: Pushed 7a83b9538cb1: Pushed 5437ac367abf: Pushed v1: digest: sha256:0aa9bfe03388e4fa20f83fcac99dafdf1933f58a2aed9d1c8bb2d05d162f062e size: 5343 iii. Azure Container Registry Repository: Pushed Image into Container Registry in Repositories Conclusion: These are the actions that can be performed on Container using Docker and how extensions are developed on Containers.
Share Story :
Configuration and Installation of MPOS in Dynamics 365 for Retail
Introduction: Dynamics 365 for Retail Provides Modern POS functionality (MPOS). It supports online as well as offline mode. The blog describes the configuration and Installation of MPOS step by step. Steps: Step 1: Go to Retail -> Channels -> Retail Stores -> All Retail Stores Select the Store for which you want to configure MPOS. In my case I have selected the warehouse. Step 2: On right hand side Go to registers and select which register you want for that particular store. Double click on the register Step 3: Under General Fast Tab, Enable Support Offline and Double click on the Device Please Note: If Device is not set for the register of the store. Go to Devices and assign a device of type Retail Modern POS to the register. Step 4: Click on Download and select the Configuration file Step 5: When the download starts click on save or the browser will automatically download it. Step 6: Again Go to Download and now select the Retail Modern POS Step 7: Once the download starts click on Save and then click on Run. This completes the installation of Modern POS
Share Story :
Raise and expense entry for a Fixed Bid Project in D365 PSA
Introduction: Let’s consider a scenario where we need to raise an expense entry for a Fixed Bid project. PSA by definition does not charge for expenses. If you want to have fixed price for the project and expense to be charged for other things, you need to do it via adjusting the contract. Steps: Follow the steps below to prepare the contract: Prepare a contract and add a Fixed Bid project with “Time” and “Fee” as the option shown below: Add another line and create another Time and Material Type project and select “Expenses” as the option. You will have to inform the team to select the right project while raising the expense, that is the T&M one. Now when you create the invoice via that contract, you will get your milestone as well as the expenses coming up in the same invoice as shown below.
Share Story :
Dispositions in Office 365
Introduction: When content reaches the end of its retention period, there are many reasons that you might want to review that content. You might need to assign a different retention period, suspend the deletion, etc. A disposition review includes only content in SharePoint sites, OneDrive accounts, and sites for Office 365 groups. A disposition review can’t include content in Exchange Online, Skype, public folders, or mailboxes for Office 365 groups. Sign in with Office 365 credentials, go to Admin Center > Security & Compliance > Data Governance > Disposition. Permission for Disposition: Reviewers must be the member of Disposition Management role and the View-only Audit Logs role. Setting up the Disposition review by creating a Label: Disposition review option is only available when you create a Label with retention settings. This option is not available in a retention policy. For creating a Label, navigate to Office 365 Security & Compliance, go to Classification > Labels. With Labels, you can classify data across your organization for governance, and enforce retention rules based on that classification. Switch toggle button to ON for applying Retention. Tick Trigger a Disposition review for setting up Disposition. When a content (to which this label is applied) reached retention period, reviewer is notified by email that content is ready to review. Reviewer can then go to Disposition page and select one or more item. The reviewer can: Apply a different Label. Extend the retention period. Permanently delete the item Export the Disposition item: In addition, you can export the items in .csv file that you can open in excel. Conclusion: It is important to review content when it reaches it’s retention period so if it requires you can assign different retention tag or label.
Share Story :
Supervision in Office 365
Introduction: Supervision lets you define policies that capture email and 3rd-party communications in your organization so they can be examined by internal or external reviewers. For creating Supervision policy, one must made add himself to the Supervision review role group so that they can set up policies. Go to Office 365 admin center > Security & Compliance > Permissions. Or Sign in to https://protection.office.com with your Office 365 credentials. Create Policy for Supervision: Go to Office 365 Security & Compliance > Data governance > Supervision. Click Create and then follow the wizard to set up the following pages of the policy. Enter a name and description for your policy. Choose users to supervise, here you can provide list of users or you can make Group in Office 365 and provide the Group name. If you provide Group, then you can exclude any user from Supervision by providing that user name under Exclude these users. Choose communications to review. If you want to scope the review further, click Add a condition. You can specify multiple conditions. Specify percentage to review. If you want to reduce the amount of content to review, specify a percentage. If you want reviewers to review all items, enter 100%. The users and groups you choose will use the Supervision app in Outlook web app to examine the communications that are returned by this policy. You can include email addresses for internal and external reviewers. After you have completed all sections of Supervision policy, review your settings and click Finish. Reviewers will use the Supervision add-in for Outlook web app to review communications. The add-in is installed automatically in Outlook web app for all reviewers you specified in the policy. Conclusion: It is good practice to create Supervision policy to capture email communication in your organization.