Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
AJAYTR_ATR66
Participant

#ATR(13)

Informative Note:

  ADS is one of the Golden concept in SAP BASIS. All basis newcomers should know about ADS Configuration and how it will work. This blog is created to provide more insights on ADS with ABAP and JAVA.  

ADS with ABAP:

Prerequisites:

  • We are having separate ABAP System and NetWeaver Java System with ADS Software component installed. Package will be available by default in fully activated appliance systems to simply extract and install in addition to NW JAVA.

AJAYTR_ATR66_0-1707737202877.png

AJAYTR_ATR66_1-1707737202880.png

  • You can also install ADS Component in any NW Java System manually. Please follow below blog (Linked) to install ADS JAVA COMPONENT SCA.

SAP JAVA component patch update(SCA) using telnet #ATR

AJAYTR_ATR66_2-1707737202886.png

NOTE:

To check ADS: Use SE38 Report Execution: [None of the configuration done yet]

RFC Connection Name: ADS
FP_CHECK_DESTINATION_SERVICE
FP_PDF_TEST_00
FP_TEST_00 

CHECK FP_TEST_00:

AJAYTR_ATR66_3-1707737202886.png

KEY POINTS:

  • In Simple, Business users needs to display PDF Documents in ABAP System which can be done using connection with ADS – Adobe Document Services (Forms). Hence, our scenario is to establish connection between ABAP (Separate) and Standalone NW JAVA System having ADS Component installed. Backend Communication User Type can be SYSTEM/TECHNICAL USER Type. No Manual Login (DIALOG) required. When Business user try to display PDF Documents, it will use backend RFC Connections.
  • ADS should be available in all ABAP Systems in your Project Landscape since it will be commonly used by all business users irrespective of SAP System Type (ECC, BW, SCM, S/4 HANA, etc.,)
  • If you changed ADS Communication user in Java System, you need to maintain those passwords in all connected ABAP Systems. If you changed ADS Communication user in ABAP System, you need to maintain updated password in NW JAVA HTTP Destination for that ABAP System.
  • To avoid this scenario, Always prefer to have a dedicated standalone NW JAVA (ADS) system -> Remove password expiry 90 days in NW JAVA which set by default -> Use Same ADS Service user password for all connected ABAP Systems. By this way, we can easily configure back if collapsed and avoid connectivity issues.
  • I’m using HTTP (Without SSL) Connections only in both ABAP and JAVA System.

AJAYTR_ATR66_4-1707737202886.png

  • Naming Conventions -> We can use any username for ADS Communication users. SAP Pre-defined UserName should be used only for ADS on JAVA – ConfigPort_Document & ADS on ABAP – FP_ICF_DATA_SID. Exceptional Case – ADSCALLERS group.  Rest can be user defined.

 

  • "DONOT CREATE USERS/GROUP UNNECESSARY -- My scenario - ADS with ABAP. Hence, ADS with JAVA not required. Most of the users were creating ConfigPort_Document by mistake which is for ADS with Java. Also, Creating Empty ADSCALLERS Roles and Group without knowing it's usage.

SHORT STEPS:

 1) Set HTTP Communications between ABAP and JAVA with User having ADS Roles

  • Activate SICF Services FP & FPADS in ABAP System.
  • Create ADS ABAP Service user in ABAP System.
  • Create HTTP Destination to ABAP System in NWJAVA(ADS) with created ADS Service user.
  • Create ADS Java Web Service User in NW JAVA System
  • Create HTTP Destination ADS to NW JAVA in ABAP System with created ADS Java Web Service user.

2) Enable ADS in SLD

ADS with ABAP CONFIGURATION:

1) Set HTTP Communications between ABAP and JAVA with User having ADS Roles

Activate Form Processing SICF Services

  • /sap/bc & /sap/bc/fpads
  • FP – Dual Stack - ABAP and JAVA(ADS) installed in same system/server.
  • FPADS – ABAP and JAVA(ADS) installed in different servers (Our Scenario). It will just have additional authorization for file access

AJAYTR_ATR66_5-1707737202887.png

  • Create ADS_SERV SYSTEM Type in ABAP System.

AJAYTR_ATR66_6-1707737202888.png

  • Assign Role – FPADS which have ICF Authorizations.
  • Role - SAP_BC_FPADS_ICF

AJAYTR_ATR66_7-1707737202889.png

Create HTTP Destination to ABAP System in NWJAVA(ADS) with created ADS_SERV User

AJAYTR_ATR66_8-1707737202890.png

  • Name – FP_ICF_DATA_SID mandatory.
  • ADS will check with FP_ICF_DATA_SID (Destination Lookup - Predefined by SAP) only by default.
  • Connection won’t be successful if you defined any other name.

AJAYTR_ATR66_9-1707737202890.png

  • You will face below Destination Error if you create RFC instead of HTTP Connection.

AJAYTR_ATR66_10-1707737202893.png

AJAYTR_ATR66_11-1707737202894.png

AJAYTR_ATR66_12-1707737202895.png

  • While pinging destination, you will face “HTTP – 404 Error – Expected.”

AJAYTR_ATR66_13-1707737202896.png

Create ADS Java Web Service User (ADS_WS) in NW JAVA System for Performing ADS Form Operation using SAP_ADSCALLER role.

AJAYTR_ATR66_14-1707737202897.png

  • Assign Role - SAP_ADSCALLER –  [[ ADSCALLER and ADSMONITOR roles will be available once ADS SCA Java component installed ]]
  • ADSMONITOR Role will be used for viewing logs. Assign it if you enabled ADS traces only. Else, there won't be any use. 

AJAYTR_ATR66_15-1707737202898.png

Create HTTP Destination ADS to NW JAVA in ABAP System with created ADS_WS user.

Path: /AdobeDocumentServices/Config?style=rpc

[Direct Web Service Link to generate and perform ADS operation ]

AJAYTR_ATR66_16-1707737202900.png

AJAYTR_ATR66_17-1707737202901.png

  • You will face “HTTP – 405 Method Not Allowed” - Expected”

AJAYTR_ATR66_18-1707737202901.png

  • HTTP Communications completed between ABAP and JAVA.

  2) Enable ADS in SLD – Functional Units

URL: http://fqdn:port/sld/fun

AJAYTR_ATR66_19-1707737202905.png

How ADS Works?

  • User logged into ABAP System and executed PDF report which should display PDF Document.
  •   Operation ->  System will look for Connection Name which specified (say ADS default). Hence, it will detect HTTP – SM59 – ADS Connection.

AJAYTR_ATR66_21-1707737202909.png

AJAYTR_ATR66_22-1707737202910.png

  • Style=rpc – denotes remote procedure call.

AJAYTR_ATR66_23-1707737202910.png

  • We have provided direct webservice ADS link for operation. It will check whether RFC Stored User have SAP_ADSCALLERS role for logging into system. If role exists, It will login with Stored ABAP_WS user and execute ADS operation.

AJAYTR_ATR66_24-1707737202911.png

  • Now, It will look for default ADS destination lookup settings (FP_ICF_DATA_SID) to send processed document data back to ABAP System. Connection came from HTTP and same will be checked for return as well.
  • We have already created http destination with source ABAP host - ADS_SERV User.

 AJAYTR_ATR66_25-1707737202912.png

AJAYTR_ATR66_26-1707737202913.png

  • Hence, it will return document data processed from Java to ABAP host with ADS_SERV user. ADS_SERV user should have authorization to process ADS data (Authorization object – S_FP_ICF) which build/calculate sent document via FP SICF services. We have already activated SICF services and Form template generation access provided to ADS_SERV user as well.

AJAYTR_ATR66_27-1707737202915.png

AJAYTR_ATR66_28-1707737202916.png

AJAYTR_ATR66_29-1707737202916.png

  • Hence, Document data will reach ABAP host without any issues and it will be shown in the GUI.
  • Test with SE38 Report

AJAYTR_ATR66_30-1707737202918.png

AJAYTR_ATR66_31-1707737202922.png

AJAYTR_ATR66_32-1707737202924.png

  •    We have configured ADS on ABAP Successfully. Our scenario ends here

ADDITIONAL

1) Why ConfigPort_Document Destination Template? ->> ADS on JAVA

  • Do this step only if you want to view PDF forms/Documents in NW Java itself. Nothing to do with ABAP Systems. Just enable SLD and create Web Service Destination Template.
  • In ABAP, We will use SM59 RFC Dest to reach Adobe Document Web Services directly. Consider, we are having standalone Java System OR consider our NW JAVA with ADS itself. Forms created in JAVA System. If we need to view forms in JAVA itself, we need to set communication between Java Apps (Inbuilt PDF Java Object Layer) and ADS Web Service since NW JAVA doesn’t know the way to reach ADS Config Web services.
  • This can be done by creating ConfigPort_Document (CaseSensitive) Web Service Destination template. These parameter names are defined by SAP to call ADS.

Maintain SOA - Destination Template – ConfigPort Document

AJAYTR_ATR66_0-1707812223685.png

  • Create WSIL Destination – ConfigPort_Document
  • URL: NW JAVA ADS WSIL FILE which have all WSDL Service Config including ADS OR Direct NW JAVA ADS Config WSDL Service Link

<wsdl>http://nwjava_ads_fqdn:port/AdobeDocumentServices/Config?wsdl&mode=ws_policy&style=document </wsdl>

AJAYTR_ATR66_34-1707737202928.png

AJAYTR_ATR66_35-1707737202934.png

  • You can use any user having SAP_ADSCALLER role to perform ADS form operation. I have created ADSGLOBAL user and used the same.

AJAYTR_ATR66_36-1707737202937.png

AJAYTR_ATR66_37-1707737202938.png

  • When we try to view form in Java, It will check Web Service Destination templates - > ConfigPort_Document (To call ADS - Predefined) -> Use Stored NW JAVA ADS Link and user to reach ADS -> Use ADS config services -> Provide output back in Java System.

Check ADS on JAVA using WSNavigator:

AJAYTR_ATR66_38-1707737202941.png

AJAYTR_ATR66_39-1707737202942.png

  • Click Next

AJAYTR_ATR66_40-1707737202944.png

  • ADS Version will be displayed. Hence ADS on JAVA will work fine. We can able to view forms/documents in Java itself.

AJAYTR_ATR66_41-1707737202948.png

  • No Need to create ConfigPort_Document if you plan ABAP on ADS only (My Scenario). I have created just to show about ADS on JAVA Configuration. Deleted from my end now.
  • Most of the projects use only ADS on ABAP. But, they have configured ConfigPort_Document without knowing that it's actually for Java Environment.

2) Why ADSCALLERs GROUP and ROLES?

Most of the users are creating empty ADSCALLERS role and ADSCALLER Group in ABAP Systems without knowing the usage.

    Case 1: If you have ABAP backend as JAVA UME (Dual Stack) and you need to have separate ADS_SID user for each ABAP system instead of common single ADSUSER/ADS_WS, do the below steps.

  •  We can create role with ADSCALLERS (SAP Defined) role manually in ABAP System so that it will reflect in JAVA UME – User Management - Roles. It will also create empty ADSCALLERS group automatically.
  •  Now, We can assign all ADS_SID users into ADSCALLERS group. SAP_ADSCALLERS role should be assigned to ADSCALLERS group as well Else, it will be empty group only.
  •  It will help to avoid manually providing SAP_ADSCALLERS roles to separate ADS_SID users.

  Case 2: If you are using UME as an Java itself (My Scenario: Standalone NW JAVA ADS System with Oracle Database), then you can create ADSCALLERS group directly in the User Management. Assign ADS_SIDs and SAP_ADSCALLERS role to that group.

AJAYTR_ATR66_0-1707809768297.png

  •   It will help to avoid manually providing SAP_ADSCALLERS roles to separate ADS_SID users. But It is recommended to use single ADS User (ADS_WS - My scenario) to connect all ABAP Systems for easy configuration. 

AJAYTR_ATR66_42-1707737202950.png

AJAYTR_ATR66_43-1707737202951.png

AJAYTR_ATR66_44-1707737202952.png

3) Why we need to clear CACHE?

  • If you view PDF Document say FP_TEST_00 itself, cache will stored and output will be displayed even ADS configuration collapsed/deleted. This was done with the help of Caches.
  • Once you changed any ADS Configuration in ABAP System, Clear cache in ADS - NW JAVA. Logout your ABAP session and Login again and check your ADS.

AJAYTR_ATR66_45-1707737202953.png

  • Reference: I have viewed PDF

AJAYTR_ATR66_46-1707737202954.png

  • I have deleted Destination Service.

AJAYTR_ATR66_47-1707737202956.png

AJAYTR_ATR66_48-1707737202956.png

  • I have executed report SE38 and viewed PDF again.

AJAYTR_ATR66_49-1707737202957.png

  • Connection will fail at backend but output showed since document already saved in cache.
  • To avoid misconfiguration, Always clear cache and check again.

 

Thanks for Visiting !

Please do connect and follow my Linked In Profile - https://www.linkedin.com/in/ajaytr66/

AJAY TR - ATR - SAP BASIS ADMINISTRATOR

Labels in this area