Skip to Content
Author's profile photo Tobias Hofmann

Configuration of Adobe Document Services

Adobe Document Services (ADS) comes installed by default with NetWeaver AS Java and is SAP’s standard way of creating PDFs by SAP applications. These PDFs can be normal PDFs or interactive (called Adobe Interactive Forms). The SAP system using ADS can be any NetWeaver ABAP or Java system. This makes the setup process a little bit more complex: it depends on your use case which steps have to be executed. You can have the ADS system that is a NW Java system, a NW ABAP system and another NW Java system that use ADS. And many times the calling NW Java system is the same system ADS is running on.

Tip

When you start configuring ADS, write down each system and its role. If not, it`s pretty likely you`ll have later some problems in identifying which connection and user you are configuring.

For this document I`ll consider the scenario of an ABAP system calling ADS to generate a PDF. In this scenario, the components involved are ADS, NW ABAP and NW Java. These are also the main areas to consider when setting up ADS.

/wp-content/uploads/2014/02/ads1_384115.jpg

Things are more complicated because the communication between the ADS and the calling system is bi-directional. For instance, the ABAP system calls ADS and sends the data to be converted and after ADS finished the conversion, ADS calls the ABAP system. After all, you want to use PDF in your ABAP system. Simplified, the information looks is like:

/wp-content/uploads/2014/02/ads2_384230.jpg

What does this mean now when you have to configure ADS together with ABAP?

  1. Check that there is an ADS user with the right UME actions on NW Java
  2. Check that there is an ABAP user with the right profile on NW ABAP
  3. There needs to be a connection from ABAP to ADS (destination type web service)
  4. There needs to be a connection from ADS to ABAP (as a destination: NW Java, as a SICF service: NW ABAP)

Configuration: ADS

As ADS is a JEE application it makes use of the security and authorization concept of JEE. This means that you

  1. a) need an ADS user and
  2. b) assign the right permissions to this user

to be capable of executing the application. As ADS is a NW Java application, to gain access the right assignment of UME action to the user executing / calling the application is needed (therefore, you can use any username). By default, the user ADSuser is created and the UME actions are made available in the NW Java system when ADS is installed. If they are missing, something is wrong with the ADS installation.

Short: on the Java side the ADS configuration is actually nothing more than assigning permissions.

Parameters to remember

Parameter

Value

Name of ADS user

_____________________________

Password of ADS user

_____________________________

While the SAP documentation talks about assigning a role, what counts are the UME actions assigned to that role. Looking up the UME actions for default user ADSuser.

ADSuser:

/wp-content/uploads/2014/02/ads3_384231.jpg

Role

/wp-content/uploads/2014/02/ads4_384232.jpg

UME actions

/wp-content/uploads/2014/02/ads5_384233.jpg

As soon as the user ADSuser is assigned to the role SAP_ADSCALLER the necessary permissions are available and this user can access and use ADS.

Remember

ADSuser is the user used by the ABAP system to call ADS. The ABAP system will use this user to log on to NW Java and to execute the ADS web services. This is not a service user used in the background by ADS.

Configuration: ABAP

In the ABAP system, configuration involves main tasks:

  1. Set up a HTTP connection so the ABAP system can call ADS
  2. Maintain user used by ADS to call the ABAP system
  3. Set up the destination called by ADS to transfer the PDF

Let us go through each one of these three steps, starting with the user administration.

1. HTTP Connection

This configuration is needed so that the ABAP system can actually call ADS.

Transaction: SM59

Information flow: ABAP -> ADS

By default, the name of the destination is ADS and of type G (which means HTTP. After all, ADS is exposed as a web service).

/wp-content/uploads/2014/02/ads6_384234.jpg

The technical settings point to the NetWeaver Java server where ADS is running.

Parameter

Value

Target host

FQDN of NetWeaver Java server

Service No

Port of NetWeaver Java server

Path Prefix

/AdobeDocumentServices/Config?style=rpc

/wp-content/uploads/2014/02/ads7_384235.jpg

Logon tab

Here the logon information send by ABAP to Java to authenticate as an ADS user are given. The user entered here MUST have the right UME permissions assigned. The user information entered must match what was used in Configuration: ADS (see above).

/wp-content/uploads/2014/02/ads8_384239.jpg

2. User SAP Help


To send back the PDF, ADS invokes a ICF service on the ABAP server. To do so, it must authenticate on the ABAP server. Therefore, a user must be made available on the ABAP system that has the This is the user used by ADS to send back the generated PDF to the ABAP system.


Information flow: ADS -> ABAP.

Transaction: SU01

Paramter

Value

User name

ADS_AGENT

User type

Service

Assign role

SAP_BC_FPADS_ICF

/wp-content/uploads/2014/02/ads9_384240.jpg

3. ICF service. SAP Help

This configuration is used by ADS to actually send back the generated PDF. ADS is not using a RFC / BAPI connection but a web URL. As in ABAP a URL is backed by a ABAP application, a valid ABAP user with the right permissions to execute the ABAP application is needed. This user was provisioned in the previous step. This implies also that the PDFs are not simply stored as pdf files in a file repository but processed by a SAP application.

Transaction: SICF

Information flow: ADS -> ABAP

Enter fp in the service name field and execute the report. The service will be shown. Ensure that the service is active.

/wp-content/uploads/2014/02/ads10_384241.jpg

Configuration: ADS to ABAP

Configure a connection between ADS and ABAP so that ADS can call the ABAP system and send back the generated PDF. This is done in NW Java using a destination. SAP Help

Open NWA and navigate to SOA -> Destinations

/wp-content/uploads/2014/02/ads11_384242.jpg

Create a new destination. The name of the destination needs to follow a certain naming convention: FP_ICF_DATA_<SID>

/wp-content/uploads/2014/02/ads12_384243.jpg

In case the <SID> of your ABAP system is SID, the correct name to enter here is FP_ICF_DATA_SID. (If your ABAP SID is AB1, it would be FP_ICF_DATA_AB1).

Next, enter the connection settings. These are needed by ADS to call the ABAP server using HTTP and for the logon information. In case the HTTP server of the ABAP server is listening on port 8000 on SID and client 100 with logon language English, the information to be entered looks like this:

/wp-content/uploads/2014/02/ads13_384244.jpg

The last step in the destination configuration wizard is to provide the logon information. Remember, this is how ADS will authenticate itself against the ABAP system. Therefore, a user with the right permissions on the ABAP system must be entered here. For basic authentication, (NetWeaver Java will transmit username and password) using the default user ADS_AGENT the information to be entered is:

/wp-content/uploads/2014/02/ads14_384245.jpg

Conclusion

After going through the basic setup, there are a few things to note.

  1. On the Java ADS side, you can have more than one ADS user. They only have to be assigned to the correct UME actions. If you want, you can have N users: ADS1, ADS2, …, ADSN
  2. For each ABAP system you`ll have to create a destination on the ADS NW system.
  3. Each destination can have its own user, these do not have to be the same or even share the same password
  4. Both the destination ADS uses as well as the URI of the ABAP service are fixed. While ADS uses the destination to resolve the host name (and user/password), the path on the ICF service cannot be configured through the destination and is fixed.

In case ADS is not working as expected, you can take a look at this document: Solving ADS related issues

Assigned Tags

      20 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Nice Tobias.

      Would be good to have this blog in the Portuguese Space. ADS is required for incoming automation.

      Regards

      Eduardo Chagas

      Author's profile photo Tobias Hofmann
      Tobias Hofmann
      Blog Post Author

      Tem razão, ADS é bem importante no Brasil. Acredito que Google Translate não ajuda mais? Me dá alguns dias ou semanas ... ou meses 🙂

      Author's profile photo Former Member
      Former Member

      uhahahahaha acredite... o pessoal apanha! É ridiculo mas pra quem faz a primeira vez....

      Author's profile photo Gaurav Rana
      Gaurav Rana

      Hi Tobias,

      Thanks for sharing a nice doc with us.

      Regards,

      Gaurav

      Author's profile photo Mahendra varman
      Mahendra varman

      Tons and tons of thanks !!

      Got a clear picture about ADS.

      I was searching for ADS configuration long back and was fed up with no such material.

      Pretty good self explanatory manual. Really helpful !!

      Warm regards

      Mahendra varman

      Author's profile photo Former Member
      Former Member

      Thanks Tobias for this excellent doc,

      Understanding ADS through SAP HELP is a big headache.

      Your document has simplified ADS.

      But in NWA is this the only config changes you do? In VISUAL ADMIN I used to do a list of steps.

      Thanks

      Sabyasachi

      Author's profile photo Former Member
      Former Member

      Hi,

      Nice document  ,Easily understand the ADS configuration......Helpful one....'

      Keep Posting

      Regards

      Arun

      Author's profile photo Raquel Pereira da Cunha
      Raquel Pereira da Cunha

      Great blog Tobias. Very useful and detailed information.

      Author's profile photo Tobias Hofmann
      Tobias Hofmann
      Blog Post Author

      Obrigado!

      Author's profile photo Former Member
      Former Member

      Nice document.Thanks for sharing

      Author's profile photo ABHISHEK SINGH
      ABHISHEK SINGH

      Nice Document !!!

      Can you have a document for SSO and FPN

      It will be  a great help .

      Thanks again for your wonderful work .

      Regards,

      Abhishek

      Author's profile photo abilash n
      abilash n

      Thanks Tobias for sharing this.... I will try to add errors faced in ADS. So that this blog will be used as reference for SAP with Adobe 🙂 🙂

      Author's profile photo Former Member
      Former Member

      This is exactly the level of documentation needed for the more esoteric, seldom-touched aspects of a typical SAP environment. Danke!

      Author's profile photo Darijo Pavlic
      Darijo Pavlic

      exceptional good one! Thanks!!!

      Author's profile photo Chandrashekar Thadishetti
      Chandrashekar Thadishetti

      Thanks for sharing,Good one.

      Author's profile photo Former Member
      Former Member

      Hello,

      Sorry for replying in old post.

      For my environment, ADS is configured for Java System and backend ABAP has 5 Application servers, PDF is working on only one application server and not able to view for other app servers, but in Destination on Java server FP_ICF_DATA_SID, other application server is configured.

      For eg : FP_ICF_DATA_SID destination appserver2:port is configured, i am able to view pdf in app server 3 only it is not working for rest of servers.

      Tried to configure message server host but not working (ABAP has load balancing),

      Regards

      KSK

      Author's profile photo Tobias Hofmann
      Tobias Hofmann
      Blog Post Author

      You should inform the URL of your reverse proxy (Web Dispatcher) for ABAP in FP_ICF_DATA_SID.

      Author's profile photo Former Member
      Former Member

      https://youtu.be/SDbvKNJwSHA

       

      I have recorded the configuration steps on this video

       

      Author's profile photo Marco Sampaio
      Marco Sampaio

      Hi Tobias,

      I am having trouble finding information about whether any piece of data from the source system (ERP) would ever be stored in the ADS (Java AS) database. If we connect an ADS system to multiple source systems, could data from one system be visible to any other systems? I understand ADS is a processing tool, but since runtime data (business data) is sent to ADS, I wanted to be sure that is never stored locally for any reason or period of time.

      Thanks,

      Marco

       

      Author's profile photo Peter Baumgartner
      Peter Baumgartner

      Hi Marco,

      did you find any information if and which data is stored on the ADS? As the ADS of one of our customers is Prio 1 I'm evaluating Failover scenarios if one instance fails.

      If no data is stored - a second installation with a virtual IP would be sufficent without creating a "real" cluster installation.