Enhancing standard SAP applications is one of the first WRICEFs in any SAP implementation projects! SaaS solutions also not different in this aspect. In this article, we will see how easy you can extend SAP LBN-GTT solution. There are majorly two steps to achieve this.
Extract the required value from backend system and pass it via IDOC
Extend the standard model in LBN-GTT to hold this custom field.
Lets see how this is done,
1.Extract the required value from backend system and pass it via IDOC
We are not going to add a custom field on S/4HANA sales order, but pass some existing sales order header value as custom parameter and use it in LBN-GTT. The provided sample data extractors via GitHub for LBN-GTT standard models provides subset of fields on sales order header. Customers may need additional data to be sent from backend system to LBN-GTT , either to display on UI or to send to external partners.
LBN-GTT uses IDOC as interface technology from SAP S/4HANA. It uses existing SAP Event Management framework for data extraction in S/4HANA. I am not going to explain this framework in this blog, but we will use control parameter as a carrier to pass the required data to LBN-GTT. You must have implemented the extractors from GitHub and installed the BC set provided in the GitHub before you continue here.
1.1 : Select the respective application object type used for sales order integration to LBN-GTT. Navigate to Parameter Setup and select 'Ctrl Data Function' --> which ever the function you used. If you have used sample extractor from GitHub, then it will be something like GTT_SOF_SO_HD_OTE.
It’s an ABAP function module which extract data from sales order. Add your coding to extract data you want from sales order and pass it as 'ZZ_FIELD' as parameter name.
The parameter is a freely defined name, it will be passed as name/value pair in one of the IDOC segment(segment E1EHPCP of IDOC type GTTMSG)
In this example, am just passing ship to party's country as ZZ_FIELD parameter.
Its that simple to add in extractors and send it to LBN-GTT. You can see this parameter in IDOC when you save a sales order next time which is relevant for this application type. Now we have to do next step to receive this parameter in LBN-GTT.
2.Extend the standard model in LBN-GTT to hold this custom field.
In this step, we are extending the standard model to hold this parameter.
2.1 : Login to LBN-GTT tenant and open Manage Models app.
Click standard model gttft1 and click Edit.
2.2 select the tracked process 'SalesOrder' and click 'Create ' button under User Model Fields section. Provide the details, make sure name of the field is same as the parameter name used in extractor function module, here it is 'ZZ_FIELD'. Click OK and save model. This will make sure there is a field value and its description 'Custom Field' displayed for Track SO fulfillment app under 'User Defined' section of the user interface and available in worklist and search parameter.
2.3 Now we should map the value coming in IDOC to the model field. For this navigate to IDOC integration tab and select SalesOrder tracked process. On the right hand side, under User Model Fields section, provide mapping as shown below.
2.4 Save and deploy the model by clicking 'Deploy'. The model status will be Active after successful deployment(couple of seconds usually). With this, configuration steps are complete.
Later when you create a sales order , the field is extracted and passed in IDOC
The field also visible in Track SO fulfillment app, under section User Defined.
You can also make it available as column in worklist and as filter to search!
In my next blog, I will explain, how this field is used to restrict user access by providing authorization based on value of field; for example, for a set of users, display only sales orders where ship-to-party country is US.