{"id":6014,"date":"2021-04-16T23:44:43","date_gmt":"2021-04-16T21:44:43","guid":{"rendered":"https:\/\/www.ho2-gmbh.de\/news\/sap-po-generic-idoc-outbound-interface\/"},"modified":"2024-03-13T14:01:34","modified_gmt":"2024-03-13T13:01:34","slug":"sap-po-generic-idoc-outbound-interface","status":"publish","type":"post","link":"https:\/\/www.ho2-gmbh.de\/en\/news\/sap-po-generic-idoc-outbound-interface\/","title":{"rendered":"SAP PO: Generic Idoc Outbound Interface"},"content":{"rendered":"<p>As you can see in the picture we have a\u00a0SAP PO &#8211; Generic IDoc Outbound Interface with multiple IDoc Operation in our iFlow.<\/p>\n<h2>Introduction<\/h2>\n<p>Often you have the requirement to create a set of IDoc interfaces as a kind of template implementation, especially for EDI communication scenarios.<\/p>\n<p>Regarding the EDI use case, you might have created a single iFlow receiving the partner&#8217;s data and separate the incoming messages over operations.<\/p>\n<p>For the other direction you realize the IDoc sender adapter requires a dedicated IDoc outbound interface with only one operation. So we cannot provide a single template interface with multiple operations for sending data to the partner, which is resolved here <a href=\"https:\/\/blogs.sap.com\/2020\/05\/12\/sap-pi-b2b-add-on-3.0-outbound\/\">SAP PI B2B Add-on 3.0 \u2013 Outbound<\/a> by using EDI separator. I want to engage the sending system in order to build the\u00a0SAP PO &#8211; Generic IDoc Outbound Interface&#8230;<\/p>\n<p>My workaround is inspired by the blog post <a href=\"https:\/\/blogs.sap.com\/2014\/02\/20\/michals-po-tips-how-to-send-messages-directly-to-aex-ico-adapter-independent-soapui-version\/\">&#8220;Michal\u2019s PO tips: How to send messages directly to AEX (ICO) \u2013 adapter independent \u2013 SOAPUI version&#8221;<\/a> to implement the BAdI IDOC_XML_ENVELOPE_OU in order to wrap the XML IDoc into the SOAP envelope and adding the XI headers.<\/p>\n<p>If you are also searching for a solution to either&#8230;<\/p>\n<ol>\n<li>provide generic IDoc outbound interfaces<\/li>\n<li>create acknowledgements per partner profile and not per IDoc sender channel (additional adapter module required for ALEAUDs)<\/li>\n<li>setup a simple solution to create the serialization context for IDocs (based on Xpath)<br \/>\n-&gt; Configuration instead of function module development<\/li>\n<li>have a generic and single HTTP endpoint for XML-HTTP IDoc ports instead of creating multiples (one endpoint for each SAP PO outbound interface)<\/li>\n<li>avoid header mappings for outbound interfaces in order to set the XI Party (KB: <a href=\"https:\/\/launchpad.support.sap.com\/#\/notes\/1941832\">1941832 &#8211; Resolve logical receiver party<\/a>) or replace the virtual receiver <strong>L<\/strong>ogical <strong>S<\/strong>ystem (KB: <a href=\"https:\/\/launchpad.support.sap.com\/#\/notes\/2728276\">2728276 &#8211; Resolve logical receiver service for LS receiver<\/a>)<\/li>\n<li>send the IDoc to a dedicated iFlow having a virtual receiver, which could e.g. represent a dedicated SAP process. This helps to separate IDoc iFlows into business responsibilities and you could create IDoc iFlows without any dependency to any other IDoc interface.<br \/>\n(I know, it increases the amount of point2point interfaces, but if you ask business, I&#8217;m not sure they are interested in using as many integration patterns as possible \ud83d\ude42<br \/>\n-&gt; Less discussion about impact and regression testing after changing existing interfaces<\/li>\n<li>use HTTP based communication instead of TRFC \/ ressource adapter configuration for sending IDocs, but still want the full\/better SAP PO functionality (see restrictions) compared to the restricted default XML-HTTP port behavior<br \/>\nor<\/li>\n<li>overcome the 16 character serialization context length<\/li>\n<\/ol>\n<p>&#8230;this BAdI implementation and some little customizing might help you to achieve it with only a single iFlow.<\/p>\n<p>BTW: No metadata is required anymore if you send it over HTTP-XML&#8230;<\/p>\n<p>Please bear with me in case you find issues regarding the ABAP part,I\u2019m still on beginner level.<br \/>\nI&#8217;m happy receive your ideas\/use cases and feel free to provide any optimization proposals.<\/p>\n<p><b>Warning: This BAdI is not yet used in production. So adjust it to your needs and test it carefully before using it in productive <\/b><b>environments<\/b><b> &#8211; No warranty for <\/b><b>correctness, performance and no<\/b><b> support can be provided! This is no SAP code. So it is 100% in your responsibility to troubleshoot and correct it in case of any issue.<\/b><\/p>\n<h2>Restrictions<\/h2>\n<ul>\n<li>You will not successfully receive back ALEAUDs without an additional adapter module.<br \/>\nALEAUDs will stuck in SAP PO, not finding the corresponding inbound IDoc.<br \/>\nI\u2019m checking if I can publish the module.<\/li>\n<li>Your WE21 port name must match *PO[X]_* regex: <!--StartFragment -->^<span class=\"L0S55\">.<\/span>*PO<span class=\"L0S55\">.<\/span>{0<span class=\"L0S55\">,<\/span>1}_<span class=\"L0S55\">.<\/span>*$ according to the code below.<\/li>\n<\/ul>\n<h2>Steps to implement the BAdI<\/h2>\n<p>Before building the\u00a0 SAP PO &#8211; Generic IDoc Outbound Interface, please check the perquisites.<\/p>\n<h3>Prerequisites<\/h3>\n<p>You should have at least basic\u00a0<strong>ABAP development knowledge<\/strong> and create a package or know which development package needs to be selected before you continue with the next steps.<\/p>\n<p>You must have\u00a0<strong>at least 7.40 SAP Basis<\/strong> release to use the BAdI code below.<\/p>\n<h3 id=\"BAdItomodifyHTTPIdocXMLbeforesending-SAPPOSenderchannel\">1. SAP PO SOAP sender channel (in SAP PO)<\/h3>\n<p>Make sure there is an active SOAP sender channel created for the Business System in where you implement the BAdI and this channel is used in ANY deployed iFlow\/ICO, like shown in the referenced blog entry from above.<\/p>\n<h3 id=\"BAdItomodifyHTTPIdocXMLbeforesending-CreateRFCDestination\">2. Create RFC Destination (SM59)<\/h3>\n<p>Type: G<br \/>\nHost: your SAP PO system (<strong>without protocol,<\/strong> like http[s]:\/\/)<br \/>\nService Your SAP PO Http Port<br \/>\nPath Prefix:\u00a0\/XISOAPAdapter\/MessageServlet?channel=:&lt;SenderComponentName&gt;:&lt;ChannelName&gt;<br \/>\nSetup Authentication<\/p>\n<p>e.g. \/XISOAPAdapter\/MessageServlet?channel=:ER6_800:CC_SND_SOAP<\/p>\n<p>Please note the colons which separate Party (empty in our case) from the sender system (business system)<\/p>\n<p><a href=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/rfc-jpg.webp\"><img data-dominant-color=\"ccd9e5\" data-has-transparency=\"false\" style=\"--dominant-color: #ccd9e5;\" decoding=\"async\" class=\"alignnone wp-image-3994 size-full not-transparent\" src=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/rfc-jpg.webp\" alt=\"Exmaple RFC destination\" width=\"635\" height=\"385\" data-wp-pid=\"3994\" data-pin-nopin=\"nopin\" srcset=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/rfc-jpg.webp 635w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/rfc-300x182.jpg 300w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/rfc-1200x728.jpg 1200w\" sizes=\"(max-width: 635px) 100vw, 635px\" \/><\/a><br \/>\n<!--EndFragment --><\/p>\n<h3>3. Create HTTP Idoc Port (WE21)<\/h3>\n<p>Name: SAP_PO_XI and assign it in the partner profile (copy\/write the value manually if you do not find it with F4 help)<\/p>\n<h3><a href=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/WE21-640x310.jpg\" rel=\"prettyPhoto[gallery-cWgi]\"><img data-dominant-color=\"dde6ed\" data-has-transparency=\"false\" style=\"--dominant-color: #dde6ed;\" decoding=\"async\" class=\"alignnone wp-image-3995 size-medium not-transparent\" src=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/WE21-640x310.jpg\" alt=\"picture to compare the idoc port settings, which are basically default\" width=\"640\" height=\"310\" data-wp-pid=\"3995\" data-pin-nopin=\"nopin\" srcset=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/WE21-640x310.jpg 640w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/WE21-768x372.jpg 768w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/WE21-1200x581.jpg 1200w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/WE21-jpg.webp 898w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/h3>\n<h3>4. Create domains (SE11)<\/h3>\n<p><em>(Select domain, enter name and click create button for all 2)<\/em><\/p>\n<p><strong>Name: ZSSTRING<\/strong><br \/>\nDescription: &lt;something you like&gt;<\/p>\n<p>Data Type: SSTRING<br \/>\nNo. Characters: 1133<br \/>\nLower Case: X<\/p>\n<p><a href=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/zsstring-jpg.webp\"><img data-dominant-color=\"ccdbe6\" data-has-transparency=\"false\" style=\"--dominant-color: #ccdbe6;\" decoding=\"async\" class=\"alignnone wp-image-3996 size-full not-transparent\" src=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/zsstring-jpg.webp\" alt=\"picture to compare settings of domain zsstring\" width=\"524\" height=\"439\" data-wp-pid=\"3996\" data-pin-nopin=\"nopin\" srcset=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/zsstring-jpg.webp 524w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/zsstring-300x251.jpg 300w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/zsstring-1200x1005.jpg 1200w\" sizes=\"(max-width: 524px) 100vw, 524px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Name: ZRCVPRN<\/strong><br \/>\nDescription: &lt;something you like&gt;<\/p>\n<p>Data Type: CHAR<br \/>\nNo. Characters: 60<br \/>\nLower Case: X<\/p>\n<p><strong><a href=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZRCVPRN-jpg.webp\"><img data-dominant-color=\"cddce7\" data-has-transparency=\"false\" style=\"--dominant-color: #cddce7;\" decoding=\"async\" class=\"alignnone wp-image-4013 size-full not-transparent\" src=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZRCVPRN-jpg.webp\" alt=\"picture to compare settings of domain ZRCVPRN\" width=\"625\" height=\"442\" data-wp-pid=\"4013\" data-pin-nopin=\"nopin\" srcset=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZRCVPRN-jpg.webp 625w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZRCVPRN-1200x849.jpg 1200w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/a><\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><strong>-&gt; Save and activate both new domains<\/strong><\/p>\n<p>&nbsp;<\/p>\n<h3 id=\"BAdItomodifyHTTPIdocXMLbeforesending-Createdataelement\">5. Create data elements (SE11)<\/h3>\n<p><em>(Select datatype, enter name and click create button, choose data element for all 2)<\/em><\/p>\n<p><strong>Name: ZXPATH<\/strong><br \/>\nDescription: &lt;something you like&gt;<\/p>\n<p>Domain: ZSSTRING<\/p>\n<p><em><u>Field Label Tab<\/u><\/em><br \/>\nShort: 10 &lt;something you like&gt;<\/p>\n<p><a href=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZXPATH-640x463.jpg\" rel=\"prettyPhoto[gallery-cWgi]\"><img data-dominant-color=\"d4e1eb\" data-has-transparency=\"false\" style=\"--dominant-color: #d4e1eb;\" decoding=\"async\" class=\"alignnone wp-image-3999 size-medium not-transparent\" src=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZXPATH-640x463.jpg\" alt=\"picture to compare settings of data type ZXPATH\" width=\"640\" height=\"463\" data-wp-pid=\"3999\" data-pin-nopin=\"nopin\" srcset=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZXPATH-640x463.jpg 640w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZXPATH-1200x868.jpg 1200w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZXPATH-jpg.webp 686w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p><strong>Name: ZRCVPRN<\/strong><br \/>\nDescription: &lt;something you like&gt;<\/p>\n<p>Domain: ZRCVPRN<\/p>\n<p><em><u>Field Label Tab<\/u><\/em><br \/>\nShort: 10 &lt;something you like&gt;<\/p>\n<p>&nbsp;<\/p>\n<p><strong><a href=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZRCVPRN_DT-jpg.webp\"><img data-dominant-color=\"d9e5ee\" data-has-transparency=\"false\" style=\"--dominant-color: #d9e5ee;\" decoding=\"async\" class=\"alignnone wp-image-4001 size-full not-transparent\" src=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZRCVPRN_DT-jpg.webp\" alt=\"picture to compare settings of data type ZRCVPRN\" width=\"693\" height=\"432\" data-wp-pid=\"4001\" data-pin-nopin=\"nopin\" srcset=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZRCVPRN_DT-jpg.webp 693w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZRCVPRN_DT-640x399.jpg 640w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZRCVPRN_DT-1200x748.jpg 1200w\" sizes=\"(max-width: 693px) 100vw, 693px\" \/><\/a><\/strong><\/p>\n<p><strong>-&gt; Save and activate all 2 new data types<\/strong><\/p>\n<p>&nbsp;<\/p>\n<h3>6. Create tables (SE11)<\/h3>\n<p><em>(Select database table, enter name and click create button for all 2)<\/em><\/p>\n<p><strong>Name: ZIDOCENVELOPEOUT<\/strong><\/p>\n<p><em><u>Delivery and Maintenance Tab<\/u><\/em><\/p>\n<p>Delivery Class: C<br \/>\nData Browser\/Table Maintenance: Display Maintenance Allowed<\/p>\n<p><em><u>Fields Tab<\/u><\/em><\/p>\n<div>\n<table class=\"confluenceTable\">\n<colgroup>\n<col \/>\n<col \/>\n<col \/><\/colgroup>\n<tbody>\n<tr>\n<td class=\"confluenceTd\" colspan=\"1\">Field<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Data Element<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Key<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">.INCLUDE<\/td>\n<td class=\"confluenceTd\">EDK13<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">X<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">IDOCTP<\/td>\n<td class=\"confluenceTd\">EDIPIDOCTP<\/td>\n<td class=\"confluenceTd\" colspan=\"1\"><\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">CIMTYP<\/td>\n<td class=\"confluenceTd\">EDIPCIMTYP<\/td>\n<td class=\"confluenceTd\" colspan=\"1\"><\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">QIDXPATH<\/td>\n<td class=\"confluenceTd\">ZXPATH<\/td>\n<td class=\"confluenceTd\" colspan=\"1\"><\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">CUSTSENDIF<\/td>\n<td class=\"confluenceTd\">PRX_INTFID<\/td>\n<td class=\"confluenceTd\" colspan=\"1\"><\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">CUSTSENDNS<\/td>\n<td class=\"confluenceTd\">PRX_NSPCE<\/td>\n<td class=\"confluenceTd\" colspan=\"1\"><\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">ERRORACK<\/td>\n<td class=\"confluenceTd\">SAP_BOOL<\/td>\n<td class=\"confluenceTd\" colspan=\"1\"><\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">SYSTEMACK<\/td>\n<td class=\"confluenceTd\">SAP_BOOL<\/td>\n<td class=\"confluenceTd\" colspan=\"1\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><em><u><a href=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOPEOUT-640x389.jpg\" rel=\"prettyPhoto[gallery-cWgi]\"><img data-dominant-color=\"d2dee7\" data-has-transparency=\"false\" style=\"--dominant-color: #d2dee7;\" decoding=\"async\" class=\"alignnone wp-image-4002 size-medium not-transparent\" src=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOPEOUT-640x389.jpg\" alt=\"picture to compare field settings of table ZIDOCENVELOPEOUT\" width=\"640\" height=\"389\" data-wp-pid=\"4002\" data-pin-nopin=\"nopin\" srcset=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOPEOUT-640x389.jpg 640w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOPEOUT-768x467.jpg 768w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOPEOUT-1200x729.jpg 1200w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOPEOUT-jpg.webp 890w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/u><\/em><\/p>\n<p><em><u>-&gt; Technical settings<\/u><\/em><\/p>\n<p>Data Class: APPL0<br \/>\nSize Category: 0<\/p>\n<p>Regarding Buffering I am not sure, I\u2019ve chosen \u201cNot Allowed\u201d<\/p>\n<p>Log data changes X (Check with Basis for profile parameter rec\/client &lt;client&gt; to make use of it)+<\/p>\n<p><em><u>-&gt; Extras -&gt; Enhancement category -&gt; can be enhanced<\/u><\/em><\/p>\n<p>&nbsp;<\/p>\n<p class=\"auto-cursor-target\"><strong>Name: ZIDOCENVELOUTNRO<\/strong><\/p>\n<p><em><u>Delivery and Maintenance Tab<\/u><\/em><\/p>\n<p>Delivery Class: A<br \/>\nData Browser\/Table Maintenance: Display Maintenance <em>Allowed with Restrictions<\/em><\/p>\n<p><em><u>Fields Tab<\/u><\/em><\/p>\n<div>\n<table class=\"confluenceTable\">\n<colgroup>\n<col \/>\n<col \/>\n<col \/><\/colgroup>\n<tbody>\n<tr>\n<td class=\"confluenceTd\" colspan=\"1\">Field<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Data Element<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Key<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">.INCLUDE<\/td>\n<td class=\"confluenceTd\">EDK13<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">X<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">IDOCTP<\/td>\n<td class=\"confluenceTd\">EDIPDOCTYP<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">X<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">CIMTYP<\/td>\n<td class=\"confluenceTd\">EDIPCIMTYP<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">X<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">QUEUEID<\/td>\n<td class=\"confluenceTd\">CHAR16<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">X<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">ZRCVPRN<\/td>\n<td class=\"confluenceTd\">ZRCVPRN<\/td>\n<td class=\"confluenceTd\" colspan=\"1\">X<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">CHANGEDATE<\/td>\n<td class=\"confluenceTd\">AS4DATE<\/td>\n<td class=\"confluenceTd\" colspan=\"1\"><\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">CHANGETIME<\/td>\n<td class=\"confluenceTd\">AS4TIME<\/td>\n<td class=\"confluenceTd\" colspan=\"1\"><\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">XPATHRESULT<\/td>\n<td class=\"confluenceTd\">ZXPATH<\/td>\n<td class=\"confluenceTd\" colspan=\"1\"><\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\">QIDXPATH_V<\/td>\n<td class=\"confluenceTd\">ZXPATH<\/td>\n<td class=\"confluenceTd\" colspan=\"1\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><em><u><a href=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOUTNRO-640x450.jpg\" rel=\"prettyPhoto[gallery-cWgi]\"><img data-dominant-color=\"d0dde6\" data-has-transparency=\"false\" style=\"--dominant-color: #d0dde6;\" decoding=\"async\" class=\"alignnone wp-image-4003 size-medium not-transparent\" src=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOUTNRO-640x450.jpg\" alt=\"picture to compare field settings of table ZIDOCENVELOUTNRO\" width=\"640\" height=\"450\" data-wp-pid=\"4003\" data-pin-nopin=\"nopin\" srcset=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOUTNRO-640x450.jpg 640w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOUTNRO-768x541.jpg 768w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOUTNRO-1200x845.jpg 1200w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOUTNRO-jpg.webp 888w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/u><\/em><\/p>\n<p><em><u>-&gt; Technical settings<\/u><\/em><\/p>\n<p>Data Class: APPL1<br \/>\nSize Category: 2<\/p>\n<p>Regarding Buffering I am not sure, I\u2019ve chosen \u201cNot Allowed\u201d<\/p>\n<p>Log data changes [ ] No maintenance required -&gt; no logging.<\/p>\n<p><em><u>-&gt; Extras -&gt; Enhancement category -&gt; can be enhanced<\/u><\/em><\/p>\n<p>&nbsp;<\/p>\n<p><strong>-&gt; Save and activate both new database tables | ignore warnings about key length<\/strong><\/p>\n<p>&nbsp;<\/p>\n<h3 id=\"BAdItomodifyHTTPIdocXMLbeforesending-Createnumberrangeobject\">7. Create number range object (SNRO)<\/h3>\n<p><em>(Select datatype, enter name and click create button, choose data element)<\/em><\/p>\n<p>Name: ZQUEUEID<\/p>\n<p>ShortTxt: &lt;something you like&gt;<\/p>\n<p>Number length domain: char16<br \/>\nBuffering: No (if you don&#8217;t like gaps)<\/p>\n<p>Interval name:\u00a0Z1<br \/>\nFrom:\u00a00000000000000001<br \/>\nTo:\u00a0 \u00a0 \u00a09999999999999999<\/p>\n<h3>8. Create the BAdI class (SE18)<\/h3>\n<p><em>(Select BAdI Name, enter IDOC_XML_ENVELOPE_OU and click <strong>display<\/strong> button)<\/em><\/p>\n<p>Transaction-Code:\u00a0 SE18<br \/>\nBAdI Name:\u00a0IDOC_XML_ENVELOPE_OU<\/p>\n<p><em><u><a href=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZQUEUEID-615x480.jpg\" rel=\"prettyPhoto[gallery-cWgi]\"><img data-dominant-color=\"d5e2eb\" data-has-transparency=\"false\" style=\"--dominant-color: #d5e2eb;\" decoding=\"async\" class=\"alignnone wp-image-4004 size-medium not-transparent\" src=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZQUEUEID-615x480.jpg\" alt=\"settings of numberrange object ZQUEUEID_SNRO\" width=\"615\" height=\"480\" data-wp-pid=\"4004\" data-pin-nopin=\"nopin\" srcset=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZQUEUEID-615x480.jpg 615w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZQUEUEID-1200x937.jpg 1200w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZQUEUEID-jpg.webp 670w\" sizes=\"(max-width: 615px) 100vw, 615px\" \/><\/a><\/u><\/em><\/p>\n<p><em><u>-&gt; Implementation -&gt; Create<\/u><\/em><\/p>\n<p><strong><a href=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/IDOC_XML_ENVELOPE_OU-640x447.jpg\" rel=\"prettyPhoto[gallery-cWgi]\"><img data-dominant-color=\"d2dee8\" data-has-transparency=\"false\" style=\"--dominant-color: #d2dee8;\" decoding=\"async\" class=\"alignnone wp-image-4005 size-medium not-transparent\" src=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/IDOC_XML_ENVELOPE_OU-640x447.jpg\" alt=\"navigate from BAdI UI to Overview and Implementation\" width=\"640\" height=\"447\" data-wp-pid=\"4005\" data-pin-nopin=\"nopin\" srcset=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/IDOC_XML_ENVELOPE_OU-640x447.jpg 640w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/IDOC_XML_ENVELOPE_OU-768x537.jpg 768w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/IDOC_XML_ENVELOPE_OU-1200x839.jpg 1200w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/IDOC_XML_ENVELOPE_OU-jpg.webp 777w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/strong><\/p>\n<p><strong>Name:\u00a0ZIDOC_XML_ENVELOPE_O<\/strong><\/p>\n<p><em>(enter name and click OK (green arrow)\u00a0button)<\/em><\/p>\n<p id=\"BAdItomodifyHTTPIdocXMLbeforesending-Implementtheinterface\"><em><u>Tab Interface<\/u><\/em><\/p>\n<p>Double-click on <strong>PROCESS<\/strong><\/p>\n<p><em><a href=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOC_XML_ENVELOPE_O-640x450.jpg\" rel=\"prettyPhoto[gallery-cWgi]\"><img data-dominant-color=\"dbe5ed\" data-has-transparency=\"false\" style=\"--dominant-color: #dbe5ed;\" decoding=\"async\" class=\"alignnone wp-image-4006 size-medium not-transparent\" src=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOC_XML_ENVELOPE_O-640x450.jpg\" alt=\"navigate from the interface to the custom BAdI ZIDOC_XML_ENVELOPE_O\" width=\"640\" height=\"450\" data-wp-pid=\"4006\" data-pin-nopin=\"nopin\" srcset=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOC_XML_ENVELOPE_O-640x450.jpg 640w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOC_XML_ENVELOPE_O-1200x843.jpg 1200w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOC_XML_ENVELOPE_O-jpg.webp 753w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/em><\/p>\n<p><em>(Click on Source code Based)<\/em><\/p>\n<p><a href=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOC_XML_ENVELOPE_O._2jpg-640x160.jpg\" rel=\"prettyPhoto[gallery-cWgi]\"><img data-dominant-color=\"cbd5dd\" data-has-transparency=\"false\" style=\"--dominant-color: #cbd5dd;\" decoding=\"async\" class=\"alignnone wp-image-4008 size-medium not-transparent\" src=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOC_XML_ENVELOPE_O._2jpg-640x160.jpg\" alt=\"navigate from the interface to the custom BAdI ZIDOC_XML_ENVELOPE_O\" width=\"640\" height=\"160\" data-wp-pid=\"4008\" data-pin-nopin=\"nopin\" srcset=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOC_XML_ENVELOPE_O._2jpg-640x160.jpg 640w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOC_XML_ENVELOPE_O._2jpg-768x191.jpg 768w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOC_XML_ENVELOPE_O._2jpg-1200x299.jpg 1200w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOC_XML_ENVELOPE_O._2jpg-jpg.webp 987w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Copy and insert the code.<br \/>\n<strong>Save and activate it.<\/strong><\/p>\n<p><!-- HTML generated using hilite.me --><\/p>\n<div>\n<pre class=\"lang:default decode:true \">CLASS zcl_im_idoc_xml_envelope_o DEFINITION\r\n  PUBLIC\r\n  FINAL\r\n  CREATE PUBLIC .\r\n  PUBLIC SECTION.\r\n    INTERFACES if_ex_idoc_xml_envelope_ou .\r\n  PROTECTED SECTION.\r\n  PRIVATE SECTION.\r\n    CONSTANTS gc_idoc_xml_envelope_ou_name TYPE string VALUE 'ZCLIMIDOCXMLENV_O' ##NO_TEXT.\r\n    CONSTANTS gc_idoc_xml_envelope_ou_rcvpor TYPE string VALUE '^.*PO.{0,1}_.*$' ##NO_TEXT.\r\n    CONSTANTS gc_idoc_xml_zidocenvelpout_v TYPE string VALUE 'ZIDOCENVELOPEOUT' ##NO_TEXT.\r\n    CONSTANTS gc_direct_outbound TYPE string VALUE '1' ##NO_TEXT.\r\n    METHODS create_message\r\n      IMPORTING\r\n        !iv_msgno         TYPE edi_stamno\r\n        !iv_msgv1         TYPE any OPTIONAL\r\n        !iv_msgv2         TYPE any OPTIONAL\r\n        !iv_msgv3         TYPE any OPTIONAL\r\n        !iv_msgv4         TYPE any OPTIONAL\r\n      RETURNING\r\n        VALUE(rs_message) TYPE idocstatmp .\r\n    METHODS evaluate_xpath\r\n      IMPORTING\r\n        !idoc_string  TYPE string\r\n        !xpath        TYPE zxpath\r\n      RETURNING\r\n        VALUE(result) TYPE string .\r\n    METHODS getqueueid\r\n      IMPORTING\r\n        !control       TYPE edidc\r\n        !xpath         TYPE zxpath\r\n        !xpathresult   TYPE zxpath\r\n        !zrcvprn       TYPE zrcvprn\r\n      RETURNING\r\n        VALUE(queueid) TYPE char16 .\r\n    METHODS findenveloperecord\r\n      IMPORTING\r\n        !control          TYPE edidc\r\n        !xpath            TYPE zxpath\r\n        !xpathresult      TYPE zxpath\r\n        !zrcvprn          TYPE zrcvprn\r\n      RETURNING\r\n        VALUE(env_record) TYPE zidocenveloutnro .\r\nENDCLASS.\r\nCLASS ZCL_IM_IDOC_XML_ENVELOPE_O IMPLEMENTATION.\r\n* &lt;SIGNATURE&gt;---------------------------------------------------------------------------------------+\r\n* | Instance Private Method ZCL_IM_IDOC_XML_ENVELOPE_O-&gt;CREATE_MESSAGE\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | [---&gt;] IV_MSGNO                       TYPE        EDI_STAMNO\r\n* | [---&gt;] IV_MSGV1                       TYPE        ANY(optional)\r\n* | [---&gt;] IV_MSGV2                       TYPE        ANY(optional)\r\n* | [---&gt;] IV_MSGV3                       TYPE        ANY(optional)\r\n* | [---&gt;] IV_MSGV4                       TYPE        ANY(optional)\r\n* | [&lt;-()] RS_MESSAGE                     TYPE        IDOCSTATMP\r\n* +--------------------------------------------------------------------------------------&lt;\/SIGNATURE&gt;\r\n  METHOD create_message.\r\n* Check for consistency\r\n    IF iv_msgno IS INITIAL.\r\n      RAISE EXCEPTION TYPE cx_fatal_exception.\r\n    ENDIF.\r\n    CLEAR rs_message.\r\n* Fill message structure\r\n    rs_message-stamid = gc_idoc_xml_envelope_ou_name.\r\n    rs_message-stamno = iv_msgno.\r\n    IF iv_msgv1 IS SUPPLIED.\r\n      rs_message-stapa1 = iv_msgv1.\r\n    ENDIF.\r\n    IF iv_msgv2 IS SUPPLIED.\r\n      rs_message-stapa2 = iv_msgv2.\r\n    ENDIF.\r\n    IF iv_msgv3 IS SUPPLIED.\r\n      rs_message-stapa3 = iv_msgv3.\r\n    ENDIF.\r\n    IF iv_msgv4 IS SUPPLIED.\r\n      rs_message-stapa4 = iv_msgv4.\r\n    ENDIF.\r\n    rs_message-repid = sy-repid.\r\n  ENDMETHOD.\r\n* &lt;SIGNATURE&gt;---------------------------------------------------------------------------------------+\r\n* | Instance Private Method ZCL_IM_IDOC_XML_ENVELOPE_O-&gt;EVALUATE_XPATH\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | [---&gt;] IDOC_STRING                    TYPE        STRING\r\n* | [---&gt;] XPATH                          TYPE        ZXPATH\r\n* | [&lt;-()] RESULT                         TYPE        STRING\r\n* +--------------------------------------------------------------------------------------&lt;\/SIGNATURE&gt;\r\n  METHOD evaluate_xpath.\r\n    DATA: separator(1) TYPE c VALUE '&amp;',\r\n          full         TYPE abap_bool.\r\n*    DESCRIBE FIELD result LENGTH DATA(clen) IN CHARACTER MODE.                 \" no neeed to loop more than max length\r\n    DATA(xpp) = NEW cl_proxy_xpath( ).\r\n    xpp-&gt;set_source_string( idoc_string ).\r\n    xpp-&gt;run( expression = xpath ).\r\n    DATA(nodes) = xpp-&gt;get_nodes( ).\r\n    IF NOT nodes IS INITIAL.\r\n      DATA(node) = nodes-&gt;get_next( ).\r\n      WHILE node IS BOUND AND NOT node IS INITIAL AND NOT full = abap_true.\r\n        DATA(s) = node-&gt;get_value( ).\r\n        DATA(typ) = node-&gt;get_type( ).\r\n        CONCATENATE result s INTO result SEPARATED BY separator .\r\n        node = nodes-&gt;get_next( ).\r\n      ENDWHILE.\r\n      REPLACE REGEX '^' &amp;&amp; separator &amp;&amp; '+|' &amp;&amp; separator &amp;&amp; '+$' IN result WITH ''.                                     \" remove pipe at the end if there is one\r\n    ENDIF.\r\n  ENDMETHOD.\r\n* &lt;SIGNATURE&gt;---------------------------------------------------------------------------------------+\r\n* | Instance Private Method ZCL_IM_IDOC_XML_ENVELOPE_O-&gt;FINDENVELOPERECORD\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | [---&gt;] CONTROL                        TYPE        EDIDC\r\n* | [---&gt;] XPATH                          TYPE        ZXPATH\r\n* | [---&gt;] XPATHRESULT                    TYPE        ZXPATH\r\n* | [---&gt;] ZRCVPRN                        TYPE        ZRCVPRN\r\n* | [&lt;-()] ENV_RECORD                     TYPE        ZIDOCENVELOUTNRO\r\n* +--------------------------------------------------------------------------------------&lt;\/SIGNATURE&gt;\r\n  METHOD findenveloperecord.\r\n    SELECT * FROM  zidocenveloutnro\r\n   WHERE  rcvprt   = @control-rcvprt\r\n   AND    rcvprn   = @control-rcvprn\r\n   AND    rcvpfc   = @control-rcvpfc\r\n   AND    mestyp   = @control-mestyp\r\n   AND    mescod   = @control-mescod\r\n   AND    mesfct   = @control-mesfct\r\n   AND    test     = @control-test\r\n   AND    idoctp   = @control-idoctp\r\n   AND    cimtyp   = @control-cimtyp\r\n   AND xpathresult = @xpathresult\r\n   AND zrcvprn     = @zrcvprn\r\n   AND qidxpath_v  = @xpath\r\n      INTO @env_record.\r\n    ENDSELECT.\r\n  ENDMETHOD.\r\n* &lt;SIGNATURE&gt;---------------------------------------------------------------------------------------+\r\n* | Instance Private Method ZCL_IM_IDOC_XML_ENVELOPE_O-&gt;GETQUEUEID\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | [---&gt;] CONTROL                        TYPE        EDIDC\r\n* | [---&gt;] XPATH                          TYPE        ZXPATH\r\n* | [---&gt;] XPATHRESULT                    TYPE        ZXPATH\r\n* | [---&gt;] ZRCVPRN                        TYPE        ZRCVPRN\r\n* | [&lt;-()] QUEUEID                        TYPE        CHAR16\r\n* +--------------------------------------------------------------------------------------&lt;\/SIGNATURE&gt;\r\n  METHOD getqueueid.\r\n    DATA: enqueued  TYPE abap_bool,\r\n          wa_record TYPE zidocenveloutnro,\r\n          rc        TYPE inri-returncode,\r\n          loops     TYPE n VALUE 1,\r\n          maxloops  TYPE i VALUE 10.\r\n    TRY.\r\n* Query to get the unique (single) record if same was already processed.\r\n        wa_record =  me-&gt;findenveloperecord( control = control  xpath  = xpath xpathresult = xpathresult zrcvprn = zrcvprn ).\r\n        WHILE NOT enqueued EQ abap_true AND loops &lt; maxloops  AND wa_record IS INITIAL.   \" enqueue table for insert\r\n          loops = loops + 1.                                                              \" avoid endless loop\r\n* Enqueue for insert, if new\r\n          CALL FUNCTION 'ENQUEUE_E_TABLE'\r\n            EXPORTING\r\n              mode_rstable = 'E'\r\n              _wait        = 'X'\r\n              tabname      = 'ZIDOCENVELOUTNRO'.\r\n          IF sy-subrc = 0.\r\n            enqueued = abap_true.\r\n          ELSE.\r\n            IF loops &gt;=  maxloops .\r\n              RAISE EXCEPTION TYPE cx_abap_pragma_enqueue.\r\n            ENDIF.\r\n            WAIT UP TO 2 SECONDS.\r\n          ENDIF.\r\n* Check again to make sure no insert happened during wait for enqueue\r\n          wa_record =  me-&gt;findenveloperecord( control = control  xpath  = xpath xpathresult = xpathresult zrcvprn = zrcvprn ).\r\n          IF enqueued EQ abap_true AND wa_record IS INITIAL.\r\n            \" should only be reached if enqued\r\n            IF xpathresult IS NOT INITIAL.                                              \" only if serialization is required\r\n              CALL FUNCTION 'NUMBER_GET_NEXT'\r\n                EXPORTING\r\n                  nr_range_nr = 'Z1'\r\n                  object      = 'ZQUEUEID'\r\n                IMPORTING\r\n                  number      = queueid\r\n                  returncode  = rc.\r\n              IF sy-subrc &lt;&gt; 0 OR rc &lt;&gt; 0.\r\n                RAISE EXCEPTION TYPE cx_abap_load_error.\r\n              ENDIF.\r\n            ENDIF.\r\n            wa_record = VALUE #( BASE CORRESPONDING #( control ) qidxpath_v = xpath xpathresult = xpathresult changedate = sy-datum changetime = sy-uzeit queueid = queueid zrcvprn = zrcvprn ).\r\n            INSERT INTO zidocenveloutnro VALUES wa_record.\r\n            COMMIT WORK.\r\n          ENDIF.\r\n*end of enque, if new\r\n        ENDWHILE.\r\n* return queueid (also empty\/initial ones) if successfully retrieved otherwise exception\r\n        IF wa_record IS NOT INITIAL.\r\n          queueid = wa_record-queueid.\r\n        ELSE.\r\n          RAISE EXCEPTION TYPE cx_abap_load_error.\r\n        ENDIF.\r\n      CATCH cx_root.\r\n        RAISE EXCEPTION TYPE cx_abap_load_error.\r\n      CLEANUP.\r\n        IF enqueued EQ abap_true.\r\n          CALL FUNCTION 'DEQUEUE_E_TABLE'\r\n            EXPORTING\r\n              mode_rstable = 'E'\r\n              tabname      = 'ZIDOCENVELOUTNRO'.\r\n          IF sy-subrc &lt;&gt; 0.\r\n            RAISE EXCEPTION TYPE cx_abap_load_error.\r\n          ENDIF.\r\n        ENDIF.\r\n    ENDTRY.\r\n  ENDMETHOD.\r\n* &lt;SIGNATURE&gt;---------------------------------------------------------------------------------------+\r\n* | Instance Public Method ZCL_IM_IDOC_XML_ENVELOPE_O-&gt;IF_EX_IDOC_XML_ENVELOPE_OU~PROCESS\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | [---&gt;] IDOC_XML                       TYPE        XSTRING\r\n* | [---&gt;] CONTROL                        TYPE        EDIDC\r\n* | [&lt;---] OUTBOUND_XML                   TYPE        XSTRING\r\n* | [&lt;---] ERROR                          TYPE        CHAR1\r\n* | [&lt;---] PROTOCOL                       TYPE        IDOCSTATMP\r\n* +--------------------------------------------------------------------------------------&lt;\/SIGNATURE&gt;\r\n  METHOD if_ex_idoc_xml_envelope_ou~process.\r\n    TYPE-POOLS: ixml.\r\n    DATA: lo_stream_factory TYPE REF TO if_ixml_stream_factory,\r\n          lo_input_stream   TYPE REF TO if_ixml_istream,\r\n          lo_output_stream  TYPE REF TO if_ixml_ostream,\r\n          lo_document       TYPE REF TO if_ixml_document,\r\n          lo_parser         TYPE REF TO if_ixml_parser,\r\n          lo_parse_error    TYPE REF TO if_ixml_parse_error,\r\n          lo_renderer       TYPE REF TO if_ixml_renderer,\r\n          lo_ixml           TYPE REF TO if_ixml.\r\n    DATA:\r\n      lv_idocout_s TYPE string,\r\n      errorcount   TYPE integer VALUE 0.\r\n* Reset exporting parameters\r\n    CLEAR outbound_xml.\r\n    CLEAR error.\r\n    CLEAR protocol.\r\n*+-------------------------------------------------------------------------------------------------+\r\n* Do initial checks and return if they are not fullfilled with original payload\r\n*+-------------------------------------------------------------------------------------------------+\r\n    outbound_xml = idoc_xml.\r\n    IF idoc_xml IS INITIAL.\r\n      RETURN.                                            \" Exit anyway\r\n    ENDIF.\r\n* Check the port to be relevant\r\n    DATA: portmatch         TYPE match_result.\r\n    FIND FIRST OCCURRENCE OF REGEX gc_idoc_xml_envelope_ou_rcvpor IN control-rcvpor RESULTS portmatch.\r\n    IF portmatch IS INITIAL.                            \" IDOC receiver port is not a *PO[x]_ destiantion\r\n      RETURN.\r\n    ENDIF.\r\n    IF control-direct &lt;&gt; gc_direct_outbound.            \"  Direction is not \"1 - Outbound\"\r\n      RETURN.\r\n    ENDIF.\r\n    TRY.\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | Convert xstring to string, default UTF-8 encoding\r\n* +-------------------------------------------------------------------------------------------------+\r\n        DATA(idoc_string) = cl_abap_codepage=&gt;convert_from( source =  idoc_xml ).\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | Save for later and now remove XML declaration from incoming XML\r\n* +-------------------------------------------------------------------------------------------------+\r\n        DATA: matches         TYPE match_result,\r\n              xml_declaration TYPE string.\r\n        FIND FIRST OCCURRENCE OF REGEX '&lt;\\?xml.*\\?&gt;' IN idoc_string RESULTS matches.\r\n        xml_declaration = idoc_string+matches-offset(matches-length).\r\n        REPLACE REGEX '&lt;\\?xml.*\\?&gt;' IN idoc_string WITH ''.\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | Retrieve UUID as sysuuid_x\r\n* +-------------------------------------------------------------------------------------------------+\r\n        DATA: uuid TYPE sysuuid_x.\r\n        CALL FUNCTION 'SYSTEM_UUID_CREATE'\r\n          IMPORTING\r\n            uuid = uuid.\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | Format Message ID with hyphens as string\r\n* +-------------------------------------------------------------------------------------------------+\r\n        DATA(msgid) = cl_soap_wsrmb_helper=&gt;convert_uuid_raw_to_hyphened( uuid ).\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | Get UTC timestamp\r\n* +-------------------------------------------------------------------------------------------------+\r\n        DATA: lv_utc TYPE timestamp.\r\n        cl_abap_tstmp=&gt;systemtstmp_syst2utc(\r\n          EXPORTING\r\n            syst_date = sy-datum\r\n            syst_time = sy-uzeit\r\n         IMPORTING\r\n           utc_tstmp = lv_utc ).\r\n        errorcount = errorcount + sy-subrc.\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | Convert UTC timestamp into ISO format as string\r\n* +-------------------------------------------------------------------------------------------------+\r\n        DATA: ts TYPE string.\r\n        ts = cl_xlf_date_time=&gt;create( timestamp = lv_utc ).\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | Retrieve business system name from SLD for sender service\r\n* +-------------------------------------------------------------------------------------------------+\r\n        DATA: bs_name TYPE text60,\r\n              bs_capt TYPE string,\r\n              bs_role TYPE lcr_bs_role.\r\n        CALL FUNCTION 'LCR_GET_OWN_BUSINESS_SYSTEM'\r\n          EXPORTING\r\n            bypassing_cache              = ' '\r\n            read_from_cache              = ' '\r\n            update_cache_entry_timestamp = ' '\r\n          IMPORTING\r\n            bs_key_name                  = bs_name\r\n            bs_caption                   = bs_capt\r\n            bs_role                      = bs_role.\r\n        errorcount = errorcount + sy-subrc.\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | Get data from the customizing table\r\n* +-------------------------------------------------------------------------------------------------+\r\n        SELECT SINGLE * FROM  zidocenvelopeout\r\n               WHERE  rcvprt   = @control-rcvprt\r\n               AND    rcvprn   = @control-rcvprn\r\n               AND    rcvpfc   = @control-rcvpfc\r\n               AND    mestyp   = @control-mestyp\r\n               AND    mescod   = @control-mescod\r\n               AND    mesfct   = @control-mesfct\r\n               AND    idoctp  = @control-idoctp\r\n               AND    cimtyp   = @control-cimtyp INTO @DATA(custv).\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | Do the mapping of RCVPRN, which might be required for party due to SAP PO not accepting numbers\r\n* +-------------------------------------------------------------------------------------------------+\r\n        DATA: rcvprn TYPE zrcvprn.\r\n        IF custv-zrcvprn IS NOT INITIAL.\r\n          rcvprn = custv-zrcvprn.\r\n        ELSE.\r\n          rcvprn = control-rcvprn.\r\n        ENDIF.\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | Run the Xpath evaluation which is required to set serialization context (QueueId) in SAP PO\r\n* +-------------------------------------------------------------------------------------------------+\r\n        DATA: xpathresult TYPE zxpath .\r\n        IF custv-qidxpath IS NOT INITIAL.\r\n          IF custv-qidxpath(1) = ''''.\r\n            xpathresult = custv-qidxpath.\r\n            REPLACE ALL OCCURRENCES OF '''' IN xpathresult WITH ''.\r\n          ELSE.\r\n            xpathresult = me-&gt;evaluate_xpath( idoc_string = idoc_string xpath = custv-qidxpath ).\r\n          ENDIF.\r\n          IF xpathresult IS INITIAL.\r\n            protocol = create_message(\r\n            iv_msgno = '006'\r\n            iv_msgv1 = 'Xpath found no value'\r\n            iv_msgv2 = 'Badi: ZCL_IM_IDOC_XML_ENVELOPE_O').\r\n            error = abap_true.\r\n            RETURN.\r\n          ENDIF.\r\n        ENDIF.\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | Data preparation steps\r\n* +-------------------------------------------------------------------------------------------------+\r\n        DATA:          systemack TYPE string,\r\n                       errorack  TYPE string,\r\n                       defaultif TYPE string,\r\n                       queueid   TYPE char16.\r\n        defaultif = control-mestyp &amp;&amp; '.' &amp;&amp; control-idoctp &amp;&amp; '.' &amp;&amp; control-cimtyp. \"In case no custom Idoc interface required\r\n        REPLACE REGEX '\\.$' IN defaultif WITH '' .                                    \" remove dot at the end in case no cimtype\r\n        IF custv-systemack = abap_false.                                             \" convert to xsd:boolean\r\n          systemack = 'false'.\r\n        ELSE.\r\n          systemack = 'true'.\r\n        ENDIF.\r\n        IF custv-errorack = abap_false.\r\n          errorack = 'false'.\r\n        ELSE.\r\n          errorack = 'true'.\r\n        ENDIF.\r\n        \" will also be called in case no queuueid is required for join of view ZIDOCENVELPOUT_V\r\n        queueid = me-&gt;getqueueid( control = control xpath = custv-qidxpath xpathresult = xpathresult zrcvprn = custv-zrcvprn  ).\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | Add SAP PO SOAP envelope around xml to fill xi protocol parameters dnyamically\r\n* +-------------------------------------------------------------------------------------------------+\r\n        CONCATENATE xml_declaration\r\n        '&lt;SOAP:Envelope xmlns:SOAP=\"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/\"&gt;'\r\n        '&lt;SOAP:Header&gt;'\r\n          '&lt;sap:Main xmlns:sap=\"http:\/\/sap.com\/xi\/XI\/Message\/30\" versionMajor=\"3\" versionMinor=\"1\" SOAP:mustUnderstand=\"1\"&gt;'\r\n            '&lt;sap:MessageClass&gt;ApplicationMessage&lt;\/sap:MessageClass&gt;'\r\n            '&lt;sap:ProcessingMode&gt;asynchronous&lt;\/sap:ProcessingMode&gt;'\r\n            '&lt;sap:MessageId&gt;' msgid '&lt;\/sap:MessageId&gt;'\r\n            '&lt;sap:TimeSent&gt;' ts  '&lt;\/sap:TimeSent&gt;'\r\n            '&lt;sap:Sender&gt;'\r\n              '&lt;sap:Party agency=\"http:\/\/sap.com\/xi\/XI\" scheme=\"XIParty\"\/&gt;'\r\n              '&lt;sap:Service&gt;' bs_name '&lt;\/sap:Service&gt;'\r\n              '&lt;\/sap:Sender&gt;'\r\n            '&lt;sap:Receiver&gt;' INTO lv_idocout_s.\r\n        CASE control-rcvprt .\r\n          WHEN 'LS'.\r\n            CONCATENATE lv_idocout_s\r\n              '&lt;sap:Party agency=\"http:\/\/sap.com\/xi\/XI\" scheme=\"XIParty\"\/&gt;'\r\n              '&lt;sap:Service&gt;' rcvprn '&lt;\/sap:Service&gt;' INTO lv_idocout_s .\r\n          WHEN OTHERS.\r\n            CONCATENATE lv_idocout_s\r\n              '&lt;sap:Party agency=\"http:\/\/sap.com\/xi\/XI\" scheme=\"XIParty\"&gt;' rcvprn '&lt;\/sap:Party&gt;'\r\n              '&lt;sap:Service&gt;&lt;\/sap:Service&gt;' INTO lv_idocout_s .\r\n        ENDCASE.\r\n        CONCATENATE lv_idocout_s\r\n            '&lt;\/sap:Receiver&gt;' INTO lv_idocout_s .\r\n        CASE custv-custsendns .\r\n          WHEN ' '.\r\n            CONCATENATE lv_idocout_s\r\n            '&lt;sap:Interface namespace=\"urn:sap-com:document:sap:idoc:messages\" &gt;' INTO lv_idocout_s .\r\n          WHEN OTHERS.\r\n            CONCATENATE lv_idocout_s\r\n            '&lt;sap:Interface namespace=\"' custv-custsendns '\" &gt;' INTO lv_idocout_s .\r\n        ENDCASE.\r\n        CASE custv-custsendif .\r\n          WHEN ' '.\r\n            CONCATENATE lv_idocout_s defaultif INTO lv_idocout_s .\r\n          WHEN OTHERS.\r\n            CONCATENATE lv_idocout_s custv-custsendif INTO lv_idocout_s .\r\n        ENDCASE.\r\n        CONCATENATE lv_idocout_s\r\n            '&lt;\/sap:Interface&gt;'\r\n          '&lt;\/sap:Main&gt;'\r\n          '&lt;sap:ReliableMessaging xmlns:sap=\"http:\/\/sap.com\/xi\/XI\/Message\/30\" SOAP:mustUnderstand=\"1\" SystemAckRequested=\"' systemack '\" SystemErrorAckRequested=\"' errorack '\" &gt;' INTO lv_idocout_s .\r\n        CASE custv-qidxpath .\r\n          WHEN ' ' .\r\n            CONCATENATE lv_idocout_s\r\n            '&lt;sap:QualityOfService&gt;ExactlyOnce&lt;\/sap:QualityOfService&gt;' INTO lv_idocout_s .\r\n          WHEN OTHERS.\r\n            CONCATENATE lv_idocout_s\r\n            '&lt;sap:QualityOfService&gt;ExactlyOnceInOrder&lt;\/sap:QualityOfService&gt;'\r\n            '&lt;sap:QueueId&gt;' queueid '&lt;\/sap:QueueId&gt;'  INTO lv_idocout_s .\r\n        ENDCASE.\r\n        CONCATENATE lv_idocout_s\r\n          '&lt;\/sap:ReliableMessaging&gt;'\r\n          '&lt;sap:DynamicConfiguration xmlns:sap=\"http:\/\/sap.com\/xi\/XI\/Message\/30\" SOAP:mustUnderstand=\"1\"&gt;'\r\n            '&lt;sap:Record namespace=\"http:\/\/sap.com\/xi\/XI\/System\/IDoc_AAE\" name=\"RCVPRN\"&gt;' control-rcvprn '&lt;\/sap:Record&gt;'\r\n            '&lt;sap:Record namespace=\"http:\/\/sap.com\/xi\/XI\/System\/IDoc_AAE\" name=\"DOCNUMS\"&gt;' control-docnum '&lt;\/sap:Record&gt;'\r\n            '&lt;sap:Record namespace=\"http:\/\/sap.com\/xi\/XI\/System\/IDoc_AAE\" name=\"AckData\"&gt;' control-docnum ';' control-rcvprn '&lt;\/sap:Record&gt;'\r\n          '&lt;\/sap:DynamicConfiguration&gt;'\r\n          '&lt;sap:HopList xmlns:sap=\"http:\/\/sap.com\/xi\/XI\/Message\/30\" SOAP:mustUnderstand=\"1\"&gt;'\r\n            '&lt;sap:Hop timeStamp=\"' ts '\" wasRead=\"false\"&gt;'\r\n              '&lt;sap:Engine type=\"AE\"&gt;af.pot.pot&lt;\/sap:Engine&gt;'\r\n              '&lt;sap:Adapter namespace=\"http:\/\/sap.com\/xi\/XI\/System\"&gt;IDoc_AAE&lt;\/sap:Adapter&gt;'\r\n              '&lt;sap:MessageId&gt;' msgid '&lt;\/sap:MessageId&gt;'\r\n              '&lt;sap:Info&gt;localejbs\/IDocAckBean&lt;\/sap:Info&gt;'\r\n            '&lt;\/sap:Hop&gt;'\r\n          '&lt;\/sap:HopList&gt;'\r\n        '&lt;\/SOAP:Header&gt;'\r\n        '&lt;SOAP:Body&gt;'\r\n        idoc_string\r\n        '  &lt;\/SOAP:Body&gt;'\r\n      '&lt;\/SOAP:Envelope&gt;'\r\n    INTO lv_idocout_s.\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | Prepare output and convert from string to xstring, default UTF-8\r\n* +-------------------------------------------------------------------------------------------------+\r\n        CLEAR outbound_xml.\r\n        outbound_xml =  cl_abap_codepage=&gt;convert_to( source = lv_idocout_s ).\r\n* +-------------------------------------------------------------------------------------------------+\r\n* | Error Handling\r\n* +-------------------------------------------------------------------------------------------------+\r\n        IF errorcount &lt;&gt; 0.\r\n          RAISE EXCEPTION TYPE cx_abap_load_error.\r\n        ENDIF.\r\n      CATCH cx_root INTO DATA(e_text).\r\n        protocol = create_message(\r\n          iv_msgno = '006'\r\n          iv_msgv1 = 'ZCL_IM_IDOC_XML_ENVELOPE_O' ).\r\n        error = abap_true.\r\n        RETURN.\r\n    ENDTRY.\r\n  ENDMETHOD.\r\nENDCLASS.<\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<h2>Customizing<\/h2>\n<p>Use SQL for the first insert into ZIDOCENVELOPEOUT, e.g.<\/p>\n<pre class=\"lang:plsql decode:true\">insert into sapsr3.ZIDOCENVELOPEOUT (MANDT, RCVPRN, RCVPRT, RCVPFC, MESTYP, MESCOD, MESFCT, TEST) values ('your client', 'your LS', 'LS', ' ', 'your Idoc Type', ' ', ' ', ' ');\r\ncommit;<\/pre>\n<p>Mandatory, if you want to apply a rule, otherwise it should also work without any transformation:From now on, you can edit the table in SE16, if the client settings allow it.<br \/>\nConsult your Basis if you face some issues.<\/p>\n<p>Please maintain IDocTp and CimTp like you have maintained it in WE20 partner profile to match outgoing IDocs.<\/p>\n<p>Optional:<br \/>\nYou can enter your Custom \/ Generic IDoc Interface name in column &#8220;CustSendIf&#8221;.<br \/>\nYou can enter namespace of Custom \/ Generic IDoc Interface name in column &#8220;CustSendNs&#8221;.<br \/>\nYou can enter your virtual receiver in column &#8220;zRcvPrn&#8221;:<br \/>\n&#8211;&gt; in case of LI\/KU\/GP&#8230; the value will appear in party field, in case of LS it will appear in the service field.<br \/>\nYou can enter your Xpath-Expression for creating the serialization context in column &#8220;qIdXpath&#8221;:<br \/>\n-&gt; In case you fill it, the QoS will be EOIO automatically &#8211; make sure to enter an Xpath which returns a result.<br \/>\n-&gt; In case you leave it empty the QoS will be EO.<\/p>\n<h2><a href=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOPEOUT_DATA-640x100.jpg\" rel=\"prettyPhoto[gallery-cWgi]\"><img data-dominant-color=\"c2ced8\" data-has-transparency=\"false\" style=\"--dominant-color: #c2ced8;\" decoding=\"async\" class=\"alignnone wp-image-4007 size-medium not-transparent\" src=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOPEOUT_DATA-640x100.jpg\" alt=\"data in table ZIDOCENVELOPEOUT\" width=\"640\" height=\"100\" data-wp-pid=\"4007\" data-pin-nopin=\"nopin\" srcset=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOPEOUT_DATA-640x100.jpg 640w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOPEOUT_DATA-768x120.jpg 768w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOPEOUT_DATA-1024x159.jpg 1024w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOPEOUT_DATA-1200x187.jpg 1200w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOPEOUT_DATA-jpg.webp 1169w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/h2>\n<h2>Monitoring<\/h2>\n<p>You can monitor the assignment of queueids (from number range object), when they are created the first time in table ZIDOCENVELOUTNRO.<br \/>\nIf you want, you can create a view joining ZIDOCENVELOPEOUT and ZIDOCENVELOUTNRO in order to suppress historic values (not part of this blog entry).<\/p>\n<h2><a href=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOUTNRO_data-640x114.jpg\" rel=\"prettyPhoto[gallery-cWgi]\"><img data-dominant-color=\"bdd3dd\" data-has-transparency=\"false\" style=\"--dominant-color: #bdd3dd;\" decoding=\"async\" class=\"alignnone wp-image-4009 size-medium not-transparent\" src=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOUTNRO_data-640x114.jpg\" alt=\"monitoring data in table ZIDOCENVELOUTNRO\" width=\"640\" height=\"114\" data-wp-pid=\"4009\" data-pin-nopin=\"nopin\" srcset=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOUTNRO_data-640x114.jpg 640w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOUTNRO_data-768x137.jpg 768w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOUTNRO_data-1024x182.jpg 1024w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOUTNRO_data-1200x213.jpg 1200w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/ZIDOCENVELOUTNRO_data-jpg.webp 1170w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/h2>\n<h2>Outlook<\/h2>\n<p>Full function with an additional SAP PO Adapter Module in case persistence is switched on:<\/p>\n<ol>\n<li>See incoming IDocs over SAP PO &#8211; Generic IDoc Outbound Interface in IDoc monitor (KB <a href=\"https:\/\/launchpad.support.sap.com\/#\/notes\/2345912\">2345912 &#8211; IDoc Message Monitor<\/a>)<\/li>\n<li>Be able to return Acknowledgements and monitor them using standard SAP PO IDoc Monitor (KB:\u00a0<a href=\"https:\/\/launchpad.support.sap.com\/#\/notes\/2992965\">2992965 &#8211; IDoc ALEAUD<\/a>)<\/li>\n<\/ol>\n<h2><a href=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/IDOC_MONITOR-640x395.jpg\" rel=\"prettyPhoto[gallery-cWgi]\"><img data-dominant-color=\"e1d6bb\" data-has-transparency=\"false\" style=\"--dominant-color: #e1d6bb;\" decoding=\"async\" class=\"alignnone wp-image-3816 size-medium not-transparent\" src=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/IDOC_MONITOR-640x395.jpg\" alt=\"SAP PO IDOC MONITOR\" width=\"640\" height=\"395\" srcset=\"https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/IDOC_MONITOR-640x395.jpg 640w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/IDOC_MONITOR-768x474.jpg 768w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/IDOC_MONITOR-1024x632.jpg 1024w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/IDOC_MONITOR-1200x740.jpg 1200w, https:\/\/www.ho2-gmbh.de\/wp-content\/uploads\/2021\/03\/IDOC_MONITOR-jpg.webp 1284w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><\/a><\/h2>\n<h2>Download Transportfile<\/h2>\n<p>Cofile: <a href=\"\/wp-content\/uploads\/2021\/03\/K900059.SLM\">K900059.SLM<\/a><br \/>\nDatafile: <a href=\"\/wp-content\/uploads\/2021\/03\/R900059.SLM\">R900059.SLM<\/a><\/p>\n<p>Please consult your Basis team if you do not know how to use these files.<\/p>\n<h2>Feedback<\/h2>\n<p>Please\u00a0<a href=\"\/agentur\/?Betreff=[Quote for SAP PO Consulting]#kontakt\">\ud83d\udce7\u00a0contact us if you find any issue or have questions about it.<\/a><\/p>\n<hr \/>\n<p>This\u00a0<a href=\"https:\/\/www.ho2-gmbh.de\/news\/howto-send-idocs-to-a-generic-idoc-sender-interface\/\">post<\/a>\u00a0was first published on\u00a0<a href=\"https:\/\/blogs.sap.com\/2021\/04\/06\/howto-send-idocs-to-a-generic-idoc-sender-interface\/\">https:\/\/blogs.sap.com\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As you can see in the picture we have a\u00a0SAP PO &#8211; Generic IDoc Outbound Interface with multiple IDoc Operation in our iFlow. Introduction Often you have the requirement to&#8230;<\/p>\n","protected":false},"author":1,"featured_media":5721,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"wpupg_custom_link":[],"wpupg_custom_link_behaviour":["default"],"wpupg_custom_link_nofollow":[],"wpupg_custom_image":[],"wpupg_custom_image_id":[],"footnotes":""},"categories":[485],"tags":[492,493,494,496],"class_list":{"0":"post-6014","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-sap-po-en","8":"tag-idoc-en-2","9":"tag-idoc-xml-en-2","10":"tag-idoc_xml_envelope_ou-en-2","11":"tag-sap-po-en-2"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SAP PO: Generic Idoc Outbound Interface - HO2 Systemberatung GmbH<\/title>\n<meta name=\"description\" content=\"Erstellen Sie eine SAP PO - Generische IDoc Outbound-Schnittstelle mit Hilfe des BAdI IDOC_XML_ENVELOPE_OU im ABAP-Sendsystem? Details finden Sie hier.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.ho2-gmbh.de\/en\/news\/sap-po-generic-idoc-outbound-interface\/\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SAP PO: Generic Idoc Outbound Interface - HO2 Systemberatung GmbH","description":"Erstellen Sie eine SAP PO - Generische IDoc Outbound-Schnittstelle mit Hilfe des BAdI IDOC_XML_ENVELOPE_OU im ABAP-Sendsystem? Details finden Sie hier.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.ho2-gmbh.de\/en\/news\/sap-po-generic-idoc-outbound-interface\/","schema":{"@context":"https:\/\/schema.org","@graph":[]}},"_links":{"self":[{"href":"https:\/\/www.ho2-gmbh.de\/en\/wp-json\/wp\/v2\/posts\/6014","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ho2-gmbh.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ho2-gmbh.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ho2-gmbh.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ho2-gmbh.de\/en\/wp-json\/wp\/v2\/comments?post=6014"}],"version-history":[{"count":4,"href":"https:\/\/www.ho2-gmbh.de\/en\/wp-json\/wp\/v2\/posts\/6014\/revisions"}],"predecessor-version":[{"id":6260,"href":"https:\/\/www.ho2-gmbh.de\/en\/wp-json\/wp\/v2\/posts\/6014\/revisions\/6260"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ho2-gmbh.de\/en\/wp-json\/wp\/v2\/media\/5721"}],"wp:attachment":[{"href":"https:\/\/www.ho2-gmbh.de\/en\/wp-json\/wp\/v2\/media?parent=6014"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ho2-gmbh.de\/en\/wp-json\/wp\/v2\/categories?post=6014"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ho2-gmbh.de\/en\/wp-json\/wp\/v2\/tags?post=6014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}