Sorting in Message Mapping

Hi,
My interface (JDBC to File) from source side I am having 3 fields and from target side I am having 2 fields.
Thing is that if third field (Unbranded Material Number) having some value then we have to create new record from target side with plant and product. I am able to do that with Context Change..
I am getting the proper o/p but not in proper format.
I/p
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_Plant2product xmlns:ns0="urn:bp:xi:dwn:re:cbt:alps:planttoproduct:100">
   <Item>
      <PLAN>1</PLAN>
      <MATERIAL_NO>2</MATERIAL_NO>
      <UNBRND_MATERIAL_NO>3</UNBRND_MATERIAL_NO>
   </Item>
   <Item>
      <PLAN>a</PLAN>
      <MATERIAL_NO>b</MATERIAL_NO>
      <UNBRND_MATERIAL_NO/>
   </Item>
   <Item>
      <PLAN>x</PLAN>
      <MATERIAL_NO>y</MATERIAL_NO>
      <UNBRND_MATERIAL_NO>z</UNBRND_MATERIAL_NO>
   </Item>
</ns0:MT_Plant2product>
O/p which is coming
<MTPlanttoproductPROS>
     <Plant_Product_Record>
          <PLANT>1</PLANT>
          <PRODUCT>2</PRODUCT>          
</Plant_Product_Record >
     <Plant_Product_Record>
          <PLANT>a</PLANT>
          <PRODUCT>b</PRODUCT>          
</Plant_Product_Record >
     <Plant_Product_Record>
          <PLANT>x</PLANT>
          <PRODUCT>y</PRODUCT>          
</Plant_Product_Record >
     <Plant_Product_Record>
          <PLANT>1</PLANT>
          <PRODUCT>3</PRODUCT>
<Plant_Product_Record>
          <PLANT>x</PLANT>
          <PRODUCT>z</PRODUCT>
</Plant_Product_Record>
</MTPlanttoproductPROS>
I want O/p something like that
<MTPlanttoproductPROS>
     <Plant_Product_Record>
          <PLANT>1</PLANT>
          <PRODUCT>2</PRODUCT>          
</Plant_Product_Record >
     <Plant_Product_Record>
          <PLANT>1</PLANT>
          <PRODUCT>3</PRODUCT>          
</Plant_Product_Record >
     <Plant_Product_Record>
          <PLANT>a</PLANT>
          <PRODUCT>b</PRODUCT>          
</Plant_Product_Record >
     <Plant_Product_Record>
          <PLANT>x</PLANT>
          <PRODUCT>y</PRODUCT>
<Plant_Product_Record>
          <PLANT>x</PLANT>
          <PRODUCT>z</PRODUCT>
</Plant_Product_Record>
</MTPlanttoproductPROS>

Hi Anuj,
  I have resolved your mapping issue using 3 UDFs.
1.Context <b>NodeUDF</b>
      This UDF used to derive <b>Plant_Product_Record</b> node in Target.
UNBRND_MATERIAL_NO -> NodeUDF -> removeContexts->Plant_Product_Record
<u><b> UDF Code:-</b></u>
    if((a[0].trim()).equals(""))
     result.addValue("");
else
        for(int k = 0;k< 2;k++)
          result.addValue("");
2. Context <b>PlantUDF</b>
This UDF used to populate values in <b>PLANT</b> element in Target.
   PlantUDF takes 2 inputs - <b>PLAN</b> and <b>UNBRND_MATERIAL_NO</b> from Source
2 inputs ->PlantUDF->PLANT(Target)
<u><b> UDF Code:-</b></u>
  if((b[0].trim()).equals(""))
     result.addValue(a[0]);
else
       result.addValue(a[0]);
       result.addValue(ResultList.CC);
       result.addValue(a[0]);
3. Context <b>ProductUDF</b>
This UDF used to populate values in <b>PRODUCT</b> element in Target.
   PlantUDF takes 2 inputs - <b>MATERIAL_NO</b> and <b>UNBRND_MATERIAL_NO</b> from Source
2 inputs ->ProductUDF->PRODUCT(Target)
<u><b> UDF Code:-</b></u>
  if((b[0].trim()).equals(""))
     result.addValue(a[0]);
else
       result.addValue(a[0]);
       result.addValue(ResultList.CC);
       result.addValue(b[0]);
Please let me know if you have any doubts in this solution.
Cheers,
Jag

Similar Messages

  • I need to sort the incoming file contents before message mapping

    Hi All,
      I have requirement like i have to sort the file contents before message mapping in Xi. is there any option please suggest me with your value information.i dont want to sort in message mapping before that i want file contents to be sorted order.waiting for your quick reply.
    Thanks,
    seshagiri

    Hi,
    You can do this in one scenario.
    Lets say you have MT_Source and MT_Target as two message types.
    Now your MM1 will be between MT_Source & MT_Source, that is same message type. Here you built your sorting logic.
    Now create MM2, between MT_Source & MT_Target. Here your actual mapping logic will be implemented. The input payload for MM2 will be sorted data.
    Now in operation mapping, first call MM1 and then call MM2 (You have a plus + sign to add multiple mapping programs). Due to this sequence, at run time first MM1 will be executed and after that its oupt will be given to MM2 as source payload.
    Hope its clear. Plz let me know if you have any doubts.
    -Gouri

  • Message mapping of sort and repeated

    Dear all,
    I am new to SAP XI. I have a scenario where my Input message and out put message will be like this:
    Input Messgae:                                                    Output Message:
    Emp_DT                                                               EmpOut_DT  
    Info - Element - 1-infinity                                     EmpInfo           1-1
      Department ID  1-1                                                Manager      1-1
    Details 1-1                                                           Department      1-Infinity
      EMpNO 1-1                                                            NoofEmployee 1-1
      Manager 1-1                                                          Department   1-infinity 
    Ihave to map by following rules:
    1. Sort output message by taking inputmessage Details- Manager
    2. Have to count totla no of employee of respective manager
    3. have to check how many department under that manager.
    Thanks in advance.

    Also, check out the SDN Wiki's. There are a good number of examples out there.
    [Help with mapping|http://wiki.sdn.sap.com/wiki/display/XI/GraphicalMapping-Standard+functions|Wiki link to help with mapping]
    [Step by Step guides to PI Scenarios|http://wiki.sdn.sap.com/wiki/display/XI/Step-by-Step+Guides|SDN Wiki link for Step by Step guides to PI Scenarios]

  • Unable to save the message mapping

    Hi..
    I have completed the Message Mapping. when i am trying to save the Message Mapping i am getting the  Error while executing save "The length 0 of the array ' Sorted Function keys' is not equal to the number of 1 functions".
    can you pls suggest me, how can i rectify this type of strange error.
    Regards,
    Prasad

    Hi,
    that means that one of your Sorted Functions does not have correct input
    as the error says
    you probably placed it in a wrong way - check the functions
    desciption on help.sap.com or an example on SDN blogs
    and correct it - then it will work
    Regards,
    Michal Krawczyk

  • Message Mapping error:  RuntimeException in Message-Mapping transformation

    Hi,
    Being new to XI, I am struglling to sort out a basic mapping error. Appreciate if you could help out.
    Its an File->XI->R/3 scenario.
    My FCC successfully reads the File and creates an XML. However this XML is not transferred to the target XML structure which is exactly same except the root element name is different at top.
    I tried various forum tips but I still am getting the error.
    ( When I Test the Message mapping in test mode..it seems fine, however if I copy the XML from SXMB_MONI, it then throws the above error)
    I looked at the MM in text mode: below is the extract
    /ns0:MT_REQUEST_TO_SAP/REQUEST_DETAILS/MSG_HEADER=/ns0:MT_REQUEST/REQUEST_DETAILS/MSG_HEADER=
    /ns0:MT_REQUEST_TO_SAP/REQUEST_DETAILS/MSG_HEADER/SOURCE=/ns0:MT_REQUEST/REQUEST_DETAILS/MSG_HEADER/SOURCE=
    /ns0:MT_REQUEST_TO_SAP/REQUEST_DETAILS/MSG_HEADER/DESTINATION=/ns0:MT_REQUEST/REQUEST_DETAILS/MSG_HEADER/DESTINATION=
    /ns0:MT_REQUEST_TO_SAP/REQUEST_DETAILS/MSG_HEADER/MESSAGE_ID=/ns0:MT_REQUEST/REQUEST_DETAILS/MSG_HEADER/MESSAGE_ID=
    As seen the name space in both starts with nS0 and end of each line has '=' sign. Is that ok.
    I have run out of options and dont know , whats the problem. Please help.
    The target and Source XML structures are exactly same as shown below
    MT_REQUEST                                 MT_REQUEST_TO_SAP
       |__MSG_HEADER                            |__MSG_HEADER  
         |__SOURCE                                |__SOURCE
         |__DESTINATION                           |__DESTINATION
         |__MESSAGE_ID                            |__MESSAGE_ID
    And the SXMB_MONI Trace shows the following error
    <Trace level="1" type="T">com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation:
    Cannot produce target element /ns0:MT_REQUEST_TO_SAP.
    Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at ..
    Thanks
    Shirin
    Edited by: Shirin K on May 29, 2008 10:29 AM

    Hi Prakasu,
    As structure are exactly same, I have done 1:1 mapping. So all the fields in target structure are mapped, so no field has beeen left.
    In this structure, I do not have any 1:n relation. So 1:1 mapping should be fine.
    Apart from this could teher be any other reason.
    Regards
    Rajiv

  • Message Mapping - SUM a field per unique combination of 2 other fields?

    I'm receiving a proxy with detail records, and I need to create a subtotals file.  Here an example:
    BEFORE MAPPING
       <ROW>
          <KOSTL>0000010300</KOSTL>
          <POSID>DUMMY</POSID>
          <FTE>0.51</FTE>
       </ROW>
       <ROW>
          <KOSTL>0000010400</KOSTL>
          <POSID>123</POSID>
          <FTE>0.49</FTE>
       </ROW>
       <ROW>
          <KOSTL>0000010400</KOSTL>
          <POSID>DUMMY</POSID>
          <FTE>0.72</FTE>
       </ROW>
       <ROW>
          <KOSTL>0000010400</KOSTL>
          <POSID>123</POSID>
          <FTE>0.82</FTE>
       </ROW>
       <ROW>
          <KOSTL>0000010300</KOSTL>
          <POSID>DUMMY</POSID>
          <FTE>0.18</FTE>
       </ROW>
    AFTER MAPPING:
       <ROW>
          <KOSTL>0000010300</KOSTL>
          <POSID>DUMMY</POSID>
          <FTE>0.59</FTE>
       </ROW>
       <ROW>
          <KOSTL>0000010400</KOSTL>
          <POSID>123</POSID>
          <FTE>1.31</FTE>
       </ROW>
       <ROW>
          <KOSTL>0000010400</KOSTL>
          <POSID>DUMMY</POSID>
          <FTE>0.72</FTE>
       </ROW>
    How do I create a new record for all unquie combinations of KOSTL and POSID?  And total the FTE field for each line?  Can this be done in a message mapping?

    Hello,
    How do I create a new record for all unquie combinations of KOSTL and POSID? And total the FTE field for each line? Can this be done in a message mapping?
    Yes, very much possible with or without UDF. See sample mapping below without using UDF:
    For ROW:
    KOSTL(set context to row) -> concat: -> sort: case insensitive ascending -> splitByValue:valueChanged -> collapseContext -> ROW
    POSID(set context to row) ->  /
    For KOSTL:
    KOSTL(set context to row) -> concat: ----------------> sortByKey: case insensitive ascending -> formatByExample -> collapseContext -> splitByValue:eachValue -> KOSTL
    POSID(set context to row) -> /      KOSTL(set context to row) ->/                                          /
    KOSTL(set context to row) -> concat: -> sort: case insensitive ascending -> splitByValue:valueChanged -> /
    POSID(set context to row) ->  /
    For POSID:
    KOSTL(set context to row) -> concat: ----------------> sortByKey: case insensitive ascending -> formatByExample -> collapseContext -> splitByValue:eachValue -> POSID
    POSID(set context to row) -> /      POSID(set context to row) ->/                                          /
    KOSTL(set context to row) -> concat: -> sort: case insensitive ascending -> splitByValue:valueChanged -> /
    POSID(set context to row) ->  /
    For FTE:
    KOSTL(set context to row) -> concat: ----------------> sortByKey: case insensitive ascending -> formatByExample -> sum -> splitByValue:eachValue -> FTE
    POSID(set context to row) -> /      FTE(set context to row) ->/                                            /
    KOSTL(set context to row) -> concat: -> sort: case insensitive ascending -> splitByValue:valueChanged -> /
    POSID(set context to row) ->  /
    Hope this helps,
    Mark

  • Regarding Message Mapping in JDBC Scenario

    Hello Experts,
            I got struct up in message mapping. In message mapping we can able to see different types of Functions. So I need some clarifications on it. Functions are available like...
    Conversions
    Boolean
    Node Functions
    Constants
    Date
    Text
    Static
    Arithmetic
    So please explain in simple for each functions.
    Points will be rewarded.
    Thank you

    Hi
    *Boolean*:-
    And -- checks for 2condition, return a true value if both condition are satisfied
    Or --checks for 2condition, return a true value if one condition is true.
    Not - checks if the condition is not equal to.
    Equals - Check whether 2 Boolean values are equal
    NotEquals
    If u2013 Returns second value if the first argument is true. otherwise returns third argument
    If WithoutElse u2013 Returns value of second argument, if first argument is true.
    Node Functions:-
    createIf - Produces empty value if argument is true; Resultlist.SUPPRESS otherwise
    removeContexts u2013 Produces plain stream of values with No context changes
    replaceValue u2013 replaces value of source field to value specified in Function Properties.
    Exists u2013 Returns true, if Node exists otherwise false
    SplitByValue u2013 inserts context changes after event specified
    collapseContexts u2013 Produces one empty string value out of each arguments context. All arguments are in one context
    useOneAsMany u2013 Use First Argument as IS on same level as third argument. second argument defines when next value of first argument is used
    sort u2013 sorts values in each context
    sortByKey u2013 Sorts values in second queue by keys from first queue
    mapwithDefault u2013 Inserts default values specified in the function properties into empty contexts
    formatByExample u2013 Takes values from the first queue and inserts them in the structure of second queue.
    Constants:-
    Constant u2013 Generates constant value
    CopyValue u2013 Takes specified value in argument stream and copies it an infinite number of times
    Sender u2013 Sender System
    Receiver u2013 Receiver System
    Date:-
    CurrentDate u2013 Return current date in specified format
    DateTrans u2013 Transforms date from input format to output format
    Dateafter u2013 Returns True if first date is after second otherwise false
    DAteBefore - Returns True if first date is before second otherwise false
    CompareDates u2013 Compares two dates
    Text:-
    Substring u2013 Returns substring depending upon the given parameters
    Concat u2013 concatenates 2 strings inserting delimiter string parameter between them
    Equals u2013 Check whether Strings are equal
    indexOf2 u2013 returns the index where the second string is found for the first time in the first string
    indexOf3 u2013 As with indexOf with 2 parameters, But starting search at the specified position
    lastindexOf2 u2013 Returns the index where the second string is found for the last time in the first string
    lastIndexOf3 u2013 As with lastIndexOf with 2 parameters starting search at the specified position
    compare u2013 compares 2 strings lexicographically
    replaceString u2013 Replaces each occurrence of pattern(2nd argument ) of source string(1st arg). By third string
    length u2013 returns length of string
    endsWith u2013 Tests whether string ends with specified suffix
    startsWith2 u2013 Tests whether string starts with specified prefix
    startsWith3 u2013 Tests whether string starts with specified prefix beginning at specified location
    toUpperCase u2013 Converts all characters in string to upper case
    trim u2013 Removes white space from both ends of string
    toLowerCase u2013 Converts all characters in String to Lower case
    Statistic:-
    sum u2013 calculates sum of all numbers in each context
    average u2013 calculates the average of all numbers in each context
    count u2013 Counts number of values in each context
    Index u2013 For each incoming value, this Function returns the index number of the incoming value in the context, String from the initial index and increasing by the increment defined in the parameters.
    Arithmetic:-
    Add u2013 add two values
    Subtract u2013 subtracts second value from the first value
    equalsA u2013 Returns true; If float numbers represented by argument strings are equal otherwise returns false
    abs u2013 returns Absolute value of argument
    sqrt u2013 Returns square root of the number
    sqr u2013 Returns square of the number
    sign u2013 Returns -1 if number is negative, +1 if positive, 0 if 0
    neg u2013 Multiplies number to -1
    1/x u2013 calculates 1/x
    Power u2013 Returns value of the first argument to the power of the second argument
    Less u2013 Returns true if the first number is less than the second number otherwise false
    Greater - Returns true if the first number is greater than the second number otherwise false
    Multiply u2013 Multiplies 2 values
    Divide u2013 Divides first value by the second value
    Max u2013 Returns maximum of 2 numbers
    Min u2013 Returns Minimum of the 2 numbers
    Ceil u2013 Returns the smallest (closest to the negative infinity) initial value that is not less than the argument and it is equal to the mathematical integer.
    Floor - Returns the largest (closest to the negative infinity) initial value that is not Greater than the argument and it is equal to the mathematical integer.
    Round u2013 Returns closest initial value to the argument
    Counter u2013 Counts number of invocations. Initial value and increment defined by Parameters.
    FormatNum u2013 Formats Number with given pattern.
    Conversions:-
    FixValues u2013 Creates a Local Table to perform a value Mapping
    ValueMapping u2013 Define jump to Value Mapping table of Integration Directory.
    Message Mapping(Node Function) Part-1
    Message Mapping Simplified - Part I
    Sravaya Talanki- Message Mapping(Node Function) Part-2
    /people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
    Standard Functions
    http://help.sap.com/saphelp_nw04/helpdata/en/43/c4cdfc334824478090739c04c4a249/frameset.htm
    Advanced mapping function(mapwithdefault,formatbyexample,sort,sortbykey)
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9202d890-0201-0010-1588-adb5e89a6638
    Hope this is useful
    Saiyog
    Edited by: Saiyog Gonsalves on Jul 11, 2008 1:14 PM

  • Caching values between different executions of a message mapping

    Hi all
    Like global container object is used for caching values between different user defined functions
    within the same message mapping.
    Can v have some sort of cachingvalues
    between simultaneos exceutions of same message mapping?
    Thanks and Regards
    Bhasker

    Hi Bhasker raj,
        This facility is there if you are using seeburger adapters.
    YOu can use something called seeburger variables which can hold the data beyong the mapping in some permanent memory.
    Alternatively, you can think of creating a ZTABLE in the ABAP stack of XI and storing the data you want in it, using a UDF and get it back in another UDF.
    YOu can use the first UDF at last node/field in the message mapping and the
    secomd UDF in the first node/field in the mapping.
    Regards,
    Ravi

  • Require a Message mapping for this Logic.

    Hi Experts,
    I require a Message mapping for this Logic.
    In the Source there are 4 fields and, the Target side, the fields should appear like this.
    Source Structure- File
    Record
    |-> Header
    Order_No
    Date
    |-> Item
    Mat_No
    Quantity
    Target Structure-IDoc
    IDoc
    |-> Header
    |-> Segment
    Delivery_Order_No
    Recv_Date
    |-> Item
    |-> Segment
    Delivery_Order_No
    Material_Num
    Recv_Quantity.
    The Logic is for every Order number an IDOC is generated.And if the Material num matches then the quantity should be added. and important note  is that the material numbers are different for every order number. That means if a material number is 2 in the order number A. Then the material number can never be 2 in any of the order numbers.Here is the following with an example for the above scenario.
    For example:-
    we have
    Source Structure- File
    Order-no Date Mat_No Quantity
    1 01/02/2011 A 10
    1 01/02/2011 B 15
    1 01/02/2011 A 10
    2 01/02/2011 C 10
    2 01/02/2011 C 10
    3 01/02/2011 D 20
    3 01/02/2011 D 10
    3 01/02/2011 E 25
    Target Structure-IDoc
    Delivery_Order_No Recv_Date Material_Num Recv_Quantity
    1 01/02/2011 A 20
    1 01/02/2011 B 15
    2 01/02/2011 C 20
    3 01/02/2011 D 30
    3 01/02/2011 E 25
               So for this example total of 5-Idocs created. That means for this example if Order_No is 1 When the Mat_No is A the quantity gets added. For this Scenario 1 IDoc with four Fields 2 in Header(Delivery_Order_No, Recv_Date) and 2 in Item(Material_Num, Recv_Quantity) is generated by adding the quantity field in the Target Side. Similarly if Order_No is 1 when the Mat_No is B  then separate IDoc is generated with four Fields 2 in Header(Delivery_Order_No, Recv_Date) and 2 in Item(Material_Num, Recv_Quantity) in the Target Side. Similarly, if Order_No is 2 when the Mat_No is C, an IDoc is generated with four Fields 2 in Header(Delivery_Order_No, Recv_Date) and 2 in Item(Material_Num, Recv_Quantity) by adding the quantity field  in the Target Side.  ike wise the process goes on upto 3.Kindly do the needy..
    Thanq very much in advance..
    Edited by: Prashanth Bharadwaj on Oct 17, 2011 1:29 PM

    Hi Prashanth,
    Concatinate the two fields OrderNo and MaterialNo and follow the below logic which will resolve your problem.
    concatinationOfOrderNo&MaterialNo>removecontext>sort>splitByValueChange>collapseContext-->IDOC
    concatinationOfOrderNo&MaterialNo>removecontext>sort>splitByValueChange>collapseContext>splitByEachValue>subString(0,1)-->Delivery_Order_No
    formatByExample>collapseContext>SplitByEachValue-->Recv_Date
    FormatByExample:
    input1:resulrOfSortByKey
    input2:concatination>removecontext>sort-->SplitByValuChange
    sortByKey:
    input1:concatination-->removecontext
    input2:date-->removecontext
    concatinationOfOrderNo&MaterialNo>removecontext>sort>splitByValueChange>collapseContext>splitByEachValue>subString(1,1)-->Material_Num
    formatByExample>sum>Recv_Quantity
    FormatByExample:
    input1:sortByKey
    input2:concatination>removecontext>sort-->SplitByValueChange
    SortByKey:
    input1:concatination-->removecontext
    input2:Quantity-->removeContext
    Regards,
    Priyanka.

  • Need Help with Message Mapping in PI 7.1 - JDBC to IDOC

    I have an outgoing SQL function that sends multiple rows of data for use in creating an IDOC in ECC. I am trying to key the creation of new IDOCs (already did the maxOccurs trick to the IDOC definition) based on a field in the JDBC return data...
    JDBC Message Format...
    SEGNAM - TRANS_ID - MATERIAL - VKORG...ETC
    MARA -  00001 - 1234 - <space> - ...
    MARC -  00001 - 1234 - VK01 - ...
    MARA - 00002 - 9876 - <space> - ...
    MAKT - 00002 - 9876 - <space> - material description - ...
    Each time there is a new TRANS_ID, I need to indicate a new IDOC in the message mapping. I have tried all kinds of combinations of TRANS_ID --> dropContext --> splitValue and TRANS_ID --> collapseContext --> splitValue, but nothing has worked.
    Has anyone done this kind of message map (without any BPM please)?
    Thanks,
    Nathan

    Hello Nathan,
    For this one, you have to play with contexts.
    row 1 SEGNAM = MARA, TRANS_ID = 1, MATNR = 123...
    row 2 SEGNAM = MARC, TRANS_ID = 1, MATNR = 123, WERKS = PL01...
    row 3 SEGNAM = MARA, TRANS_ID = 2, MATNR = 987
    This also depends on the occurrence of the parent node. example, if I want MATNR to be populated, the logic would be like
    ex:
    IDOC1..unbounded) (The logic is the already provided in an earlier response)
    -->MATNR (1..1)
    MATNR --------> removeContext ----------------> FormatByExample --> MATNR
    TRANS_ID --> removeContext --> splitByValue:ValueChange --> /
    If the rows are not in order of trans_id, then you need to incorporate sorting into the logic above.
    Hope this helps,
    Mark

  • DTW Sort Error - after mapping during import

    I got the "Sort Error - after mapping during import" message in DTW. (version 8.8)
    I would like to import warehouse info for items.
    My itemcodes are fix 15 character numbers, like this: 10204150020011
    The note nr. [1331130|http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/oss_notes/sdn_oss_sbo_dtw/~form/handler%7b5f4150503d3030323030363832353030303030303031393732265f4556454e543d444953504c4159265f4e4e554d3d31333331313330%7d] said that I can't use recordkey like this.
    Do you have any idea how can I import thees information with DTW?
    Thank you,
    Attila Sarkady

    Dear All
    Please give correct and complete information
    i have tested every kind of combination;
    - recreate the template with the dtw for Items = i have UDF's
    - ADD the column RecordKey   !!! unbelievable that we have to do this
    - i have entered a nr 1 in it (even when we had already 850 items in the database)
    (and of course the hints of Gordon - columns as text, start with basic... - and use CSV format)
    now at last i can import the record line
    greetings
    philippe

  • Hi , friends pls explain abap mapping and message mapping

    1) pls explain abap mapping and message mapping
       send me screen shorts also.

    Hi
    Mapping Techniques
    XI provides 3 standard ways of interface mapping between source and target.
    Graphical mapping
    Java Mapping
    XSLT Mapping
    Two more additional mapping types can be activated in XI by making changes to the exchange profile. Those two mappings are
    ABAP mapping
    XSLT mapping with ABAP Extensions
    Graphical Mapping
    Graphical mapping is a common approach followed by everyone for generating desired target structure. It involves simple drag-n-drop to correlate respective nodes (fields) from source and target structure. It hardly involves coding. (Exception - User defined functions). But sometimes with graphical mapping it is difficult to produce required output. For example ... text/html output, namespace change, sorting or grouping of records etc.
    ABAP Mapping
    A person comfortable with Object Oriented ABAP can go for ABAP mapping instead.
    Java Mapping
    Java Mapping uses 2 types of parsers. DOM and SAX. DOM is easier to use with lots of classes to help you create nodes and elements, but , DOM is very processor intensive.
    SAX parser is something that parses your XML one after the other, and so is not processor intensive. But, it is not exaclty easy to develop either.
    XSLT Mapping
    One can also think of Java mapping as another option but it is a bit complex and required knowledge of Java. In such cases, XSLT mapping can be the best approach to meet the requirements.
    A few example cases in which an XSLT mapping can be used:-
    When the required output is other than XML like Text, Html or XHTML (html displayed as XML)
    When default namespace coming from graphical mapping is not required or is to be changed as per requirements.
    When data is to be filtered based on certain fields (considering File as source)
    When data is to be sorted based on certain field (considering File as source)
    When data is to be grouped based on certain field (considering File as source)\
    Advantages of using XSLT mapping
    XSLT program itself defines its own target structure.
    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.
    XSLT provides use of number of standard XPath functions that can replaces graphical mapping involving user defined java functions easily.
    File content conversion at receiver side can be avoided in case of text or html output.
    Multiple occurrences of node within tree (source XML) can be handled easily.
    XSLT can be used in combination with graphical mapping.
    Multi-mapping is also possible using xslt.
    XSLT can be used with ABAP and JAVA Extensions.
    Disadvantages of using XSLT mapping
    Resultant XML payload can not be viewed in SXMB_MONI if not in XML format (for service packs < SP14).
    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.
    XSLT mapping requires more memory than mapping classes generated in Java.
    XSLT program become lengthier as source structure fields grows in numbers.
    XSLT program sometimes become complex to meet desired functionality.
    Some XSL functions are dependent on version of browser.
    Different types of Mappings
    MAPPING SUPPORTED BY XI
    Message Mapping -> Graphical Design and testing environment. Default Provided By XI. Queue based modelling allow handling or large documents. Extensible via user defined functions
    XSLT Mapping - > Based on openstandard, Portable across application platform, Extensible using user defined functions kewl but disadvantage is Memory overload while handling large documents.
    SAX -> Simple Api For XML. -> Allows you to parse through a XML document. Doesn't consume any memory. But the message can be parsed only once from top to bottom. It Has evolved by contributions made by group of ppl itz a open architecture.
    DOM -> Document Object Model -> Itz designed by W3C. Consumes Memory as the message will be loaded. Allows parsing of document in both way top down and bottom up.
    Send me your email id.Shall send you very good docs for both ABAP Mapping and message mapping.
    Thanks

  • Error while activating any message mapping in IR: very strange

    hi forum i m getting an error in IR while activating any messageMapping.
    the error is too long to be posted....i m posting a few lines of that:
    •     Internal error while checking object Message Mapping MM_sdptestFileToFile | http://sdzpoc.com.test/sdptest (ZPOC_TEST, 1.0 of zpoctest); see details (CHECK_EXCEPTION)
    •     Internal error while checking object Message Mapping MM_sdptestFileToFile | http://sdzpoc.com.test/sdptest (ZPOC_TEST, 1.0 of zpoctest); see details (CHECK_EXCEPTION)
    •     /usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapdddd0cb0100311dca6090012799eddc6/source/com/sap/xi/tf/_MM_sdptestFileToFile_.java (No such file or directory (errno:2))
    •     /usr/sap/XID/DVEBMGS00/j2ee/cluster/server0/./temp/classpath_resolver/Mapdddd0cb0100311dca6090012799eddc6/source/com/sap/xi/tf/_MM_sdptestFileToFile_.java (No such file or directory (errno:2))

    Sudeep,
    Let we try this way. I'm sure you might have some existing mapping objects in IR.
    Try to change that object(Description give some name) and activate again the object.
    Reply your results whether you are getting the same error.
    One sec before changing the object just test the mapping and change the object.
    Best regards,
    raj.

  • Error while activating message mapping

    Hi,
    We are trying to activate message mappings and getting error as CHECK_EXCEPTION and in error details its showing that usr/sap/server.........................../classpath_resolver/Map.......................no such file or directory.........
    What can be the issue?We can activate all other objects(DT,MT,IM,etc)
    Best Regards,
    Harleen Kaur Chadha

    Hi
    Check this thread you can find the reason for this error CHECK_EXCEPTION solved here
    Activating Object in IR - Getting Null Pointer Exception
    Re: mapping test error
    Internal error while checking object Message Mapping...
    Problem Activating Mappings in the IR
    Message Mapping activation Error
    Regards
    Abhishek

  • Error while opening Message Mapping

    Hi All,
    I have one MM in ESR, IDoc to EDI, it has been developed before, and the interface is working successfully.But when I open this MM in ESR, it given a STOP error with desc as 'For input string: ""'.
    and then there is nothing displayed on Screen under Definition,Test and Functions tab of MM.The Signature tab content is visible properly.
    I am working on PI 7.1.
    Is this issue is because of version comapatibilty or missing object. Please provide your inputs to resolve this issue,
    Thanks,
    Ruchi

    Hi All,
    I have checked with my basis team, but they suggested that the patches can not be installed as this problem is happening with single message mapping.
    When I open this MM, it gives the same STOP error :For input string: "". and when I click on Message Mapping -> Check button, it prompts a message 'Parameter #ParamName# has the invalid value null'.
    Please help me to resolve this.As the mapping itself is not getting loaded, so not getting how to set this parameter value(if it is used in MM).

Maybe you are looking for