GKK Compressor Industry – Part 3: Goods Receipt to SAP

A three months Tentative Production Plan helps procurement division to plan what material to acquire to support the production of compressor at the production site. There are two types of materials to be shipped to a production plant,

  1. Movement of material from one plant to the destination production plant/storage
  2. Delivery Order directly from its supplier to the plant/storage

Nintex Mobile application is being used at the plant supporting Goods Receipt at the point where materials are being received. This minimized the need for personnel at the plant to receive goods by noting it on paper, and the need to go back to the office desktop to update the good receipts using a desktop computer with SAP console installed. Updates of good movement is now instantly done over at the point of good receipts using Nintex Mobile, and data are being updated immediately to the SAP system powered by Nintex Workflow with Workflow Connectors provided by Theobald Software.

For the purpose, a “Goods Receipt” form was created using Nintex Form as shown in the diagram below, Nintex Form features bar code or QR code scanning, eliminates the potential human mistakes of typing in long serial number of goods received. Nintex Form could easily be prepared to surface on different devices without much efforts. In this article, as our focus is to look at the integration of Nintex and SAP, we going to keep the form explanation simple here.

Once the data is captured and submitted to the Goods Receipt list, the associated workflow will be triggered to process the data by posting the data to a remote SAP system. This was done with simply using the ERPConnect Services connectors provided by Theobald Software. ERPConnect by Theobald comes with a set of ready to use connectors as shown in the diagram below.  

In this requirement, I have made use of the “Call SAP function” action, it provides full capability to integrate with SAP by simply calling all the available SAP functions, plus the “Z” functions. One thing I find it easy is Theobald Software has a complete documentation and tutorials available on-line (i.e. OnlineHelp – Theobald Software GmbH ) that helps me to do what I need to do for the intergration project. Diagram below shows the “Call SAP Function” action configuration, followed by a table with values I have supplied to the action. 

Table below shows the values i have passed to the required parameters of the “Call SAP function” action. Take note that in my scenario i have fixed some of the values to simplify for the demo purpose. In an actual scenario, we will need to substitute the values reflecting what we have in our form/list design.

GOODSMVT_CODE
GM_CODE05
GOODSMVT_HEADER
PSTNG_DATEfn-FormatDate(Current Date, yyyyMMdd)
DOC_DATE
Tables: GOODSMVT_ITEM
MATERIALR-B209
PLANT1100
STGE_LOC0001
MOVE_TYPE501
ENTRY_QNT
Output
output.GOODSMVT_HEADRET.MAT_DOCMAT_DOC

This is working great so far if we only update one material a time through the “Call SAP Function” action. In our form we have a repeating section where we allow to input more than one material model at any time. Luckily, the action has taken this into consideration as well, this is where we will need to use the “Additional XML table input” parameter of the table section in the “Call SAP Function” action. Theobald-software’s help scenario has provided a very good example on how this could be configured  OnlineHelp – Theobald Software GmbH

Following the example provided in OnlineHelp – Theobald Software GmbH, I have added another Query XML action to wrap the required format of the XML table as below

The final XML content to be passed to the “Additional XML table input” should look similar to the below (i.e. substitute the variables or Item properties with what reflects your design). 

 <?xml version="1.0" encoding="utf-8" standalone="yes" ?><TABLES><TABLE name="GOODSMVT_ITEM"> <GOODSMVT_ITEM>     <MATERIAL>{WorkflowVariable:Material}</MATERIAL>     <PLANT>{ItemProperty:Plant}</PLANT>     <STGE_LOC>{ItemProperty:Storage_x0020_location}</STGE_LOC>     <MOVE_TYPE>{ItemProperty:Movement_x0020_type}</MOVE_TYPE>     <ENTRY_QNT>{WorkflowVariable:Qty}</ENTRY_QNT>  </GOODSMVT_ITEM>  <GOODSMVT_ITEM>     <MATERIAL>{WorkflowVariable:Material}</MATERIAL>     <PLANT>{ItemProperty:Plant}</PLANT>     <STGE_LOC>{ItemProperty:Storage_x0020_location}</STGE_LOC>     <MOVE_TYPE>{ItemProperty:Movement_x0020_type}</MOVE_TYPE>     <ENTRY_QNT>{WorkflowVariable:Qty}</ENTRY_QNT>  </GOODSMVT_ITEM></TABLE></TABLES>‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

Here is how the final “Call SAP function” action look like. The formatted XML content is set to valrible “XMLInputGoodsmvt_Item” which is assigned to the “Additional XML table input” field of the action.