Mapping Problem in IDOC to XML scenario

hi,
In the target i have a tag which says:
Extrinsic 0..unbounded
name     required
I have to map the above target to a source which comes from different IDOC segments.
E.g.
if E1EDP17.Qualf = '002' then map the E1EDP17.lktext to the "name"
if E1EDP17.Qualf = '001' then map the E1EDP17.lktext to the Extrinisc.
If data resides in other segments, how would i map those segments to the same output in xml.
Example:
<Extrinsic name="a">test</Extrinsic> -> this comes from E1EDP17 segment
<Extrinsic name="a">test</Extrinsic> -> comes from segment A
<Extrinsic name="a">test</Extrinsic> -> comes from segment B
How can i use a single Target to map from different sources if they are in different segments?
Any tips?
Thanks,
KP
Message was edited by: Tirumal Kumar Pappu

Tirumal,
U will have to use comination of node functions like <b>exists</b> and <b>mapWithDefault</b>.
Are you sure that, E1EDP17.Qualf will have the value '002' or '001'.
There are some very good blogs on mapping by Sravya. Go through them and also go through the following link.
<a href="http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm">sap help for Mapping</a>
Please reward if helpful

Similar Messages

  • Mapping issue in idoc to JDBC scenario

    mapping issue in idoc to JDBC scenario
    source structure
    E1KNB1M
      BUKRS = 1000
    E1KNB1M
      BUKRS=  9000
    E1KNB1M
      BUKRS=  2000
    THE NODE E1KNB1M is repeated many times and the field BUKRS is also repeated with E1KNB1M as above
    TARGET field : ISFRANCHISE
    if any where value of BUKRS =9000 we have to pass Y to the target filed, else N
    if BUKRS = 9000   THEN ISFRANCHISE= Y
                   ELSE
                ISFRANCHISE=N
    I've done the mapping as below
    BUKRS = 9000--> IF THEN Y ELSE N--
    > ISFRANCHISE
    BUT everry time the target value is N only
    pl suggest
    rgds
    mojib

    mapped like this
    BUKRS--->SORT---->
                                                 EQUALS --------IF---THEN    Y
    9000------------------------>                                               ----------------->ISFRANCHISE
                                                                  ELSE   N
    context of BUKRS set to parent node
    its worked
    thanks to all for valuable suggestions
    rgds
    mojib

  • Regarding receiver determination problem in IDOC-XI-XML file scenario

    Dear All ,
    In IDOC-XI-xml file scenario , I have configured SLD , IR . But in ID , after file adapter , reciever agreement configuration when I am doing receiver determination configuration I am not able to insert mapping program in configuration overview of receiver determination as I am not getting "New Specific" option in mapping .
    Can anybody suggest what could be the reason behind this .
    Thanks in Advance
    Prabhat

    Hi PRabhat,
    In RCVR determination, you need to select the party & service (as appropriate) save the obeject
    then refresh the configuration overview of recr det.
    then you can see the partner/service
    then you can open it & add the necessary objects.
    Regards
    Vishnu

  • Mapping issue for Idoc to xml

    hello all,
           my scenario is idoc to xml file
    E1EDKT1-------segment (1:n)
       -TDID----
    ele
       -E1EDKT2----segment (1:n)
          -TDLINE-----ele
    When TDID value is X then all values in TDLINE of undeline sement E1EDKT2 needs to be cocatenated and passed to target elemnt A
    if  TDID value is Y then all values in TDLINE of undeline sement E1EDKT2 needs to be cocatenated and passed to target elemnt B
    i have written java function(for all values in context) to conctenate TDLINE elements.
    also the context of TDLINE is changed to  E1EDKT1.
    i am getting all the concatenaed values of TDLINE for TDID=X in target element A but i am not geting any value in target element B for TDID=Y
    can any one suggest what could be the problem.
    Regards,
    Sandip

    Hi Sandip,
    Map like this for target element A:
    use simple if stament.  and for If give TDID  equals(text function) to constant X
    and for then TDLINE-->concattdline(udf) --> output A
    Map like this for target element B:
    use simple if stament.  and for If give TDID  equals(text function) to constant Y
    and for then TDLINE-->concattdline(udf) --> output B
    concattdline udf:
    Create a Context udf with one argument a and name it as concattdline.
    Imports:  java.*;
    Add this code:
    //write your code here
    String value = "";
    for(int j=0; j<a.length - 1; j++){
         value += a[j] + "";
    value +=  a[a.length - 1];
    result.addValue(value);
    I just tested this and it should work for you.
    Regards,
    ---Satish

  • FIle Content Conversion Problem in IDOC-XI-File Scenario

    Dear All,
    I am doing IDOC-XI-FILE scenario.
    I am facing one problem related to File Content Coversion.My requirement was to generate a dynamic file like <b>%store_code%_%current_date%_sitemaster.xml</b> , I have completed the dynamic generation successfully .
    Now there is slight change in the requirement ,<b>we have to suppress the current_date node of the xml content</b> . i have tried to suppress the current_date using these <b>DATE.fieldFixedLengths 0 , Date.fixedLengthTooShortHandling Cut</b> , But I am unable to suppress it Can some body provide me the details on this .
    The output xml version generated by Reciever file adapter is as below :
    <?xml version="1.0" encoding="UTF-8" ?>
    - <ns0:MT_SITE_MASTER xmlns:ns0="http://sample-xitest.com/sitemaster">
    - <SITE_DATA>
    <STORE_CODE>N002</STORE_CODE>
    <TITLE_MEDI>Company</TITLE_MEDI>
    <STORE_NAME>Mount Road</STORE_NAME>
    <STREET>Chennai</STREET>
    <COUNTRY>IN</COUNTRY>
    <SALES_TAX_NO>12345678910</SALES_TAX_NO>
    </SITE_DATA>
    </ns0:MT_SITE_MASTER>
    Plz provide me the code I have to write in the file content conversion .
    Thanks in advance
    Regards
    Prabhat

    If u see my earlier reply, I mentioned that u can not suppress the field from the one node.i.e Form SITE_DATA data type u can not suppress the field called CURRENT_DATE.
    My suggestion is that , modify the Data type in such a way that you will be having two nodes as I have mentioned earlier.  Then use the Suppress Logic for the Current Date.
    So it will look like this-
    <?xml version="1.0" encoding="UTF-8" ?>
    - <ns0:MT_SITE_MASTER xmlns:ns0="http://sample-xitest.com/sitemaster">
    - <SITE_DATA>
    <STORE_CODE>N002</STORE_CODE>
    <TITLE_MEDI>Company</TITLE_MEDI>
    <STORE_NAME>Mount Road</STORE_NAME>
    <STREET>Chennai</STREET>
    <COUNTRY>IN</COUNTRY>
    <SALES_TAX_NO>12345678910</SALES_TAX_NO>
    </SITE_DATA>
    <CURR_DATE>
       <CURRENT_DATE>20051105</CURRENT_DATE>
    </CURR_DATE>
    </ns0:MT_SITE_MASTER>
    So ur SITE_DATA is not having a field called CURRENT_DATE. This field is in separate node (segment ) called CURR_DATE. Now u can use the Suppress Logic for the same like this.
    CURR_DATE.fieldFixedLengths - 0
    CURR_DATE.fixedLengthTooShortHanling - Cut
    And in your Variable Substitution you can use the date from the other segment called CURR_DATE.
    Hope this solves ur problem.
    Regards,
    Moorthy

  • Problem in idoc to file scenario

    hi
    while creating the idoc to file scenario i am facing few problems.
    1) My design time objects are working fine. i have checked my message mapping, message interface etc.. (all design time objects are in active mode).
    2) In ID, i have tested my configuration in test configuration, its working fine there as well (in ID i am using 2 business service one for sender, one for receiver)
    3) i am using my ecc6 training server as my sender and using my XI server as receiver.
    4) i am sending idoc from ecc6 and converting it  to file in XI server and saving it in XI server itself(my receiver in this case).
    my error:
    i send my idoc from we19 transaction, and i see a error message stating
    that 'RCVR_DETERMINATION.NO_RECEIVER_CASE_ASYNC'
    my doubts.
    1) while sending the idoc from ecc6, is it mandatory to give process code in partner profile ( that is, assign an outbound function module to push the created idoc to the mentioned destination).
    2) also is it mandatory to have a partner profile on the receiver side( XI in this case) along with inbound process code.
    3) in my receiver adapter ( file adatper in this case ) i have used NFS protocal. is it rite?
    kindly help me with this issue.
    regards
    manoharan

    >
    manoj murugesan wrote:
    > 1) while sending the idoc from ecc6, is it mandatory to give process code in partner profile ( that is, assign an outbound function module to push the created idoc to the mentioned destination).
    >
    > 2) also is it mandatory to have a partner profile on the receiver side( XI in this case) along with inbound process code.
    >
    > 3) in my receiver adapter ( file adatper in this case ) i have used NFS protocal. is it rite?
    >
    >
    > kindly help me with this issue.
    >
    >
    > regards
    > manoharan
    and to 1 & 2 ref. below,
    Configuration steps required for posting idoc's(XI) -
    /people/ravikumar.allampallam/blog/2005/02/23/configuration-steps-required-for-posting-idocsxi
    ALE configuration for pushing idocs from SAP to XI -
    /people/swaroopa.vishwanath/blog/2007/01/22/ale-configuration-for-pushing-idocs-from-sap-to-xi
    3. NFS protocol is used to read/write files to the XI server itself. If you have to write to a local machine then use FTP

  • Context handling in message mapping  for an IDoc to File Scenario

    Hi,
    Can somebody help me with this issue. I have an Idoc to file scenario. heres my idoc structure. Its a custom Idoc
    Header (1..1)
    Detail (0..Unbounded)
             DependentDetail (0...Unbounded)              Note: This dependentdetail is a subelement of Detail
    Trailer(1...1)
    I  created my target structrure the same way as the Idoc structure.
    My output is a simple text file. I need the output in this format
    Header
    Detail1
       Dependentdetail1
       DependentDetail2
       DependentDetail3
    Detail2
       DependentDetail1
       Dependentdetail2
    Detail3
    Detail4
    Trailer
    Since the Detail and Dependent Detail records are unbounded .
    But right now i m getting my output like this:
    Header
    Detail1
    Detail2
    Detail3
    Detail4
    Trailer
    But the DependentDetail record in not showing up in the output file. I didnot do any context change in my mapping. So do I need to do any context handling??...If so can somebody explain me with this.
    Thanks,
    Adam
    Edited by: hymanroth on Apr 29, 2011 11:11 PM

    Thanks Kenneth foryour quick reply,
    Yes, I see the payload for Dependent detail in SXMB_MONI. So as you said earlier there's a problem with my content conversion.
    my content conversion is as follows:
    Header.fieldNames                             
    Header.fieldFixedLengths                
    Header.endSeparator                        
    Detail.fieldNames                               
    Detail.fieldFixedLengths                    
    Detail.endSeparator
    DependentDetail.fieldNames
    DependentDetail.fieldFixedLengths                   
    DependentDetail.endSeparator
    Trailer.fieldNames                             
    Trailer.fieldFixedLengths                
    Trailer.endSeparator  
    So As I told  earlier. With the above content conversion. I am not able to get the Dependent detail record in my output file. So If there is a change in my content conversion can u check it and tell me where I went wrong.
    Thanks,
    Harsh
    Edited by: hymanroth on May 2, 2011 7:03 PM

  • Message mapping challenge in IDOC to EDI scenario

    Dear PI message mapping experts,
    I'm a newbie in PI and facing a mapping problem using graphical message mapping.
    I'm in an IDOC (INVOIC.INVOICE02) to FILE (EDI) scenario.
    Here after is the mapping i need to perform :
    Source structure IDOC :
    <E1EDKA1> (0..99)
       <NAME1> A </NAME1>  (0..1)
       <NAME2> B </NAME2>  (0..1)
       <NAME3> C </NAME3>  (0..1)
       <NAME4> D </NAME4>  (0..1)
    </E1EDKA1>
    Target structure :
    <AccountingCustomerParty>  (1..1)
       <Party> (0..1)
          <PartyName> (0..unbounded)
              <Name>A</Name> (1..1)
          </PartyName>
          <PartyName>
              <Name>B</Name>
          </PartyName>
          <PartyName>
              <Name>C</Name>
          </PartyName>
          <PartyName>
              <Name>D</Name>
          </PartyName>
       </Party>
    </AccountingCustomerParty>
    I know i have to play with context and queues with stanard function or UDF but cannot succeed to do it.
    Could you please help me ?
    Thanks in advance,
    Alysee

    One approach out of available few ways to implement this:
    NAME1 - Exists - CreateIf - PartyName[0]
    NAME2 - Exists - CreateIf - PartyName[1] (Create deuplicate segment)
    NAME3 - Exists - CreateIf - PartyName[2] (Create deuplicate segment)
    NAME4 - Exists - CreateIf - PartyName[3] (Create deuplicate segment)
    Srikanth Srinivasan

  • IDOC To XML Scenario

    Hi all,
    In my scenario I need to map fields of IDOC XML to a v complex and generic Enevelope ( XML ) <b>As well as send the entire IDOC XML as a string to one of the fields of the target Envelope XML</b> </b>    Now wht is the best approach for mapping :
       Java / XSLT ?
       Is there any better simpler method to achieve this requiremnet ?
    Thanks and Regards,
    KLK

    Attached is the code in Java Mapping
            private InputStream  payload ;
         /* (non-Javadoc)
    @see com.sap.aii.mapping.api.StreamTransformation#setParameter(java.util.Map)
         public void setParameter(Map arg0) {
              this.param = arg0;
           if (param == null) {
               this.param = new HashMap();
         /* (non-Javadoc)
    @see com.sap.aii.mapping.api.StreamTransformation#execute(java.io.InputStream, java.io.OutputStream)
         public void execute(InputStream arg0, OutputStream arg1)
              throws StreamTransformationException {
                   DefaultHandler handler = this;
                   try {
                     payload = arg0;
                 BufferedReader inp = new BufferedReader(new InputStreamReader(payload));
           StringBuffer buffer = new StringBuffer();
           String line="";
         while ((line = inp.readLine()) != null) {
                        buffer.append(line);
                          source=buffer.toString();
      if(source != null)
      param.put("key1",source);
      else
      param.put("key1","Its Empty");
                   catch (Exception e){
                        e.printStackTrace();           

  • Mapping Problem ORDERS Idoc to Edifact

    Hi,
    I have a mapping problem with the IDOC ORDERS:
    I get the IDOC with several E1EDP01. Each E1EDP01 has several E1EDPT1, where i want only the first one (which I get over the TDID value). Each E1EDPT1 has min. 1 E1EDPT2.
    Now I have to map each field TDLINE from first two E1EDPT2 of the first E1EDPT1 to the Edifact fields /LIST/S_UNB/S_UNH/G_SSG25/S_LIN/S_IMD[1]/C_C273/D_7008 (from the first E1EDPT2) and, if a second E1EDPT2 exists in /LIST/S_UNB/S_UNH/G_SSG25/S_LIN/S_IMD[1]/C_C273/D_7008_2.
    I use following UDF:
    //a = TDLINE
    //b = Number of entry in the List
    int pos =Integer.parseInt(b[0]);
    if ( pos < a.length )
    result.addValue(a[pos]);
    else
    result.addValue(ResultList.SUPPRESS);
    Unfortunatly, I think becaus of the context problems (not every E1EDPT1 has two E1EDPT2), it's not working. Could somebody help me with this problem?
    Thanks in advance
    Dominic

    Dear Dominic ,
    I had same problem when I was trying to do the same thing for FTX segment.
    Your UDF is fine but you don't need else condition.
    //a = TDLINE
    //b = Number of entry in the List
    int pos =Integer.parseInt(b[0]);
    if ( pos < a.length )
    result.addValue(a[pos]);
    for C_C273 assigned contant value and
    D_7008 assigned TDLINE but change the context to E1EDPT1
    and for D_7008_2
    TDLINE(context to E1EDPT1 )
                                                      ====>UDF====>D_7008_2
    Contant(=1)
    It should work becasue my map is working fine. If not let me know error message.
    Thanks
    Shubhankar

  • IDOC-XI-XML Scenario Questions

    Hi everyone,
    I am actually trying to configure a scenario starting from SAP and finishing creating a XML file.
    R/3 IDOC -> XI -> XML file
    The XI is receiving IDOCs from SAP correctly, but when it try to send to third party system, the monitor engine (SXMB_MONI) are showing the following error: HTTP_RESP_STATUS_CODE_NOT_OK.
    I am currently using the File Adapter, please take a look at the config for the communication channel:
    Adapter Type: File
    http://sap.com/xi/XI/System
    SAP BASIS 6.4
    Transport Protocol: File Protocol(FTP)
    Message Protocol: File
    Adapter Engine: Integration Server
    Target Directory: /  (root)
    File Name Scheme: mptest_xi_output.dat
    File Construction: Create
    Overwrite File: X
    File type: Binary
    Adapter Status: Active
    Regards,
    Gabriel Santana

    If you have enough authorization, then click on the last button which is change button.
    Otherwise, open two windows of SAP and try to do the above step and when you get the authorization error, go to the second window and enter transaction /nSU53. Send that info to your security team.
    Once you have authorization you should be fine.
    One other thing, in which client you are doing this ?
    Do not use DDIC user to change it.
    regards
    Shravan

  • Problem in IDOC to SOAP Scenario

    Hi All,
    we have an IDOC to SOAP scenario in which we have got WSDL from the client for the targets.. Please let us know the WSDL would be the message type and we need to create interface for it . Also the SOAP header is not appearing in the target  xml.
    Thanks

    Hi ,
    This means when the data is sent to the webservice it will contain the SOAP header just that we cannot see it in Moni . Also
    What about the acknowledgement . Our message is successfull but with message that awaiting acknowledgement.
    What we basically need a synchronous scenario of IDOC to SOAP but the response not going back to SAP-R3 . We recieve the response only in SAP-PI. Saw some blogs but the message is going back to SAP-R3. Please help us on this
    Thanks
    Edited by: vishal  gadkari on Aug 22, 2009 4:15 PM

  • Problem with IDOC TO FILE Scenario

    Hi Experts,
    I am doing IDOC TO FILE Scenario.
    I have done all the configuration.I have cretaed RFC,PORT,LS and Partner profile at both R/3 and
    XI Side.
    when I am trying to generate IDOC using we19 and I put the r/3 port,partner in sender and XI
    port and partner in receiver it gives me error as "Port 'SAPCU6_100' does not exist in the table
    of port descriptions.
    Please help me.....
    Regards

    HI Saras,
    Please go through the below weblog which has all the stpes which is required for ur scenario...I think screen by screen help u to debug ur problem and it will help u to find out the msitake which u have made.
    File To IDOC - Part1 (SLD and Design):
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/profile/2007/05/11/fileToIDOC&
    File To IDOC - Part2 (Configuration):
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/profile/2007/05/11/fileToIDOC-Part2+(Configuration)&
    File To IDOC - Part3 (Steps required in XI and R3):
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/profile/2007/05/11/fileToIDOC-Part3(StepsrequiredinXIandR3)&
    Thnx
    Chirag

  • Problem in Idoc to JDBC scenario(uses BPM)

    Hi
    I have a IDoc to JDBC scenario which also uses BPM.
    The JDBC adapter has to execute a Stored procedure on Sybase database.
    I work on XI3.0 SP14.
    When I am sending IDoc to XI it is failing in CALL adapter step.
    The error message is "Unable to convert sender service TruckLiftAccountUpdate to an ALE logical system".
    However this scenario is working in Production with same settings.But it is not working in Quality and it is giving the above error.
    Can any one help me in this.
    Thanks in advance.
    KP

    Thanks for your quick reply..
    All the settings are in place.
    Here the Idoc is coming to BPM and BPM cant able to execute the stored procedure.and we are getting the error from BPM to target system.
    Here error is unable to convert the sender service(from BPM service) to ALE
    logical system.
    same settings are there in Production but it is not working in QA.
    Thanks in adavnce,
    KP

  • Message mapping issue in idoc to jdbc scenario

    We have a scenario of  idoc->XI-JDBC
    the below given segment may get repeated , as shown below ,
    E1EDP19[2]--idoc segment
       QUALF---003
       IDTNR---01000123(Bar Code No)
    E1EDP19[3]--idoc segment
       QUALF---003
       IDTNR---20500000000034(EAN No)
    Reqd mapping
    if QUALF=003
    THEN IDTNR----->Bar_code_Number_EAN
    Now IDTNR has to be mapped with Bar_code_Number_EAN for the segment which comes last
    Pl suggest how to map using graphical mapping for the above scenario.

    Hi Raj ,
    The current mapping works fine if the parent segment E1EDP01 is only one but if that gets repeated then the last value of IDTNR is getting populated in the target side, very clearly i m giving the source and target structure and the mapping done using the UDF
    Source structure
    E1EDP01
           E1EDP19[1]--idoc segment
                  QUALF---002
                  IDTNR---01000123(Bar Code No)
           E1EDP19[2]--idoc segment
                  QUALF---003
                  IDTNR---01000123(Bar Code No)
           E1EDP19[3]--idoc segment
               QUALF---003
               IDTNR---20500000000030(EAN No)
    E1EDP01
         E1EDP19[1]--idoc segment
                    QUALF---002
                    IDTNR---01000123(Bar Code No)
         E1EDP19[2]--idoc segment
                   QUALF---003
                   IDTNR---01000123(Bar Code No)
          E1EDP19[3]--idoc segment
                 QUALF---003
                 IDTNR---20500000000031(EAN No)
    E1EDP01
           E1EDP19[1]--idoc segment
                   QUALF---002
                    IDTNR---01000123(Bar Code No)
          E1EDP19[2]--idoc segment
                  QUALF---003
                  IDTNR---01000123(Bar Code No)
         E1EDP19[3]--idoc segment
              QUALF---003
              IDTNR---20500000000032(EAN No)
    Target mapping
    if QUALF=002
    THEN IDTNR--->Article_No this is the direct mapping so , no issues
    if  QUALF=003
    THEN IDTNR----->Bar_code_Number_EAN, now this IDTNR should get repeated every time  the segment  E1EDP01 gets repeated , currently only the last value form all the  IDTNR is coming to the target side.
    The current mapping works fine if the parent segment E1EDP01 is only one
    Target structure
    Access1
    IDTNR--> Bar_code_Number_EAN( value is 20500000000030)
    Access2
    IDTNR--> Bar_code_Number_EAN( value is 20500000000031)
    Access3
    IDTNR--> Bar_code_Number_EAN( value is 20500000000032)
    Current mapping
    If QUALF = 003
                    Then  QUALF ---->
                                                     mapBarCodeEAN---->Bar_code_Num_EAN
    If QUALF = 003
                    Then  IDTNR ---->
    Context of QUALF is set to E1EDP01
    Context of IDTNR is set to  E1EDP01
    thanks for your personalised help
    rgds
    mojib
    Edited by: mohammad mojib ur rahman on Apr 9, 2010 1:30 PM

Maybe you are looking for

  • Bridge not supported for 4K displays

    Fortunately Adobe upgrade the main players such as Photoshop, Illustrator and InDesign to support 4K displays like mine. But unfortunately, Bridge (and the Creative Cloud app itself!) are not, making it literally impossible to use, as everything is e

  • Burning Blu-Ray?

    I'm about to order a Blu-Ray internal burner for my Mac tower. I heard a rumour that Apple is not necessarily friendly to Blu-Ray. Maybe I've heard wrong. What app would you recommend for creating Blu-Ray disks? What is the official Blu-Ray codec, an

  • Getting star(*) as the value of the column

    Dear All, i have created a report on the cube which will display the country wise Expected sales Volume and Weighted sales volume. for all country i am getting the correct value but for the country which are NOT ASSIGNED i am getting Star(*) as the v

  • Using FCE HD with a 200 gb HDD 4200-rpm drives

    I am thinking of getting a 15 inch mac bok pro with the 200 gb hard drive Is the disc speed of 4200 fast enough to run Final Cut Express HD? I will get 3 gb of RAM as well with the system. Thanks Jerry

  • Restrict AFP to use a certain network service?

    I'm working with a client who has two new (Early 2008) Mac Pro systems, and we'd like to set it up so that internet is accessed over one slower connection (100Base-T), and really large video files are shared via another connection, like Gigabit Ether