SAP PI/PO Questions and Answers
In an interview, interviewers will not plan to ask any particular question. Normally questions start with some basic concept of the PI/PO and later they continue based on your answer. These Sample Questions have been collected from my personal experience both in giving interviews and taking the interview. It is just a sample to get you acquainted with the nature of questions you may encounter during your interview. Also, check for a few Important TIPS on Technical interview
PI/PO General Questions and Answers
- What is XI/PI/PO?
XI is Exchange Infrastructure in SAP’s middleware tool and is used for the exchange of information in the company’s internal system or with external parties. It belongs to the SAP NetWeaver platform and the latest version is PI/PO- Process Integration/Process Orchestration. Please check here for Background on ERP and SAP
- What is middleware and why do we need middleware?
- Intermediary application
- Enables communication and Data exchange between distributed applications
- Can be described as “software glue”
- Why do we need SAP PI/PO?
In a large business establishment along with SAP ERP there are multiple other systems also interact with each other i.e. CRM, SRM and FICO etc. To handle such complexities SAP introduced Process Integration a platform to provide a single point of integration for all systems without altering the existing complex network of legacy systems. This is a powerful middleware by SAP to provide a seamless end to end integration between SAP and non-SAP applications inside and outside the corporate boundary. SAP PI supports B2B as well as A2A exchanges, supports synchronous and asynchronous message exchange, and includes a built-in engine for designing and executing Integration Processes.
- What are the key capabilities SAP PI/PO system?
- A2A (Application to Application)-Provides seamless integration between SAP and non-SAP applications within the organization and/or
- B2B (Business to Business)- Outside the organization
- It uses the adapter framework to integrate 3rd party solutions.
- Defines a path/workflow for each business transaction that is integrated.
- It ensures that each message is correctly delivered from the source to the target destination.
- Can translate files into any format whether an internal file format or any business to business integration standard
- What are the different installation options available for SAP PI system?
This installation is based on ABAP and Java and provides tools for designing and configuring integration content and also these run time engines
Business Process Engine
Single Stack/Advance Adapter Engine Extended AEX
This installation is based on Java only versions and provides tools for designing and onfiguring integration content and contains the Advance adapter engine as a run time engine.
- What are the different components of the PI system?
- Integration Server
- Integration Builder
- ESR- Enterprise Service Repository
- ID – Integration Builder
- System Landscape Directory SLD
- Configuration and Monitoring
- NWA – Netweaver Administrator
- What are the components in the Integration server?
- Business Process Engine
- Integration Engine
- Adaptor Engine( Now its called Advanced Adapter Engine-AAE)
- What are the different types of adapters used in PI/PO?
- Java Stack Adapters: RFC adapter, SAP Business Connector adapter, file/FTP adapter, JDBC adapter, JMS adapter, SOAP adapter, Marketplace Adapter, Mail adapter, RNIF adapter, CIDX adapter
- ABAP Stack Adapters: IDOC and HTTP adapter
- What is the use of the System Landscape directory?
The System Landscape Directory of SAP NetWeaver serves as a central information repository for your system landscape. A system landscape consists of a number of hardware and software components that depend on each other with regard to installation, software updates, and demands on interfaces. Please check here for more details System Landscape Directory
- What is the Enterprise Services Repository (ESR)?
Enterprise Service Repository is used to design and create objects to be used in the integration scenario. You can design Interface Objects, Mapping Objects and other objects which are used in the different integration processes. Please check here for more details on Enterprise Services Repository
- What is Integration Directory ( ID) In PI/PO?
The integration directory is used for the configuration of objects that are created in the Enterprise Service Repository and configuration is executed by the integration engine at run time. To configure the objects in ID you need to import design objects from ESR and Business system from SLD and create the communication channel to accommodate various adaptors details. Please check here for more details on Integration Directory
- What is the difference between Synchronous and Asynchronous communication?
If the sender application invokes the request and waiting for the response called Synchronous whereas Sender application sends a request and it does not wait for the Receiving application to send the response called Asynchronous communication.
- What are the Advantages and Disadvantages of Synchronous communication?
- There is no need to configure response message routing.
- There is no need to correlate the response to a request.
- In case of a failure, the sender needs to send a message again.
- The receiving system should be configured to check duplicate messages.
- Both the sender system and the receiver system need to be online at the same time.
- What are the Advantages and Disadvantages of Asynchronous communication?
- If you don’t expect the response then this is the preferred approach
- This case PI system ensures guaranteed delivery.
- You can configure multiple receivers in this scenario.
- No need of having both sender and receiver to be online at the same time.
- PI logs all the messages send via asynchronous communication.
- No time out as an intermediate system keeps the message and response request.
- In this scenario where the sender needs to correlated responses to requests then this will not support.
- Response message needs to be implemented and routed separately.
- It doesn’t provide an immediate response.
PI/PO Mapping Related Questions and Answers
- What are the different types of mapping that can be used in PI/PO?
- Graphical Mapping
- XSLT(extensible Stylesheet Language) Mapping
- JAVA Mapping
- ABAP Mapping
- What is a Global Container?
This object enables you to cache the value that you want to read again when you next call any user-defined function that is in the same message mapping
- What are the 2 type of UDF’s?
Two Types of UDF are there1.Simple function-process individual field input values for each function call-expect strings as input values-return a string2.Advanced function-process non single string field values for each function call-pass either all fields of a context or a queue-input field is passed as string array-returned values are stored in a single array, Resultlist
- What is Multi Cast?
You have an option of sending a message to multiple receivers and waiting for a response from the each of the receivers. This procedure of sending a message to multiple receivers and waiting for a response message is also known as ‘multi cast’.
- What is XPATH?
XPATH is the complete path of any field of the message structure. Context object is a shorter mode of referring to the xpath. This is used when the field is under a deep hierarchy- U can create context object in IR and assign it to a particular field.
- What are the Types of Node Functions? a) Remove Contexts: – remove all higher level contents of the source level message in order to map with the target message field. So you can get the node contexts removal.
b) Split by value: – Insert Context change for an element split by value is some as counter part of remove context. Here instead of delivering the context you can insert a context change in the source value queue.
c) Collapse contexts: – Copies first values of the all contexts to one context empty context are replaced by empty string.
d) Copy Value: – How many ever times I occur I am copied just once”. This is not a node function but I am explaining it as it is used very frequently in real-time. Let us take an instance of material group, which can occur as many times as the item node. But since we are mapping it to the header in the target nodeI just want to copy the first occurrence of material group and map it to the header node. Copy Value exactly does that.
e) Create if: – It will create a target node or element based on some condition.
f) Exists: – Function to determine whether a particular source field exists in instance to be processed. If it does it gives true or else false.
g) Use one as many.
h) Replace value: – Replace the value I with the value that you desired in the dialogue for function properties.
i) Sort: – Sorts all values of the multiply occurring inbound field within the existing or set context.
- What are the three objects used at user-defined functions?
b) Global Container
c) Mapping Trace
PI/PO File/SFTP Adapter Related Questions and Answers
- What is File Adapter and Why it is used?
File Sender Adapter is used to pick the files from the File system for processing in Integration Server or the AEX and Place the processed file from IS/AEX to file systems.
- How do you implement a File to File scenario in PI/PO system?
For transferring a file from one system to another system we can make use of File-To-File Scenario. First, we need to create a source structure and Target structure and do the mapping to convert from source to target format and do the configuration for sender a receiver system. Please check here for a detailed File-To-File Scenario.
- The duplicate check option is valid for the files which are processed in the past 14 days.
In order to provide the flexibility to define the duplicate check validity, the configuration option needs to be provided. The ‘duplicateCheckPersist’ parameter can be configured in an advanced section of the sender channel. The values should be in minutes. For example, 10 days should be given as 14400 (10 * 24 * 60). Any incorrect value will fall back to 14 days. For more information, see NOTE: 1744700.
- The File Write Operation Always Fails in SFTP Receiver Channel
Some SFTP Server implementations such as GXS, deviates from RFC and their responses for few operations will differ from the normal SFTP Servers. In some scenarios, when PI SFTP Adapter generates a request in order to check the existence of a given file, it will reply with positive and the attributes will have a directory flag. PI SFTP Adapter will perform this check prior of writing the file and it fails due to the unexpected behaviour.Advanced mode table is added in both Sender and Receiver channels. If the directory check needs to be removed before writing the file, the parameter ‘skipRemoteDirCheck’ can be configured with any non-null value.
- SFTP Adapter appends “_” after the configured file while using Add Time Stamp or Add Message-ID options
This additional suffix should be removed to be compatible with existing standard PI adapters like File Adapter.Adding underscore after the file will be removed if Add Time Stamp or Add Message used
- File Retrieve operation fails with “inputstream is closed” error
Some SFTP Server implementations have a too slow response time for a file-get request because SAP PI SFTP Adapter uses a higher buffer size as default (65535), ‘get request’will fail with an error.This problem can be solved by using a lesser custom buffer size. It can be configured via advanced mode parameter “receiveBufferSize”. The legal values should be between 1 to 65535.
- Can PGP Module (which uses OpenPGP standards) handle keys generated using “PGP 6.5.8” software?
No, we can make the keys work with the SAP PGP module by formatting the keys, however, the PGP software will not work with the formatted keys
- In case of PGP the keys are to be kept on the files system whereas for SFTP the keys are stored in the keystore why?
PGP Key-rings is used by PGP adapter which is a special format that the SAP J2EE engine does not support and therefore the keys cannot be stored in the keystore.The keys can’t be converted into the *.p12 format that the engine supports (like in SFTP’s case).
- Zombie connections in per file transfer mode
If login timeout error occurs when SFTP adapter is trying to create a connection to SFTP server through a connection handle, some SFTP servers create a child process (automatically spawned from OS level) from the parent process which timed out previously. This child process now waits to establish a connection with the client, keeping it alive.As the client did not get the connection handle to the server as a result of the timeout, it is not possible to disconnect the zombie child connection from the client/adapter side.This behavior is observed in some SFTP servers and can be observed/analyzed from the SFTP server logs/traces.SAP PI Adapter and Channel Monitoring
- Since XI 3.0 SP17 / PI 7.0 SP8 most of the adapters and since XI 3.0 SP18 / PI 7.0 SP9 all adapters have been greyed out in the Adapter Monitor. Why did this occur and how can I monitor my adapters in these SPs
Beginning with XI 3.0 SP17 / PI 7.0 SP8 SAP initiated shipping a new monitoring infrastructure for providing enhanced monitoring capabilities for adapters generally and communication channels specifically. Due to which the adapters provided by SAP were all moved over to the new monitoring facility and they don’t supply the old adapter monitoring with status information.For accessing the new Communication Channel Monitoring, open the Runtime Workbench and select “Component Monitoring” -> “Display” (All) -> “Adapter Engine” -> “Communication Channel Monitor”.
- When accessing the Communication Channel Monitoring on my cluster-enabled Adapter Engine functioning on AIX, retrieving the communication channel status takes a very long time to complete and/or states “Error during update”. How can I resolve this issue?
On an operating system level, set the tunable “tcp_nodelayack” to “1”. This can be achieved once the user invokes the command listed as follows: line as “root” user:no -o tcp_nodelayack=1
- For specific sender adapters (like as File, JDBC and Mail) operated in an installation with numerous cluster nodes the aggregated channel status stays “red” (“Processing errors during the last n days”) for a long time although successful processing has been resumed in the meantime. The corresponding erratic processing history entries are not expelled. This takes place only intermittently. Why does this occur?
Few sender adapters are designed for pining each communication channel to a cluster node. Processing for that channel occurs entirely on this cluster node and only switches to another node if the cluster node fails or the channel configuration has been altered in Integration Builder. The processing history is only kept on each cluster node separately, however, the old entries are not evicted on that node in case the successful processing recommences on a dissimilar node.
- Explain the difference between manual and automatic control?
The primary difference between manual and automatic control is that a channel that is under automatic control can be controlled utilizing an availability time (if any exists) whereas the channels under manual control are unaffected by the availability times.
PI/PO SOAP Adapter Related Questions and Answers
- What is the SOAP adapter in SAP PI/PO?
SOAP stands for “SIMPLE OBJECT ACCESS PROTOCOL”. SOAP is XML based protocol to let applications exchange information over HTTP. or in Simple words – SOAP is a protocol for accessing a Webservice. SOAP adapter enables you to exchange of SOAP messages between Webservice servers and PI/PO
- What is SOAP Action and where do you specify this?
The SOAP action tells which method to call in the web service. The web service which is getting called might be serving different functionalities. This can be checked by looking at the different operations in the corresponding WSDL. It is used in the Receiver SOAP adaptor channel.
PI/PO Mail Adapter Related Questions and Answers
- My mail messages seem to be read by the adapter however not being processed and there is no message is visible in the message monitor.
Please check the adapter monitor in Runtime Workbench. You can find your mail sender channel under the Mail adapter. The detailed text of the channel will ideally explain the entire issue. Sender with XIALL
- I’m getting few exceptions and my mail message is not getting processed.
Please have a look at the status of your channel in the adapter monitor. The status of the adapter monitor is typically updated for each polling cycle. You should verify the status post a new message is picked up by your channel. You will be able to figure out if the problem is due to some communication problems with the mail server or to some mail format problem, from this status message. Sender with XIPAYLOAD
- How can the user get the original sender email address and subject, etc?
The user would be required to use the mail package option for getting mail transport specific information in the XI payload. In SP14, there will be a new mechanism for transport-related information for all the adapters.
- How to use the MailPackage in Sender
When a mail message is fetched by the sender adapter, generally the content of the mail is kept in the XI payload. This refers to that the mail header information such as “From”, “To”, “Subject” has not been imported into the XI payload. When the MailPackage mode is utilized, the adapter constructs an XML document comprising of these header entries and the content. The mail package is a deprecated feature which is supported for the existing scenarios and the ASMA attributes should be utilized for the new scenarios
- What all is offered by a sender channel configured as ExactlyOnce or ExactlyOnceInOrder?
The quality of service setting in the sender channel does not relate to the fact that this quality of service is automatically provided between the mail server and the XI system. The setting only permits the adapter to call some XI asynchronous receiver and the specified quality of service is provided between the receiving component and the adapter engine. If some error takes place
- Mail messages are not getting picked up
The mail sender channel with IMAP4 gets only the unread messages from the specified mailbox in the order in which they have been stored. Hence, please ensure that you have some unread messages at the top of the list (in the case ordered by most recent on top). Post a polling cycle, the user can look at the status of this channel at the adapter’s monitor. This would display any error in case the messages are not being processed correctly. Once the messages have been read however processed incorrectly, they will remain in the mailbox but are not being read in the subsequent polling cycle. The user has to rectify the problem and delete these messages by using his mail client program or can even reset them as unread so that these can be resent.The channel with POP3 gets all messages from the specified mailbox in the same order they have been stored. Post a polling cycle, the user can verify the status of this channel at the monitor of the adapter. This should display any error in case the messages are not processed appropriately. Once the messages have been read but not processed correctly, they will remain in the mailbox and read again in the subsequent polling cycle. If the problem is permanent, the user should correct the problem or delete these messages by utilizing his mail client program.
- Mail messages don’t look like being sent out
Please check the adapter monitor in Runtime Workbench. You will be able to locate your mail receiver channel listed under the Mail adapter. Incase this status is fine, please have a look into the message monitor and try locating the audit log entries for this message. The detailed text of the audit log would explain the entire problem.
- Is it for sure that an XI message with quality of service ExactlyOnce will only result in one mail message to be sent?
No. in general, the mail gateways don’t really support the quality of service. Hence, the adapter simply just sends the message. If an error occurs, then the message is resent.
- Some characters such as ä,ö,ü appear as being are corrupted in my mail. How can I reserve such characters?
First, you need to ensure that the payload passed to the mail adapter comprises the correct characters. When XIALL or XIPAYLOAD without the mail package is utilized, the mail message sent out from the mail adapter signifies each payload of the original XI message which is passed to the mail adapter. Therefore, the user can analyze the problem by capturing the mail message sent out form the mail adapter. When XIPAYLOAD with the mail package is utilized, the mail message is then produced from the mail package payload of the XI message. Therefore, the user should temporarily alter the mode to either of the other two and then capture the mail message. for capturing the mail message, the user can use the TCPGateway described in this Question “Can I monitor what my mail adapter sends or receives from the mail server?” for capturing the mail message. This tool can be ideally placed between the mail adapter and the mail server for capturing the messages. The captured messages can be stored in a file.The corrupted original payload or the incorrect character code setting in the payload is the main cause for the corrupted characters. Through analyzing the captured message, the cause of this problem can be identified easily.
- Can I select the name of an attachment in the mail?
Yes, mostly the mail clients use some heuristics which are generally based on some MIME headers for deriving the name of an attachment. The MIME headers which are involved in most heuristics are Content-Description, Content-Type, and Content-Disposition. When the user creates an XI message, the XI payload name is set automatically in the Content-Description. If the user wishes to change or set all of these headers, then he can use the MessageTransformBean module in the adapter framework.
- How can the user set the file name of a mail attachment?
There are various MIME headers that play a role in how the client is able to retrieve the file name of an attachment. Sadly, this behavior also varies amongst the various mail clients. The reason for this inconsistent behavior is that this mechanism has been incrementally extended. The old way is using the name parameter in the Content-Type header as mentioned in RFC1341. For instance, user can set the content type of an XML attachment as:Content-Type: application/xml; name=”abc.xml”RFC1521 does not encourage the use of this name parameter in anticipation of the new header Content-Disposition, which is listed in RFC1806.With this Content-Disposition header, the user can set the file name as:Content-Disposition: attachment; filename=”abc.xml”Some clients can display the Content-Description value as the file name. The Content-Description header is generally used to associating some descriptive information to an attachment (RFC1341) as inContent-Description: my xml fileTo avoid potential interpretation problems, it is therefore suggested combining the use of these headers.
- How to use MailPackage in the Receiver?
Normally the mail header information such as “From”, “To”, “Subject” is derived from the channel configuration, when a mail message is sent out by the receiver adapter. For dynamically setting these headers, users can use the MailPackage mode. In this scenario, the XI payload should be formated in the Mail Package XML format. The format of this mail package XML document is listed in note 748024.The mail package is a denounced feature that is all supported for the existing scenarios and the ASMA attributes should be utilized used for the new scenarios.
- My mail subject in non-ASCII characters is not displayed in my mail client. Does this look like an error?
The mail subject line containing non-ASCII characters is encoded in a special format that tags the encoded text with its character set name, which is utf-8. This refers to that in case the mail client cannot display utf-8 characters, these lines are shown incorrectly. This is one of the limitations of the mail client.
- Can the user set Cc and Bcc headers?
These headers are supported by SP17. For the previous versions, there is no direct way for setting these headers. The user can configure an external mail account for forwarding the mail message with these additional header properties
- Which URL does the user need to specify for some IMAP4 folder?
The user can specify your folder as URL. For instance, if your server is called the host and your folder is called MyInBox which is in another folder called a path, your URL will look likeimap://host/path/MyInBoxIf your server runs on another port than the default IMAP4 port (143), your URL can be written asimap://host:port/path/MyInBox//where port is the port number
- Which user authentication mechanism is supported by the sender adapter?
The plain authentication and the CRAM-MD5 are all based authentication is supported(CRAM-MD5 support from SP11). The client certificate-based authentication is not supported.
- Can the user use SSL for the connection to my mail server?
Yes. The user can use URL imaps://… for IMAP4 over SSL, pops://… for POP3 over SSL, and smtps://… for SMTP over SSL. If the ports varies from the respective default ports (993, 995, 465, respectively), they should be provided in the URL.
- My sender adapter is not working. What shall I do?
User should open a problem report, explain the problem, and provide the necessary information. See the question “Which information should be involved in a problem report?”.
- What is the purpose of the XIALL mode?
This mode allows the transport of an XI message over some mail gateways. The user can configure a mail receiver adapter at one XI system and a mail sender adapter at another XI system to transport XI messages between these two systems. All the information contained in the original XI message at the first system is reconstructed at the second system.
- What is the purpose of the XIPAYLOAD mode with MailPackage?
The mail package format (Mail) permits some of the mail transport precise information that needs to be included in the XI payload.
- Should the user use MailPackage or ASMA?
SP14 introduced the Adapter Specific Message Attributes (ASMA) which can be used to import and export adapter/transport specific headers into and out of XI. This is a generic mechanism for all adapters and other components like mapping and routing can be directly accessed or manipulate these values. The functionality provided by MailPackage is available in ASMA. Therefore, it is advised that new scenarios utilize ASMA instead of MailPackage.
- My receiver adapter is still not functioning. What can the user do?
the user should open a problem report and provide the information given in the answer to the question “Which information must be included in a problem report?”.
- Can the user monitor what his mail adapter sends or receives from the mail server?
The mail protocols such as IMAP4, POP3, and SMTP are TCP based protocols. The user can configure any TCP gateway or monitor tool for capturing the data. Users can find the document explaining ways of setting up the how-to setup the TCPGateway tool for mail adapter in the attachment section.
- Which information should be included in a problem report?
Listed below is the information which must be included:
- Adapter Version SP and patch numbers of SAPXIAFC and SAPXIAF
- Description (participating components and concrete problem)
- For receiver problems
The channel setting
- The message entry from the adapter’s message monitor in Runtime Workbench.
- The XI message which is passed to the adapter
- The mail message which is posted to the mail server in case available
The vendor information of the mail server
- For all sender problems
The channel setting
- The message entry from the error message folder in Runtime Workbench or from the adapters’ message monitor
- The mail message which is fetched by the adapter
- The XI message which is passed to the adapter engine in case available
- The vendor information of the mail server
- How can the user trace the entire message?
If the wants to trace the content of Mails which are coming into PI(Mail Adapter)or the content of Mails which are going out of PI(Mail Adapter), then he should use this tool (TCPGW) Typically, this is done by configuring a TCP gateway between the Mail Client and the Mail channels(sender or receiver).The user can find a tool called TCPGateway in the attachment section of this note (stored in tcpgw.zip). He should unpack this zip file and open index.htm for more details.
- Does the PI Mail adapter provide an Alert mechanism?
In Mail adapter, the alert mechanism isn’t implemented, quite unlike the file adapter. Therefore, the user cannot view any alerts triggering when the processing of mail messages fail(with improper configuration, processing error, etc), this looks like a limitation in PI Mail adapter.
PI/PO Monitoring Related Questions and Answers
- What are the Monitoring option available in SAP PI/PO?
From Configuration and Monitoring options of RWB, you can monitor below functions
Component Monitoring: To monitor different SAP PI Java and ABAP components.
Message Monitoring: To monitor the status of message processing in an SAP PI component.
Performance Monitoring: Using runtime workbench you can monitor different performance measures in an SAP PI system. You can create various aggregation reports.
End to End Monitoring: To monitor end to end lifecycle in SAP PI system for a scenario.
Message Index Search: You can perform Index based message search in message monitoring and you can also search based on adapter specific selection, etc.
Alert Inbox: Alert inbox is as per role assigned to a business user and is used for viewing all the alerts in the SAP PI system as per configuration.
Alert Configuration: Alert framework in C&M allows you to report all the errors during message processing in ABAP and Java. Using alert configuration, you can define policy if an alert has to be reported for error and to perform analysis or not.
Monitoring of runtime cache: This is used to view objects in runtime cache.
- What are the daily activities and responsibilities of XI Developer?
Monitoring after Go Live, troubleshoot performance issue when a ticket arises, on development part it will be creating BS, objects in IR, configuring in ID. Based on the scenario that what you are working in the low-level Working on SLD, IR, ID, RWB + developing the scenario’s+Documentation+ Based on the requirements design + monitoring check + Performance+..etc
- Is it necessary to create the partner profiles in case of file to idoc scenario?
NO, it is not always necessary to create the partner profiles in case of file to idoc scenario if you are doing it for testing purposes otherwise you have to configure partner profile to assure XI for receiver client
- What Are The Activities For Sap Netweaver Xi Integration, Implementation, Post Go-live?
SAP NetWeaver XI integration where the Involvement of sharing the information between SAP and Non SAP System comes into Picture.The implementation where the SAP involvement into the business coming into Picture. Go-Live After Developing the interface after coming across various stages like testing the Interface is made alive or used to the real-time scenario is said to be GO ALIVE.
- What is the use of the Integration server? What are the components in the Integration server
This is one of the key components of the SAP PI system and is used for the processing of messages. It consists of three engines:
- Business Process Engine
- Integration Engine
- Central Advanced Adapter Engine AAE
- How to check if PI tables need to take consolidated statistics?
In PI system, go to transaction DB20, enter the SXMSPMAST in Table field and click on the button “Update Info”Check if the number in “Old Number” is 435.530, while the “Active Flag” is set to “I”.If not, Document 1020260 is required to be applied in the system.For the detailed number in ‘Old Number’, the right number is 435530 for table SXMSPMAST, you can get the result from the attached TXT file in document 1020260.
- How to view the payload of archived PI messages?
- Open transaction SARA
- Enter the Archiving Object ‘BC_XMB’
- Click on the Read button
- Select Execute on the next screen
- Choose the archived file which contains the message you wish to view the payload
- Select the message you wish to view
- A screen similar to that in transaction SXMB_MONI is opened and here you can view the payload
- How to check the patch level of PI ESR contents?
- Call transaction sxmb_ifr
- Logon to the Enterprise Services Builder
- Go to SAP Basis -> SAP BASIS 7.10 -> Details (tab)
- The current SAP Basis SP release is available in the Available Support Packages field
- The current SFTP ADAPTER XI CONTENT is available from the SFTP ADAPTER object in the Available Support Packages field
- How to enable message compression on PI/PO system?
Configure message compression on PI/PO application level by setting the following two properties in NWA -> Configurations -> Infrastructure -> Java system properties -> Services -> XPI Service: Messaging System.messaging.compression.enabled (boolean)messaging.compression.threshold (unit value is in bytes)
PI/PO Staging and Logging Questions and Answers
- For which runtime is staging/logging relevant?
Staging and logging are only appropriate for the Java-only PI runtime using Integrated Configuration objects. Technically it is also applicable for “classical” PI dual-stack scenarios where ABAP and Java runtime is utilized. In such a “classical” case a message is already persisted many times (2 times on Java and 3 times on ABAP (per default)). Therefore, no additional persistence on the Java inbound/outbound side should be required. Due to this staging/logging is not supported for “classical” scenarios.
- What is staging?
Storage of an asynchronous message at a runtime stage for later editing/restart of the message from the persisted version. The staged message can be also displayed (monitoring of staged message).
- What is logging?
Storage of any kind of message (asynchronous and synchronous) at some processing step for later displaying the logged message (no editing/restart is possible).
- Where can staging as well as logging be configured?
Staging was initially introduced starting from 7.3. The following is a list which shows you what can be done with which release:Starting from 7.3:Staging for async messages can be globally configured by using parameter xiadapter.stage.conf of J2EE service XI Adapter. Logging is unavailableStarting from 7.31 SP0:Staging for async messages can be configured globally by using parameter xiadapter.stage.conf and scenario-based in the “Advanced Settings” tab of the ICO Object in the Directory. The logging for sync messages can be configured globally by using parameter xiadapter.logger.conf and scenario-based in the “Advanced Settings” tab of the ICO Object in the Directory.Starting from 7.31 SP4:In addition staging and logging for async messages can be configured scenario-based in the “Advanced Settings” tab of the ICO Object in the Directory.Generally, we advise not altering staging/logging globally since every interface does not have the same requirements, and there a few limitations also which apply (see Q10 and Q11 for details). Rather than the configuration should be only done individually per interface based on the business requirements for this interface.
- Explain the difference between staging and logging from a runtime perspective
Logging is only an additional persistence step, staging alters the transactional behavior of message processing. For each staging step a context switch in the processing occurs. This refers to a new message version is persisted, the message is put into the Messaging System queue again and is processed by another Messaging System consumer thread once a free thread is made available. If logging is configured no such context switch will take place. The thread will exit and the message and continue with the processing.
- What is the effect of logging have for message processing?
Each additional logging step will insert the message version into the database. Hence there is additional overhead on the database server and the message processing gets delayed by the time the additional insert statement takes.
- What impact does staging have for message processing?
The database overhead is the same then for logging. Additionally, when putting the message into the queue again the message will be put at the end of the Messaging System queue. In case of a message backlog in the queue, this can lead to additional delay as the message has to wait until processing capacity is made available again.
- Explain the default behavior for staging as well as logging?
For asynchronous interfaces, each message is utilizing staging post the Receiver Determination step. This corresponds to MS=3 and results in the same behavior as in initial releases. No logging is utilized for asynchronous interfaces. Synchronous messages are per default not utilizing any logging at all.
- When should you use logging?
Generally, Logging should be used for message processing in case there is a business requirement for storing additional versions of the payload for later monitoring or for tracking related purposes. The logging of synchronous messages is only made available from PI 7.31. From PI 7.31 SP04 onwards logging can also be utilized for asynchronous messages. Some examples have been listed as follows.
Example 1: Tracking of the message payload post mapping Per default, the message is only persisted prior to the receiver determination. The message is per default not persisted post mapping. Therefore, in case the adapter does not persist the outgoing message there is no possibility to verify the data sent to the partner. In such a scenario the level “Log” should be selected for the Mapping (step AM).
Example 2: Logging of synchronous messages in error Synchronous messages are per default not persisted at all. Also in case of an error, the messages are only kept in a cache which is evicted after some time. Therefore, logging of synchronous messages in case of an error is very useful for later troubleshooting related purposes. In such a scenario. all three logging steps would have to be configured with the value “Logon error”. In case the payload is not required due to e.g. the interface is generally failing with connectivity issues the value “Logon error without payload” could be selected.
Example 3: Logging of successful synchronous message processing for testing/troubleshooting For testing or troubleshooting, productive scenarios logging of all synchronous messages (also successful ones) can only be temporarily activated. This is quite similar to setting the parameter LOGGING_SYNC in the ABAP stack. However, on the Java side, this can be configured per interface for keeping the impact minimal. for further reducing the overhead (especially on productive systems) user can also select to not persist the payload minimize the overhead. For doing so choose the “Log without payload” for the Mapping (step AM).
- When should you use staging?
Staging should ideally only be used for asynchronous message processing and not for the purpose of synchronous interfaces. Generally staging should be used when the separation of processing steps is essential. Some of the examples have been listed below:
- Example 1: Frequent message failures because of unreliable backend connection or e.g. locking issues In this scenario, the overhead for executing with every retry the message mapping can be averted by configuring staging post mapping the call (by setting AM=3 or “Store” (on ICO level)). By doing this the retry would use the mapped message payload and would only try to resend the message to the receiver system. Be careful by utilizing MODE_STORE_ON_ERROR for such scenarios as listed in A11.4.
- Example 2: Another instance would be a long-running receiver determination because of excessive usage of XPath or slow mapping in the Extended Receiver Determination.If e.g. a sequential adapter like File is utilized this could slow down the overall processing time as the next file would only be polled after the Receiver Determination was completed. For isolating the processing on the adapter level from the long-running Receiver Determination the message should be continued directly post the inbound processing (set BI=3 or “Store” (on ICO level)).
- Example 3: In this example, IDocs fail in the Receiver Determination as the special conditions in the XPath are not being fulfilled.With the default staging option like a message would not be persisted in PI, however, it would be rolled back on the ERP system. The IDoc would be in an error on SM58 in the ERP system. If such scenarios would fail on PI side user can avoid the rollback by configuring staging post the inbound processing. When doing this the messages would be continued on PI side and the error handling would take place here.
- What all should the user consider when configuring staging for the various steps of processing? Usage of staging for QoS EOIO:
For EOIO staging prior to the Receiver Determination (e.g. at steps BI or VI) can be avoided as and when possible. The reason is that staging directly influences the serialization context of a message. Essentially, post Receiver Determination the receiver component is a component of the Serialization Context of a message. If you use BI=1 (MODE_STORE_ON_ERROR) this can lead to severe serialization issues in case of message failure during the Receiver Determination. Therefore if staging is essential (e.g. for avoiding a rollback to sender systems) we suggest using BI=3 for avoiding these issues.SAP Document 1678427 introduces a sequence cache for correlating serialization contexts prior to and after receiver determination. Depending on the number of parallel EOIO queues it may be important to tune this cache. The corrections of this Note address the most critical problems however since the introduced cache for the serialization context mapping is not persisted messages may remain in HOLD post a server node restart.Usage of MODE_STORE_ON_ERROR prior to the determination of the receiver. (e.g. step BI):Due to a problem in the transaction handling the MODE_STORE_ON_ERROR prior to the determination OS the receiver caused issues.Impact on the MaxReceiver parameter:With Document 1493502 a mechanism is introduced to limit the number of parallel threads per interface for avoiding that one interface can devour all the available adapter threads or overload the backend system. This maxReceiver parameter for ICO only functions once the receiver of an interface has been determined. This refers to that in case the user has configured staging prior to the Receiver determination (step BI) more threads than the number configured in MaxReceivers can be utilized. Generally, this should be no problem in case default MS=3 has been configured as all the expensive steps (like mapping call or call to the backend) takes place later.Staging of messages in case of errors during the process of module processing:If you are utilizing the modules which alter the payload of a message during processing the user should avoid using MODE_STORE_ON_ERROR as the last staging configuration (e.g. VO=1) for the processing of messages. The issue is that in case of an error during the module processing or later receiver communication the altered payload will be persisted. Incase the message is restarted then the module will fail because of an unexpected payload. Therefore, if you have modules altering the payload then avoid using MODE_STORE_ON_ERROR: Use MODE_STORE_AND_RETURN instead of saving the message prior to the medication of the module.
- Is it possible to combine logging as well as staging?
Starting from PI 7.31 SP4 Staging and Logging can be put together for asynchronous messages. This can better be isolated for instance e.g. the inbound processing by utilizing post inbound processing and permitting logging after mapping for business-related purposes.