SAP S/4HANA Cloud Output Management: Side by Side Extensibility for Forms
In my previous blog “SAP S/4HANA Cloud Output Management: Form Developments Common Challenges and Quick Hacks” I talked about Forms In-App extensibility challenges and solutions along with hacks that can help developers while working on Output Management in Cloud . In this blog I would be talking about scenarios that can lead to Side by Side Extensibility development for Forms and then what all challenges you might face while developing Forms as Side by Side Extensibility.
Why we need Side by Side Extensibility for Forms
Well in On-Premise, you have free hand for Forms developments where you can develop your Custom interface and can write your own Custom Logic. Although on Cloud, SAP has given In-App Extensibility, but it doesn’t suffice all use cases as listed in my previous Blog. Now if I need to use Custom Data source due to the lack of standard data source with fields we need to show in the form or If I need to merge the output from multiple data sources – then the only solution is to develop the Form using SBS.
What all is Required to do Side by Side developments for Forms.
Once you know that your requirement can only be met by using SBS; next Question would be what all key services do I need?
Key SCP Services that you would need to develop Forms in SCP are listed below which comes with additional license cost.
- You would need license to Forms By Adobe Service in Neo account. As of today, Forms Service is available in Neo- account only. This Service is required to Store the Forms template and then use Forms REST APIs to read the template and bind with the data.
- SAP Web IDE / ( and Now Business Application Studio ) is required to build UI5 application based on which you need data to be pulled in from S4HANA Cloud (You can use CDS /APIs to read the data from Cloud into UI5 application)
- SAP Workflow Management( Now used for maintaining Business Rules) is required to maintain the conditions if any required in Forms
Apart from SCP Services; you will also need additional license for Adobe Lifecycle Designer to develop the Form Layouts.
For Data fetching: You might have to use Custom CDS View /APIs for the same.
How to get started now with Form Developments?
- As first step you would require Creating custom form template (XDP) using adobe life cycle designer which describes the data binding to XSD and layout of the PDF
- Create Custom CDS Views in S/4HANA Cloud and expose them to be consumed in SCP /Set up Communication arrangement for APIs if APIs will be used
- Then you need to enable the Forms Service in SCP and maintain the required configurations like Roles and Destinations. Refer very good blog on the same
- Upload the Form Template that you created in REST API Template Store and maintain the required destination as listed in above blog.
- Create custom UI5 application having input as document number which will be used to Query the backend (Custom CDS /REST APIs to be used) to get the require data; UI should be able to accept XDP form template. Refer to blog on the details for these steps
- Encode both XDP (template) and XML (business data) into base64 format
- Construct the JSON input structure required by the Adobe API
- Stringify JSON structure then you ready to make the call using AJAX
- If the call is successful, the REST API will return the result PDF in base64 format (response.fileContent)
Now you have the UI5 application ready that can be used to download the Forms. High level flow of the application is listed below with example, here your UI5 application will have the input field as Billing number and then based on the Billing number Form is generated which can be downloaded by the Customer
Now I am done with Form Development; but is that enough? Well in our case it wasn’t enough since we had additional requirements which were condition based like Logo in Form should be based on Company Code , Footer in Forms should be based on Company Code and then layout of the Form was different based on custom field that was added using In-App extensibility for the Billing documents. Now I don’t have the option to use the Manage Text /Manage Logos etc in SCP. How to achieve these additional requirements? Well, we used Business Rules and Java script code in Adobe forms to meet the same.
How about Deployment of this Custom application:
You should always evaluate on deploying application in SCP / as custom tile in S/4HANA Cloud since if custom app would be required by Business users who only need to access this application then deploying in SCP is recommended since S/4HANA Cloud license for Business users comes with additional cost associated with it .
Summary: In this blog; I captured my experiences while working with Forms in SCP. Please do share your experiences for Forms with Side by Side Extensibility.
Refer my blog SAP S/4HANA Cloud: Configuring Custom Field in Decision Table (Output Determination) to understand how you can trigger Output Type based on Custom field in Output Determination
Very well explained!
Thanks Taranamjit for this well explained blog.
So If I understand correctly, even building the data source and using side-by-side extensibility will work completely only when we have existing CDS views which can give us all the data we need on the form.
I have a scenario where we need some fields on a form which are not part of the standard template, and the form does not have extensibility options (custom fields or logic), nor does it have the option for extending the data source. In such a scenario, the only option that seems viable is to build a form using SBS extensibility from the scratch. But if i am not wrong, we will need to ensure that we identify the CDS views for our requisite data so we can build custom ones on top of them.
Thanks ; yes you are right for getting the data you need to identify either whitelisted API / you need to create CDS View on top of standard views that you need to identify .
Does this solution only work in case of BTP Neo or also with BTP Cloud Foundry?
Forms service is available in Neo only but its planned for CF in Q4; so for forms you need to use Neo
SAP Discovery Center - Forms Service by Adobe (cloud.sap)
Your custom UX application can be created and deployed in CF which can use your Forms destination,