In last few months, I found that SAP PI knowledge seekers are asking for the answers to same questions regularly in SDN forum. So I thought of bogging all answers to the regular questions at one place. Here it is.
Question 1:
How to solve the following error coming in Message Monitoring?
HTTP_RESP_STATUS_CODE_NOT_OK
Answer 1:
Go to transaction SICF /default_host/sap/xi/engine double click on service
Now check whether you have entered correct information for the following fields.
Client, user id, password, and language information
Question 2:
How to solve the Status "HOLDING" in RWB?
Answer 2:
Go to RWB --> Adapter Engine --> show additional criteria --> Enter the QUEUE NAME in field "Conversation_ID" (for this you have to first know the queue name from details of the messages having status "Holding".) --> Expand "Configure table columns" --> choose "Conversation ID" and "Sequential Number" --> display. --> Sort the list by ascending order of "sequential number" --> cancel the message whose sequential number is latest and go on canceling in ascending order.
Question 3:
How to solve the following error coming in Message Monitoring?
RuntimeException in Message-Mapping transformatio~
Answer 3:
a. The error is in Message Mapping. Go to the Test tab and test the message mapping with the incoming payload file.
b. Check the source structure with the input file that you are sending to XI. Both structures should be exactly same. I mean all nodes and the node structures.
c. Refresh the cache (both Delta cache and full cache) in SXI_CACHE transaction in PI.
Question 4:
How to solve the following error coming in Message Monitoring?
Obligatory node xxx missing in the IDOC structure xxx
Answer 4:
The error is in Message Mapping. Check the node xxx and make sure all its attributes are mapped properly. For Ex: SEGMENT="1" and BEGIN="1"
Question 5:
The message has been sent from sender to PI or from PI to receiver but nothing is coming in Message Monitoring. Where is the input file?
Answer 5:
The file got stucked in the PI queue. Check the following.
a. qRFC Monitoring: transaction SM58 Click Deregistration Click Registration
b. qRFC monitor (Outbound queue) Check the queue and monitor the problem
c. qRFC monitor (Inbound queue) Check the queue and monitor the problem
Question 6:
How to solve the following error coming in Message Monitoring?
No receiver could be determined
Answer 6:
Problem is in Receiver Determination. Check it. If everything is fine then just edit and change something then remove that change and again reactivate the receiver determination.
Question 7:
How to solve the following error coming in Message Monitoring?
Party and service not defined
Answer 7:
The problem is that the file is not able to get any party or service configured for itself.
Check the structure of input file and confirm that the same structure is assigned to Sender Interface.
Question 8:
How to solve the following error coming in Message Monitoring?
Error while refreshing the XI runtime cache
Answer 8:
The problem is in Cache refresh.
Go to SXI_CACHE, then from Menu - XI Runtime Cache - choose “Start Delta Cache Refresh” (F6) and then choose “Start Complete Cache Refresh” (shift + F6)
Question 9:
a. How to change the namespace “ns1” to “if” in the output file
b. How to change the encoding format in output XML file
Answer 9:
Use the adapter module AF_Modules/XMLAnonymizerBean in your receiving CC. Put its module key as "0" and the module key for CallSapAdapter as "1". The module parameters will be (1) anonymizer.acceptNamespaces = namespace1 if (2) anonymizer.quote = " (3) anonymizer.encoding = ISO-8859-1.
Refer OSS Note 880173.
Question 10:
How to add extra namespaces or namespace instances
Answer 10:
Use the XSLT mapping after the message mapping in your interface mapping.
Sample XSLT code is below.
xmlns:xsl="" xmlns:ns0="">
Question 11:
a. I::000 --> This error comes while uploading the IDOC metadata in XI in transaction IDX2
b. XI is not getting authorized by R/3 System
c. “name or password is incorrect. (repeat log on)" error comes while testing the authorization of the RFC destination to SAP R/3 system from SAP PI system (SM59)
Answer 11:
In SAP PI system Go to transaction SM59 check the user id and password in the "security/logon" tab and make ensure it is the RFC service user id and its correct password is entered.
Also make sure that this user id has following roles.
a. SAP_XI_APPL_SERV_USER
b. SAP_XI_IS_SERV_USER
c. SAP_ALL
Question 12:
After transporting PI objects, the objects are not getting updated / created in the target system.
Answer 12:
Go to transaction SE01 --> Transports --> Global Information --> Transports --> check the error displayed there.
Also confirm that the business systems are ready for source and target system before transportation.
Question 13:
After some changes or modification in SLD….the changes are not reflecting in IR or ID
Answer 13:
Go to IR --> Menu --> Environment --> Clear SLD Data Cache
Go to ID --> Menu --> Environment --> Clear SLD Data Cache
Question 14:
If RWB is not opening and showing some stack problem or authorization problem
Answer 14:
Go to transaction SU01 --> user = XIRWBUSER -->Unlock
Question 15:
While transporting or updating the objects in SLD, if the following error comes..
CIM_ERR_ALREADY_EXISTS
Answer 15:
Go to SLD -> Administration -> Content Maintenance -> Select the following Subset -> All classes, Class -> BCSystem. then delete SAP_BCSystem. Then retry.
Question 16:
How to solve the following error coming in Message Monitoring?
a. NO_RECEIVER_CASE_ASYNC
b. No receiver could be determined
Answer 16:
In the Receiver determination, check if the sender service and interface are same as in the SXMB_MONI --> Receiver Identification --> SOAP Header --> Main --> Sender Service and Interface.
Question 17:
How to solve the following error?
Error Category = XI_J2EE_MESSAGING_SYSTEM and error code = HTTP_TRANSMISSION_ERROR
Answer 17:
1. The file size is big (probably more then 10 MB so reduce the file size or extend the file size constraint in XI and extend the time out limit for the adapters in XI.) It’s always better to have the file size in between 1 MB to 5 MB. If size less then 1MB or more then 5MB then performance decrease.
2. JCo call is the call between java stack and ABAP stack. So restart the whole XI system (both JAVA and ABAP stack) and process the file again.
Question 18:
How to solve the following error?
Message interface is not defined in process (Integration Process)
Answer 18:
Go to SXI_CACHE,--> then select the IP --> display active version --> choose the latest version of workflow task --> do "repeat activation" --> do "deployment" --> "testing" --> "execute". The problem is due to the reason that the IP has already been transported to production and then get modified in development so when we transport it again then the newer version of workflow task (WS12340002) is not activated over the older version (WS12340001).
Question 19:
How to maximize the HEAP SIZE?
Answer 19:
First Close the Repository Framework Application.
Then from the main Exchange Infrastructure page (browser) instead opening Integration Repository link save the repository.jnlp to local directory say desktop.
Now open this file with any text editor. You fill see some XML tags. Identify this tag
You can change the max heap size according to your requirement. But this max heap size depends on certain factors such as Operating System as well on the hardware (32 bit or 64 bit) and also on the physical RAM you have from where you run IR. You can give up to 2 GB if it is windows OS. You can check SUN's official site for max heap sizes for different Operation Systems & hardware’s.
e.g., for max-heap-size = 1 GB change the above tag value as follows.
Save the JNLP file and open this file either by double clicking or by explicitly with Java Web Start application. In general the directory structure for Java Web start application is "Drive>:\Program Files\Java\j2re1.4.2_XX\javaws\javaws.exe". But by default all JNLP files will be associated with Java Web Start when Java Web Start is installed.
Another way to change Heap size memory is as follows:
Run configtool.exe. (/usr/sap/SID/instanceName/j2ee/configtool)
Under cluster-data ... under instance_IDXXX ... Click on server_IDXXX
On Java Settings section, change Max Heap Size memory to 2048.
Save the changes and close Configtool.
Reboot your system.
Question 20:
How to cancel Integration Process (BPM) and stop the process instance from waiting for new messages?
Answer 20:
Delete the old workflows using transaction SWWL.
Question 21:
How to stop and start BPE?
Answer 21:
Go to Transaction code SWF_XI_ADM_BPE.
Question 22:
How to access Java documents and Source Text for the sample Adapter Module in SAP PI?
Answer 22:
You can find the sample adapter module in the path “C:\usr\sap\J2E\JC00\j2ee\cluster\server0\apps\sap.com\com.sap.aii.af.sample.ra\connector\connectors\sample_ra.rar”.
Question 23:
Can we convert multiple sender values to one receiver value by using "Value mapping group"?
Answer 23:
Yes, you can convert multiple sender values to one receiver value by using "Value mapping group".
Once you are in the "Edit Value mapping Agencies"
a. Put "Sender1" under "Value of " and "Receiver1” under "Value of ".
b. Right click on "Sender1" and select "Value mapping in all agencies".
This will open a new window "Value mapping Group"; therein you can provide multiple sender values (Sender1, Sender2....).
Question 24:
How to transport Alert Categories?
Answer 24:
Go to ALRTCATDEF (In DEV) --> Transport (In TOOLBAR) --> Current Alert Category --> Create a Customizing Request and note down your request number
Go to SE09 (In DEV) --> Check customizing request and Modifiable --> Choose Display Button --> Go to your Request number --> and release the sub node and then release the request.
Go to STMS (In QA) --> Import --> Import your request
With the above method, alerts rules are not transported, you have to create them manually.
Question 25:
How to transport Alert Rules?
Answer 25:
Create a workbench transport request manually with transaction SE09. Delete the corresponding unclassified task of that request. Double click on the transport request and click on button 'edit <-> change'. For Program ID enter R3TR, for Object Type enter TABU and for Object Name enter SXMSALERTRULES.
Now click on the button with the key symbol (located under 'Function'). Click on 'Insert row' and enter * for table key. Save the request, release it and import it in the target system.
Refer SAP Note 1110295
Question 26:
How to solve the following error coming in Message Monitoring?
Interface mapping Object ID ***** Software Component ****** does not exist in runtime cache
Answer 26:
Refresh SXI_Cache and CPACache.
a. To refresh SXI_CACHE, go to transaction SXI_CACHE and click “start complete cache refresh”
b. To refresh CPACache, enter the following URL
http://:/CPACache/refresh?mode=full
Question 27:
How to solve the following error coming in Message Monitoring?
Answer 27:
In the Receiver determination, check if the sender service and interface are same as in the SXMB_MONI --> Receiver Identification --> SOAP Header --> Main --> Sender Service and Interface.
Question 28:
How to solve the following error coming in CC Monitoring?
Error occurred while connecting to FTP server: Peer certificate rejected by ChainVerifier
Answer 28:
Use Fully Qualified Domain Name (FQDN of the FTPS server) (for Ex. Abc.sap.com) instead of IP address (11.22.33.44)
Root cause of problem is the IP to DNS name resolving problem.
Means we are using IP in FTP CC but DNS name (Common name (CN) or Host Name) should be used in FTP CC.
The SSL handshake needs to confirm that the FTPS client is using the FTPS server’s DNS name to access the FTP service since only the DNS name of the FTPS server is stored in the certificate signed by the trusted CA (e.g. VeriSign). That does make sense since it’s the way the Certification Authorities works.
Briefly, Use Fully Qualified Domain Name (FQDN of the FTPS server) (for Ex. Abc.sap.com) instead of IP address (11.22.33.44)
Question 29:
How to test the alert?
Answer 29:
You can test the alert by executing the report RSALERTTEST.
To check the log, execute the report SXMSALERT_LOGREADER.
Question 30:
How to use OneAsMany function in Message Mapping?
Answer 30:
Let us take an example where the use of contexts can be emphasized.
In the source message shown above OrderNumber appears only once while OrderItem can occur multiple times within the OrderHeader node. Suppose we want to map OrderNumber multiple times in the target message, such that it is available under the target node corresponding to every sales order item. To do this, we can use the node function called useOneAsMany as described below:
a. The first input parameter expects the list of values that we want to propagate to the target message.
b. The second input parameter expects the number of iterations or how many times we want to replicate the value given in the first parameter.
c. The third input parameter is the list of context changes. Depending on this parameter the source values will be propagated to the target after every context change.
Note: For this function to work as expected, the first two parameters must contain the same number of contexts while the last two parameters must contain the same number of values.
Question 31:
How to solve the following error coming in CC Monitoring in RWB?
Mandatory parameter 'xml.keyfieldName': no value found
Answer 31:
In the FCC configuration in Communication channel, you have to provide the following information.
RecordSet Structure = R1,*,R2,*
Keyfield Name = Key
(Field Key must exist in the Recordset Structures R1 and R2.)
Or
RecordSet Structure = R1,*,R2,*
R1.fieldNames = F1,F2
R1.keyFieldName = F1
R1.keyFieldValue = V1
R1.fieldSeparator = ;
R1.endSeparator = 'nl'
Question 32:
How to solve the following error coming in Message Monitoring?
Unable to interpret IDoc interface ia_SAP_ABC2SAP_MI
Answer 32:
Check whether the ED (IDOC occurrences have been changed by creating an ED) is used properly in IR and ID.
a. In Message Mapping, use ED
b. In Interface Mapping, use original IDOC
c. In Interface Determination, use original IDOC
Question 33:
If IDOC has been changed in R/3 then what should be done with respect to PI?
Answer 33:
Go to transaction IDX2 --> Delete the old IDOC structure and Load the new IDOC structure
Question 34:
How to solve the following routing error?
NO_RECEIVER_CASE_BE or NO_RECEIVER_CASE_ASYNC
Answer 34:
This means no receiver could be found. Check your Receiver Determination. Activate and update cache. Asynchronous messages can be manually restarted.
Question 35:
How to solve the following routing error?
TOO_MANY_RECEIVERS_CASE_BE
Answer 35:
More than one receiver found. Check your ID configuration to ensure that there is exactly one receiver for the synchronous message. Multiple receivers for synchronous interfaces are not permitted.
Question 36:
How to solve the following mapping error?
JCO_COMMUNICATION_FAILURE
Answer 36:
Check whether RFC destination AI_RUNTIME_JCOSERVER is correctly configured
Question 37:
How to solve the following mapping error?
NO_MAPPINGPROGRAM_FOUND
Answer 37:
Ensure that mapping program exists and is activated. If it exists then update the cache.
Question 38:
How to solve the following mapping error?
EXCEPTION_DURING_EXECUTE
Answer 38:
This error occurs due to erroneous XML formatting. Check your mapping program and ensure that you supply valid input data.
Question 39:
How to process the messages stuck in queues?
Answer 39:
Check the queues using transactions SMQ1 (outbound)/SMQ2 (inbound). Resolve the displayed errors. You can cancel the messages from SXMB_MONI. Execute LUW if necessary and avoid deleting entries manually.
Question 40:
How to solve the following conversion error in message monitoring?
Unable to convert the sender service XXXX to an ALE logical system
Answer 40:
This error occurs in case of scenarios with IDOC adapters. Whenever you use business systems, make sure that the corresponding logical system name is maintained in the SLD.
Open your business system in the Integration Directory. Switch to Change mode. Access the menu path Service → Adapter Specific Identifiers. Click the button that says ‘Compare with System Landscape Directory’ and chose Apply. Save and activate your change list.
In case of business services, you can manually type a logical system name in the Adapter Specific Identifiers if required. This name should match the corresponding logical system name defined in the partner SAP system’s partner profiles.
Question 41:
How to monitor BPM?
Answer 41:
Use the transaction code SXMB_MONI_BPE.
Question 42:
What are the steps that need to be carried out to enable a SAP R/3 System to send IDOC to SAP Exchange Infrastructure?
Answer 42:
1. First - Maintain the Sender R/3 System:
SM59 : Create a RFC destination to XI
WE21 : Create a TRFC Port ->Specify the RFC Destination Created
BD54 : Create a Logical System for the Idoc Receiver
WE20 : Create Partner Profile ->Maintain Outbound and the Inbound Parameters
2. Second - Log on to XI System:
SM59 : RFC Destination for Sender System
IDX1 : Create the port to get Idoc Metadata from Sender System ( The Port Name must match the port name in the idoc header - Usually in format SAP. eg. SAPID1 [Optional Step. Not mandatory]
IDX2 : Maintain the Idoc Metadata. This is needed only by XI, and not by other SAP systems. IDX2 is needed because XI needs to construct IDoc-XML from the IDoc. No other SAP system needs to do that.
3. To Enable Acknowledgement:
SXMB_ADM ->Integration Engine Configuration ->Specific Configuration ->Add New entry -> Select parameters as:
Category: RUNTIME
Parameters: ACK_SYSTEM_FAILURE
Current Value: 1
4. GO TO SLD:
Create Technical System: Choose WEB AS ABAP if the system is R/3 -> Define SAP SID, Installation Number and Database Host Name a Maintain message Server Details according to Sender System -> Maintain Client Details of Sender System ->Select a Installed Product for Sender System
Create Business System: Choose WEB AS ABAP if the system is R/3 -> Choose the Technical System and the client Created Before -> Choose the Installed Product -> Set:
Business System Role: Application System
Related Integration Server: Integration Server
5. IDOC Tunneling in XI
To prevent performance consuming XMLization and de-XMLization IDOCs are tunneled through SAP XI IDOC adapter meaning no XMLiziation is executed before the IDOC is passed onto the pipeline. Note the message is converted to UTF-8 codepage.
6. Start transaction SXMB_ADM on SAP XI.
Select option Configuration->Integration Engine Configuration and add two parameters EXTERNAL_MAPPER in the category IDOC.
Configure the parameter according to the conditions below:
If Message Code and Message Function are specified in the partner profile:
..ReceiverPort...
If only the Message Code is specified in the partner profile:
..ReceiverPort..
If only Message Function is specified in the partner profile:
..ReceiverPort...
7. Integration Builder Integration Directory:
Add Business System: Adapter Specific Identifiers -> 'Logical System' identical to the 'Logical System Name' in the SLD Business System
IDoc Receiver Communication Channel: port the same as XI System IDX1
Question 43:
Where can I find aii_map_api.jar to create my Java mapping (if I have the access to OS level)?
Answer 43:
Go to your XI server folders and use this path:
j2ee\cluster\server0\apps\sap.com\com.sap.xi.services
Inside com.sap.xi.services folder you'll find the jar file.
Question 44:
How to download aii_map_api.jar file from market place
Answer 44:
If you want to download aii_map_api.jar from service marketplace, there are two ways:
1. Download SAPXITOOL13P_3-20000274.sca (about 40 MB)
Extract IntegrationServices.sda (with WinZip)
Here you find the aii_map_api.jar
2. Download SAPXIPCK13_0-20000423.sca (about 14 MB)
extract pck.sda
Both files are very big, so you should have a quick connection.
Question 45:
If I do not have the access to OS level then where can I find aii_map_api.jar to create my Java mapping?
Answer 45:
If you don't have the access to your XI/PI server at the directory level or if you don't have access to Market place download,
Then use the below procedure to get the aii_map_api.jar file,
If your machine is running on windows operating system, (remember your machine means from where you work on Repository and Directory Frameworks)
Then look in this folder,
\Documents and Settings\\Application Data\Sun\Java\Deployment\javaws\cache\http\D\P\DMrep\DMrepository
Where - host name of XI server.
- J2EE dispatcher port of XI server generally it will be 50000 if instance number is 00 or it will 50000+(100 X Instance number)
- The user profile with which you are working on your machine.
in the directory you will find "RMaii_map_api.jar". Copy this to your working directory for java mapping class program and set in classpath. You can also rename this jar file as the original name is "aii_map_api.jar".
Question 46:
How to solve if java mapping Linkage error occurred?
Incompatible class versions (linkage error)
Answer 46:
The problem "Linkage Error" is due to JDK version mismatch between XI / PI and your Java IDE.
XI uses JDK1.4 so you have to use JDK 1.4 to compile your java code and generate .jar file.
To use different jdk version at netbeans go to your project -----> right click and than go to properties tab. than at left hand side select libraries------at top right select manage platform----click add platform--- select the jdk version here and follow the wizard.
Question 47:
How to perform IDOC and HTTP Adapter Monitoring?
Answer 47:
IDOC and HTTP Adapter resides directly in IS (ABAP Stack) and hence they can not be monitored via transaction SXMB_MONI or from RWB.
IDOC adapter can be monitored from TCODE IDX5
You can test if HTTP adapter is working fine or not as mentioned below.
1. Test the adapter_plain service in TCODE SICF
adapter_plain service can be found under /default_host/sap/xi/adapter_plain
2. TCODE : SMICM and then Shift + F1 and you can see the status of the HTTP server
Question 48:
If each row of the input flat/text file has a different structure, then how to convert text file to XML file?
Answer 48:
If each row of the input flat/text file has a different structure, then it is referred to as complex transformation.
Use SAP standard Module named "localejbs/AF_Modules/MessageTransformBean".
Further help is available in
Question 49:
Can we integrate Peoplesoft with SAP PI?
Answer 49:
Yes, we can integrate Peoplesoft with SAP PI.
1. Go through these blogs for peoplesoft iWAY adapter
https://weblogs.sdn.sap.com/pub/wlg/3734 - Part I
https://weblogs.sdn.sap.com/pub/wlg/3735 - Part II
https://weblogs.sdn.sap.com/pub/wlg/3736 - Part III
2. Another way is to use SOAP Adapter.
Third-party Peoplesoft can send an Asynchronous XML message to PI through SOAP Adapter.
Question 50:
How to get aii_map_api.jar file in PI 7.1?
Answer 50:
The library has been renamed in PI 7.1 as follows.
PI 7.0(3.0) = aii_map_api.jar
PI 7.1 = com.sap.xpi.ib.mapping.lib.jar
You can find the libraries here:
1. com.sap.aii.af.lib.mod.jar = /ext/com.sap.aii.af.lib/lib
2. com.sap.aii.af.ms.ifc_api.jar = /ext/bin/interfaces/com.sap.aii.af.ms.ifc/lib
3. sap.com~tc~logging~java~impl.jar = /system
4. com.sap.aii.af.svc_api.jar = /services/com.sap.aii.af.svc/lib
5. com.sap.aii.af.cpa.svc_api.jar = /services/com.sap.aii.af.cpa.svc/lib
6. com.sap.aii.af.ms.ifc_api.jar = /interfaces/com.sap.aii.af.ms.ifc/lib
7. = /usr/sap//J01/j2ee/cluster/bin