Skip to Content
Technical Articles
Author's profile photo Mahesh Sardesai

Output Management – Customize Content Form with additional fields

Please find list of related blogs

Please refer to S/4HANA SQUARE ONE for other blogs

This blog provides details of how to add a field to Content Form Template. The fields on the form are categorized into 4 types as each of these need different process. This will make this very easy to understand and each type is discussed as below and you need to follow the blog in order of types.

The FIRST TYPE of field is one that is already provided on the form for output already used. No work is necessary for this and you may want to move the field or change the display text known as “caption” in the field properties. Then there is SECOND TYPE of field that already exists on the form but can be added with just a drag and drop. Then the THIRD TYPE of field is when you want to add a New Custom field. This requires definition in the Custom Fields and logic. And then you download form and then drag and drop the field. The FOURTH TYPE of field is the one that needs even ore effort as you have to create a BADI. In this case field is available in S4HC but is not available on the form.

Before you follow the steps in this blog, it would be good to ensure that printing is setup with Cloud Print Manager and the Standard Forms print properly.


The Standard Templates provide certain fields which are available in the output as standard. Like for example on the Customer Invoice FormSDBIL_CI_STANDARD (1), click on tab Data View (2) and select Billing Date (3). Now we see that the field Date (4) on the form has been shown with a box to show that it is selected.

Now go to Data view tab and click on field Billing Date which has an icon as shown at (5). In the Design View tab on the right the field is highlighted with markers. A field like Billing Document Type does not have the icon as per (5) and is not in the form on the right.


These are fields in the standard form that you can easily add to the form like for e.g.  Billing Document Type mentioned above or Sales Organization Name (1). You could easily add it to the form by just drag the field from data view and drop it on the form. Notice that there is no icon shown in space (2) so this field is not on the form. Notice that after you drag and drop this field on the right, the icon appears at (2).

When you decide to add a field you should be able to search it conveniently. The fields are nicely presented in the Data View in a structure and you can see at a glance which field is in the form and which field can be added.

Knowing whether field is in the Data View is very important and if you are comfortable with the structure in the Data View that is fine. Alternatively, it can be done very conveniently by searching for the field in excel file. This also provides other characteristics of all fields in one place. The procedure to create this excel file is as below:

When you downloaded any form like Customer Invoice Form you get 2 files with extension .xdp &  .xsd. Open the SDBIL_CI_STANDARD_US_E.xsd file in Microsoft Excel. Press Ctrl-F and locate the field and search for other fields. Once you know the exact name you can then find it in the Data View.


The procedure is to first Create the Custom Field in S/4HANA using Fiori tile Custom Fields and Logic.

Let us add custom field MyCustomText of type Text. Choose (1) Create. In the New Field dialog box select (2) Sales: Billing Document, Labe (3) MyCustomText and select Type (4) Text. Choose (5) Create and Edit.

You need to populate this field in UI. Go to UIs and Reports tab. You need to inform the system that the field is required. First enable usage in the tab UIs and Reports as below:

Then need to go to Manage Billing Documents and add make the field visible in the UI to have the user populate this field.

Go to Change Billing Documents => Icon Display Header Details, Custom Fields, Enter text into Quick Note

If you need this field in the printout, you should enable this field on the form. Go to the tab (1) Form Template . Click on (2) Wheel and checkmark Name. Scroll down to the form (3) SDBIL_STANDARD_US and click on (4) Enable Usage. (4) Save your changes and (5) Publish.

You can then go to Output Management -> Form Template Maintenance, download the form, confirm that field is available and added to the form. In the Data View, you will see a field YY1_QuickNote_PDH. You can add this field to the form.

Save the form and upload into to Form Template Maintenance replace existing standard form SDBIL_STANDARD_US.


You want to add the Purchase Order date field in Billing Document Output. This requires more work than FIELD TYPE 3, although the field is available in S/4HANA Cloud. This is often the concern consultants have.

Add the New field using the same steps as in FIELD TYPE 3 using Custom Fields and Logic tile. Enable the field in the Form Template tab same as FIELD TYPE 3 above. As field is available in S4HC you don’t need to populate it with UIs and Reports as it should be populated through application.

The additional step that is required here is to create New Enhancement Implementation in the tab for Custom Logic. as below:

Click on Create Draft on left hand side and enter text as below:

billingdoc_extension_out = billingdoc_extension_in.
billingdocdescr_extension_out = billingdocdescr_extension_in.

*THEN GET SO NUMBER INTO lv_salesdocument:
select single salesdocument
from i_billingdocumentitem
into @data(lv_salesdocument)
where billingdocument = @billingdoc-billingdocument.

*THEN GET PO DATE FOR lv_salesdocument INTO yy1_purchaseorderdate_bdh:
select single customerpurchaseorderdate
from i_salesdocument
into @billingdoc_extension_out-yy1_purchaseorderdate_bdh
where salesdocument = @lv_salesdocument.

In the above logic first we assign existing extension field values to output parameter, we get SO number inti lv_salesdocument and then based on this SO number populate field yy1_purchaseorderdate_bdh.

Enable the extension field.Save and Publish. Please see screen below:

You can then go to Output Management -> Form Template Maintenance, download the form, confirm that field is available and added to the form. In the Data View, you will see a field YY1_PurchaseOrderDate_PDH. You can add this field to the form.

Save the form and upload into to Form Template Maintenance replace existing standard form SDBIL_STANDARD_US.


Please find the document with BADI’s available in the Note SAP Note 2679030 – Extensibility for Billing Document Printout – SAP S/4HANA Cloud. You can use as guideline. Thanks to the SAP SD development team for preparing this document. BADI’s are available for: below fields:

ATF licence – KBA 3044080
Bill to language – KBA 3044115
Commodity code – KBA 3044158
Country of origin – KBA 3044152
Created on date – KBA 3044166
Customer material ID – KBA 3045564
Delivery number – KBA 3044154
Net weight and unit – KBA 3045616
Payment method name- KBA 3044469
Purchase order by customer – KBA 3044454
Purchase order date – KBA 3044588
Reference document number – KBA 3044196
Sales office name – KBA 3044533
Sales order reason – KBA 3044607
Service contract dates – KBA 3045610
Tax code – KBA 3046578
Tax percentage – KBA 3044583


Please follow LANDSCAPE CONSIDERATIONS as per blog


You can open OSS messages using component:
BC-CCM-PRN – Output Management, Cloud Print Manager
CA-GTF-OC – Output Control for forms (S4HANA)


Output Management (1LQ)
Extensibility (1N9) 

Some of the notes below are for S/4HANA on-prem but would help with some content.
SAP Note 2228611 – Output Management in SAP S/4HANA (S4OP)
SAP Note 2791338 – FAQ: SAP S/4HANA output management (S4OP)
SAP Note 2292646 – SAP S/4HANA output control – form templates with fragments (S4OP)
SAP Note 2292681 – SAP S/4HANA output control – form master templates (S4OP)

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Mark Smith
      Mark Smith

      This is a fantastic blog! Thanks for sharing such valuable content!

      Author's profile photo Robbe Wuyts
      Robbe Wuyts


      I don't see where we have access to the chosen language of the form in the custom logic. I need to add a field in the output of the billing document header which is language dependent.