IDOC 2 EDI generation using xslt logic

EDI to IDOC using xslt logic



<?xml version="1.0" encoding="UTF-8"?>

<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">

<ns0:Message1>

<M_830>

<S_ST>

<D_143>830</D_143>

<D_329>018135846</D_329>

</S_ST>

<S_BFR>

<D_353>05</D_353>

<D_328>216</D_328>

<D_675>SH</D_675>

<D_676>A</D_676>

<D_373>230424</D_373>

<D_373_2>240101</D_373_2>

<D_373_3>230424</D_373_3>

</S_BFR>

<G_N1>

<S_N1>

<D_98>MI</D_98>

<D_93>ADCOM</D_93>

<D_66>92</D_66>

<D_67>C100</D_67>

</S_N1>

</G_N1>

<G_N1>

<S_N1>

<D_98>SU</D_98>

<D_93>W. L. GORE &amp; ASSOCIATES, INC.</D_93>

<D_66>92</D_66>

<D_67>152405</D_67>

</S_N1>

</G_N1>

<G_N1>

<S_N1>

<D_98>SF</D_98>

<D_93>W. L. GORE &amp; ASSOCIATES, INC.</D_93>

<D_66>92</D_66>

<D_67>152405</D_67>

</S_N1>

</G_N1>

<G_N1>

<S_N1>

<D_98>ST</D_98>

<D_93>ADCOM</D_93>

<D_66>92</D_66>

<D_67>C100</D_67>

</S_N1>

</G_N1>

<G_LIN>

<S_LIN>

<D_235>BP</D_235>

<D_234>02-64-20003</D_234>

<D_235_2>PO</D_235_2>

<D_234_2>5500001149</D_234_2>

</S_LIN>

<S_UIT>

<C_C001>

<D_355>EA</D_355>

</C_C001>

</S_UIT>

<S_PER>

<D_366>EX</D_366>

<D_93>DO NOT USE</D_93>

<D_365>TE</D_365>

<D_364>+12893041098</D_364>

</S_PER>

<S_ATH>

<D_672>PQ</D_672>

<D_373>230424</D_373>

<D_380>336000</D_380>

<D_373_2>221231</D_373_2>

</S_ATH>

<S_ATH>

<D_672>FI</D_672>

<D_380>432000</D_380>

<D_373_2>221231</D_373_2>

</S_ATH>

<S_ATH>

<D_672>MT</D_672>

<D_380>432000</D_380>

<D_373_2>221231</D_373_2>

</S_ATH>

<G_SDP>

<S_SDP>

<D_678>N</D_678>

<D_679>F</D_679>

</S_SDP>

<S_FST>

<D_380>96000</D_380>

<D_680>C</D_680>

<D_681>D</D_681>

<D_373>230424</D_373>

</S_FST>

<S_FST>

<D_380>48000</D_380>

<D_680>D</D_680>

<D_681>M</D_681>

<D_373>230925</D_373>

</S_FST>

<S_FST>

<D_380>48000</D_380>

<D_680>D</D_680>

<D_681>M</D_681>

<D_373>231030</D_373>

</S_FST>

<S_FST>

<D_380>24000</D_380>

<D_680>D</D_680>

<D_681>M</D_681>

<D_373>231127</D_373>

</S_FST>

<S_FST>

<D_380>0</D_380>

<D_680>D</D_680>

<D_681>M</D_681>

<D_373>240101</D_373>

</S_FST>

</G_SDP>

<G_SHP>

<S_SHP>

<D_673>01</D_673>

<D_380>24000</D_380>

<D_374>050</D_374>

<D_373>230420</D_373>

</S_SHP>

<S_REF>

<D_128>SI</D_128>

<D_127>35622490</D_127>

</S_REF>

</G_SHP>

<G_SHP>

<S_SHP>

<D_673>02</D_673>

<D_380>336000</D_380>

<D_374>051</D_374>

<D_373>221231</D_373>

<D_373_2>230420</D_373_2>

</S_SHP>

</G_SHP>

</G_LIN>

<S_CTT>

<D_354>1</D_354>

<D_347>216000</D_347>

</S_CTT>

<S_SE>

<D_96>23</D_96>

<D_329>018135846</D_329>

</S_SE>

</M_830>

</ns0:Message1>

</ns0:Messages>

------------------
<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge" xmlns:hci="http://sap.com/it/" exclude-result-prefixes="hci">
<xsl:output indent="yes"/>
<xsl:param name="Client"/>
<xsl:param name="SAP_ISA_Usage_Indicator"/>
<xsl:param name="SenderPort"/>
<xsl:param name="SenderPartnerType"/>
<xsl:param name="SenderPartner"/>
<xsl:param name="LogicalSystem"/>

<xsl:template match="/">
<SYSTAT01>
  <IDOC BEGIN="1">
    <EDI_DC40 SEGMENT="1">
      <TABNAM>EDI_DC40</TABNAM>
      <MANDT><xsl:value-of select="$Client"/></MANDT>
      <DIRECT>2</DIRECT>
      <TEST>
      <xsl:choose>
        <xsl:when test="$SAP_ISA_Usage_Indicator = 'T'">X</xsl:when>
        <xsl:otherwise/>
      </xsl:choose>
      </TEST>
      <IDOCTYP>SYSTAT01</IDOCTYP>
      <MESTYP>STATUS</MESTYP>
      <SNDPOR><xsl:value-of select="$SenderPort"/></SNDPOR>
      <SNDPRT><xsl:value-of select="$SenderPartnerType"/></SNDPRT>
      <SNDPRN><xsl:value-of select="$SenderPartner"/></SNDPRN>
      <RCVPRT>LS</RCVPRT>
      <RCVPRN><xsl:value-of select="$LogicalSystem"/></RCVPRN>
    </EDI_DC40>
    <xsl:choose>
      <xsl:when test="exists(*/ns0:Message1/M_830)">
        <xsl:for-each select="*/ns0:Message1/M_830">
        <xsl:variable name="position" select="number(S_ST/D_143)"/>
        <E1STATS SEGMENT="1">
          <TABNAM>EDI_DS</TABNAM>
          <TABNAM1><xsl:value-of select="$position"/></TABNAM1>
        <!--  <DOCNUM><xsl:value-of select="../ns0:Message2/Interchange/DOCNUM[$position]"/></DOCNUM>
          <STATUS>
          <xsl:choose>
            <xsl:when test="S_AK5/D_717 = 'A'">16</xsl:when>
            <xsl:otherwise>17</xsl:otherwise>
          </xsl:choose>
          </STATUS>
          <REFINT><xsl:value-of select="../S_AK1/D_28"/></REFINT>
          <REFGRP><xsl:value-of select="../S_AK1/D_28"/></REFGRP>
          <REFMES><xsl:value-of select="S_AK2/D_329"/></REFMES>-->
        </E1STATS>
        </xsl:for-each>
      </xsl:when>
      
      
      <xsl:otherwise>
        <!--
        <xsl:for-each select="*/ns0:Message2/Interchange/DOCNUM">
          <E1STATS SEGMENT="1">
            <TABNAM>EDI_DS</TABNAM>
            <DOCNUM><xsl:value-of select="."/></DOCNUM>
            <STATUS>
            <xsl:choose>
              <xsl:when test="../ns0:Message1/*/*/S_AK9/D_715 = 'A'">16</xsl:when>
              <xsl:otherwise>17</xsl:otherwise>
            </xsl:choose>
            </STATUS>
            <REFINT><xsl:value-of select="../ns0:Message1/*/*/S_AK1/D_28"/></REFINT>
            <REFGRP><xsl:value-of select="../ns0:Message1/*/*/S_AK1/D_28"/></REFGRP>
            <REFMES><xsl:value-of select="format-number(position(), '000000000')"/></REFMES>
          </E1STATS>
        </xsl:for-each>   
        -->
      </xsl:otherwise>
    </xsl:choose>
  </IDOC>
</SYSTAT01>
</xsl:template>

</xsl:stylesheet>
------------------------
referecce

https://blogs.sap.com/2022/05/22/sap-edi-idoc-communication-in-cpi-using-bundling-and-fewer-mapping-artifacts-part-ii/

Popular posts from this blog

pss book : శ్రీకృష్ణుడు దేవుడా, భగవంతుడా completed , second review needed. 26th April 2024

pss book: గురు ప్రార్థనామంజరి . completed 21st july 2024

pss book: కధల జ్ఞానము read review pending. 25th june 2024