After reading difficulties of several people on SCN posts regarding basic ADS configuration, I thought of writing this simple blog on ‘How to setup simple ADS between an ABAP and JAVA systems?’.
- ABAP system should be able to print PDF through ADS on JAVA stack.
- ABAP and JAVA are standalone systems (not dual stack).
- To be specific; SE38 > FP_TEST_00 > F8 > F8 > (Output device LP01 – Dummy printer) > Print preview > PDF should be displayed.See the screenshots below.
IMPORTANT: Please read and understand the document “Configuration Guide for SAP Interactive Forms by Adobe Adobe Document Services”. Below steps are not complete, they are in supplement to the steps given in the configuration guide.
When things don’t work even after following the configuration guide, you can use below steps to understand, double check and fix it.
First let’s make ADS working on JAVA alone.
- Create user J2EE_ADSUSR (equivalent to ADSUSER) as described in the section “Creating the User ADSUser and Assigning the Security Role” in the configuration guide.
- Visual Admin > Cluster tab > Server > Services > Security Provide > User Management tab >Edit mode > Create User button. Make sure you add the user to ADSCallers Group.
- On the Policy Configurations tab, in the Components area, select com.adobe/AdobeDocumentServices*AdobeDocumentServicesAssembly.jar.
- On the Security Roles tab, select ADSCaller from the Security Roles list.
- In the Mappings area, choose Add > assigns the J2EE_ADSUSR user to the ADSCaller security role
- On the Policy Configurations tab, in the Components area, select the wsnavigator and make the change as shown below, so that wsnavigator service is accessible to all.
- Change the user type of J2EE_ADSUSR to technical type.
- Stop and start below two applications
- Update URL, User & Password as show below in Server → Services → Web Services Security →Web Service Clients → sap.com.tc~wd~pdfobject → com.sap.tc.webdynpro.adsproxy.AdsProxy*ConfigPort_Document.
Let’s test if it works.
Open the URL http://<host>:<port>/wsnavigator in web browser
It should open without asking password.
Then open the URL http://<host>:<port>/AdobeDocumentServices/Config
Again without asking password a page like below should be displayed.
Click on Test > Then on rpData (test.types.p1.RpData parameters) > Then on Send button > Enter user as J2EE_ADSUSR and its correct password > Press Submit button
You should see the OK response as show below.
Congratulations! ADS standalone on JAVA side works correctly.
Next step is to create RFC in SM59 on ABAP side. Create the RFC named ADS as show below.
And perform the connection test. You should get OK code.
Little more to do.
JAVA has to send back pdf after processing, therefore it needs a connection (JAVA to ABAP> and credentials.
Let’s do that now.
Create a user ABAP_ADSAGNT on ABAP side and assign the role SAP_BC_FPADS_ICF. If you don’t have the role, download and upload from any other systems if you have. Make sure PFCG > SAP_BC_FPADS_ICF > Edit > Authorization tab is green and User tab is green, else generate profile and do user comparison to make them green.
Make sure the user type as system or communication so that you are not asked to change the password while logging in.
Activate SICF services; /default_host/sap/bc/fp and /default_host/sap/bc/fpads
Go to Visual Admin > Server > Services > Destinations > HTTP > New button > FP_ICF_DATA_<SID>
In URL field enter as given below
The existing entries <server> and <port> refer to the AS ABAP. The ABAP HTTP port is provided in transaction SMICM; choose Goto -> Services.
Enter client where ABAP_ADSAGNT user was created.
Change Athentication to BASIC and enter user ABAP_ADSAGNT and password
Up to SAP NetWeaver 7.0x, choose 'Save and Test'; as of SAP NetWeaver 7.10, choose 'Ping Destination'.
You should see code 200.
IMPORTANT: Remove the /sap/bc/fp/form/layout/fp_test_00.xdp part of the URL. Means do not forget to change the URL back to http://<server>:<port>
And press SAVE button (NOT SAVE & TEST), only SAVE button please.
Congratulations! JAVA to ABAP connection is also done.
Time to test with SE38 > FP_TEST_00 as shown in the use case in the beginning of this blog.