ABAP Mapping Black Field Missing

Hi,
   I did an ABAP Mapping, one field of a sender message could be full of spaces or with some data. When a message with data for that field is sent, the mapped field in the receiver message had the data, but when I send a full spaces data field the receiver message have no data, it's empty. Somebody could help me?
Regards,
Luis Diego

Hi,
Btw, where are you looking about this field ? In the sxmb_moni ? If so are u able to see the XML tags generated for that field ? If not
Check the existsence of the field in the mapping. If there is no field i.e empty, then pass the spaces explicitly..
It is like , Built-in function in the message mapping i.e "EXISTS" with If-Else logic.
If you are able to see the xml tags generated for that field, view the SXMB_MONI message in the notepad, so that you can view the space.
Hope this helps,
Regards,
Moorthy

Similar Messages

  • XI 7.0 ABAP-Mapping in Design Builder (Interface Mapping)

    Hi,
    in XI 3.0 there was the possibility to specify a ABAP-Mapping-Class in the Interface Mapping. In XI 7.0 the
    entry ABAP-Mapping is somehow missing in the drop-down-Box, there is a Message-Mapping, JAVA-Mapping and XSLT-Mapping but no ABAP-Mapping :-(.
    Did this move somewhere else or are ABAP-Mapping's not possible anymore ??
    Best Regards,
    Frank Marx

    Frank,
    You need to activate ABAP and XSLT mapping.
    Check this blog for the same,
    /people/ravikumar.allampallam/blog/2005/02/10/different-types-of-mapping-in-xi
    Regards,
    Bhavesh

  • IDOC--XI--IDOC Using ABAP MAPPING

    Hi all,
    My requirement is to map source IDOC fields to target IDOC fields using ABAP Mapping.
    few fields in source idoc structure has to be merged into a single field in target idoc structure.
    need help on how to start with as i am not exposed to ABAP Mapping.
    regards,
    Subba

    Hi Subba,
    I suggest you also go through these links:
    https://websmp101.sap-ag.de/~sapdownload/011000358700003082332004E/HowToABAPMapping.pdf
    /people/ravikumar.allampallam/blog/2005/02/10/different-types-of-mapping-in-xi
    /people/r.eijpe/blog
    ABAP Mapping Vs Java Mapping.
    Re: Message Mapping of type ABAP Class not being shown
    Re: Performance of mappings (JAVA, XSLT, ABAP)
    Refer to following SDN Demo which explains the need and how to do the ABAP mapping.
    https://www.sdn.sap.com/irj/sdn/docs?rid=/webcontent/uuid/110ff05d-0501-0010-a19d-958247c9f798#jdi [original link is broken]
    This document will help you to create ABAP Mapping.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/e3ead790-0201-0010-64bb-9e4d67a466b4
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/3.0/how%20to%20use%20abap-mapping%20in%20xi%203.0.pdf
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5c46ab90-0201-0010-42bd-9d0302591383
    Regards,
    Abhy
    Message was edited by: Abhy Thomas

  • ABAP Mapping XML-IDoc to Flat string: missing character of segement header

    Hello folks!
    I'm using an ABAP-Mapping in order to trasform an XML-IDOC to a flat string.
    The implementation of the mapping is in accordance with the "HOW TO convert an IDoc-XML to ..."Basically it works fine except the following:
    The following line shows one Segment of an IDoc. the control record is ok.
    With '380' begins the payload of the segment. The part before includes the segment header,
    which is 63 Bytes long, which is correct.
    What we're missing, is the last character of the segement header:
    ABAP-Mapping:
    E1VDEWBGM                     01000000000325511200000020000000 380   5 (...)
    BusinessConnector:
    E1VDEWBGM                     010000000003255112000000200000001380   5 (...)
    Again: the overall length of the segment is ok, but the '1' of the field hirarchie level is overwritten.
    Any idea?

    In that case you need to extend the trace file in the Visual Admin Console...
         Services
         Log Configurator
         Locations
         Choose the location (Java package) and the tracing level (severity)
    (for example, com.sap.aii.adapter.file)
         Root Location > com > sap > aii > File
         Set the severity and choose Copy Severity to Subtree
    Check the trace file to find the field erroring this way!

  • Error text missing in  raising exception (In ABAP mapping)

    Hi,
    iam using ABAP Mapping for 1 interface.
    Based on some condition  i am raising exception with error text. When i executed this in SXI_Mapping_test it's showing the Error text. But when i execute the interface directly error text is missing in the Error details.
    can any one figure out y its not coming..
    regards
    Kishore

    Hi,
    I think you need to write the error to mapping trace.
    http://help.sap.com/saphelp_nw04/helpdata/en/ba/e18b1a0fc14f1faf884ae50cece51b/content.htm
    Regards
    Vijaya

  • Descriptor exception for "missing mapping for field"

    I am using TopLink 9.0.3, oracle database 9, JVM 1.4.
    I got one DescirptorException that states that the descriptor misses mapping for one database field.
    However I have such field mapped through workbench.
    The is the exception.
    -----------------exception-----------------------
    LOCAL EXCEPTION STACK:
    EXCEPTION [TOPLINK-45] (TopLink - 9.0.3 (Build 423)): oracle.toplink.exceptions.DescriptorException
    EXCEPTION DESCRIPTION: Missing mapping for field [DatabaseField(DEVICEDB.DEVICEID)].
    DESCRIPTOR: Descriptor(ContactDB --> [DatabaseTable(DEVICEDB)])
    at oracle.toplink.exceptions.DescriptorException.missingMappingForField(Unknown Source)
    at oracle.toplink.internal.descriptors.ObjectBuilder.extractValueFromObjectForField(Unknown Source)
    at oracle.toplink.internal.descriptors.ObjectBuilder.extractValueFromObjectForField(Unknown Source)
    at oracle.toplink.mappings.OneToManyMapping.extractForeignKeyFromReferenceObject(Unknown Source)
    at oracle.toplink.mappings.OneToManyMapping.executeBatchQuery(Unknown Source)
    at oracle.toplink.mappings.OneToManyMapping.extractResultFromBatchQuery(Unknown Source)
    at oracle.toplink.internal.indirection.NoIndirectionPolicy.valueFromBatchQuery(Unknown Source)
    at oracle.toplink.mappings.ForeignReferenceMapping.batchedValueFromRow(Unknown Source)
    at oracle.toplink.mappings.ForeignReferenceMapping.valueFromRow(Unknown Source)
    at oracle.toplink.mappings.DatabaseMapping.readFromRowIntoObject(Unknown Source)
    at oracle.toplink.internal.descriptors.ObjectBuilder.buildAttributesIntoObject(Unknown Source)
    at oracle.toplink.internal.descriptors.ObjectBuilder.buildObject(Unknown Source)
    at oracle.toplink.internal.descriptors.ObjectBuilder.buildObjectsInto(Unknown Source)
    at oracle.toplink.internal.queryframework.DatabaseQueryMechanism.buildObjectsFromRows(Unknown Source)
    at oracle.toplink.queryframework.ReadAllQuery.execute(Unknown Source)
    at oracle.toplink.queryframework.DatabaseQuery.execute(Unknown Source)
    at oracle.toplink.queryframework.ReadQuery.execute(Unknown Source)
    at oracle.toplink.publicinterface.Session.internalExecuteQuery(Unknown Source)
    at oracle.toplink.threetier.ServerSession.internalExecuteQuery(Unknown Source)
    at oracle.toplink.publicinterface.Session.executeQuery(Unknown Source)
    at oracle.toplink.internal.indirection.QueryBasedValueHolder.instantiate(Unknown Source)
    at oracle.toplink.internal.indirection.DatabaseValueHolder.getValue(Unknown Source)
    at oracle.toplink.indirection.IndirectList.buildDelegate(Unknown Source)
    at oracle.toplink.indirection.IndirectList.getDelegate(Unknown Source)
    at oracle.toplink.indirection.IndirectList.isEmpty(Unknown Source)
    The is my mapping file for DeviceDB and ContactDB. The ContactDB is a subclass of the DeviceDB.
    Clearly from the mapping below, the DeviceDB has a mapping for the database filed DeviceID.
    The ContactDB is a subclass of DeviceDB. Therefore the ContactDB also should have a mapping for
    database field deviceID
    ----------------------- partial mapping file for DeviceDB----------
    public Descriptor buildDeviceDBDescriptor() {
         Descriptor descriptor = new Descriptor();
         descriptor.setJavaClass(DeviceDB.class);
         descriptor.addTableName("DEVICEDB");
         descriptor.addPrimaryKeyFieldName("DEVICEDB.DBID");
         // Inheritance properties.
         descriptor.getInheritancePolicy().setClassIndicatorFieldName("DEVICEDB.CLASS");
         descriptor.getInheritancePolicy().addClassIndicator(ContactDB.class, "c");
         descriptor.getInheritancePolicy().addClassIndicator(ContentDB.class, "f");
         OneToOneMapping deviceMapping = new OneToOneMapping();
         deviceMapping.setAttributeName("device");
         deviceMapping.setReferenceClass(Device.class);
         deviceMapping.setRelationshipPartnerAttributeName("databases");
         deviceMapping.dontUseIndirection();
         deviceMapping.readOnly();
         deviceMapping.addForeignKeyFieldName("DEVICEDB.DEVICEID", "DEVICE.DEVICEID");
         descriptor.addMapping(deviceMapping);
         return descriptor;
    ---------------------------partial mapping for ContactDB --------------
    public Descriptor buildContactDBDescriptor() {
         Descriptor descriptor = new Descriptor();
         descriptor.setJavaClass(com.access.sync.business.contact.ContactDB.class);
         descriptor.addTableName("DEVICEDB");
         // Inheritance properties.
         descriptor.getInheritancePolicy().setParentClass(com.access.sync.framework.systemObj.DeviceDB.class);
    Any help is really appreciated.
    jason

    Your 1-1 mapping must not be read-only.
    deviceMapping.readOnly();Read-only means the mapping will not write the field, and should only be used when another mapping does write the field.

  • Missing mapping for field error

    Here is the set up:
    Person extends Party using InheritanceType.JOINED
    Household extends Party_Relationship using InheritanceType.JOINED
    Household has a Set of Persons mapped One to Many unidirectional
    When I use PrimaryKeyJoinColumn on the Person and/or Household to rename the column say to PERSON_POID instead of PARTY_POID and when adding Persons to the Household Set the following error occurs:
    oracle.toplink.essentials.exceptions.DescriptorException
    Exception Description: Missing mapping for field [PERSON.PARTY_POID].
    Descriptor: RelationalDescriptor(com.dhsnet.cms.domain.Person --> [DatabaseTable(PARTY), DatabaseTable(PERSON)])
    What am I missing? If I do not use the PrimaryKeyJoinColumn mapping this error does not occur. I am stumped! Any help is greatly appreciated.
    Here are the mappings:
    @Entity
    @TableGenerator(name="party", table="generator", pkColumnName="table_name",
    valueColumnName="key_value", pkColumnValue="party", allocationSize=1)
    @Table(name="PARTY")
    @Inheritance(strategy=InheritanceType.JOINED)
    @DiscriminatorColumn(name = "PARTY_TYPE")
    public abstract class Party extends AbstractEntity{
    @Entity
    @DiscriminatorValue("PERSON")
    @PrimaryKeyJoinColumn(name="PERSON_POID")
    public class Person extends Party{
    @Entity
    @Table(name="PARTY_RELATIONSHIP")
    @TableGenerator(name="party_relationship", table="generator", pkColumnName="table_name",
    valueColumnName="key_value", pkColumnValue="party_relationship", allocationSize=1)
    @Inheritance(strategy = InheritanceType.JOINED)
    @DiscriminatorColumn(name = "PARTY_RELATIONSHIP_TYPE", discriminatorType=DiscriminatorType.STRING)
    public abstract class PartyRelationship extends AbstractEntity {
    @Entity
    @DiscriminatorValue(value="HOUSEHOLD")
    @PrimaryKeyJoinColumn(name="HOUSEHOLD_POID")
    public class Household extends PartyRelationship {
    On the Household Object:
    @OneToMany
    @JoinTable(joinColumns = @JoinColumn(name="HOUSEHOLD_POID"),
    inverseJoinColumns = @JoinColumn(name="PERSON_POID"))
    protected Set<Person> getMembers() {
    return members;
    }

    This looks to be the same/related issue that has already been entered. See
    https://glassfish.dev.java.net/issues/show_bug.cgi?id=1586
    The alternative like you mentioned, is to not use a PrimaryKeyJoinColumn to rename the column in the joined inheritance case.
    Cheers,
    Guy

  • Fields Missing after Mapping

    Hi All,
          I am doing Flat file to Flat file Scenario.I am doing content conversion on both the sender and receiver side.I have twenty eight fileds on sender side and twenty eight fields on receiver side.When the Flat file is being picked up it is converting into XML and all the fields are clearly shown in SXMB_MONI.I have mapped every field during mapping.But when i check the payload in RWB in message monitoring the XML message which we can see after mapping in some records only 24 fields are being shown while in some records all 28 fields are being shown.When I check the same in test tab in message mapping it is working fine.Please help in this regard ASAP.
    Thanks in Advance
    Dinakar

    Sounds to me like you have some conditional mappings that are falling out and not returning values.  If all your field mappings are one-to-one without conditions then the problem must be within the data itself.  We've seen where certain XML control characters can mess up mappings (& and $ for example).
    I don't suppose you are using an XSL mapping that you can post here for us to check out???
    Chad

  • ABAP Mapping for Error handling in Proxy to JDBC

    Hi All,
    I am working on a proxy to jdbc scenario in which we have to throw validation errors to NWPM(Net Weaver Process Monitor Tool)
    I am following the below steps,
    step 1 - In message mapping a UDF is created to catch errors and store them in a variable using  dynamic configuration
    step 2 - writing abap mapping for handling this thrown exception and im reading the dynamic configuration in the abap class and raising exception. The exception format expected is
    SAP:Error SOAP:mustUnderstand="" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="RCVR_DETERMINATION">NO_RECEIVER_CASE_ASYNC</SAP:Code>
      <SAP:P1>ZPI_THROW_EXCEPTION</SAP:P1>
      <SAP:P2>001</SAP:P2/>
      <SAP:P3>Mandatory field is missing[BUKRS] </SAP:P3>
       <SAP:AdditionalText />
      <SAP:Stack>No receiver could be determined</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    I have written the following ABAP code to achieve this:
    method IF_MAPPING~EXECUTE.
      DATA l_record type mpp_dynamic.
    DATA error type String.
    getting dynamic configuration value
    filled in by any previous mapping
    CALL METHOD DYNAMIC_CONFIGURATION->GET_RECORD
      EXPORTING
        NAMESPACE = 'http://sap.com/xi/XI/System/ERROR'
        NAME      = 'ERROR'
      RECEIVING
        RECORD    = l_record.
    error = l_record-value.
    *raising exception with our message
    RAISE EXCEPTION TYPE CX_MAPPING_FAULT
      EXPORTING
       TEXTID =
       PREVIOUS =
        ERROR_CODE = '001'
        ERROR_TEXT = error .
    RAISE EXCEPTION TYPE CX_MAPPING_FAULT
      EXPORTING
       TEXTID =
       PREVIOUS =
        ERROR_CODE = '003'
        ERROR_TEXT = error .
    endmethod.
    I am gettign the following message for our code:
    SAP:Error SOAP:mustUnderstand="" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="RCVR_DETERMINATION">NO_RECEIVER_CASE_ASYNC</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:Stack>No receiver could be determined</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Could you please help in finding the solution for getting currect error message from ABAP class?
    Edited by: SwethaC on Jan 21, 2011 8:18 AM

    The error is due to RFC Call fail from PI system to your ECC Application System.
    Check your RFC Destination for ECC System type 3 in PI System.
    When you are receiving data from ECC System using Proxies & again you are going to ECC System for Validation.
    Why you are not doing this validation on ECC System only in your proxy code ?
    In your proxy code, it will be much better for performance to check your data there on same system.

  • [ABAP Mapping] No output

    Hey,
    try to do a scenario like "How to use ABAP mapping in SAP XI 3.0", but got no output.
    Is it correct that we don't need a namespace for abap mapping? In the "How to" document the namespace field is empty, but in sxmb_moni he says:
    <b>  <SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: error while processing the request to rfc-client: com.sap.aii.af.rfc.afcommunication.RfcAFWException: error while processing message to remote system:com.sap.aii.af.rfc.core.client.RfcClientException: could not get functionname from XML requst: com.sap.aii.af.rfc.RfcAdapterException: failed to read funtionname from XML document: missing namespace declaration(2)</SAP:AdditionalText> </b>
    But he takes the ABAP mapping, because in ABAP code I create following trace node:
    <i>  DATA: l_trace TYPE string.
      CONCATENATE 'Chris Sender Service = ' l_sender_service INTO l_trace.
      trace->trace( level = '1'
      message = l_trace ).</i>
    And in sxmb_moni he got it:
    <i><Trace level="1" type="T">Chris Sender Service =BS_Reisebuero2</Trace> </i>
    In sxi_mapping_test he writes, that the mapping was successful, but didn't create the output structure. Do I have a wrong ABAP code? Could it be, that I have a wrong append_child??
    Here it is (it equals the how to):
    <i>
    METHOD if_mapping~execute.
    initialize iXML
      TYPE-POOLS: ixml.
      CLASS cl_ixml DEFINITION LOAD.
    create main factory
      DATA: ixmlfactory TYPE REF TO if_ixml.
      ixmlfactory = cl_ixml=>create( ).
    create stream factory
      DATA: streamfactory TYPE REF TO if_ixml_stream_factory.
      streamfactory = ixmlfactory->create_stream_factory( ).
    create input stream
      DATA: istream TYPE REF TO if_ixml_istream.
      istream = streamfactory->create_istream_xstring( source ).
    parse input document =================================================
    initialize input document
      DATA: idocument TYPE REF TO if_ixml_document.
      idocument = ixmlfactory->create_document( ).
    parse input document
      DATA: iparser TYPE REF TO if_ixml_parser.
      iparser = ixmlfactory->create_parser( stream_factory = streamfactory
      istream = istream
      document = idocument ).
      iparser->parse( ).
    **********get source elements**********************************
    get message content of tag <carrid>
      DATA: carrid TYPE REF TO if_ixml_node_collection.
      carrid = idocument->get_elements_by_tag_name( 'carrid' ).
    get message content of tag <connid>
      DATA: connid TYPE REF TO if_ixml_node_collection.
      connid = idocument->get_elements_by_tag_name( 'connid' ).
    get message content of tag <fldate>
      DATA: fldate TYPE REF TO if_ixml_node_collection.
      fldate = idocument->get_elements_by_tag_name( 'fldate' ).
    ***********get meta datas****************************************
    get XI header data (here: "Sender Service")
      DATA: l_sender_service TYPE string.
      l_sender_service = param->get( if_mapping_param=>sender_service ).
    add trace (appears in message monitoring)
      DATA: l_trace TYPE string.
      CONCATENATE 'Chris Sender Service = ' l_sender_service INTO l_trace.
      trace->trace( level = '1'
      message = l_trace ).
    build up output document =============================================
    create output document
      DATA: odocument TYPE REF TO if_ixml_document.
      odocument = ixmlfactory->create_document( ).
    create element SXIDEMO_AIRL_FLIGHT_CHECKAVAIL and add it to the document
      DATA: sxidemo TYPE REF TO if_ixml_element.
      sxidemo = odocument->create_simple_element(
                           name = 'SXIDEMO_AIRL_FLIGHT_CHECKAVAIL_chris'
                           parent = odocument ).
    add FLIGHT_KEY node to the output document
      DATA: flight_key TYPE REF TO if_ixml_node.
      flight_key = carrid->get_item( index = 0 ).
      DATA irc TYPE i.
      irc = sxidemo->append_child( flight_key ).
    ***********add elements to output document *******************
    add carrid node to the output document
      DATA: outcode1 TYPE REF TO if_ixml_node.
      outcode1 = carrid->get_item( index = 0 ).
      irc = flight_key->append_child( outcode1 ).
    add connid node to the output document
      DATA: outcode2 TYPE REF TO if_ixml_node.
      outcode2 = connid->get_item( index = 0 ).
      irc = flight_key->append_child( outcode2 ).
    add fldate node to the output document
      DATA: outcode3 TYPE REF TO if_ixml_node.
      outcode3 = fldate->get_item( index = 0 ).
      irc = flight_key->append_child( outcode3 ).
    Testen einer manuellen eingabe
      outcode1 = odocument->create_simple_element(
                              name = 'passengerName'
                              value = 'Christian Riekenberg'
                              parent = flight_key ).
    render document ======================================================
    create output stream
      DATA: ostream TYPE REF TO if_ixml_ostream.
      ostream = streamfactory->create_ostream_xstring( result ).
    create renderer
      DATA: renderer TYPE REF TO if_ixml_renderer.
      renderer = ixmlfactory->create_renderer( ostream = ostream
      document = odocument ).
      irc = renderer->render( ).
    ENDMETHOD.
    </i>
    thanks
    chris
    Message was edited by:
            Christian Riekenberg

    Hi,
    I took a working scenario, that is runnable with java- and graphical mapping.
    Just change it to ABAP-Mapping.
    I just had forget to include the namespace into abap mapping. So the output has to look like:
    <ns1:SXIDEMO_AIRL_FLIGHT_CHECKAVAIL <b>xmlns:ns1="urn:sap-com:document:sap:rfc:functions"</b>>
    That was the missing namespace. Another problem was my created structure. I used the function append_child with a wrong input.
    Your tip, that I'm able to use the debugger in
    sxi_mapping test was great. So points for you!
    Message was edited by:
            Christian Riekenberg

  • ABAP mapping XML inside another XML

    <b>Cross posted to ABAP Objects</b>
    From XI we want to make an abap mapping.
    The input xml looks like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns0:mt_dummy xmlns:ns0="http://kmd.dk/phh/externalEventEngine/pfhaen">
    <details>
    <Navn>Nielsen</Navn>
    <Adresse><![CDATA[><?xml version="1.0" encoding="UTF-8"?><ns0:mt_dummy2 xmlns:ns0="http://kmd.dk/phh/externalEventEngine/pfhaen"><Details2><Vej>tingvej</Vej><Husnr>75</Husnr></Details2></ns0:mt_dummy2>]]></Adresse>
    </details>
    </ns0:mt_dummy>
    One of the fields in this structure <Adresse> contains another xml structure. It is this structure we want as a result of our ABAP mapping. First we get the value of the field <Adresse>. This field contains the actual xml structure that we want to map. We convert the structure to xstring and run it through a new parser and create our output document.(See code below).
    The code works fine if we just use a ‘normal’ xml structure, but when one of the fields contains a XML structure and we want to parse this structure, we get the error. Is there anything we have missed, or is this not possible in ABAP mapping ?
    If we test the code with SXI_MAPPING_TEST we get no errors, but in runtime we get the following error in SXMB_MONI:
    ‘The XML page document can not be shown
    The XML document must have an element at the top level’
    method IF_MAPPING~EXECUTE.
    initialize xml
    type-pools: ixml.
    class cl_ixml definition load.
    *create main factory
    data: ixmlfactory type ref to if_ixml.
    ixmlfactory = cl_ixml=>create( ).
    *create stream factory
    data: streamfactory type ref to if_ixml_stream_factory.
    streamfactory = ixmlfactory->create_stream_factory( ).
    *create input stream
    data: istream type ref to if_ixml_istream.
    istream = streamfactory->create_istream_xstring( source ).
    *initialize input document
    data: idocument type ref to if_ixml_document.
    idocument = ixmlfactory->create_document( ).
    *parse input document
    data: iparser type ref to if_ixml_parser.
    iparser = ixmlfactory->create_parser( stream_factory = streamfactory
    istream = istream
    document = idocument ).
    iparser->parse( ).
    data: pnode type ref to if_ixml_node,
    pnode2 type ref to if_ixml_node,
    pnode3 type ref to if_ixml_node.
    data: l_blob type string,
    l_xml type string,
    l_length type i.
    pnode = idocument.
    pnode2 = pnode->get_first_child( ).
    pnode2 = pnode2->get_first_child( ).
    pnode2 = pnode2->get_last_child( ).
    l_blob = pnode2->get_value( ).
    data: l_blob2 type xstring.
    CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
    EXPORTING
    TEXT = l_blob
    MIMETYPE = ' '
    ENCODING =
    IMPORTING
    BUFFER = l_blob2
    EXCEPTIONS
    FAILED = 1
    OTHERS = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    *2. parse
    *create main factory
    data: ixmlfactory2 type ref to if_ixml.
    ixmlfactory2 = cl_ixml=>create( ).
    *create stream factory
    data: streamfactory2 type ref to if_ixml_stream_factory.
    streamfactory2 = ixmlfactory2->create_stream_factory( ).
    *create input stream
    data: istream2 type ref to if_ixml_istream.
    istream2 = streamfactory2->create_istream_xstring( l_blob2 ).
    *initialize input document
    data: idocument2 type ref to if_ixml_document.
    idocument2 = ixmlfactory2->create_document( ).
    *parse input document
    data: iparser2 type ref to if_ixml_parser.
    iparser2 = ixmlfactory2->create_parser( stream_factory = streamfactory2
    istream = istream2
    document = idocument2 ).
    iparser2->parse( ).
    data: odocument type ref to if_ixml_document.
    odocument = idocument2.
    data: irc type i.
    *render document----
    *create output stream
    data: ostream type ref to if_ixml_ostream.
    ostream = streamfactory2->create_ostream_xstring( result ).
    *create renderer
    data: renderer type ref to if_ixml_renderer.
    renderer = ixmlfactory2->create_renderer( ostream = ostream
    document = odocument ).
    irc = renderer->render( ).
    endmethod.

    Hey,
    It seems like the output is not a valid XML,
    (I guess that the input XML is different from your test).
    XML must have one element at the top level,
    for example:
    <A>
    Ilan
    </A>
    <B>
    Shani
    </B>
    is not a valid XML,
    A valid XML should look like:
    <mt_dummy>
    <A>
    Ilan
    </A>
    <B>
    Shani
    </B>
    </mt_dummy>
    In order to see the in-valid XML, press on the right-click mouse on the i.e error text,
    and chose "view source".

  • Regarding Field Missing in Dso Transformation

    Hi
    Folks
    I am facing the issue like
    In Datasouce to DSO transformation i can see the 55 objects in DSO table, and in DSO to Cube Transformation i can see 54 fields in DSO table, one field is missing , the object  0TXTSH(short discription) is mapped to field 0TXZ01in DS to DSO transformation.
    so How can i get the field in DSO to Cube transformation.??
    any settings have to be change???
    waiting for yours Valuable answers
    Regards
    Anand

    Hi,
    Please identify the object and check it whether it is an attribute or a characteristic, if it is attribute only disable that option then check it.
    Regards,
    Srinivas

  • FIELDS MISSING

    Hi,
    When i replicated CO-PA data into BI. It created two DS's:
    0COPA_RCTY AND 1_CO_PA_XXXXXXX
    I created an Infosource and transfer rules for 1_CO_PA_XXXXXXX but there are a few fields missing that i do see in the operating concern such as:
    ARTNR=0MATERIAL
    KNDNR=0CUSTOMER
    BZIRK=0SALES_DIST
    Why are these fields not in the Infosource since they are in the operating concern?
    Where would they be?
    Thanks

    Delete the data source and then need to re-create using KEB2 transaction. While re-creating the data source use the same old name so that there won't be any changes in the BW side when you need to assign the data source to info-source. Just replicate the new data source in BW side and map the new field in info-source.
    (you can also try, goto KE24 and edit the dataaource and add your fields not 100% sure of it works)
    how to select fields refer doc:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/fb07ab90-0201-0010-c489-d527d39cc0c6

  • Dynamic configuration in integration process using abap mapping

    Hi everybody,
    i have the following scenario:
    file adapter -> integration process -> file adapter
    The integration process uses an ABAP mapping and sets the filename in dynamic configuration as follows:
    *-- Set Parameter
        clear ls_dyn_record.
        ls_dyn_record-name      = gc_dyn_config_name.
        ls_dyn_record-namespace = gc_dyn_config_ns.
        ls_dyn_record-value     = <new_file_name>
    *-- Write configuration
        ir_dyn_config->add_record( ls_dyn_record ).
    But now the new filename is not reflected in the file adapter (receiver). In the integration monitor (SXMB_MONI) i still find the old filename.
    Whats wrong?
    Elko

    The ABAP mapping is more complex, setting filename in Dyn. Conf. is just one step in mapping.
    If I check the Workflow protocol of the Integration Process, I find the following in the Trace of the ABAP-Mapping:
    The filename has been set to 3233340.SWNF00HW.P10I. The Suffix P10I has been added in the ABAP mapping.
    When I check the subsequent message in SXMB_MONI I find:
    The added suffix is missing in the filename !!
    Elko

  • Java Mapping, XSLT Mapping, ABAP Mapping

    Hi Experts,
                     Could any one explain what is the main features of the following Mapping. How to pick the mapping?
    Java Mapping - When to use and what is the advantage.
    ABAP Mapping - When to use and what is the advantage.
    XSLT Mapping - When to use and what is the advantage.
    Graphical Mapping - When to use and what is the advantage.
    cheers,
    Sunee

    There are 4 types of mapping in XI
    1. Graphical Mapping
    2. XSLT Mapping
    3. JAVA Mapping
    4. ABAP Mapping
    When to use Message mapping
    1 When the logic for your mapping is simple and straight forward, you can use
    Advantages of message mapping
    1)Easy to use.
    2) has GUI drag and drop.
    3) used for simple mapping cases
    4) it does not involve any complex logic
    Disadvantages of message mapping
    1)has limitation in terms of complex hierarchy
    When to use Java mapping
    1) Java mapping are used when graphical mapping cannot help you.
    Advantages of Java Mapping
    1)you can use Java APIs and Classes in it.
    2) file look up or a DB lookup is possible
    3) DOM is easier to use with lots of classes to help you create nodes and elements.
    Disadvantages of Java mapping
    1)SAX parser is not easy to develop
    2)DOM parser is intensive
    3) Java knowledge is required
    4) bit complexer
    XSLT Mapping - When to use
    1)When the required output is other than XML like Text, Html or XHTML (html displayed as XML )
    2)When default namespace coming from graphical mapping is not required or is to be changed as per requirements.
    3)When data is to be filtered based on certain fields (considering File as source)
    4)When data is to be sorted based on certain field (considering File as source)
    5)When data is to be grouped based on certain field (considering File as source)
    Advantages of using XSLT mapping
    1)XSLT program itself defines its own target structure.
    2)XSLT programs can be imported into SAP XI. Message mapping step can be avoided. One can directly go for interface mapping once message interfaces are created and mapping is imported.
    3)XSLT provides use of number of standard XPath functions that can replaces graphical mapping involving user defined java functions easily.
    4)File content conversion at receiver side can be avoided in case of text or html output.
    5)Multiple occurrences of node within tree (source XML) can be handled easily.
    6)XSLT can be used in combination with graphical mapping.
    7)Multi-mapping is also possible using xslt.
    8)XSLT can be used with ABAP and JAVA Extensions
    Disadvantages of using XSLT mapping
    1)Resultant XML payload can not be viewed in SXMB_MONI if not in XML format (for service packs < SP14).
    2)Interface mapping testing does not show proper error description. So errors in XSLT programs are difficult to trace in XI but can be easily identified outside XI using browser.
    3)XSLT mapping requires more memory than mapping classes generated in Java.
    4)XSLT program become lengthier as source structure fields grows in numbers.
    5)XSLT program sometimes become complex to meet desired functionality.
    6)Some XSL functions are dependent on version of browser.
    Advantages of Abap Mapping
    1) A person comfortable with OOABAP can go for ABAP mapping instead.
    Disadvantages of Abap Mapping
    1) Abap knowledge is required
    2) bit compexer
    For further info on each of the mapping, refer to these links,
    Graphical Mapping,
    http://help.sap.com/saphelp_nw04/helpdata/en/6d/aadd3e6ecb1f39e10000000a114084/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/43/c4cdfc334824478090739c04c4a249/content.htm
    XSLT Mapping
    http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/content.htm
    http://www.w3.org/TR/xslt20/
    Java Mapping
    http://help.sap.com/saphelp_nw04/helpdata/en/e2/e13fcd80fe47768df001a558ed10b6/content.htm
    DOM parser API
    http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/package-frame.html
    Check this blog on Mapping:
    /people/ravikumar.allampallam/blog/2005/02/10/different-types-of-mapping-in-xi
    Also, check this thread for more info,
    Different types of Mapping in XI

Maybe you are looking for

  • Query Invoices based on checked sites WHEN_BUTTON_PRESSED

    Hello, I am newbie to Oracle Forms, Please correct me if iam wrong. Requirement: I have a Master-detail Block with Vendors and Vendors Sites. When i query a vendor, all his sites also will be listed. Against each site there is a check box. When i sel

  • Service Entry Sheet Release Procedure

    Dear all, I want to assign a new Plant to an existing service entry release strategy. In CL20N for Class Type 032 and maintaining the Release Group and Release Strategy I want, I hit ENTER and the Class SERVICE_RELEASE is displayed, which is correct

  • Downloaded songs don't start at the beginning of the song, why?

    the songs i bought from itunes don't start at the beginning of the song,  it's just the preview clip.

  • Batch Number.

    Dear Guru's I have a requirement that system should generate unique Batch No. for each material receiveng lot from Purchase and Production Order. Like this. Material A     PO No. 45/1     GR Qty 100    Batch No. 000001 Material A     PO No. 45/2    

  • Problem in SAP Script - Paragraph AS - Chars getting truncated at end of

    Output for one of script is not getting printed correctly. When i see output of Script, text is printing beyond the end of line and last few characters are getting truncated. For ex: xxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx