ADS On HCP
ADS On HCP
1.2 Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
Upload Fonts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Configure Fonts and Print Information using XDC and XCI Files. . . . . . . . . . . . . . . . . . . . . . . . . 29
Data Migration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Connection Setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
The SAP Forms service is a cloud service based on the ADS (Adobe Document Services) component by Adobe.
It is hosted on SAP BTP (Neo environment). Since the SAP Forms service provides virtually the same features,
you can use it as an alternative to ADS based on SAP NetWeaver and call it from an application running on an
ABAP or Java backend system.
Note
See also: Adobe Document Services for Form Processing (SAP NetWeaver).
Using the SAP Forms service, SAP manages the complete service for you and is responsible for all patches and
updates.
After performing the configuration tasks to connect your ABAP system to the SAP Forms service, you can start
using the service immediately without the need to manage any additional hardware resources.
As a system administrator, learn more in the following sections about the required configuration tasks on your
ABAP system, the Cloud Connector, your SAP BTP subaccount, and the ADS configuration tool.
If you want to consume SAP Forms service from your own application developed and hosted on SAP BTP, you
can use the SAP Forms Service by Adobe REST API [page 39] to call the service.
Note
Using the SAP Forms service REST API for your Cloud application requires you to provide your own form
templates (using the Adobe LiveCycle Designer), as well as your own data files. See also: Using the Adobe
LiveCycle Designer [page 83].
For detailed information on the SAP Forms service scenarios, see: Use Cases [page 5].
Features
● Create interactive forms that look exactly like their paper counterparts.
● Work with forms in online and offline scenarios.
● Annotate PDF documents and collaborate on PDF document reviews.
● Capture data using forms and import the data directly into the SAP system.
● Allow users to digitally sign PDF documents.
● Embed other file formats inside PDF documents as attachments.
For more information on the SAP Forms service's capabilities and pricing, see also SAP Forms Service by
Adobe (SAP Discovery Center).
● You have a consumer subaccount on SAP BTP, which is subscribed to the SAP Forms service.
● On your own subaccount, you have a user ID that is registered with SAP ID service. See Assigning
Members in the Neo Environment.
● You have purchased the license for the SAP Forms service by Adobe and received an e-mail notification
that the SAP Forms service has been configured for your subaccount (productive use).
● You have enbaled the service for your productive subaccount, see Enabling the SAP Forms Service for Your
Subaccount [page 7].
● You operate an ABAP system based on version SAP NetWeaver 7.0 SP13 or higher.
Restrictions
Not supported:
● Parallelization
● HSM (Hardware Security Module) / MS-CAPI (Microsoft CryptoAPI) credentials for digital signatures
(including USB hardware token)
● Custom Identity Provider (supported instead: SAP ID service, see Prerequisites)
● ABAP test report FP_PDF_TEST_28
● Direct access to graphic URLs on customer internal server networks is not supported.
Note
Find a workaround for accessing internal graphic URLs using the Cloud Connector in SAP Note
2171542 .
● NW 7.0, NW 7.01: in ABAP report RSPO0022, add the prefix XDC/Customer/ to the xdc file name you want
to assign to a SAP device.
Size limits:
For file upload via the configuration tool, some size limits apply. For more information, see Configuration Tool
[page 27].
Note
For more details and the current list of known restrictions, see also SAP Note 2171547 .
Enhancements
Related Information
Learn how your applications can call the SAP Forms service by Adobe to generate print or interactive PDF
forms.
There are currently two use cases for calling the SAP Forms service:
1. The SAP Forms service is called directly by an application running on a NetWeaver-based ABAP or Java
backend.
The application running on the ABAP backend uses the ABAP PDF Object, also known as the Forms
Processing Runtime. Java applications make use of the Java PDF Object. The ABAP backend can be an on-
premise system or a cloud-based system.
Example: Applications on Business Suite, S/4HANA on-premise edition, S/4HANA cloud edition.
2. The second use case is following the RESTful service principle. The SAP Forms service is not called directly.
Instead, the application calls the SAP Forms service REST API via HTTP.
The first edition provides a subset of the already known ABAP PDF Object features. They are addressed by
different URIs (Uniform Resource Identifiers) where each URI supports data and document exchange in a
JSON format. The SAP Forms service REST API delivers a comprehensive description and is easy to test.
Similar to the first use case, the application calls the REST API via an SAP BTP subaccount that must be
subscribed to the SAP Forms service.
Example: Services/applications running on SAP BTP.
Architecture [page 6]
Initial Steps in Your SAP BTP Subaccount [page 7]
Connecting Your ABAP System [page 10]
SAP Forms Service by Adobe REST API [page 39]
1.2 Architecture
You can use the service the SAP Forms service in two different scenarios:
1. Calling the SAP Forms service from an application running on an ABAP or Java backend.
In this use case, there are three sections where you connect your ABAP system to the SAP Forms service:
○ Configuration UI: You use the configuration UI to manage your own fonts, XDC files, credentials, and so
on.
○ Web Service: Your ABAP system calls the SAP Forms service in a web service using an SSL
connection.
○ Destination Service: the SAP Forms service calls back to the ABAP system to retrieve the form
template, using a secure connection in the Cloud Connector.
2. Calling the SAP Forms service from an application through the the SAP Forms service REST API via HTTP.
The diagram below shows examples (scenarios 1 and 2) for these use cases:
Enable the SAP Forms service for your subaccount and perform basic role assignment.
Before you can configure the SAP Forms service, you must enable the service in your SAP BTP subaccount.
Prerequisites
You must have a valid license for the SAP Forms service, see Pricing & Packaging (SAP Extension Suite).
Procedure
Once you are logged on to the SAP BTP cockpit, you can use a self-service to enable the SAP Forms service
from your subaccount.
Note
If you use the SAP Forms service from more than one subaccount, the following steps apply to each of
these subaccounts.
1. From your subaccount, choose Services from the navigation panel to access the list of available services.
The SAP Forms service is still in status Not enabled.
3. After a short processing time, the service and the configuration links are enabled.
4. Proceed with the next configuration step: Assigning Roles to Users [page 9].
How to assign roles to users for the SAP Forms service in your SAP BTP subaccount.
Your subaccount user needs a basic role assignment to be able to work with the SAP Forms service:
● The role ADSAdmin is required for calling the configuration tool of the SAP Forms service.
● The role ADSCaller is required for calling the web service of the SAP Forms service.
Prerequisites
The SAP Forms service must be enabled for your subaccount, see Enabling the SAP Forms Service for Your
Subaccount [page 7].
Procedure
To enable access to the web service of the SAP Forms service, do the following:
1. Open the SAP BTP cockpit for your subaccount that is subscribed to the SAP Forms service.
2. Choose Services.
3. Select SAP Forms Service and in section Service Configuration of the detail view choose the link SAP
Forms Service (Roles & Destinations).
4. Choose Roles in the navigation pane on the left-hand side. On the Roles screen, the roles ADSAdmin and
ADSCaller are displayed.
5. Select ADSAdmin to see the users assigned to this role in the frame below.
Note
This could be either your user for the Service Marketplace (s user) or your user for the SAP Community
Network (SCN user).
Result
Configure AS ABAP, the SAP Cloud Connector, and your SAP BTP subaccount to enable communication with
the SAP Forms service.
To establish the connection between the SAP Forms service and your ABAP system, you need to perform
several configuration steps on AS ABAP, the Cloud Connector, and your SAP BTP subaccount.
The key task is to specify and map the required destinations for RFC/HTTP communication.
Related Information
Setting up the SSL connection, RFC destination, and HTTP communication in AS ABAP.
You have to perform several configuration steps in your ABAP system to use it with the SAP Forms service.
Prerequisites
The communication between the ABAP system and SAP BTP must use SSL.
Note
For more information, see Configuring SAP NetWeaver AS for ABAP to Support SSL.
Related Information
Configure your SSL connection to SAP BTP in the ABAP Trust Manager.
To set up an SSL connection between the ABAP system andSAP BTP, you have to import the required security
certificates into AS ABAP.
We recommend you to create and use your individual SSL Client PSE for importing the required Root CA
certificates. For more information, refer to the Help Portal documentation Creating Individual SSL Client
PSEs.
Procedure
Perform the following steps to set up the SSL connection to the SAP BTP:
Note
For more information about managing certificates in AS ABAP, see also: Configuring SAP NetWeaver AS for
ABAP to Support SSL.
Note
Due to a switch of root certificates on SAP BTP, certificates on all new SAP BTP data centers and
certificate renewals on the existing data centers use the new root CA issuer DigiCert.
For up-to-date information on the domain-specific validity of certificates on SAP BTP, please follow this
SCN blog: Certificate Authority Change .
Result
After importing the certificate, the certificate list and details in ABAP Trust Manager look like this:
Create and configure an RFC destination for the SAP Forms service in AS ABAP.
To access the web service of the SAP Forms service, you need to create and configure an RFC destination.
Note
Procedure
The SAP Forms service supports two authentication types for logon: basic authentication and client certificate
authentication. Find the procedures for each authentication type below.
Basic Authentication
Note
You can find your subaccount's technical name in the SAP BTP cockpit:
The complete domain name for the target host (region host) [xxx].hana.ondemand.com
depends on the data center (region) that is assigned to your subaccount, see Regions and Hosts
Available for the Neo Environment.
○ <Service No.>
Enter 443, which is the default SSL port of the SAP BTP service.
○ <Path Prefix>
Enter the string /ads.web/AdobeDocumentServicesSec/Config?style=rpc
Note
Note
○ Specify also the HTTP proxy parameters if an HTTP proxy is required for your ABAP system to access
the internet.
Note
This user must be assigned to the role ADSCaller. Enter the same password you defined on the SAP
ID service for this user.
Caution
Do not use a Technical Communication User for the SAP Forms service authentication.
3. In Security Options , select Active to enable SSL and specify the name of the SSL certificate store where
you imported the SAP BTP root certificate.
4. Save your entries.
Note
If you perform the connection test in SM59, you get an HTTP 500 error. You can ignore this error message.
To test the connection, use the ABAP test report FP_PDF_TEST_00 instead.
1. To configure the Technical Settings of the RFC destination, proceed as described in Basic Authentication
above.
In the field <Target Host>, you must include the domain .cert into the URL string:
adsformsprocessing-<yoursubaccount:technicalname>.cert.<yourregionhost:
[xxx].hana.ondemand.com>
2. Choose the Logon/Security tab and select Do Not Use a User.
3. Provide a private key that is trusted by SAP BTP. To find a list of trusted certificate authorities (CAs), see
Trusted Certificate Authorities for Client Certificate Authentication.
4. Import the private key into your ABAP backend system using transaction STRUST, see Establish the SSL
Connection to SAP BTP [page 11].
Note
To set up the SSL connection, we recommend that you create your own PSE (personal security
environment). The new private key must import this PSE.
5. Assign the CN name of the private key to the ADSCaller role. You can find the CN name in the certificate's
<Subject> field in transaction STRUST:
Note
If you perform the connection test in SM59, you get an HTTP 500 error. You can ignore this error
message. To test the connection, use the ABAP test report FP_PDF_TEST_00 instead.
Note
If the connection test (using ABAP report FP_PDF_TEST_00) is successful, you see the version information
from the SAP Forms service:
Set up the ICF service in AS ABAP to enable HTTP communication with the SAP Forms service.
In the ABAP system, an active ICF service is required to enable communication between AS ABAP and the the
SAP Forms service destination service through the Cloud Connector.
Procedure
Note
These steps might not be required if you have already configured the destination and ICF service on your
ABAP system for the ADS running on SAP NetWeaver AS Java.
Download, install, and configure the SAP Cloud Connector for secure communication between the SAP Forms
service and the ABAP system.
The SAP Cloud Connector (Cloud Connector) provides a secure connection between the services running on
SAP BTP and the on-premise system. The Forms scenario uses this connection for callbacks of the SAP Forms
service to the ABAP system. Some use cases transfer template and runtime data using this channel.
Form templates are stored in the ABAP system and also cached on ADS. ADS loads the template from the
ABAP system when the form is rendered the first time and also when the template was updated. An ICF service
of the ABAP system performs this process using path /sap/bc/fp. If you use bundling of forms, the runtime
data is transferred using the path /sap/bc/fpads.
Note
For more information about bundling, see Bundling Form Templates in a Call.
The Cloud Connector is available for Linux and Windows. You can install it on the application server of your
ABAP system or on separate hardware. The prerequisite is that it is in the same network as your ABAP system.
● For more information about installing the Cloud Connector, see Installation.
● For more information about initial configuration of the Cloud Connector, see: Initial Configuration.
● For more information about operating the Cloud Connector, see Operations.
In the SAP BTP subaccount, the "real" (internal) host information of the ABAP system is not visible. A virtual
host name is used instead. In the Cloud Connector, you perform the mapping between the virtual and internal
host name.
Prerequisite
Procedure
Note
The <Internal Host> corresponds to the ABAP system you want to connect to the Cloud
Connector.
To display the host name of your AS ABAP, log on to AS ABAP and call transaction SICF. In the main
menu, choose Goto Port Information . The information is displayed on a screen, where the
HTTP port is specified under Services.
Choose Next.
5. Specify the <Virtual Host>: <virtual hostname>:<virtual port>. Any entry for <Virtual
Host> and for <Virtual Port> is OK.
Note
You should remember your entries for <virtual hostname>:<virtual port>, because you
need them later when configuring the destination in your SAP BTP subaccount.
6. Select a <Principal Type> (Kerberos or X.509 Certificate) if you are using principal
propagation, otherwise leave the default value None. Choose Next.
7. Optionally, you can enter a <Description> for your system mapping. Choose Next.
8. Check the summary of your entries and select Check Internal Host, if you want to verify the internal
host name you entered before.
3. Choose Finish.
Now you can see your mapping in section Mapping Virtual to Internal System in the list of mapped systems. To
add accessible resources for your mapping, do the following:
1. Highlight the row with the Virtual and Internal hosts you just added .
Note
After adding resources, the resources accessible on the internal host will be displayed in section
Resources Accessible On... below the list of mapped systems.
5. Press Save.
6. Repeat the steps by adding a second resource and enter the additional <URL path> /sap/bc/fpads.
The screenshot below shows the mapping of a virtual host to an internal host (this is the ABAP system) and the
resources used on the ABAP system.
Defined resources:
Enter ABAP destination data for SAP Forms Service in yourSAP BTP subaccount.
The destination information you specified for the ABAP system on the Cloud Connector also needs to be stored
in your SAP BTP subaccount.
Procedure
Note
The location ID must be specified in the Cloud Connector, see Set up Connection Parameters and
HTTPS Proxy.
10. Under <URL>, specify the Virtual host name you specified in the Cloud Connector for your ABAP system
before.
Note
The URL string looks like this: http://<virtual host name>:<virtual port>. Enter the values
for <virtual host name>, and <virtual port> as specified when you configured the destination
in the Cloud Connector.
Note
For more information on principal propagation (user propagation), see Principal Propagation
Authentication (destination in your SAP BTP subaccount) and Configuring Principal Propagation
(Cloud Connector).
13. Enter ADS_AGENT as a user and enter the password. Use the same password that is used for the
<ADS_AGENT> in your ABAP system.
14. Save your settings.
Note
Per default, destination FP_ICF_DATA_<SID> calls the default ABAP client (specified by the profile
parameter login/system_client).In order to use a non-default ABAP client, perform the following steps
in the ABAP system:
Related Information
Using ABAP reports to test your the SAP Forms service configuration.
After finishing all configuration steps, you can use several ABAP reports to test whether the connection is
working fine.
● FP_PDF_TEST_00
● FP_CHECK_DESTINATION_SERVICE
● FP_TEST_03
● FP_TEST_IA_01
● FP_CHECK_HTTP_DATA_TRANSFER
Note
For more information, see also: Checking ADS Configuration in an ABAP Environment.
Result
In case of problems, see SAP Note 944221 (currently only for configuration on the ABAP back end, for
example ICF service settings).
Copy configuration settings or files from your existing NetWeaver ADS installation to the SAP Forms service.
If you already have specific configuration settings or files on your NetWeaver ADS, you can migrate them to the
SAP Forms service.
● Fonts: /usr/sap/<SID>/SYS/global/AdobeDocumentServices/FontManagerService/fonts/customer
● XDC files: /usr/sap/<SID>/SYS/global/AdobeDocumentServices/lib
● Custom_xfa.XCI file: /usr/sap/<SID>/SYS/global/AdobeDocumentServices/lib
● Credentials: /usr/sap/<SID>/SYS/global/AdobeDocumentServices/TrustManagerService/trust/
credentials
● Job Profiles: /usr/sap/<SID>/SYS/global/AdobeDocumentServices/JobProfiles/Adobe/Print
Related Information
Use the configuration tool to manage your SAP Forms service settings.
Note
These files and settings are stored on SAP BTP in an area that is reserved exclusively for your tenant and
can only be accessed by members of your subaccount.
https://adsformsprocessing-<yoursubaccount:technicalname>.<yourregionhost:
[xxx].hana.ondemand.com>/ads.web/ui/customer/index.html
Note
You can find your subaccount's technical name in the SAP BTP cockpit:
Prerequisites
Restrictions
For file upload via the configuration tool, the following size limits apply:
Font file 10 MB
Job profiles 1 MB
Credential/certificates/CRLs 5 MB
Fonts 100 MB
XDC/XCI 5 MB
Job profiles 5 MB
Additional Limitations
Type Max. Size
Related Information
Upload and download fonts for PDF rendering with the SAP Forms service.
In the Fonts section, you can upload and download fonts required for PDF rendering.
Note
● OpenType® (.otf)
● TrueType® (.ttf)
● PostScript® Type 1 (.pfb, .pfm)
Note
In the XDC, XCI Administration section, you can manage various XDC and XCI files.
● XDC files contain print information, such as printer details and page layout information required to render
documents in various print formats, including PDF.
○ Under Customer XDC File, you can upload, download, display, and configure your own XDC files.
○ Under Adobe XDC File, you can view and download the XDC files that Adobe provides.
Note
Find more information in the Help Portal documentation about Mapping Fonts and Changing the Default
PDF Version.
Note
For details about setting printer options in your ABAP system (without modifying XDC files), see also:
Settings Using Additional Print Options in the Help Portal documentation.
● Credentials: Upload signatures used to sign PDF documents to the server and configure the signatures
with an alias name. You can also create new credentials here.
Note
The ReaderRights credential is preconfigured for your subaccount. You cannot install or delete
ReaderRights.
Note
For more information, refer to Installing and Configuring Credentials in the Help Portal documentation..
● Trusted Anchors: Upload certificates required for verifying PDF signatures to the server and configure the
certificates with an alias name. You can also create new certificates here.
● Certificate Revocation Lists (CRL):
○ Manage a list of revoked signatures.
○ Upload a new list to the server from your local machine and define URLs for these CRL files.
○ You can configure the CRL Invalidation Period to customize how CRL files are fetched from URLs.
For example, if you set its value to 0, the CRL file is fetched from the URL for every request. If you set
the value to -1, the CRL is not fetched from the URL.
● Passwords: Configure passwords required to protect rendered PDF files with their alias names.
Note
A password must be at least 6 characters long. The maximum length is 255 char.
You can add job profiles for different jobs that the application can use. Choose Job Profiles in the left pane and
expand a node in the Details pane to view job profiles in the system.
Some predefined Job Profiles are available in the Adobe folder. In addition, you can upload XML files containing
custom job profiles.
● To view the contents of a job profile, select the profile and choose Show Job Profile Content.
○ To view job profile templates provided by Adobe, expand the Adobe node and double-click a template.
● First, select the row JobProfiles. Then, choose Create Folder to create a folder to upload a custom profile.
○ To upload a custom job profile, choose Upload and browse to the folder containing the XML file that
specifies the custom profile.
You can use the Configuration UI to download PDF files containing system error logs.
Note
Important:
Support files will only be created and available, if the folder size is larger than 0 MB. The default size of the
folder is 0 MB.
Note
Important:
Be aware that support files may contain your business data. For more information on data security, see:
Data Storage Security.
For security reasons, you should delete stored Error.PDF files on a regular basis.
● Choose Support Files in the left pane to view the PDF files containing error logs.
● To download a PDF file, select it in the Details section and choose Download.
You can also configure the size of the folder that contains the error files.
● Choose Configure Folder Size and drag the slider to configure the folder size.
You can configure the size to a maximum of 10 MB. If the combined size of the error files exceeds the set
size, the oldest files are replaced by the most recent error files that are stored in the folder. If you reduce the
folder size, older error files will be deleted until the folder size is reached.
Set the cache size for the SAP Forms service destination folder or delete the forms/destination cache.
To configure the cache for the destination folder using the configuration UI, perform the following steps:
● Choose Configure Destination Cache Size to configure the size of the destination folder cache.
Note
● Choose Clear Cache to delete the cache for PDF forms or the destination cache.
You can use the configuration UI to download or upload your configuration data.
Choose Data Migration in the left navigation pane of the configuration UI to access the Download and Upload
functions:
You cannot download the alias names. After uploading downloaded files you have to re-enter the
corresponding alias names manually.
Note
Note
You can only download the files that you uploaded previously. Predefined data are not downloaded.
If you choose Upload Data, you can browse for the files to be uploaded. When uploading files, keep in mind the
following upload behavior:
● If you upload a file that already exists in the target tenant, the file will be overwritten.
Note
Uploading Support File settings overwrites the size configuration only. Existing error.pdf files are not
changed.
Note
Uploading Caching information only overwrites the cache size setting, not the cached content.
● When uploading files that don't exist in the target tenant, other existing files won't be touched.
● After uploading downloaded files from Document Security, you have to re-enter the corresponding alias
names manually.
Import a certificate and configure the required templates to connect your WebDynpro Java application to the
forms service.
The following procedure describes the required steps for connecting a WebDynpro Java application to the
forms service.
Note
Prerequisites
Procedure
5. In the popup, select entry type X.509 Certificate and import DigiCertGlobalRootCA.crt:
4. Create or adjust a second destination template SecureConfigPort_Document (see step 3). As URL
string, enter https://adsformsprocessing-<tenant id>.cert.<landscape>/ads.web/
AdobeDocumentServicesSec/Config?wsdl&mode=ws_policy&style=document.
1. On the Security tab, choose the option X.509 Client Certificate.
2. In the Details section, enter the imported <Private Key> for <Keystore View>
WebServiceSecurity.
3. In section SSL Server Certificates, select Ignore server certificates (insecure).
4. Choose Finish to save your entries.
Get started with the SAP Forms service REST API and find a collection of typical use cases.
The SAP Forms service REST API provides a subset of known ABAP PDF Object features. They are addressed
by different URIs (Uniform Resource Identifiers) where each URI supports data and document exchange in a
JSON format. The application calls the SAP Forms service REST API via HTTP.
Each request is always related to a pdf file entity as part of input our output payload (wrapped in a JSON and
added to the HTTP request body). As this part of the REST API is built upon the ADS soap service, each request
is handled within a HTTP POST request and the URIs themselves include sufficient information to describe how
the message is processed: For example, POST /pdf/adsGet/attachments. The User sends a PDF (POST
pdf/…) to get via the ADS (…/adsGet/…) functionality all pdf attachments (pdf/…/attachments).
Configure a destination in the SAP BTP cockpit to connect your application to the SAP Forms service via REST
API.
The SAP Forms service REST API uses a preconfigured destination to connect to the Adobe Document
Services (ADS) of the SAP Forms service.
To call the SAP Forms service, you need a user who is assigned to the role ADSCaller.
1. Go to the main screen of your subaccount in the SAP BTP cockpit and choose Services from the main
menu.
2. Select the tile SAP Forms Service by Adobe and choose the link SAP Forms Service by Adobe (Roles and
Destinations).
Note
By default, the user who enabled the service is assigned to the ADSCaller role.
4. You can also enter a new user and assign this user to the ADSCaller role.
5. Press Save.
The SAP Forms service destination ADS is partly preconfigured for your subaccount. To use it, you must finalize
it by defining the authentication.
1. Go to the main screen of your subaccount in the SAP BTP cockpit and choose Services from the main
menu.
2. Select the tile SAP Forms Service by Adobe and choose the link Destination for SAP Forms Service by
Adobe REST API.
3. The Destinations screen opens. Press the Edit button of the SAP Forms service destination ADS.
4. Specify the <Authentication> method. Two authentication types are supported: Basic Authentication
and Client Certificate Authentication.
○ Basic Authentication
Specify <User> and <Password>.
Note
The user must be the same user that you assigned to the ADSCaller role.
The user (CN value) of your private key must be the same user that you assigned to the
ADSCaller role.
5. Press Save.
Note
always returns an “Internal Server Error” message. You can ignore this message:
● https://adsrestapiformsprocessing-<yoursubaccount>.<yourregionhost:
[xxx.]hana.ondemand.com>/ads.restapi/v1/
Note
● https://adsrestapiformsprocessing-<yoursubaccount>.<yourregionhost:
[xxx.]hana.ondemand.com>/ads.restapi/
Note
Go to Your subaccount on SAP BTP cockpit and choose Services → Forms Service by Adobe → ADS REST API
Specification.
Related Information
Use the SAP Forms service template store REST API to save templates and schemas.
The SAP Forms service REST API provides several URIs to save templates and schemas. Multiple resources
allow different operations, for example the form resource, template resource and schema resource. The form
resource serves as the parent entity, while templates and schemas are always sub-entities. This means that
you must always create a form first.
A form can have several template files, but contains only one schema file at a time. The basic idea is to have
templates in different language versions and a schema that can always be mapped to each of the templates.
We recommend that you follow this suggested storage structure to organize templates and schemas.
1.9.3.1 Versioning
How to manage different versions for documents using the SAP Forms service template store.
Versioning is supported by the storage service and lets you have different versions of one single document. You
can only set versions for objects like schemas or templates. Every updatable entity holds a major version,
which is increased with every update. The entity with the highest version number in a version series is always
the latest version.
Old versions are stored in the service. You can access or delete them via the object ID only, while access via the
entity name always points to the latest version.
If an entity has multiple versions, you cannot delete the latest version without adding the query parameter ?
allVersions=true. Otherwise an error is returned to the client.
Three different storage entities exist: forms, templates and schemas. When a new cloud account subscribes to
the storage system, a personal storage space is assigned. This space can store forms, templates and files. It
also ensures account data separation. You can create, modify and delete every storage entity in your account
space.
You can use those identifiers within a REST API render call, if you reference a template from the storage by
using one of those identifiers. Thus, you need to send the data xml file only.
In addition to a few properties that are generated during creation, each entity in memory has an additional set
of properties that you can read and modify. Those properties let you organize the entities in an appropriate
way.
Related Information
1.9.3.2.1 Forms
How to use the forms entities in the SAP Forms service template store.
Forms are the basic entities of the storage system. You must create them before storing any templates or a
schema. They don’t support versioning.
Note
When you delete a form, all templates and the schema that refer to this form are also deleted.
formName String
note String
Property Description
Related Information
How to use the templates entities in the SAP Forms service template store.
You can store multiple templates as part of a form. The language of a template must be unique and is defined
as a mandatory field. Therefore, you can update or create the language property only once per form. Template
versioning is supported.
The JSON that needs to send and define to store a new form has various mandatory and optional properties:
description String
note String
masterLanguage String
businessArea String
businessDepartment String
Property Description
1.9.3.2.3 Schema
How to use the schema entity in the SAP Forms service template store.
There is only one schema per form, which you can usually map to the templates stored in the corresponding
form entity. Make sure that you use the correct mapping, as there is no mechanism to prove the matching of
schema and template. You can use schema and template to perform further modifications in the Adobe
LiveCycle Designer.
note String
Property Description
Related Information
Restrictions on naming apply to each storage unit. Therefore, only unicode letters or numbers are allowed for a
name.
Name Allowed
null No
“” No
““ No
“abc” Yes
“ab c” No
“ab2c” Yes
“ab_c” Yes
1.9.3.2.5 Pagination
To avoid long-timed requests, you can use pagination. For this purpose, query parameters are available to
retrieve templates or forms:
Parameter Description
You can use the ?select query parameter to limit the information that should be returned to the user. Possible
values:
Value Description
Add the ?templateSource query parameter in a REST API render request to reference a template from
storage.
● storageId
● storageName
● sapStorageId
● sapStorageName.
Example:
Sample Code
Request: /adsRender/pdf?templateSource=storageName
Input: {"xdpTemplate": "<formName>/<TemplateName>","xmlData": "<XML
Data File as BASE64 String>"}
In JSON, add: “xdpTemplate”:”<formName>/<templateName>”.
Find examples how to call the SAP Forms service template store.
You can enter the examples in postman. Each URI is protected by OAuth2.0.
Sample Code
Method: POST
URI: <landscape>/ads.restapi/v1/forms
Input: {
"formName": "TestForm",
"description": "Test Description",
"note": "Test Note"
}
Response: {
"creationDate": "2018-11-13T16:47:04.990Z",
"lastModificationDate": "2018-11-13T16:47:04.990Z",
"managedBy": "<accountId>"
}
Sample Code
Method: POST
URI: <landscape>/ads.restapi/v1/forms/TestForm/templates
Input: {
"xdpTemplate": "VGhpcyBpcyBhIHRlc3QgdGVtcGxhdGU=",
"templateName": "TestTemplate",
"description": "Test Description",
"note": "Test Note",
"locale": "DE",
"language": "DE",
"masterLanguage": "DE",
"businessArea": "IT",
"businessDepartment": "IT Test"
}
Response: {
"objectId": "<objectId>",
"versionNumber": "1",
"isLatestVersion": true,
"contentLength": "23",
"mimeType": "application/vnd.adobe.xdp+xml; charset=UTF-8",
"creationDate": "2018-11-13T16:52:17.929Z",
"lastModificationDate": "2018-11-13T16:52:17.929Z",
"managedBy": "<accountId>"
}
Sample Code
Method: PUT
URI: <landscape>/ads.restapi/v1/forms/TestForm/templates/TestTemplate
Input: {
"xdpTemplate": "VGhpcyBpcyBteSB1cGRhdGVkIHRlc3QgdGVtcGxhdGU=",
"templateName": "TestTemplateNew",
"description": "Test Description New",
"note": "Test Note",
"locale": "EN",
"masterLanguage": "EN",
"businessArea": "IT New",
"businessDepartment": "IT Test New"
}
Response: {
"objectId": "RTZ6buZ3RSJogGCge1gi99_WDmT8zTkdYMU1J5otkpU",
"versionNumber": "2",
"isLatestVersion": true,
"contentLength": "32",
"mimeType": "application/vnd.adobe.xdp+xml;charset=UTF-8",
"creationDate": "2018-11-13T16:55:23.115Z",
"lastModificationDate": "2018-11-13T16:55:23.318Z",
"managedBy": "<accountId>"
}
Use the SAP Forms service template store UI to create forms and assign templates and schemas to them.
Instead of directly using the REST API interface by sending HTTP REST calls, you can use the template store UI
to manage your forms easily, assigning different language versions of templates and a schema to a form.
Note
To manage forms, templates and schemas via the template store UI, your user must be assigned to the role
StorageUIAdmin:
1. From your subaccount in the cloud cockpit, choose Services SAP Forms by Adobe and open the link
REST API Roles & Destinations in the service overview.
2. Make sure your user is assigned to the role StorageUIAdmin. From the Roles screen, select the
predefined role StorageUIAdmin and check the table Individual Users below. If your user is not assigned,
choose Assign, enter your <User ID> in the pop-up window, and press Assign again.
The SAP Forms service template store UI lets you create new forms and assign them to one ore more
templates, as well as to a schema of your choice.
To manage forms, templates and schemas via the template store UI, proceed as follows:
Prerequisites
● Your user is assigned to the role StorageUIAdmin, see Assign User Roles [page 56].
● You have opened the template store UI (from your subaccount in the cloud cockpit, choose Services
SAP Forms Service by Adobe and open the link REST API Template Store UI in the service overview).
Assign a Template
Only alphanumeric characters and the '_' (underscore) character are allowed.
(Optional) You can leave an additional note for the form in section Optional Data that is displayed in the
forms (or favorites) list. When you are done, press Create.
2. Choose tab Templates in the detail view of the selected form and press the icon Add Template.
Note
<Template Name> and <Language> are unique identifiers. One form can have different language
versions of one template.
3. In the pop-up window, enter a <Template Name> and browse for the .xdp template file you want to use for
the template.
4. In the field <Language>, use the drop-down list to choose a language for your template.
5. (Optional) Use the fields in section Optional Data to enter additional information for the template: <Note>
(description), <Locale> (country code, for example EN), <Master Language> (original language of the
template), and <Business Area> (description of the work area the template is used for).
6. Press Add.
Assign a Schema
1. To assign a schema to the form, choose tab Schema in the detail view and press the icon Add Schema.
Versioning
1. Click on a template/schema you would like to update and press the Update button.
2. In the pop-up window, select the new file and enter the data to be updated.
3. Add the updated template/schema.
4. In the templates/schema overview, the old version is still displayed in a tree view.
Note
Single old versions of a template can always be deleted. If you delete the newest version, all old
versions are also deleted.
Template:
Schema:
Customize the SAP Forms service template store UI to adjust it to your needs.
Prerequisites
● Your user is assigned to the role StorageUIAdmin, see Assign User Roles [page 56].
● You have opened the template store UI (from your subaccount in the cloud cockpit, choose Services
SAP Forms Service by Adobe and open the link REST API Template Store UI in the service overview).
1. To move a form to your favorites list, select it from the overview and choose the icon Save Form to Favorites
in the header bar of the detail view.
2. The form is added to the Favorite Forms list in the forms overview.
3. To remove forms from the favorites list, select Save Form to Favorites again.
3. Press Ok.
Implement supportability functions and analyze issues for the SAP Forms service.
This section provides information related to the SAP Forms service by Adobe. It is directed to SAP developers
and support teams who work with applications for generating print or interactive PDF forms by using the
Adobe Document Services. Read the below prerequisites and guidelines for the usage of the SAP Forms
service.
Related Information
If you want to analyze and troubleshoot errors occurring in your application that are related to the SAP Forms
service REST API, perform the initial steps described below:
The SAP Forms service REST API provides supportability functions that help to analyze connectivity issues or
render problems. Error messages and Error.PDF in the response streams inform about the reason of issues.
The possibility of setting traces helps to better understand the root causes.
To call the SAP Forms service REST API in your application you must implement a handling of error messages
and response streams that are provided by the REST API.
In case of HTTP 200 response code, a TraceString node will be added to the resulting JSON, showing additional
runtime information.
The following sections provide more details and examples explaining the JSON structure.
The JSON response contains responses and error messages from the SAP Forms service. Depending on the
feature called by the user the JSON output will vary. See the documentation of the REST API for each feature
under:
https://adsrestapiformsprocessing-<yoursubaccount>.<yourregionhost:
[xxx.].hana.ondemand.com>/ads.restapi/
Note
Besides rendering request errors, the general Error JSON will always have the same structure.
HTTP 500
{ "message": "Internal API or ADS Error",
"results": "Short description of error",
"traceString": "Detailed description about what exactly went wrong",
"errorLevel": "ADS or API Error Level" }
When the SAP Forms service fails to generate an output, it returns an Error.pdf file. The REST API provides this
Error.pdf as part of the JSON response (HTTP 500). This is restricted to the rendering feature of the service.
The Error.PDF contains information that is useful to analyze and to reproduce the issue if needed. Parts are, for
example, the template file, the runtime xml data and trace information.
HTTP 500
{ "message": "Internal ADS Rendering Error",
"results": "Error during rendering of PDF file",
"traceString": "Detailed description about what exactly went wrong",
"errorLevel": "ADS Error Level",
"errorPDF": "V2hvIGluIHRoZSB3b3JsZCB3aWxsIGRlY29kZSB0aGlzIFN0cmluZz8=" }
If the output of the returned PDF is not as expected, for example if there are problems with pagination or
layout, or if the trace information contained in the Error.pdf is not detailed enough, set a higher trace level.
POST
https://adsrestapiformsprocessing-<yoursubaccount>.[xxx.]hana.ondemand.com/
ads.restapi/v1/adsRender/pdf?TraceLevel=2
Content-Type: application/json
{ "template" : "VGhpcyBjb3VsZCBiZSB5b3VyIHRlbXBsYXRl",
"data" : "VGhpcyBjb3VsZCBiZSB5b3VyIGRhdGEgZmlsZQ=="}
The following section provides an overview of different issue types related to the SAP Forms service REST API
that may occur in your application. Basically, you can distinguish between internal API errors and internal ADS
errors (i.e. errors related directly to the ADS component of the SAP Forms service).
Issue Types
The primary piece of information helping to understand and correct the problem is usually included in the
response error JSON. Within the JSON, detailed information about the corresponding processing issue is
shown.
To analyze, check the response strings in JSON from the API. The message in the response JSON tells you, if
it’s an ADS error or an API error. This could be Internal API Errors or Internal ADS Errors.
Internal API Errors are usually assigned a specific HTTP Error Code. Besides the information included in the
JSON, this code may help to interpret the error cause:
415 Unsupported Media Type The Media Type send to the API is not
application/json.
Internal ADS Errors are always assigned to an HTTP 500 status code.
The following information describes the recommended action for each error type.
Related Information
1. Follow the instructions stated in the JSON Error response to detect missing mandatory fields or formatting
issues.
2. Check your application:
1. Identify and fix all wrong BASE64 strings based on the information given in the JSON error response.
2. Check your application:
1. Does the BASE64 string contain the expected BASE64 string set?
2. Is the BASE64 string length valid?
3. Is the BASE64 encoding technique correctly applied?
3. Correct your application.
If you receive an error, do the following checks in the SAP BTP cockpit of the consumer subaccount. The
required check may depend on the error message.
Note
See also OAuth Setup using the Postman Client [page 76]
Note
The Base URL for the calling features of the SAP Forms service REST API is: https://
adsrestapiformsprocessing-<yoursubaccount>.<yourregionhost:
[xxx.]hana.ondemand.com>/ads.restapi/v1/ (see also: Regions and Hosts).
1. Is the URL pointing to the API valid? Check, if the name of the consumer subaccount <yoursubaccount> is
correct. See step 4.
2. Correct the URL according to the available REST resources in the documentation.
3. Check if the SAP Forms service REST API works by opening the API documentation in your browser.
Example: https://adsrestapiformsprocessing-<yoursubaccount>.
[xxx.]hana.ondemand.com/ads.restapi/
4. You will receive a response, if you enter the correct URL and the SAP Forms service REST API is up and
running.
In case you receive an error message, create a message under BC-SRV-FP-CLD.
1. Did you include the OAuth Token to the Authorization part of the http header?
2. If the token is not available yet, follow the instructions in OAuth Setup using the Postman Client [page 76].
The JSON response contains am Error.PDF, when the SAP Forms service detected a render problem.
1. Call the SAP Forms service REST API by sending the application request again, but set trace level to 2. This
will request the generation of a PDF with additional information. Extend the URL as follows (example):
POST
https://adsrestapiformsprocessing-<yoursubaccount>.[xxx.]hana.ondemand.com/
ads.restapi/v1/adsRender/pdf?TraceLevel=2
Content-Type: application/json
{ "template" : "RXJyb3I=",
"data" : "RXJyb3I=" }
The SAP Forms service REST API returns the JSON including the PDF with additional information and the
response of the ADS. The SAP Forms service REST API adds a TraceString to the PDFOut.PDF with detailed
Information about the response from ADS.
{ "name" : "PDFOut.PDF",
"file" : "VGhpcyBpcyByYW5kb20gb3V0cHV0IGZpbGU=",
"traceString" : "Example Trace String" }
2. If the application displays the PDF in Adobe Reader, you can also download the PDF from there.
3. Open the PDF and check, if following files are attached to it.
○ Form layout file (.xdp file)
○ XML data file
○ Trace file
HTTP 200 - OK
If the responded PDF does not look like as expected, you request a PDF with additional information. This helps
you analyzing.
1. Call the SAP Forms service REST API by sending the application request again, but set trace level to 2. This
will request the generation of a PDF with additional information.
2. Follow the same procedures as described in Internal ADS errors - PDF Rendering issues above.
Always have a look at the JSON traceString tag of the SAP Forms service REST API response, if you receive an
internal ADS Error. It contains a description of the problem. Try to identify and fix the root cause of the error.
Find a collection of typical scenarios that help you use the SAP Forms service REST API.
OAuth Setup
The SAP Forms service REST API requires OAuth for authentication.
Note
If you use a different client, refer to the corresponding product-specific documentation and apply the
settings accordingly.
Create a simple REST client in Java that calls the SAP Forms service REST API and process the JSON response
entity: Implement a Simple REST Client in Java [page 80]
Provide your own form templates using the AdobeLiveCycle Designer: Using the Adobe LiveCycle Designer
[page 83]
HTML5 Integration
Learn how to integrate the template store API into an HTML5 application running in the SAP BTP Neo
environment: Integrate the REST API in an HTML5 Application [page 90]
Use a Java OAuth client to retrieve OAuth credentials for the SAP Forms service REST API.
This example uses the Java Apache HttpComponents to generate an OAuth token from the SAP BTP OAuth
service.
Note
Depending on your specific implementation, retrieving the OAuth credentials may require a different
procedure.
Follow these steps to register an OAuth client in the SAP BTP cockpit.
1. Go to the main page of your subaccount in the SAP BTP cockpit and choose Security → OAuth.
2. Go to the Clients tab. Here you can register new clients that are authorized to use the SAP Forms service
REST API.
3. Press the button Register New Client.
Create a Java OAuth client to retrieve OAuth credentials for the SAP Forms service REST API.
An Apache HTTPClient java object is used to establish the communication between client/OAuth server and
SAP BTP. This client helps you to send and consume the information that you need to retrieve the access
token.
The communication between client and OAuth Server is based on an httpPost request. You can retrieve the
OAuth token by accessing the Token Endpoint URL which can be found in the SAP BTP cockpit.
Logon to the cockpit and choose Security OAuth Tab: Branding Section: OAuth URLs :
The token endpoint is protected by Basic Authentication. The <client ID> serves as user name and <client
secret> as password.
Note
The credentials must be encoded with BASE 64 and added to the header of HTTP Post object.
It is required that you define the grant type parameter and the scope within the request. Add the parameters to
the HTTP body of the request as content-type: “application/x-www-form-urlencoded”.
The HTTP response message from the server can be interpreted by the HttpResponse object after executing
the POST request.
HttpResponse includes the message entity which has been returned by the REST API. Therefore, we should
unwrap this response object to process the JSON entity accordingly.
{
"access_token":"abcabcabcabcabcabcabcabcabc00",
"token_type":"Bearer",
"expires_in":5184000,
"scope":"generate-ads-output"
}
In case your requests are sent through a proxy, add the following code lines to your httpPost object before
sending the actual request:
Next Step
Sample Code
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
public class OAuthClient {
private String tokenEndpoint = "https://oauthasservices-
<subaccountuser>.[xxx.]hana.ondemand.com/
oauth2/api/v1/token";
private String client_id = "myclient_id";
private String client_secret = "mysecret";
private String grant_type = "client_credentials";
private String scope = "generate-ads-output";
public String callService() {
/* HTTPCLIENT AND HTTPPOST OOBJECT */
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost httpPost = new HttpPost(tokenEndpoint);
/* AUTHENTICATION CREDENTIALS ENCODING */
String base64Credentials =
Base64.getEncoder().encodeToString((client_id + ":"
+ client_secret).getBytes());
/* HEADER INFO */
httpPost.addHeader("Authorization", "Basic " + base64Credentials);
httpPost.addHeader("Content-Type", "application/x-www-form-
urlencoded");
/* PROXY CONFIG */
HttpHost target = new HttpHost("proxy", 8080, "http");
RequestConfig config =
RequestConfig.custom().setProxy(target).build();
httpPost.setConfig(config);
/* OAUTH PARAMETERS ADDED TO BODY */
StringEntity input = null;
try {
input = new StringEntity("grant_type=" + grant_type + "&scope=" +
scope);
httpPost.setEntity(input);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
/* SEND AND RETRIEVE RESPONSE */
HttpResponse response = null;
try {
response = httpClient.execute(httpPost);
} catch (IOException e) {
e.printStackTrace();
}
/* RESPONSE AS STRING */
String result = null;
try {
result = IOUtils.toString(response.getEntity().getContent(),
"UTF-8");
} catch (IOException e) {
In this example, you will learn how to configure OAuth using the Postman client.
Steps
Learn how to register an OAuth client in the SAP BTP cockpit. The following procedure uses the Postman client
as example.
Note
If you use a different OAuth client, enter the product-specific data accordingly.
1. Go to the main page of your subaccount in the SAP BTP cockpit and choose Security → OAuth.
2. Go to the Clients tab. Here you can register new clients that are authorized to use the SAP Forms service
REST API.
3. Press the button Register New Client.
The following screenshot of the SAP BTP cockpit shows the usage of Postman as client:
10. Make a copy of the URLs for <Authorization Endpoint> and <Token Endpoint>.
You will need to enter these URLs later in your OAuth client:
Note
For other OAuth clients, please refer to the corresponding product documentation.
Note
Access the OAuth token administration for the Postman client in the SAP BTP cockpit.
The newly created token is visible in the Token Management of the SAP BTP cockpit .
1. Go to the main page of your subaccount in the SAP BTP cockpit and choose Security → OAuth.
2. Go to the tab Branding.
3. Choose the End User UI URL. The following screen appears (example):
Create a simple Java REST client that calls the SAP Forms service REST API and process the JSON response
entity.
In this example, you will learn how to send an ADS Render Request to the REST API and process the REST
response accordingly.
There are numerous possibilities and libraries which can help to create a simple REST client in Java. In this
example, we are using the Apache HttpComponents. This library provides a wide toolset for the creation and
maintenance of low-level Java components focused on HTTP and associated protocols. Following packages are
required:
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.commons.io.IOUtils;
Example Code
As the communication between client and server is done via HTTP we create an Apache HTTPClient. This client
side HTTP transport library can transmit and receive HTTP messages.
In the next step, we create an HttpPost Object. This object enables an HTTP Post request. Thus, a target URL
and head information should be added as well as the actual JSON input.
The API is protected by OAuth2. For configuration details, see Configuring OAuth 2.0.
The OAuth token must be added to the header of every request send to the service.
Data input and output is always wrapped in JSON envelope. For this reason, content-type should be always
application/json.
request.addHeader("content-type", "application/json");
The JSON input string can be mapped to a StringEntity object which is added as an entity to the POST request.
The HTTP response message from the server can be interpreted by the HttpResponse object after executing
the post request.
HttpResponse includes the message entity which has been returned by the REST API. Therefore, we should
unwrap this response object to process the JSON entity accordingly.
The resulting String now includes the JSON returned from the REST Service. This is just one possibility to
convert the HTTP response. Of course, any other method can be applied in to fit best to your implementation.
In case requests being sent behind a proxy please add following configuration to your HttpPost object.
Sample Code
package com.sap.formsprocessing.rest;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
public class RestClient {
Use the Adobe LiveCycle Designer to provide your own form templates for the SAP Forms service REST API.
Adobe LiveCycle Designer supports you in creating templates for interactive and print forms by providing a
wide set of design functions.
Find more information in this section how to install and use the Adobe LiveCycle Designer.
To download and install or update the Adobe LiveCycle Designer, follow the instructions in SAP note 2187332
(download and installation of version 11.0).
Related Information
In this short and simplified example, we will demonstrate how to create a template and a sample data file
binding using the Adobe LiveCycle Designer.
Note
This example does not include all capabilities of the LiveCycle Designer. It can be used as a starting point
for later development.
4. On the next page choose Finish, the template overview will open.
5. Add objects from the object library to the design view via drag and drop.
1. Several text fields
2. Date/time field
3. Time field
We will use these objects to demonstrate the sample data generation and data binding.
8. In the next view select an appropriate file path and file name and generate the data xml-file.
In the next steps, this file will be integrated into LiveCycle Designer’s Data View:
9. Close the Form Properties window and select the Data View tab next to the Design View. Right-Click below
the Data View tab and choose New Data Connection….
(Confirm the prompt about the clearance of Use Name data bindings).
12. On the Data View you should now find the data nodes from the data xml file. These nodes can be bound to
the fields on the template’s Design View.
14. Confirm the binding and select Update all related properties. Press Ok.
15. Repeat the data binding for all remaining fields accordingly.
16. For every data node bound to a field you will find a new tag/symbol in the Data View.
Note
It is the responsibility of the application implementing the REST Service to maintain and provide the XML
data structure that fits the preferred PDF template. External data that you may want to include in a
resulting PDF must be transferred in this XML structure accordingly. Otherwise, it is not possible to render
a PDF based on template and data file.
Learn how to integrate the template store API into your HTML5 Application running in the SAP BTP Neo
environment.
Prerequisites
● Create a new client and a destination for the template store API: Create an OAuth Client and a Destination
[page 91]
● Map your destination to the HTML5 application and secure the destination: Set Up your HTML5
Application [page 93]
Create an OAuth client and a destination for the SAP Forms service template store REST API.
Field Value
Name <anything>
Description <anything>
Subscription formsprocessing/adsrestapi
3. Save the value for <Secret>, as you will use it later. In this example, it will be referred to as Client
Secret.
We now use the created client to connect to the template store via a destination.
Field Value
Type HTTP
Description <anything>
URL https://adsrestapiformsprocessing-
<yoursubaccount:technicalname>.<yourreg
ionhost:[xxx].hana.ondemand.com>/
ads.restapi/
Authentication OAuth2ClientCredentials
Note
You can find your subaccount's technical name in the SAP BTP cockpit:
The complete domain name for the target host (region host) [xxx].hana.ondemand.com depends
on the data center (region) that is assigned to your subaccount, see Regions and Hosts Available for
the Neo Environment.
Next Step
Map your destination to an HTML5 application and protect the destination by assigning user roles.
Sample Code
{
"path": "/ads.restapi", (the template store will be mapped to this
path in your url)
"target": {
"type": "destination",
"name": "templateAdmin" (Name of Destination you created)
},
"description": "templateAdmin"
}
4. Save the changes and commit them to the HTML5 application repository.
5. After activating the changes, open the following URL in a Web browser to test the destination:
https://<html5-app-name>-
<accountname>.dispatcher.<landscape>.sap.hana.ondemand.com/ads.restapi/
6. You should now see the swagger documentation of the template store API.
By default, every SAP BTP user who knows the above-mentioned URL can access the template store API.
Therefore, we recommend that you protect the destination using roles.
1. Open the neo-app.json file of your HTML5 application and add following object to the property
securityConstraints:
Sample Code
{
"permission": "<name of your role>",
"description": "Access Forms by Adobe",
"protectedPaths": [
2. Save the changes and commit them to the HTML5 application repository.
3. Open your HTML5 application in the SAP BTP cockpit and choose Overview. You will see the new role in
Application Permissions.
4. Press Edit and make required changes.
5. If you want to use a custom role, navigate to Roles and create a new role. The role will then appear in the
dropdown menu of Application Permissions.
Note
For the changes to take effect, you must logout and login into the SAP BTP cockpit.
1.10 Security
Find an overview of security measures for the SAP Forms service by Adobe.
Assign specific authorizations to subaccount users for the Assigning Roles to Users [page 9]
SAP Forms service.
Use the Cloud Connector for secure communication be Installing and Configuring the Cloud Connector [page 19]
tween the SAP Forms service and the ABAP system.
Set up an SSL connection between the ABAP system and Configuring the ABAP System [page 11]
SAP BTP for communicaton with the SAP Forms service.
Protect your business data when downloading support files. Download Support Files [page 32]
Configure credentials, certificates and passwords for your Configure Document Security [page 30]
PDF documents.
For data migration, download security-relevant configuration Data Migration [page 34]
files.
Set up an OAuth client when using the the SAP Forms REST API Scenarios [page 69]
service REST API.
To integrate the Template Store REST API into an HTML5 ap Integrate the REST API in an HTML5 Application [page 90]
plication, protect the destination used.
Make sure you comply with applicable data protection and Data Protection and Privacy [page 95]
privacy laws for processing personal or sensitive data.
● For a maximum security level, make sure you use appropriate virus and malware protection software when
uploading or downloading data via the SAP Forms service, in addition to the virus scan provided by SAP.
● We recommend that you use Adobe Reader only in sandbox (default) mode.
Make sure that you comply with applicable data protection and privacy laws if you are processing any personal
or sensitive data through the SAP Forms service.
Note
SAP does not provide legal advice in any form. SAP software supports data protection compliance by
providing security features and data protection-relevant functions, such as blocking and deletion of
personal data. In many cases, compliance with applicable data protection and privacy laws is not covered
by a product feature. Furthermore, this information should not be taken as advice or a recommendation
regarding additional features that would be required in specific IT environments. Decisions related to data
protection must be made on a case-by-case basis, taking into consideration the given system landscape
and the applicable legal requirements. Definitions and other terms used in this documentation are not
taken from a specific legal source.
Hyperlinks
Some links are classified by an icon and/or a mouseover text. These links provide additional information.
About the icons:
● Links with the icon : You are entering a Web site that is not hosted by SAP. By using such links, you agree (unless expressly stated otherwise in your
agreements with SAP) to this:
● The content of the linked-to site is not SAP documentation. You may not infer any product claims against SAP based on this information.
● SAP does not agree or disagree with the content on the linked-to site, nor does SAP warrant the availability and correctness. SAP shall not be liable for any
damages caused by the use of such content unless damages have been caused by SAP's gross negligence or willful misconduct.
● Links with the icon : You are leaving the documentation for that particular SAP product or service and are entering a SAP-hosted Web site. By using such
links, you agree that (unless expressly stated otherwise in your agreements with SAP) you may not infer any product claims against SAP based on this
information.
Example Code
Any software coding and/or code snippets are examples. They are not for productive use. The example code is only intended to better explain and visualize the syntax
and phrasing rules. SAP does not warrant the correctness and completeness of the example code. SAP shall not be liable for errors or damages caused by the use of
example code unless damages have been caused by SAP's gross negligence or willful misconduct.
Gender-Related Language
We try not to use gender-specific word forms and formulations. As appropriate for context and readability, SAP may use masculine word forms to refer to all genders.
SAP and other SAP products and services mentioned herein as well as
their respective logos are trademarks or registered trademarks of SAP
SE (or an SAP affiliate company) in Germany and other countries. All
other product and service names mentioned are the trademarks of their
respective companies.