Setups required to perform Automated Clearing House (ACH) payments to Vendor Bank Accounts in Microsoft Dynamics NAV
One of the most dynamic and popular ERP systems among mid-sized organisations is microsoft dynamics nav integration. This is popular for its easy installation and super easy and understandable interface which literally anybody could learn within no time. It is the most needed system for the retailers where it controls your financials, supply chain, business intelligence and much more. As retailers grow though. the need for integrating their NAV ERP becomes evident. Your ERP isn’t the only system needed to run your operations. Retailers must share the same data between their POS, eCommerce, marketplace, 3PLs, and other important systems. Integrating Microsoft NAV with other retail systems is no small task. To get you started, we put together this beginner’s guide so you can learn all the basics when considering integration. Introduction: Automated Clearing House (ACH) payments to vendors can be done through Microsoft Dynamics NAV. To do ACH payments, setup is required to be performed basically in four areas: Company information, Bank Account card, Vendor card and Vendor bank account. Pre-requisite: Microsoft Dynamics NAV 2017 (North America NA version) Purpose: In this blog, I will be covering the setups required to perform ACH payments to vendor bank accounts in NAV. Procedure: Step 1: Navigate to Company information card and enter Federal ID No. Step 2: Navigate to Bank Accounts and select the bank from which payment will be done to the vendor. Enter following fields in the bank account card 1. Bank Branch Number 2. Bank Account Number 3. Last Remittance Advice No. 4. Export format: Select from given three options i.e. US, CA (Canada), MX (Mexico) 5. E-pay Export File Path: Enter the path where you want the export file to be saved which will be transmitted to the bank. End the file path name with ‘\’ 6. Last E-Pay Export File Name: Enter a name of the file with numeric value as the last digit to the right and the extension. The first file name which will be saved will be incremented by 1. 7. E-Pay Trans. Program Path: Enter the path of the transmit folder. When user selects transmit in payment journal, NAV moves the file formed in Export folder to Transmit folder. End the file path name with ‘\’ 8. Transit No.: Enter the Transit number of the bank which is the bank’s routing number. Step 3: Navigate to the Vendor card and perform the following steps. I have created a new payment method code i.e ‘ACH’ so that it is easy to differentiate vendors that use ACH as their method of payment from vendors that accept checks. Select ‘ACH’ as the payment method code. Now, navigate to the Vendor’s bank account. Enter following fields in vendor’s bank account. 1. Vendor’s bank branch no. 2. Vendor’s bank account no. 3. Vendor’s bank transit no. Select the ‘Use for Electronic Payments’ checkbox to enable ACH payments for this vendor. After filling in these fields, select the preferred bank account code in the vendor card. The above mentioned steps are the setups required to perform ACH payments to vendors in NAV. I will be covering the procedure required to export and transmit the payment file which is generated while doing ACH payment to vendors in my next blog.
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 :
SSRS Embedded Image Distorted in PDF
Introduction: Recently, I had encountered an issue with embedded images in a report. I had one image in two format, i.e. PNG and JPG. In the report viewer, both the image format was working fine; but when I saved the report in PDF format, PNG image was properly displayed and JPG image was distorted. In this article, we are going to discuss how to resolve the issue of distorted image in PDF. Images in Report Viewer: Images in PDF: Resolution: 1. Check JPG Image properties: Images with following properties do not render correctly: Image with CMYK Colorspace or Image with extended color profiles or Both For more reference, Click here Check Extended color Profiles Photoshop CC: Open the JPG file in Photoshop and it will tell you if the color profile is missing or does not match your working profile. Jeffery’s Image Metadata viewer: Open link: Jeffery’s Image Metadata. Choose your JPG Image file and click on View Data. Check Color Embedding. (Here, unrecognized embedded color profile) Check Image Colorspace Photoshop CC: Open the JPG file in Photoshop, you can see the image properties in the Name Tab. (Here,CMYK/8) Jeffery’s Image Metadata viewer: Open link: Jeffery’s Image Metadata Choose your JPG Image file and click on View Data. 2. Change JPG Image Properties: Remove Extended color Profile: Open the JPG file in Photoshop. Navigate to EDIT→Assign Profile→Don’t color Manage this Document. Change Image Colorspace: Open the JPG file in Photoshop. Navigate to IMAGE→MODE→ RGB Color Results: After the change in image properties the JPG Image will be properly rendered in a PDF.
Share Story :
Import a .csv file for Bank Reconciliation in Dynamics NAV 2017
Introduction: This article gives a step by step process to import a .csv file in Dynamics NAV 2017 for Bank Reconciliation. Pre-requisites: Microsoft Dynamics NAV 2017 Microsoft Excel Steps: 1. Browse to Data Exchange Definition page, and click on new to create a new data exchange setup. This setup enables us to import a specified bank statements file. 2. In the new ‘Data Exchange Definition’ enter the code and name. File type – Variable Text Type – Bank Statement Import Reading/Writing Xml Port – 1220 Ext Data Handling Codeunit – 1240 And in the Line definition enter the code, name and the column count 3. Enter the column definition and associate appropriate data types. The columns are from the bank statement file which we need to map to Microsoft dynamics NAV. Go to Column definitions for Data Exchange Definition, and make sure Data Format has an uppercase M. 4. Now click on the ‘Field Mapping’ button in the Line definition tab. 5. The Data exchange Mapping window opens, click on new and enter the details Table Id: 274 Mapping codeunit:1248 And give a Name to the Mapping. In the Field Mapping tab, select the column number and map it with the appropriate field Id. 6. Now in the search bar of the NAV Windows client, browse to Bank Export-Import setup and click on new and enter the details, fill the entries for code, name Direction – Import Processing Codeunit Id – 1270 In the Data Exchange Definition code, select the drop down to the Data exchange definition created and click on OK. 7. Browse to ‘Bank account’ from the NAV Windows Client and select the bank where you want to import the bank statement. Click on Edit. In the Bank Statement Import format of the Transfer tab, select the bank import set up created. 8. Browse to the Bank account Reconciliation page and click on new, select the bank account where the Bank statement Import Format is assigned. 9. Click on the Import Bank Statement button under the Home tab. 10. Select the CSV file of the bank statement. 11. The Bank statement will be imported and you can view the changes in the Bank statement Lines tab.
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.
Share Story :
Hide Custom Button on Create Form in D365
Introduction: This blog explains how to hide custom buttons on create form in D365. Problem Statement: We often get requirement from Client to hide custom buttons on Create record and to be shown on updating of record. Solution: We can achieve this functionality by having ribbon Customization with Enable Rules using FormStateRule. Steps of Implementation: 1. Create a new Command. 2. Create a new Enable Rule. 3. Create a new FormStateRule. 4. Set Enable Rule on Command. 5. Set Command on Button. Conclusion: Below image confirms button is hidden on Create Record and it is shown on Update Record. Create Record: Update Record:
Share Story :
Using Real time workflows for Business Validations in Dynamics CRM
Introduction: Like asynchronous workflows, real-time workflows can be used to model and automate real world business processes. Real-time workflows are for business users, for example business analysts, to implement similar functionality to synchronous plug-ins without requiring .NET Framework programming experience. How to use Real time Workflows for Custom Business Validations: Real time workflows can be used to not only implement business logic in Dynamics, but also simple and complex validations in the business flow. Let us understand this using 2 examples: Example 1: We have a business Validation that leads with employee size less than 100 should not be allowed to qualify. Earlier, we used to do this either from JS form scripting or using Plugin. But we can also use Real time workflow to achieve this, and it can throw a validation message as well to user. 1. For it to throw a validation message, we need to stop the workflow and select reason as cancelled. Then we can set the status reason as the message we want to display the user. 2. This is what the User will see if he/ she tries to qualify a lead with employee size less than 100. 3. This is the workflow that we configured: 4. You can specify the validation message in the Stop Workflow properties. Please note that Status of “Stop Workflow” should be cancelled for users to see the message. Example 2: We can have more complex validations as well using Real time workflow. 1. For example, Lets say we don’t want the opportunity to be Won unless the Account (Customer) has Credit limit greater than the Opportunity Budget Amount. We can configure this condition as well in Workflow. Refer Screenshot below: 2. And the End user will see the error message as below when he/ she tries to mark the opportunity as Won when the customer’s credit limit is less than the Opportunity Budget. Conclusion: Real time workflows are very powerful, and can be leveraged to perform server side validations in Dynamics CRM, along with real time CRUD operations and Email messages.