24 May’17

D365 Business CentralSend Email with attachment to the vendor as a response in Purchase order workflow in NAV 2017

Introduction:

In this article, a workflow response is created in the standard purchase order workflow. This response sends an email to the vendor after release of the purchase order i.e when the send approval request of the purchase order is approved by the authorized approver, the status of the purchase order changes to Released  afterwhich an email is sent with  attachment in a .pdf format to the vendor.

Pre-requisites

1.Microsoft Dynamics NAV 2017

Steps:

1. Configure smtp mail setup in the front end where you need to enter the sender’s email id and password.

2. Now to create a workflow response we need to create a global function in a new codeunit. Navigate to View tab select C/AL Globals or (Ctrl+G). click on the functions tab and under the Name type the function name, by default the function is a local function.

3. To make it a global function, select the function ‘SendEmailCode’ and click on view tab then click on properties. Set the Local to No, this will make the function global.

  • Now click on the function then click on Locals button placed on the right side. Click on the return value tab and set return type as code and length as 128.

  • This function calls another function ‘SendEmail’

4. Create another global function with another name in this article I’ve used ‘SendEmail’. Set parameter to the record ‘Purchase Header’ and enable it as a variable.

5. In the below code, we first fetch the vendor email id and set it to a variable VendEmail.

  • We use the FileManagement codeunit and set the ServerTempFileName as a ‘pdf’ file.
  • We then save the report as pdf file.
  •  We then use SMTPMail codeunit, The SMTPMAIL.CreateMessage sets the sender’s email id and recepients email id, subject of the email
  •  SMTP.AddAttachment function attaches the purchase order in  a .pdf format.
  • In SMTPMail.AppendBody function we can specify the body of the email.
  • SMTP.Send functions sends the email.

6. Now the response created of sending email to the vendors need to be added to the workflow response library.

  •  Create a global function, in the properties of the function click on the event field and select subscriber.
  • In the Event Publisher object select the Workflow Response Handling codeunit (codeunit no. 1521)
  •  In the Event Function field select OnAddworkflowResponseToLibrary.
  •  Select the function and click on the Locals button and in the variables tab, create a variable for codeunit Workflow Response Handling.
  • In the below code, we add the response to workflow library with name SendEmailVendor. This name is a text constant

7. Now to execute the response we need to create a global function.

  • Create a global function, in the properties of the function click on the event field and select subscriber.
  • In the Event Publisher object select the Workflow Response Handling codeunit (codeunit no. 1521)
  • In the Event Function field select OnExecuteWorkflowResponse.
  •  In the Locals for this function, in the variable tab create a variable for the record ‘workflow response’.

8. In the Dynamics NAV front end , navigate to workflows from the search bar. In the purchase order approval workflow, add the response ‘Send Email To Vendor’ then enable the workflow.

9. Navigate to Purchase order from the search bar and click on Send approval request button on the menu bar.

10. The email is sent to the vendor.


 

Written by

Chris D'Silva

Software Developer

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.

Want to streamline your business processes?

  • This field is for validation purposes and should be left unchanged.

Recent Articles

  • Reading more then 10K records in D3FOE OData API

    11 July’ 2018

    Introduction: We all know Dynamics 365 Finance and Operations has limitation of 10K records to be fetched at a time usi...

    Read more
  • Paging in D365 Customer Engagement v9.0

    10 July’ 2018

    Introduction: The Xrm.retrieveMultipleRecords method is used to retrieve a collection of records in Dynamics 365 Custom...

    Read more
  • Set up Dynamics 365 connection in Microsoft Social Engagement

    10 July’ 2018

    Introduction: This blog explains how to Set up Dynamics 365 connection in Microsoft Social Engagement. Steps to be follo...

    Read more
  • Voice of the Customer failed to install

    10 July’ 2018

    Introduction: Many people face issues in installing Voice of Customer solution on v9 environment and trying repeatedly ...

    Read more
  • Scribe Insight AX as a Web Service Find Block issue

    10 July’ 2018

    Introduction: If we need to look up for any value from AX then we do it by using a Find Block in Scribe Insight Eg: Basi...

    Read more