ABAP to asXML to XSLT to XML???

Hi,
I have a few questions concerning <b>Call Transformation</b> hopefully someone has done this before. I am attempting to convert an ABAP internal table to a particular XML layout for consumption by an external application.  There seem to be a few options available to accomplish this and I have read tons of examples and threads.  I would prefer to use option 2 but I cannot find a way to apply the XSLT transformation. Why would anyone implement an XML class and not provide a transformation method???  Anyhow, the options seem to be...
1. CALL TRANSFORMATION
OR
2. cl_xml_document
The code below utilizes the Call Transformation option.  The first transformation converts the internal table to asXML (I think that is what it is called).  The second transformation utilizes XSLT to render the asXML to a final XML structure.
My Questions:
1.  Can I convert the internal table directly to the final structure of XML utilizing XSLT via Call Transformation?
2.  How can I output the resulting XML in xml_out2 to a file share?  I have tried using the if_ixml_ostream interface.  This does not seem to work, I can only write to the servers home directory and I get an empty root node.  This despite the fact that only one thing has changed in my code
CALL TRANSFORMATION (`ZXSLT02`)
SOURCE XML xml_out
RESULT XML xml_out2.
Changes to
CALL TRANSFORMATION (`ZXSLT02`)
SOURCE XML xml_out
RESULT XML xml_outStream.
I ask that if you respond please provide specific examples/solutions. Like I said before, I have read nearly all documentation and examples docs. They all seem to take you the cusp of a solution and then leave you short with no specific working examples. The below code and XSLT can be run in the ABAP workbench as  working runnable code. It would be great to receive input referring to working runnable solutions.  I thank all for the time and efforts...
<b>The Code</b>
REPORT  z_xmlxslt.
TYPES: BEGIN OF PERSON,
        FNAME(15),
        LNAME(25),
END   OF PERSON.
DATA : it_Person TYPE STANDARD TABLE OF PERSON,
       wa_Person LIKE LINE OF it_Person,
       xml_out Type String,
       xml_out2 Type String,
       iCount Type I.
*Build the Internal Table
Do 5 Times.
  Perform AddPerson Using icount changing wa_Person.
  iCount = iCount + 1.
ENDDO.
CALL TRANSFORMATION (`ID`)
SOURCE PERSON = it_Person[]
RESULT XML xml_out.
CALL TRANSFORMATION (`ZXSLT02`)
SOURCE XML xml_out
RESULT XML xml_out2.
*&      Form  AddPerson
Form AddPerson  using    p_icount changing p_wa_person like line of it_person.
CASE p_icount.
    WHEN 0.
      p_wa_person-FName = 'Abraham'.
      p_wa_person-lname = 'Simpson'.
    WHEN 1.
      p_wa_person-FName = 'Homer'.
      p_wa_person-lname = 'Simpson'.
    WHEN 2.
      p_wa_person-FName = 'Margerie'.
      p_wa_person-lname = 'Simpson'.
    WHEN 3.
      p_wa_person-FName = 'Bartholomeu'.
      p_wa_person-lname = 'Simpson'.
    WHEN 4.
      p_wa_person-FName = 'Lisa'.
      p_wa_person-lname = 'Simpson'.
  ENDCASE.
  APPEND p_wa_Person TO it_Person.
  move space to p_wa_person.
endform. 
<b>The XSLT (ZXSLT02)...</b>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:strip-space elements="*"/>
  <xsl:template match="/">
    <Root>
      <xsl:for-each select="//item">
        <PTData>
            <FirstName>
              <xsl:value-of select="FNAME"/>
            </FirstName>
            <LastName>
              <xsl:value-of select="LNAME"/>
            </LastName>
        </PTData>
      </xsl:for-each>
    </Root>
  </xsl:template>
</xsl:transform>
<b></b>

O.K. Here is what I evenually came up with...
You should be able to cut, paste and run all below providing you replace the path specified with
<server Name>\<folder name>.  Disclaimer: <i>I am not sure what version of Web AS, ABAP or basis this requires.</i>
<b>The Program:</b>
*& Report  Z_XMLPOST                                                   *
REPORT  z_xmlpost                                                   .
TYPES: BEGIN OF person,
        fname(15),
        lname(25),
END   OF person.
DATA : it_person TYPE STANDARD TABLE OF person,
       wa_person LIKE LINE OF it_person,
       xml_out TYPE string,
       icount TYPE i.
*Build the Internal Table
DO 5 TIMES.
  PERFORM addperson USING icount CHANGING wa_person.
  icount = icount + 1.
ENDDO.
CALL TRANSFORMATION (`ZXSLTEST`)
SOURCE person = it_person[]
RESULT XML xml_out.
PERFORM xmlwrite USING xml_out.
WRITE: 'Processing Done'.
*&      Form  XMLWrite
*       text
*      -->P_XML_OUT2  text
FORM xmlwrite  USING    p_xml_out.
  DATA fname(60) VALUE '\<server Name><folder name>XMLOut.XML'.
  OPEN DATASET fname FOR OUTPUT IN TEXT MODE ENCODING NON-UNICODE.
  TRANSFER p_xml_out TO fname.
  CLOSE DATASET fname.
ENDFORM.                    " XMLWrite
*&      Form  AddPerson
FORM addperson  USING
   p_icount CHANGING p_wa_person LIKE LINE OF it_person.
  CASE p_icount.
    WHEN 0.
      p_wa_person-fname = 'Abraham'.
      p_wa_person-lname = 'Simpson'.
    WHEN 1.
      p_wa_person-fname = 'Homer'.
      p_wa_person-lname = 'Simpson'.
    WHEN 2.
      p_wa_person-fname = 'Margerie'.
      p_wa_person-lname = 'Simpson'.
    WHEN 3.
      p_wa_person-fname = 'Bartholomeu'.
      p_wa_person-lname = 'Simpson'.
    WHEN 4.
      p_wa_person-fname = 'Lisa'.
      p_wa_person-lname = 'Simpson'.
  ENDCASE.
  APPEND p_wa_person TO it_person.
  MOVE space TO p_wa_person.
ENDFORM.                    "AddPerson
<b>The XSLT:</b>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:strip-space elements="*"/>
  <xsl:template match="/">
    <Root>
      <xsl:for-each select="//item">
        <PTData>
            <FirstName>
              <xsl:value-of select="FNAME"/>
            </FirstName>
            <LastName>
              <xsl:value-of select="LNAME"/>
            </LastName>
        </PTData>
      </xsl:for-each>
    </Root>
  </xsl:template>
</xsl:transform>
<b>The Output on a Server Share:</b>
  <?xml version="1.0" encoding="iso-8859-1" ?>
- <Root>
- <PTData>
  <FirstName>Abraham</FirstName>
  <LastName>Simpson</LastName>
  </PTData>
- <PTData>
  <FirstName>Homer</FirstName>
  <LastName>Simpson</LastName>
  </PTData>
- <PTData>
  <FirstName>Margerie</FirstName>
  <LastName>Simpson</LastName>
  </PTData>
- <PTData>
  <FirstName>Bartholomeu</FirstName>
  <LastName>Simpson</LastName>
  </PTData>
- <PTData>
  <FirstName>Lisa</FirstName>
  <LastName>Simpson</LastName>
  </PTData>
  </Root>

Similar Messages

  • How to apply XSLT to XML file while importing XML data using XSU plsql API

    I need to load XML file with nested repeating elements into Oracle tables and I am using XSU PLSQL API utility package dbms_xmlSave.insertXML. Can use XMLGen package also!!
    I found out through documentation that I need to have XML file with ROWSET/ROW tags around the elements. As I have no control of XML file coming from external source, so I wish to apply XSLT to XML. I found setXSLT/setStylesheet procedures but it's not working as expected.
    Can you help me with some sample code for the purpose.
    Thanks

    I'm new at XML and XSL as well, but maybe the following code I built can help:
    CREATE OR REPLACE PACKAGE Xml_Pkg AS
    /* this record and table type are used for the transformTags procedure */
    TYPE TagTransform_t IS RECORD (
    old_tag VARCHAR2(255),
    new_tag VARCHAR2(255) );
    TYPE TagTransformList_t IS TABLE OF TagTransform_t INDEX BY BINARY_INTEGER;
    /* use DBMS_OUTPUT to print out a CLOB */
    PROCEDURE printClobOut(p_clob IN OUT NOCOPY CLOB);
    /* using a list of old/new tags, transform all old into new in XML2 */
    PROCEDURE transformTags(
    p_List TagTransformList_t,
    p_XML1 IN OUT NOCOPY CLOB,
    p_XML2 IN OUT NOCOPY CLOB);
    END Xml_Pkg;
    CREATE OR REPLACE PACKAGE BODY Xml_Pkg AS
    /* print a CLOB using newlines */
    PROCEDURE printClobOut(p_clob IN OUT NOCOPY CLOB) IS
    buffer_overflow EXCEPTION;
    PRAGMA EXCEPTION_INIT(buffer_overflow,-20000);
    l_offset NUMBER;
    l_len NUMBER;
    l_o_buf VARCHAR2(255);
    l_amount NUMBER; --}
    l_f_amt NUMBER := 0; --}To hold the amount of data
    l_f_amt2 NUMBER; --}to be read or that has been
    l_amt2 NUMBER := -1; --}read
    l_offset2 NUMBER;
    l_amt3 NUMBER;
    l_chk NUMBER := 255;
    BEGIN
    l_len := DBMS_LOB.GETLENGTH(p_clob);
    l_offset := 1;
    WHILE l_len > 0 LOOP
    l_amount := DBMS_LOB.INSTR(p_clob,CHR(10),l_offset,1);
    --Amount returned is the count from the start of the file,
    --not from the offset.
    IF l_amount = 0 THEN
    --No more linefeeds so need to read remaining data.
    l_amount := l_len;
    l_amt2 := l_amount;
    ELSE
    l_f_amt2 := l_amount; --Store position of next LF
    l_amount := l_amount - l_f_amt; --Calc position from last LF
    l_f_amt := l_f_amt2; --Store position for next time
    l_amt2 := l_amount - 1; --Read up to but not the LF
    END IF;
    /* divide the read into 255 character chunks for dbms_output */
    IF l_amt2 != 0 THEN
    l_amt3 := l_amt2;
    l_offset2 := l_offset;
    WHILE l_amt3 > l_chk LOOP
    DBMS_LOB.READ(p_clob,l_chk,l_offset2,l_o_buf);
    DBMS_OUTPUT.PUT_LINE(l_o_buf);
    l_amt3 := l_amt3 - l_chk;
    l_offset2 := l_offset2 + l_chk;
    END LOOP;
    IF l_amt3 != 0 THEN
    DBMS_LOB.READ(p_clob,l_amt3,l_offset2,l_o_buf);
    DBMS_OUTPUT.PUT_LINE(l_o_buf);
    END IF;
    END IF;
    l_len := l_len - l_amount;
    l_offset := l_offset+l_amount;
    END LOOP;
    EXCEPTION
    WHEN buffer_overflow THEN
    RETURN;
    END printClobOut;
    /* shortcut "writeline" procedure for CLOB buffer writes */
    PROCEDURE wr(p_clob IN OUT NOCOPY CLOB, s VARCHAR2) IS
    BEGIN
    DBMS_LOB.WRITEAPPEND(p_clob,LENGTH(s)+1,s||CHR(10));
    END;
    /* the standard XSLT should include the identity template or the output XML will be malformed */
    PROCEDURE newXsltHeader(p_xsl IN OUT NOCOPY CLOB, p_identity_template BOOLEAN DEFAULT TRUE) IS
    BEGIN
    DBMS_LOB.TRIM(p_xsl,0);
    /* standard XSL header */
    wr(p_xsl,'<?xml version="1.0"?>');
    /* note that the namespace for the xsl is restricted to the w3 1999/XSL */
    wr(p_xsl,'<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">');
    IF p_identity_template THEN
    /* create identity template (transfers all "other" nodes) */
    wr(p_xsl,' <xsl:template match="node()">');
    wr(p_xsl,' <xsl:copy>');
    wr(p_xsl,' <xsl:apply-templates/>');
    wr(p_xsl,' </xsl:copy>');
    wr(p_xsl,' </xsl:template>');
    END IF;
    END newXsltHeader;
    PROCEDURE newXsltFooter(p_xsl IN OUT NOCOPY CLOB) IS
    BEGIN
    /* standard xsl footer */
    wr(p_xsl,'</xsl:stylesheet>');
    END newXsltFooter;
    /* using the stylesheet in p_xsl, transform p_XML1 into p_XML2 */
    PROCEDURE transformXML(p_xsl IN OUT NOCOPY CLOB, p_XML1 IN OUT NOCOPY CLOB, p_XML2 IN OUT NOCOPY CLOB) IS
    l_parser XMLPARSER.Parser;
    l_doc XMLDOM.DOMDocument;
    l_xsl_proc XSLPROCESSOR.Processor;
    l_xsl_ss XSLPROCESSOR.Stylesheet;
    BEGIN
    /* parse XSL CLOB */
    l_parser := XMLPARSER.newParser;
    BEGIN
    XMLPARSER.showWarnings(l_parser,TRUE);
    XMLPARSER.parseClob(l_parser,p_xsl);
    l_doc := XMLPARSER.getDocument(l_parser);
    XMLPARSER.freeParser(l_parser);
    EXCEPTION
    WHEN OTHERS THEN
    XMLPARSER.freeParser(l_parser);
    RAISE;
    END;
    /* get Stylesheet from DOMDOC */
    l_xsl_ss := XSLPROCESSOR.newStylesheet(l_doc,NULL);
    BEGIN
    /* parse XML1 CLOB */
    l_parser := XMLPARSER.newParser;
    BEGIN
    XMLPARSER.showWarnings(l_parser,TRUE);
    XMLPARSER.parseClob(l_parser,p_xml1);
    l_doc := XMLPARSER.getDocument(l_parser);
    XMLPARSER.freeParser(l_parser);
    EXCEPTION
    WHEN OTHERS THEN
    XMLPARSER.freeParser(l_parser);
    RAISE;
    END;
    /* process doc to XML2 */
    l_xsl_proc := XSLPROCESSOR.newProcessor;
    BEGIN
    XSLPROCESSOR.processXSL(l_xsl_proc, l_xsl_ss, l_doc, p_xml2);
    XSLPROCESSOR.freeProcessor(l_xsl_proc);
    EXCEPTION
    WHEN OTHERS THEN
    XSLPROCESSOR.freeProcessor(l_xsl_proc);
    RAISE;
    END;
    XSLPROCESSOR.freeStylesheet(l_xsl_ss);
    EXCEPTION
    WHEN OTHERS THEN
    XSLPROCESSOR.freeStylesheet(l_xsl_ss);
    RAISE;
    END;
    END transformXML;
    /* transform XML1 into XML2 using list p_List of old/new tags */
    PROCEDURE transformTags(p_List TagTransformList_t, p_XML1 IN OUT NOCOPY CLOB, p_XML2 IN OUT NOCOPY CLOB) IS
    l_xsl CLOB;
    BEGIN
    /* create XSL CLOB */
    DBMS_LOB.CREATETEMPORARY(l_xsl,TRUE);
    /* create standard header with identity template */
    newXsltHeader(l_xsl,TRUE);
    /* create one template for each node translation */
    FOR i IN 1..p_List.COUNT LOOP
    wr(l_xsl,' <xsl:template match="'||p_List(i).old_tag||'">');
    wr(l_xsl,' <'||p_List(i).new_tag||'><xsl:apply-templates/></'||p_List(i).new_tag||'>');
    wr(l_xsl,' </xsl:template>');
    END LOOP;
    /* create standard footer */
    newXsltFooter(l_xsl);
    -- dbms_output.put_line('l_xsl:');
    -- dbms_output.put_line('--------------------');
    -- printClobOut(l_xsl);
    -- dbms_output.put_line('--------------------');
    transformXML(l_xsl, p_XML1, p_XML2);
    DBMS_LOB.FREETEMPORARY(l_xsl);
    /* -- unit testing
    set serveroutput on size 100000
    Declare
    queryContext DBMS_XMLQUERY.ctxType;
    xList XML_PKG.TagTransformList_t;
    xmlCLOB CLOB;
    xmlCLOB2 CLOB;
    Begin
    DBMS_LOB.CREATETEMPORARY(xmlCLOB,true);
    DBMS_LOB.CREATETEMPORARY(xmlCLOB2,true);
    xList(1).old_tag := 'A';
    xList(1).new_tag := 'MyTag1';
    xList(2).old_tag := 'B';
    xList(2).new_tag := 'MyTag2';
    queryContext := DBMS_XMLQUERY.newContext('Select * from t');
    xmlCLOB := DBMS_XMLQUERY.getXML(queryContext);
    DBMS_XMLQuery.closeContext(queryContext);
    dbms_output.put_line('xmlCLOB:');
    dbms_output.put_line('--------------------');
    XML_PKG.printClobOut(xmlCLOB);
    dbms_output.put_line('--------------------');
    xml_pkg.transformTags(xList,xmlCLOB,xmlCLOB2);
    dbms_output.put_line('xml2CLOB:');
    dbms_output.put_line('--------------------');
    XML_PKG.printClobOut(xmlCLOB2);
    dbms_output.put_line('--------------------');
    DBMS_LOB.FREETEMPORARY(xmlCLOB);
    DBMS_LOB.FREETEMPORARY(xmlCLOB2);
    End;
    END transformTags;
    END Xml_Pkg;

  • Question about Java,XSLT and XML

    I am new to Java and XML. I'm not quite clear the relationship between Java,XSLT and XML.
    To exercise, I am going to write a Java program that makes embedded calls to an XSLT processor(XALAN), to produce results for several constrained transformations from a given XML document(x.xml) such as:
    1.Transform the x.xml (which satisfies d1.dtd) in such a way that it now conforms to the DTD d2.dtd. Output the resulting xx.xml document.
    2.query some information from the x.xml and then form an Html output.
    3.summary some information, do some statistics from the x.xml and then form an Html output.
    I don't konw which java classes and XSLT functions might be used.(Actually I don't know how/where to start).
    Can anyone give me some clue ?
    thanks a lot!

    You must provide XSLT stylesheeds to specify transformations (1), (2),
    and (3); let's call those stylesheets task1.xsl and so on.
    The following code will transform x.xml into xx.xml according to task1.xsl. It gives you an idea which packages and classes to use, but it doesn't teach you proper Java programming technics :)
    import java.io.File;
    import javax.xml.transform.*;
    import javax.xml.transform.stream.*;
    public class Test
        public static void main(String[] args) throws Exception
            TransformerFactory factory = TransformerFactory.newInstance();
            Source config = new StreamSource(new File("task1.xsl"));
            Transformer transformer = factory.newTransformer(config);
            Source source = new StreamSource(new File("x.xml"));
            Result result = new StreamResult(new File("xx.xml"));
            transformer.transform(source, result);
    }To read about XSLT, see:
    http://www.w3.org/TR/xslt
    there is a tutorial on using XSLT with Java:
    http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/xslt/index.html.

  • ABAP XSLT transformation - XML to deep structure/nested standard table

    Hi all,
    I was struggling with this topic recently and couldn't find a single working example or description of a possible solution. So now that I've sorted it out, I did a quick example to elustrate how it works. Here is the code with XML embeded in it and the XSLT follows:
    <HR>
    <PRE>
    *& Report  Z_XML2ABAP
    *& Author: Jayanta Roy
    *& Date: 03/02/2010
    REPORT  z_xml2abap.
    DATA input_xml TYPE string.
    TYPES: BEGIN OF t_address,
            house_no TYPE string,
            street_name TYPE string,
            city_name TYPE string,
            phone_no TYPE string,
          END OF t_address.
    TYPES: t_addresses TYPE STANDARD TABLE OF t_address with NON-UNIQUE KEY house_no.
    TYPES: BEGIN OF t_person,
            firstname TYPE string,
            surname TYPE string,
            addresses TYPE t_addresses,
          END OF t_person.
    input_xml = '&lt;Friends&gt;' &&
      '&lt;People&gt;' &&
        '&lt;FirstName&gt;Homer&lt;/FirstName&gt;' &&
        '&lt;Surname&gt;Simpson&lt;/Surname&gt;' &&
          '&lt;Address&gt;' &&
            '&lt;HouseNo&gt;123&lt;/HouseNo&gt;' &&
            '&lt;Street&gt;Evergreen Terrace&lt;/Street&gt;' &&
            '&lt;City&gt;Springfield&lt;/City&gt;' &&
            '&lt;PhoneNo&gt;011212321&lt;/PhoneNo&gt;' &&
          '&lt;/Address&gt;' &&
          '&lt;Address&gt;' &&
            '&lt;HouseNo&gt;7G&lt;/HouseNo&gt;' &&
            '&lt;Street&gt;Neuclear Power Plant&lt;/Street&gt;' &&
            '&lt;City&gt;Spring Field&lt;/City&gt;' &&
            '&lt;PhoneNo&gt;911&lt;/PhoneNo&gt;' &&
          '&lt;/Address&gt;' &&
      '&lt;/People&gt;' &&
      '&lt;People&gt;' &&
         '&lt;FirstName&gt;Bart&lt;/FirstName&gt;' &&
         '&lt;Surname&gt;Simpson&lt;/Surname&gt;' &&
           '&lt;Address&gt;' &&
             '&lt;HouseNo&gt;123x&lt;/HouseNo&gt;' &&
             '&lt;Street&gt;Evergreen Terracex&lt;/Street&gt;' &&
             '&lt;City&gt;Springfieldx&lt;/City&gt;' &&
             '&lt;PhoneNo&gt;011212321x&lt;/PhoneNo&gt;' &&
           '&lt;/Address&gt;' &&
       '&lt;/People&gt;' &&
    '&lt;/Friends&gt;' .
    DATA lt_person TYPE STANDARD TABLE OF t_person.
    TRY.
        CALL TRANSFORMATION xslt_person
        SOURCE XML input_xml
        RESULT  all_people = lt_person.
      CATCH cx_root.
        WRITE 'Problemo!'.
    ENDTRY.
    WRITE 'Now, debug the program to see the values read from the XML'.
    </PRE>
    <HR>
    and here is the XSLT Transformation program (xslt_person):
    <HR>
    <PRE>
    &lt;xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                        xmlns:sap="http://www.sap.com/sapxsl" version="1.0"&gt;
      &lt;xsl:strip-space elements="*"/&gt;
      &lt;xsl:template match="/"&gt;
        &lt;asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0"&gt;
          &lt;asx:values&gt;
            &lt;ALL_PEOPLE&gt;
              &lt;xsl:apply-templates select="//People"/&gt;
            &lt;/ALL_PEOPLE&gt;
          &lt;/asx:values&gt;
        &lt;/asx:abap&gt;
      &lt;/xsl:template&gt;
      &lt;xsl:template match="People"&gt;
        &lt;ALLMYFRIENDS&gt;  &lt;!This element name is not relevent... needed to just group the loop&gt;
          &lt;FIRSTNAME&gt;
            &lt;xsl:value-of select="FirstName"/&gt;
          &lt;/FIRSTNAME&gt;
          &lt;SURNAME&gt;
            &lt;xsl:value-of select="Surname"/&gt;
          &lt;/SURNAME&gt;
          &lt;ADDRESSES&gt;
            &lt;xsl:for-each select="Address"&gt;
              &lt;ADDRESS&gt; &lt;!This element name is not relevent... needed to just group the loop&gt;
                &lt;HOUSE_NO&gt;
                  &lt;xsl:value-of select="HouseNo"/&gt;
                &lt;/HOUSE_NO&gt;
                &lt;STREET_NAME&gt;
                  &lt;xsl:value-of select="Street"/&gt;
                &lt;/STREET_NAME&gt;
                &lt;CITY_NAME&gt;
                  &lt;xsl:value-of select="City"/&gt;
                &lt;/CITY_NAME&gt;
                &lt;PHONE_NO&gt;
                  &lt;xsl:value-of select="PhoneNo"/&gt;
                &lt;/PHONE_NO&gt;
              &lt;/ADDRESS&gt;
            &lt;/xsl:for-each&gt;
          &lt;/ADDRESSES&gt;
        &lt;/ALLMYFRIENDS&gt;
      &lt;/xsl:template&gt;
    &lt;/xsl:transform&gt;
    </PRE>
    <HR>
    HTH,
    Jayanta.

    thanks a LOT Jayanta..
    I was looking for an XSLT example for some time.. this one atleast got me started in the right direction..
    THANKS

  • Map attributes of XML file to ABAP table, using a XSLT program

    Hi dear Gurus.
    I have to transfer the information from the XML's element attributes to abap internal tables and store that information.
    Somebody has a clear sample to do this data transfer.
    I found a clas iXML, do you have a sample to read the elements and attributes using this class?
    Thanks in advance.
    Regards.

    hello ,
    search for BCCIIXM* in se38.
    regards
    Prabhu

  • XSLT one XML to multiple linked XHTML files

    I want to generate linked XHTML documents based on a data XML file. But it seems that the XSLT implementation of ABAP does not support to create multiple files in one XSL-Transformation (like in XSLT 2.0 or the saxon XSLT enhancements).
    Fist question: Am I right :)?
    Second question: If yes, what can I do to solve my problem? Starting a transformation for every document would probably end in some serious performance issues.
    Thank you in advance.
    Tobias Neef

    Hi Shantha,
       You can do this senario with BPM...............In BPM you need to split messages based on the Order number so that files will be recevied based in the order number ........To do this you need to create a correlation in BPM (Correlation based on Order number which is unique for every order) .by doing u can achive the mutiple receviers
    Below mentioned blogs can help doing this senario
    BPM-1
    /people/krishna.moorthyp/blog/2005/06/09/walkthrough-with-bpm
    BPM-2
    /people/krishna.moorthyp/blog/2006/04/08/reconciliation-of-messages-in-bpm
    BPM-3
    /people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
    BPM-4
    /people/michal.krawczyk2/blog/2005/06/11/xi-how-to-retrieve-messageid-from-a-bpm
    Thanks
    Sai     
    PS: kindly reward points if helpful

  • XSLT from XML document

    Hello all you XML gurus
    I have written and ABAP as a client to connect to external web services which return an XML response and I now need to write and XSLT in order to transfer the data into my ABAP structure. Is there an easy way to write and XSLT transformation program using the XML as a base?
    Take a look at the XML document returned from the webservice
    <?xml version="1.0" encoding="utf-8"?>
    <SchedRemote xmlns="http://scheduall.com/webservices/">
      <Response>
        <ClientDetails ERRCODE="0" ERRMSG="Ok">
          <Field CL_ID="1127823" />
          <Field PID="0" />
          <Field NAME="Anthonys test client" />
          <Field ADDRESS="" />
          <Field CITY="" />
          <Field STATE="" />
          <Field ZIP="" />
          <Field COUNTRY="" />
          <Field PH1="0836078881" />
          <Field PH2="" />
          <Field FAX="0114674054" />
          <Field NTS="" />
          <Field SNTS="" />
          <Field TAX1="" />
          <Field TAX2="" />
          <Field RATE_ID="0" />
          <Field TAXCODE="0" />
          <Field TERMS_ID="0" />
          <Field STAT="0" />
          <Field EXEC_ID="0" />
          <Field SHORTNAME="" />
          <Field CLIENTTYPE="0" />
          <Field EXTID="" />
          <Field T_SINCE="1/1/1970 12:00:00 AM" />
          <Field BILLPARENT="0" />
          <Field INHOUSE="0" />
          <Field CRLIMIT="0" />
          <Field POREQUIRED="0" />
          <Field DISCOUNT="0" />
          <Field LAST_MOD="4/16/2007 2:44:54 PM" />
          <Field BADDRESS="" />
          <Field BCITY="" />
          <Field BSTATE="" />
          <Field BZIP="" />
          <Field BCOUNTRY="" />
          <Field GMT_OFFSET="0" />
          <Field EMAILADDR="" />
          <Field LATECHARGE="0" />
          <Field GROUP_1="0" />
          <Field GROUP_2="0" />
          <Field GROUP_3="0" />
          <Field GROUP_4="0" />
          <Field GROUP_5="0" />
          <Field GROUP_6="0" />
          <Field GROUP_7="0" />
          <Field GROUP_8="0" />
          <Field GROUP_9="0" />
          <Field GROUP_10="0" />
          <Field GROUP_11="0" />
          <Field GROUP_12="0" />
          <Field BILLATT="" />
          <Field ALTEMAILAD="" />
          <Field EXEC_ID2="0" />
          <Field NOSENDSTMT="0" />
          <Field SHIP_INST="" />
          <Field PROD_ID="0" />
          <Field CREATEDBY="ANDRE" />
          <Field DATECREAT="4/16/2007 2:44:54 PM" />
          <Field MOD_BY="ANDRE" />
          <Field SHIP_VIA="" />
          <Field SHIP_ACC="" />
          <Field MB_NOBILL="0" />
          <Field OT_EXEMPT="0" />
          <Field USE_NIGHT="0" />
          <Field CL_COLOR="0" />
          <Field ASSOCFILE1="" />
          <Field AUTOSELPRJ="0" />
          <Field SALUTATION="" />
          <Field CURR_ID="0" />
          <Field LDR_PREFIX="" />
          <Field TAX3="" />
          <Field F_PRIMARY="0" />
          <Field URL_SUPID="0" />
          <Field TIMEZONE="0" />
          <Field LOCSRCE_ID="0" />
          <Field LOCDEST_ID="0" />
          <Field DSTC_ID="0" />
          <Field UTC_OFFSET="0" />
          <Field AKA_FOR="0" />
          <Field CRDLIMCHK="0" />
          <Field TRAFF_STAT="0" />
          <Field INS_EXPIR="1/1/1970 12:00:00 AM" />
          <Field DEFSHADRID="0" />
          <Field CXL_ID="0" />
          <Field LIB_NOTES="" />
          <Field USEMARKUP="0" />
          <Field MARKUPPCT="0" />
          <Field LNAME="" />
          <Field FNAME="" />
          <Field PLANTID="" />
          <Field PRCHGRPID="" />
          <Field B_NOBILL="0" />
          <Field BARCODE1="" />
          <Field BARCODE2="" />
          <Field EXTID2="" />
          <Field PENINVONLY="0" />
          <Field CONTR_REQD="0" />
          <Field NO_INVEXP="0" />
          <CL_USER>
            <Field CL_ID="1127823" />
            <Field USER1="User field 1" />
            <Field USER2="" />
            <Field USER3="" />
            <Field USER4="" />
            <Field USER5="" />
            <Field USER6="" />
            <Field USER7="" />
            <Field USER8="" />
            <Field USER9="" />
            <Field USER10="" />
            <Field USER11="" />
            <Field USER12="" />
            <Field USER13="" />
            <Field USER14="" />
            <Field USER15="" />
            <Field USER16="" />
            <Field USER17="" />
            <Field USER18="" />
            <Field USER19="" />
            <Field USER20="" />
            <Field USER21="" />
            <Field USER22="" />
            <Field USER23="" />
            <Field USER24="" />
            <Field USER25="" />
            <Field USER26="" />
            <Field USER27="" />
            <Field USERFLAG1="0" />
            <Field USERFLAG2="0" />
            <Field USERFLAG3="0" />
            <Field USERFLAG4="0" />
            <Field USERFLAG5="0" />
            <Field USERFLAG6="0" />
            <Field USERDATE1="1/1/1900 12:00:00 AM" />
            <Field USERDATE2="1/1/1900 12:00:00 AM" />
          </CL_USER>
        </ClientDetails>
      </Response>
    </SchedRemote>
    I have the following structure in my ABAP program which I would like a way of developing the XSLT in order to populate the results of each field into my program
    data: begin of gs_clientdetails.
              include structure zclient. " Contains all the CLIENT fields from Scheduall
              include structure zcluser." Contains all the CL_USER fields from Scheduall
    data: end of gs_clientdetails.
    Any suggestions??

    Hi,
    I am not a XSLT expert but Tobias wrote some nice blogs about it. Read them here:
    /people/tobias.trapp/blog
    You might want to start with this one:
    /people/tobias.trapp/blog/2005/05/04/xml-processing-in-abap-part-1
    cheers
    Thomas

  • Envio de e-mail B2B via Abap - erro na visualização do XML

    Boa tarde,
    Em virtude da minha versão (GRC 10.0 e NW 7.11), apenas poderia implementar a solução de B2B dinâmico, caso utilizasse Java Mapping. Como meu conhecimento em Java é pequeno, optei por enviar o e-mail a partir do Abap do GRC.
    O XML que estou gerando está com erro na tag <ns1:Transforms>. As tags acima desta estão ok.
    Comparei com o XML original e os códigos-fontes são EXATAMENTE iguais.
    O erro é "Página XML não pode ser exibida". Na instrução, aparece a seguinte informação: "Não é possível exibir a entrada XML usando a folha de estilos XSL".
    Alguém pode me ajudar?
    Se julgarem que, apesar de meu processo ser de NFe, preciso abrir a thread em outro tópico, basta avisar.
    Obrigado.
    Abraços,
    Flavio.
    Edited by: fgalmeida on Oct 6, 2011 7:09 PM

    Resolvido.
    Olhando o fonte do XML, verifiquei que ao final do arquivo haviam espaços em branco.
    A solução foi passar o tamanho do xstring no parâmetro i_attachment_size do método add_attachment da função cl_document_bcs, conforme abaixo:
    DATA lv_size TYPE so_obj_len.
      lv_size = xstrlen( lv_content_xml ) .
      CALL METHOD document->add_attachment
        EXPORTING
         i_attachment_size    = lv_size
          i_attachment_type    = 'xml'
          i_attachment_subject = 'XML NFe'
          i_att_content_hex    = lt_content_hex.
    Obrigado.
    Flavio.

  • How can I export a stylesheet (either CSS or XSLT) with XML from indesign?

    Hi,
    I am using indesign CS4. I want to export style sheet whether it is CSS or XSLT file with xml.
    I try to get it but can't.
    Also the XML i am exporting does not styles that has been applied by me while creating the file in Indesign.
    Please help me out by telling me the way how can i get a stylesheet and also how can I embed that style sheet with XML so that my XML file looks similiar to the indesign file.
    Thanks,
    Choudhary Nafees Ahmed

    I am using indesign CS4. I want to export style sheet whether it is CSS or XSLT file with xml.
    CSS is not an XML style sheet, it's an HTML style sheet. "Export to HTML" will export an empty stylesheet for the paragraph and character styles. ID cannot convert its (very advanced) typographic capabilities to the (very limited) CSS notation, and thus it defaults to exporting the names only.
    XSLT is not an XML style sheet either; it's a transformation format (http://www.w3.org/TR/xslt).
    I try to get it but can't.
    Also the XML i am exporting does not styles that has been applied by me while creating the file in Indesign.
    XML Export does not export anything except the items you tagged with the Auto-tag feature, or you tagged yourself. If you need your styles tagged, use Map Styles to Tags (http://www.adobe.com/accessibility/products/indesign/mapping.html).
    XML has almost nothing to do with styling -- ideally, XML describes document structure while styles describe formatting.

  • ABAP Simple Transformation - How to save XML to file with CL_FX_WRITER?

    Hello!
    When calling a Simple Transformation program for transformation from ABAP to XML, it is possible to specify RESULT XML rxml as a class reference variable of type CL_FX_WRITER, which points to an XML writer.
    How to handle CL_FX_WRITER in order to save XML to a file?
    Thanks and regards,
    Andrey

    Hallo Rainer!
    Many thanks. I have checked the profile parameter ztta/max_memreq_MB and it is set to 2048 MB in the development system. I hope, that won't be less on the client's machine. The only thing I did not clearly explained, is that I need to write XML data to the server. I am so sorry. Downloading to the local PC is very helpful for me also, but only for the test purposes.
    Regards,
    Andrey

  • XSLT Mapping : XML to Fixed Length File

    Hi,
    I have to code a XSLT mapping which converts the XML into a Fixed Length File Format. I am getting the output but it has some garbage values (Some extra spaces in front of first record and also extra blank lines before the first record)
    I am pasting my xsl sheet :
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
         <xsl:output method="text" indent="yes" media-type="text/plain"/>
         <xsl:template match="Employees">
              <xsl:for-each select="Employee">
                   <xsl:value-of select="Name"/>
                   <xsl:value-of select="ID"/>
                   <xsl:value-of select="ADD"/>
                   <xsl:text>&#xA;</xsl:text>
              </xsl:for-each>
         </xsl:template>
    My input XML file is as follows:
    <?xml version="1.0"?>
    <p1:Test02 xmlns:p1="http://www.infosys.com/xi/training/hyd/66289">
            <Employees>
              <Employee>
                 <Name>Anurag</Name>
                 <ID>1121</ID>
                 <ADD>Hyderabad</ADD>
             </Employee>
             <Employee>
                 <Name>Divya</Name>
                 <ID>1122</ID>
                 <ADD>Hyderabad</ADD>
             </Employee>
             <Employee>
                 <Name>Rasmi</Name>
                 <ID>1123</ID>
                 <ADD>Bangalore</ADD>
                </Employee>
         </Employees>
    </p1:Test02>
    And the output i am receiving is as follows:
        Anurag1121Hyderabad
    Divya1122Hyderabad
    Rasmi1123Bangalore
    Please do help.....

    hi,
    >>>>
    <xsl:output method="text" indent="yes" media-type="text/plain"/>
    you allow the spaces by using indent="yes"
    try with indent="no"
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • XSLT and XML - Splitting out address data for a single XML item?

    Hi,
    I am currently having to change my XSLT code for processing XML feeds from the NHS because the technolgy has been moved from SOAP-based to RESTful (both of which mean very little to me!).  While most of the XML feeds display correctly I have been unable to resolve the following:
    The address data seems to be located under a single item <s.addressLine> rather than <address1>, <address2> <address3> <address4> as in the previous setup.  As a consequence of this I am unable to split out my address data into seperate address fields (in column 2 below).  The code below ....
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:s="http://syndication.nhschoices.nhs.uk/services">
    <xsl:output method="html" encoding="UTF-8"/>
    <xsl:template match="/">
    <table class="xslt_table">
      <tr>
        <th>1</th>
        <th>2</th>
        <th>3</th>
      </tr>
      <xsl:for-each select="atom:feed/atom:entry">
        <tr>
          <td><xsl:value-of select="atom:content/s:organisationSummary/s:name"/></td>
          <td><xsl:value-of select="atom:content/s:organisationSummary/s:address"/></td>
          <td><xsl:value-of select="atom:content/s:organisationSummary/s:address/s:addressLine"/></td>
        </tr>
      </xsl:for-each>
    </table>
    </xsl:template>
    </xsl:stylesheet>
    ....generates the following result:
    1
    2
    3
    Royal Eye Infirmary
    Apsley RoadPlymouthDevonPL4 6PL
    Apsley Road
    Mount Gould Hospital
    Mount Gould RoadPlymouthDevonPL4 7QD
    Mount Gould Road
    Scott Hospital
    Beacon Park RoadPlymouthDevonPL2 2PQ
    Beacon Park Road
    Peninsula NHS Treatment Centre
    20 Brest RoadPlymouthDevonPL6 5XP
    20 Brest Road
    Derriford Hospital
    Derriford RoadCrownhillPlymouthDevonPL6 8DH
    Derriford Road
    Nuffield Health, Plymouth Hospital
    Derriford RoadPlymouthDevonPL6 8BG
    Derriford Road
    Plympton Hospital
    Market RoadPlymouthDevonPL7 1QR
    Market Road
    St Barnabas Hospital
    Higher Port ViewSaltashCornwallPL12 4BU
    Higher Port View
    Liskeard Community Hospital
    Clemo RoadLiskeardCornwallPL14 3XD
    Clemo Road
    I would be very, very grateful for any thoughts and suggestions on what I might be able to do to resolve this.
    Best wishes
    Simon

    Thanks dvohra
    But in my servlet, I already have the transformer factory defined as follows
    public class JDOMServlet extends HttpServlet {
         private TransformerFactory tFactory = TransformerFactory.newInstance();
         private ResultSet rs = null;
         private StreamSource xsltSource;
         private Templates template;
         public void init(ServletConfig config) throws ServletException {
              super.init(config);
              ServletContext ctx = config.getServletContext();
              try {
                   //Want to cache the stylesheet for future resuse
                   //then it doesnt have to be loaded constantly
                   URL xslURL = ctx.getResource("/WEB-INF/viewStudentDetails.xsl");
                   System.out.println(xslURL);
                   xsltSource = new StreamSource(new java.net.URL(xslURL.toString()).openStream());
                   //xsltSource = new StreamSource(ctx.getResourceAsStream("/Web-inf/viewStudentDetails.xsl"));
                   template = tFactory.newTemplates(xsltSource);
              catch (Exception e) {
                   e.printStackTrace();
    I think the key point is that, this transformation servlet worked fine, when all it was outputting was the xml data, styled in a table. As soon as I enter more table info, (i.e. for the banner and navigation bar), the null pointer exception pops up.
    ....a lost and puzzled jase....
    Thanks again.
    JS

  • XSLT Transform XML 2 HTML does not work well

    Hi,
    This is my first attempt to use XSLT to convert my XML file into HTML using Java. I have included below the java code I used for the transformation, the xsl file and the xml file.
    As per the xml file, I would like to display the carrier's common-name for each host. However, I can only get to display the carrier-id using the code line
    <xsl:value-of select="./@carrier"/>
    as shown in the last part of the xsl file, but cannot get the carrier's commonname from the carrierid using the code,
    <xsl:variable name="hostCarr" select="./@carrier"/>
    <xsl:variable name="hostcomName" select="id($hostCarr)/common-name"/>
    <xsl:value-of select="$hostcomName"/>
    However this works well if I were to use XML SPY for the conversion, instead of the Transform class in Java. I am using version 1.4.1 of Java.
    Please help.
    Thanks,
    Prasuna
    XML file
    <pathinfo pathogen-name="Brucella spp.">
         <taxonomy>
              <carrier carrierID="wild">
                   <common-name>Wild cies</common-name>
              </carrier>
              <carrier carrierID="sheepandgoats">
                   <common-name>Domestic Pig</common-name>
              </carrier>
              <carrier carrierID="lab">
                   <common-name>Laboratory environment</common-name>
              </carrier>
         </taxonomy>
         <host-list>
              <host carrier="wild"></host>
              <host carrier="lab"></host>
              <host carrier="sheepandgoats"></host>
         </host-list>
    </pathinfo>
    XSL file
    <xsl:stylesheet version="1.0" xmlns:a="http://www.xmlspy.com/schemas/orgchart" xmlns:ipo="http://www.altova.com/IPO" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
         <xsl:output method="xml" version="1.0" encoding="ISO-8859-1" omit-xml-declaration="no" indent="no" media-type="text/html"/>
         <xsl:template match="pathinfo">
              <html>
                   <head><title><xsl:value-of select="@pathogen-name"/></title>
                   </head>
                   <body bgcolor="#ffffe5" text="#000000" link="#007a00" vlink="#7a0000" alink="#ff0000">
                        <xsl:apply-templates select="host-list"/>
                   </body>
              </html>
         </xsl:template>
         <xsl:template match="host-list">
              <ol>
                   <xsl:for-each select="host">
                        <li>
                             <xsl:variable name="hostCarr" select="./@carrier"/>
                             <xsl:variable name="hostcomName" select="id($hostCarr)/common-name"/>
                             <!--
                             <xsl:value-of select="./@carrier"/>
                             <xsl:value-of select="$hostcomName"/>
                             -->
                             <xsl:value-of select="$hostcomName"/>
                        </li>
                   </xsl:for-each>
              </ol>
         </xsl:template>
    </xsl:stylesheet>
    Java Code
    import javax.xml.transform.*;
    import java.net.*;
    import java.io.*;
    public class Xml2Html {
    public static void main(String[] args) {
    try {
    TransformerFactory tFactory = TransformerFactory.newInstance();
    Transformer transformer =
    tFactory.newTransformer
    (new javax.xml.transform.stream.StreamSource
    ("temp.xsl"));
    transformer.transform
    (new javax.xml.transform.stream.StreamSource
    ("temp.xml"),
    new javax.xml.transform.stream.StreamResult
    ( new FileOutputStream("temp.html")));
    catch (Exception e) {
    e.printStackTrace( );

    From Michael Kay's book "XSLT Programmer's Reference":
    'A non-validating XML parser isn't required to read attribute definitions from an external DTD. In this situation the XSLT processor will assume there are no ID attributes present, and the id() function will always return an empty result."
    Presumably you didn't set your transformer to use a validating parser, and I don't even see a reference to a DTD there. However the expression id('X') is equivalent to //*[@id='X'], Kay goes on to say. Try that instead.

  • XSLT with XML XPath references

    I have not used XSLT, and don't need to much, but have questions on creating XML that will be used by client's XSLT.
    We are using a tool (xstream) that automatically transforms a Java object into XML. When it has multiple references to the same object, instead of expanding it in each place, it refers to the previous location of the object. It can do this in two ways (examples below).
    My question is, can XSLT use the XPath or RefID to navigate the XML? I know XSLT uses XPath, but I'm not sure if it uses it in this way.
    -- Note in the following examples how 'type' and 'item' are the exact same object, and the second instance of the object refers to the first location in the XML doc.
    <saleLineItemGrouping>
      <item class="item">
        <id>3000</id>
        <retailPrice>
          <type>
             <code>USD</code>
             <description>US Dollars</description>
             <decimalPlaces>2</decimalPlaces>
             <locale>en_US</locale>
          </type>
          <amount>400000000</amount>
        </retailPrice>
        <markdownAmount>
          <type reference="../../retailPrice/type"/>
          <amount>0</amount>
        </markdownAmount>
      </item>
      <lineItems>
        <saleLineItem>
          <item class="item" reference="../../../item"/>
    <saleLineItemGrouping id="1">
      <item class="item" id="2">
        <id>3000</id>
        <retailPrice id="3">
          <type id="4">
             <code>USD</code>
             <description>US Dollars</description>
             <decimalPlaces>2</decimalPlaces>
             <locale id="5">en_US</locale>
          </type>
          <amount>400000000</amount>
        </retailPrice>
        <markdownAmount id="6">
          <type reference="4"/>
          <amount>0</amount>
        </markdownAmount>
      </item>
      <lineItems id="7">
        <saleLineItem id="8">
          <item class="item" reference="2"/>

    So as I read your answer, I understand XSLT cannot
    "construct XPath expressions." But, can it read in
    XML with that XPath notation?Sure, it can read in that XML. It's well-formed XML so why not? But I gather you want your XSLT to take those attributes, whose values are strings, and interpret those strings as XPath expressions. That, XSLT can't do.
    To put it another way, the XPath expressions in an XSLT stylesheet have to be basically hard-coded there. So you could possibly solve your problem by first transforming the XML into an XSLT containing those expressions; e.g.<type reference="../../retailPrice/type"/>could be transformed into<xsl:value-of select="../../retailPrice/type"/>and then use that XSLT to do the actual transforming. But it would be extremely difficult to make that work -- I wouldn't want to have to do it myself.
    The second idea, using reference="2" to refer to <item class="item" id="2">, is much more feasible.
    Thank you for your replies and your patience.You're welcome. Have fun with XSLT.

  • ABAP Table for DynamicConfiguration details of XML message in SXMB_MONI

    Dear All
    I have a requirement where I have to read the value from DCJMSCorreleationID property of message which is recorded in SXMB_MONI based on the SAP PI message ID.
    I have 2 interfaces as below
    Interface one (INT1) : JMS-PI-ECC --->Inbound interface to ECC when message is received on PI it will have DCJMSCorreleationID populated with some ID as shown below
    Go to SXMB_MONI -->Inbound Message ---> SOAP Header --->DynamicConfiguration
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <SAP:DynamicConfiguration SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SAP:Record namespace="http://sap.com/xi/XI/System/JMS" name="DCJMSCorreleationID">
    a26c4276-9d5e-11e3-ba87-000004238292
    </SAP:Record>
    <SAP:Record namespace="http://sap.com/xi/XI/Message/30/general" name="senderAgreementGUID">dd3fb7c6b983314293e14ba59df1ad45</SAP:Record></SAP:DynamicConfiguration>
    Interface Two (INT2):-ECC-PI-JMS----> Outbound from ECC where I am passing a SAP PI Message ID for INT1 in one of the field
    Can I read this DCJMSCorreleationID for INT1 when INT2 is executed and have message ID for INT1 ?
    Where are these SOAP hearder porperties like DCJMSCorreleationID are stored on ABAP table?

    Thanks Jörg for your reply
    I have a back up plan for ZTable approach but the only concern there is RFC calls for read and write
    we have implemented a FM which gives the original payload using a std SAP functional modules FM SXMB_GET_XI_MESSAGE_INT and  ECATT_CONV_XSTRING_TO_STRING
    But I am looking for the SOAP Header information for DCJMSCorreleationID
    So if there is anything which will help to read this DCJMSCorreleationID property easily form existing message SOAP header is really helpful

Maybe you are looking for

  • Scanning multiple pages into single document

    Is there a way to scan multiple pages into single document?  I am using the following: HP pavilion laptop with windows 8,  HP photosmart C6380 all in one printer scanner copier.

  • I can't install Oracle8.1.7 on Pentium4,Help me please

    i can't install Oracle 8.1.7 Enterprise Edition on Pentium4- 1.3G , I use W2k Server. Have any idea to help me? I've heard that there is a patch to solve this problem,but i can't find it. Help me please.

  • Search Results Display Preference as "Advanced" not working in R12

    Hi Everyone, I'm unable to do an Advanced search in R12(12.1.3) whereas "Standard" search is working fine at 'Search Results Display Preference' in Oracle Applications Home Page. Advanced search throws 'http 404' error in all upgraded instances. Is t

  • Report which give PO no from the MIRO accounting document.

    Dear Expertise, Can any body so kind to help me to find out the following report. Is there any standard report in SAP: Input parameter : Accounting doucument of MIRO or invoice no Output Purchse order No against which the MIRO is entered. Thanks in a

  • BAPI_PO_Release

    Hi Gurus, Iam Using    BAPI_PO_Release   for releasing purchase order.I need to give PO Release Code. How to find it. Purchase Order Statu-9 and BSTYP -  F For This Purchase  Order How to find out the Release COde. thaks in advance. rgds, kirru.ch