Message Mapping Suppress
Hi Experts,
I'm struggling with following task:
IDoc structure to IDoc structure (source and target are the same)
DELLVRY05 1
-IDOC 1
-E1EDL20 1-unbounded
-E1EDL24 0-unbounded
|-POSNR 0-1
|-CHARG 0-1
|-E1EDL410-2
E1EDL24 should NOT appear if CHARG or E1EDL41 do not exist!
Thx,
Udo
Do the mapping as
POSNR --->removeContext--> exists \ E1EDL24-----> then
--------> AND ---> IF without Else --> E1EDL24
CHARG---> removeContext--->exists /
exists: Use this function to determine whether a particular source field exists in the XML instance to be processed. If it does, exists() returns the value true, otherwise it returns the value false.
Edited by: Kubra fatima on Sep 24, 2009 10:26 AM
Similar Messages
-
Message Mapping(Display queue and Suppress Value)
Hi Experts,
In Message Mapping(graphical mapping), upon checking the properties of the nodes,there's one property display queue, in which suppress is there??
What does it mean?? Which queue it points and what value is suppressed??
Thanks & Regards,
SushamaHi Sushama,
SUPPRESS means no value.
suppose we are checking one condition (tdid = "RE" then pass tdline) based on the condition we will send one output. if the condition fails then suppress value goes to the target.
> What does it mean?? Which queue it points and what value is suppressed??
es: if(tdid.equals("WE") ifwithoutelse pass tdline value as output. [tdid is in E1EDKA1 segment and this segment occurance is multiple]
In this case if the condition is satisfied once and failed once (means E1EDKT1 segment comes 2 times) then first time it sends the corresponding tdline value and second time it sends the SUPPRESS value.
Regards
Ramesh -
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 youHi
*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 -
Runtime Exception in Message mapping
Hi Experts,
I have a scenario of IDoc to <third party adapter> cXML.
The message caught the below error
RuntimeException in Message-Mapping transformation : Runtime exception during processing target field mapping ......./ShipTo[2]/Address/PostalAddress/DeliverTo (suppressed field). The message is: Exception:[java.lang.ArrayIndexOutOfBoundsException: 7] in class com.sap.xi.tf._M_IDOC_to_cXML_ method getShipToContact$[, , com.sap.aii.mappingtool.tf3.rt.Q2QFunctionWrapper@253fdd8a]
Please suggest on what went wrong, as everything is working fine before.
Thanks in advance.
MKMk:
Please check if the source fields which are mapped to the target are all generated by the SAP Script and make sure that they have data so that when they are mapped to the target. If they are mapped and source fields don't have data then it may error out. Sometimes SAP Script might not generate a node if there is not data for it, make sure you handle that condition also.
RuntimeException in Message-Mapping transformation is
due to the missing TEXT_LINE element in the segment Z1VOBTH for the TEXT_ID 'INVOICE_TO_LOCATION'
I am not able to understand this. is Text_ID subelement of Text_Line?? Could you please post the complete error message as it is. -
Message Mapping vs Interface Mapping test tabs giving different results.
Hi all,
I am developing an interface that always requires an output file to be created (even if there is no data). I have found a way to change my select statement in the JDBC sender to initiate the message even if there isn't any data (using UNION select -1 ID, '' col1, '' col2, etc.) and that seems to work fine. I then put logic in the message mapping to suppress the row that contains the -1 ID value, which would result in an empty file when there is no other data, and should result in a file containing only the correct data when there is data.
So, my problem: I am always getting empty files with this logic. I tested the logic in the message mapping test tab and it worked perfectly, however when I test it using the interface mapping test tab it results in what becomes an empty file!
My source and destination structures are fairly simple:
Root
--row
ID
col1
col2
The logic I use to suppress the ID = -1 row is:
=removeContexts([]ifWithoutElse([keepss=true]Not([]equalsS([]ID, Constant([value=-1]))), SplitByValue([type=Each value]row)))
Obviously, I'm stumped - any help would be appreciated!
Edited by: Mike Morrison on Sep 23, 2010 5:04 PMHi Mike,
Can you quote the error log..u r getting error in message mappin or interface mapping?
Please suggest the test results for both the mappings.
Thanks,
Sushama -
Problem in Graphical message mapping
Hi all,
I am doing an HR file to file interface.I am struck in message mapping.Actually my source message type contain four structures i.e infotype00 ;infotype01;infotype02;infotype05;every infotype has one PERNNO,BEGDA&ENDDA along with other fields.in target i have to extact employee recors from these 4infotypes.Target structre is :EMPLOYEE
fields...
Now I had to generate as many employee as many unique PERNNO i.e if all four infotype has same PERNN then it is considered detail of one employee if any infotype has diff.PERNNO then we have to create one more employee record for that infotype.I used a custom functionUNIQUE and get all unique infotype then on the basis i was creating employee.i.e if 3 unique PERNNO then 3 employee record has to be created.It was working fine,But one new requirement came that I have to compare BEGDA of all infotype and if any infotype has BEGDA more than current date then for that PERNNO i dont have to create Employee records.i.e suppose for PERNNO 8 infotype0 has BEGDA more than current date then i dont have to create employeerecord for PERNO 8.This new requirement i am unable to implement.please guide me how to proceed further i.e after getting the unique PERNO.Please do the needful as its very urgent.
regards,
SaurabhHey saurabh,
once you are able to obtain unique PERNNO,
you need to use two date functions.
CurrentDate: It will return the system date(todays date).
CompareDate: It will take as input two values(as dates) and gives output based on their values.
output of comparedate funtion will be:
-1 if second value is greater than 1st value.
0 if second value is equal to the first.
1 if second value is less than the first value.
what you can do is take currentdate function as first input for comparedate.
BEGDA as second input for comparedate.
if the value is -1(i.e BEGDA is greater than current date SUPPRESS the node or else create the node)
make sure the format of current date and BEGDA are same. -
Conversion condition problem in message mapping
Dear Friends,
I am sending the ORDERDS02 Idoc from one ECC to another ECC using PI7.0.
In receiver system my condittion is:
1) IF E1EDK01-BSART = DVBFand E1EDKA1-PAORG = MF20 then E1EDKA1 PARTN = 50057 & A59991
2) IF E1EDK01-BSART = DNBFand E1EDKA1-PAORG = MG20 then E1EDKA1 PARTN = 50055 & A59990
In first condtion I am receiving the result as per the requirement(50057 & A59991)
but in second condition I am getting only 50055 , I am not getting A59990 .
I am checking the Queues in message mapping it is showing 50055 & A59990, but it is updating only 50055.
In queues it is showing like:
sender: target:
50055 50055
A59990 SUPPRESS
Please suugest me any thing I have to do in message mapping.Hi,
Can you tell me how it has been mapped now. Since you are using header segment, it should contain only one value. So, I would not suspect that it might not be an issue with context. -
I have a File to IDOC Message Mapping Scenario:
Source Field Targefield
Communiication Address-(Email ID) E1EDK2 - TDLINE
Source Field length: 1/80 target Field length: Char\70
Mapping Condition:
Note: TDFORMAT = ‘=’ (Long Line), may need to create 2 TDLINE fields depending on length of text
So give the Solution for handling text Length exceed than target field lenght Using TDLNE and TDFORMAT......
Guide me and give Suggestions to achive this.Hi ,
Below is the generic sol for your problem .Graphical mappings wont workout for your problem while using sub string .
Input -->Input string
Length -->length of TDLINE
MESSAGE_V1,V2,V3,V4....depends on how many TDLINES you expect .Here I have taken 4 .
public void SplitbyLength(String[] Input, String[] Length, ResultList MESSAGE_V1, ResultList MESSAGE_V2, ResultList MESSAGE_V3, ResultList MESSAGE_V4, Container container) throws StreamTransformationException{
int lengthVal = Integer.parseInt(Length[0]);
int InpLenVal ;
for(int i=0;i<Input.length;i++)
InpLenVal =Input[i].length() ;
if (InpLenVal<=lengthVal)
MESSAGE_V1.addValue(Input[i].substring(0));
MESSAGE_V2.addValue(ResultList.SUPPRESS);
MESSAGE_V3.addValue(ResultList.SUPPRESS);
MESSAGE_V4.addValue(ResultList.SUPPRESS);
else if ((InpLenVal>lengthVal) && (InpLenVal <= (lengthVal*2)))
MESSAGE_V1.addValue(Input[i].substring(0,lengthVal));
MESSAGE_V2.addValue(Input[i].substring(lengthVal,InpLenVal));
MESSAGE_V3.addValue(ResultList.SUPPRESS);
MESSAGE_V4.addValue(ResultList.SUPPRESS);
else if ((InpLenVal>(lengthVal*2)) && (InpLenVal <= (lengthVal*3)))
MESSAGE_V1.addValue(Input[i].substring(0,lengthVal));
MESSAGE_V2.addValue(Input[i].substring(lengthVal,(lengthVal*2)));
MESSAGE_V3.addValue(Input[i].substring((lengthVal*2),InpLenVal));
MESSAGE_V4.addValue(ResultList.SUPPRESS);
else if (Input[i].length()>(lengthVal*3) && (InpLenVal <= (lengthVal*4)))
MESSAGE_V1.addValue(Input[i].substring(0,lengthVal));
MESSAGE_V2.addValue(Input[i].substring(lengthVal,(lengthVal*2)));
MESSAGE_V3.addValue(Input[i].substring((lengthVal*2),(lengthVal*3)));
MESSAGE_V4.addValue(Input[i].substring((lengthVal*3),InpLenVal));
else if (Input[i].length()>(lengthVal*4) )
MESSAGE_V1.addValue(Input[i].substring(0,lengthVal));
MESSAGE_V2.addValue(Input[i].substring(lengthVal,(lengthVal*2)));
MESSAGE_V3.addValue(Input[i].substring((lengthVal*2),(lengthVal*3)));
MESSAGE_V4.addValue(Input[i].substring((lengthVal*3),(lengthVal*4)));
Regards
Venkat -
Message Mapping Error : "already dropped from buffer"
Hi,
today we have a new strange error in a simple message mapping File2IDoc thats results in SYSFAIL.
Maybe a buffer or memory error?
In short:
+/ARTMAS05/IDOC/E1BPE1MARART[2]/DELN_DATE(suppressed field); root message: Index 2147483647 is already dropped from buffer. Cur offset is 2147483636+
In detail:
#2.#2010 08 18 10:49:51:619#+0200#Error#/Applications/ExchangeInfrastructure#
#BC-XI#com.sap.xi.util.misc#0026557C6A4004B6000000000000120D#229073650000000872#sap.com/com.sap.xi.services#com.sap.aii.ib.server.mapping.execution.JavaMapping#J2EE_GUEST#0#SAP J2EE Engine JTA Transaction : #0A1BAF81AA0111DF82D40026557C6A40#0a1baf81aa0111df82d40026557c6a40#0a1baf81aa0111df82d40026557c6a40#0#output#Java##
RuntimeException during appliction Java mapping com/sap/xi/tf/_xxxxx_Out_To_ARTMAS_ARTMAS05_A1_
Thrown:
com.sap.aii.mappingtool.tf7.MessageMappingException: Runtime exception when processing target-field mapping /ARTMAS05/IDOC/E1BPE1MARART[2]/DELN_DATE(suppressed field); root message: Index 2147483647 is already dropped from buffer. Cur offset is 2147483636
#2.#2010 08 18 10:52:45:149#+0200#Error#/Applications/ExchangeInfrastructure#
#BC-XI#com.sap.xi.util.misc#0026557C6A4004BA000000000000120D#229073650000000872#sap.com/com.sap.xi.services#com.sap.aii.ib.server.mapping.execution.JavaMapping#J2EE_GUEST#0#SAP J2EE Engine JTA Transaction : #0A1BAF81AA0111DF82D40026557C6A40#0a1baf81aa0111df82d40026557c6a40#0a1baf81aa0111df82d40026557c6a40#0#output#Java##
RuntimeException during appliction Java mapping com/sap/xi/tf/_xxxxx_Out_To_ARTMAS_ARTMAS05_A1_
Thrown:
com.sap.aii.mappingtool.tf7.MessageMappingException: Runtime exception when processing target-field mapping /ARTMAS05/IDOC/E1BPE1MARART[2]/DELN_DATE(suppressed field); root message: Index 2147483647 is already dropped from buffer. Cur offset is 2147483636
Thanks in advance,
AndréHi André, did you try to re-create de Message Mapping with the same source/target structures?
Regards,
Juan. -
Hi,
A scenario File - BPM - BAPI call was developed, as described in blog 'RFC scenario using BPM' cfr. link
/people/arpit.seth/blog/2005/06/27/rfc-scenario-using-bpm--starter-kit
The Mapping is as follows:
MT_EDB_MATERIAL_REQ (1:1) --> BAPI_MATERIAL_EXISTENCE_CHECK (1:1)
MATNR (1:1) -
> MATERIAL (1:1)
When executing the scenario, an error appears in the trace of SXMB_MONI, step 'Request Message Mapping'
Cannot produce target element /ns1:BAPI_MATERIAL_EXISTENCECHECK. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd....
I tried the following:
1) import the XML-file into the testmapping: executed successfully
File:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_EDB_MATERIAL_REQ xmlns:ns0="http://agfa.com/SD_EDB">
<MATNR>15P6X</MATNR>
</ns0:MT_EDB_MATERIAL_REQ>
2) Removed the mapping on node level and left mapping only on element level (material): same error
3) Activated the message mapping, interface mapping, determinations, etc again...:same error
4) Removed the Interface Mapping and created it again: same error
5) Compared the version ID of the Interface Mapping/message mapping in the Monitor trace with the version ID of the IR and saw that there was a difference.
After the CPA full cache, SXI_CACHE full refresh and object refresh in the IB Administration, the differences remain, and also the error....
Anybody an idea ?Hi
>>>Cannot produce target element /ns1:BAPI_MATERIAL_EXISTENCECHECK. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd....
The error clearly says that one of the occurrence value for the target node mentioned is not coming from the source during mapping. The easiest way to solve the problem is as follows
<b>
First Execute the mapping as pointed out by "Raj" and the following steps.
</b>
1. Goto the Mapping Editor
2. Double click on the target node that is causing the problem here BAPI_MATERIAL_EXISTENCECHECK.
3. Right click on the same node and select "DisplayQueue".
4. View the Queue.
5. YOu will find "Suppress" entries, which means a value is expected but no value is coming in.
6.Go from right to left and check each node in the mapping and you will be able to trace where the suppress node comes from and take appropriate action
regards
krishna -
DeletionIndicatior in Message Mapping
Hi Experts,
I have an requirement like i need to suppress the field and its value in the output structure. the file i need to drop at the output is an xml file.
the requirement is to drop a file with variable substitution method with
input file looks like this:
Field0 -- 000001
Field1 -- Sai
Field2 -- Krishna
Field3 -- AppleSystems
Field4 -- Bangalore
all are one to one mapping, in the output fille i require
Field1 -- Sai
Field2 -- Krishna
Field3 -- AppleSystems
Field4 -- Bangalore
Field0 is used for variable substitution for generating the file dynamically, so how could i suppress this field.
I can go with dynamic file naming but i am using multimapping here so i cannot use dynamic configuration i should go ahead with varibale substitution..
Second Clarification :
In the data type decleration we have Deletable Option check box across the field decleration
when we check it, In the message mapping we can see the DeletionIndicator,
May i know the purpose of this option
Your inputs are really appreciated..
Thanks,
--Sai
Edited by: sai krishna on Oct 28, 2010 5:14 PMBABU,
In your message mapping correct the UDF code.
There is a problem in your textarea and you have missed to place semi colon ";".
Regards,
Sarvesh -
How to use Variable in message mapping
Hi Experts,
I have some problem using variable in message mapping.
In one message mapping, since a block of logic is repeated for several fields, then i tried to use a variable instead.
the repeated logic is: first if condition, then use a udf to form a queue which will be suppressed by its father node.
i tried to assign the result queue to a variable after the UDF execution. (this variable is created after the father node)
I am wondering is there any restriction of using variable?
Can we assign the whole queue to a variable?
Can we use UDF during the process of assigning value to variable?
thanks in advance.I dont think you can assign a queue to a variable,I am not 100% sure, . and there is no restriction to useing a Zvariable, only u can use it after you declare at some parent level.
Yes you can use a UDF in the process of assigning to a Zvariable.
Check out this link and read the comments of the blog.
SAP PI 7.1 Mapping Enhancements Series: Using Graphical Variable
/people/william.li/blog/2008/02/13/sap-pi-71-mapping-enhancements-series-using-graphical-variable
Edited by: Saiyog Gonsalves on Nov 6, 2010 6:40 PM -
Display queue for Target field in Message Mapping
Hi Folks,
If i check my Target Field (DT_Req) (Display queue) in Message Mapping, I am getting 2 values like ie [] that means ....in my test result in MM, i should get 2 times DT_Req field.
Is it right?
Plz give some idea how this display queue works on each field?
Thanks
Prabaharan
Edited by: Prabaharan on Sep 10, 2008 12:22 AM
Edited by: Prabaharan on Sep 10, 2008 12:24 AMHi,
In my scenario occurrence of that
target field is 0...unbounded
and in my display queue.. Initially it is
suppress, [], suppress, suppress, suppress,suppress,suppress,suppress,suppress,suppress, [],suppress
in my result i could get only one DT_req field.
Plz throw some idea on this?
thanks -
File to IDOC Senario (Message Mapping)
Hi Experts,
I am a fresher.
This is " File to IDOC Senario ".
I have Doubt on this: ( In Message Mapping)
Source field : MSG
Length : 1/264
Taget field : E1EDKT2 - TDLINE
Legth : CHAR/70
Mapping Condition :
Note: TDFORMAT = ‘=’ (Long Line), until next line of MSG. When new line occurs in MSG, then use TDFORMAT = ‘/’
How to Make the Mapping for this?
Anyone Can help me to get it Quickly.
give your Suggestions and Show some Example Mappings......Hi ,
Below is the generic sol for your problem .Graphical mappings wont workout for your problem while using sub string .
Input -->Input string
Length -->length of TDLINE
MESSAGE_V1,V2,V3,V4....depends on how many TDLINES you expect .Here I have taken 4 .
public void SplitbyLength(String[] Input, String[] Length, ResultList MESSAGE_V1, ResultList MESSAGE_V2, ResultList MESSAGE_V3, ResultList MESSAGE_V4, Container container) throws StreamTransformationException{
int lengthVal = Integer.parseInt(Length[0]);
int InpLenVal ;
for(int i=0;i<Input.length;i++)
InpLenVal =Input[i].length() ;
if (InpLenVal<=lengthVal)
MESSAGE_V1.addValue(Input[i].substring(0));
MESSAGE_V2.addValue(ResultList.SUPPRESS);
MESSAGE_V3.addValue(ResultList.SUPPRESS);
MESSAGE_V4.addValue(ResultList.SUPPRESS);
else if ((InpLenVal>lengthVal) && (InpLenVal <= (lengthVal*2)))
MESSAGE_V1.addValue(Input[i].substring(0,lengthVal));
MESSAGE_V2.addValue(Input[i].substring(lengthVal,InpLenVal));
MESSAGE_V3.addValue(ResultList.SUPPRESS);
MESSAGE_V4.addValue(ResultList.SUPPRESS);
else if ((InpLenVal>(lengthVal*2)) && (InpLenVal <= (lengthVal*3)))
MESSAGE_V1.addValue(Input[i].substring(0,lengthVal));
MESSAGE_V2.addValue(Input[i].substring(lengthVal,(lengthVal*2)));
MESSAGE_V3.addValue(Input[i].substring((lengthVal*2),InpLenVal));
MESSAGE_V4.addValue(ResultList.SUPPRESS);
else if (Input[i].length()>(lengthVal*3) && (InpLenVal <= (lengthVal*4)))
MESSAGE_V1.addValue(Input[i].substring(0,lengthVal));
MESSAGE_V2.addValue(Input[i].substring(lengthVal,(lengthVal*2)));
MESSAGE_V3.addValue(Input[i].substring((lengthVal*2),(lengthVal*3)));
MESSAGE_V4.addValue(Input[i].substring((lengthVal*3),InpLenVal));
else if (Input[i].length()>(lengthVal*4) )
MESSAGE_V1.addValue(Input[i].substring(0,lengthVal));
MESSAGE_V2.addValue(Input[i].substring(lengthVal,(lengthVal*2)));
MESSAGE_V3.addValue(Input[i].substring((lengthVal*2),(lengthVal*3)));
MESSAGE_V4.addValue(Input[i].substring((lengthVal*3),(lengthVal*4)));
Regards
Venkat -
I got the following dump, when I executed the Message Mapping. Eventhough I have fixed the problem, I am not quite sure to read the dump, i.e by reading the dump I was not sure which FIELD has caused the Dump. could some one help me , how I can read a Dump and Pin point the Field that has caused the error. Thanks Friends.
Dump
Messages:
Exception:[java.lang.IllegalArgumentException: Cannot cast sUpPresSeD to float. ] in class com.sap.aii.mappingtool.flib3.Stat method sum[com.sap.aii.mappingtool.flib3.Plainer@2c2f6468]
com.sap.aii.utilxi.misc.api.BaseRuntimeException: Exception:[java.lang.IllegalArgumentException: Cannot cast sUpPresSeD to float. ] in class com.sap.aii.mappingtool.flib3.Stat method sum[com.sap.aii.mappingtool.flib3.Plainer@2c2f6468]
at com.sap.aii.mappingtool.tf3.rt.C2CFunctionWrapper.cacheContext(C2CFunctionWrapper.java:95)
at com.sap.aii.mappingtool.tf3.rt.C2CFunctionWrapper.gotoNextContext(C2CFunctionWrapper.java:45)
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java(Compiled Code))
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java(Compiled Code))
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java(Compiled Code))
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java(Compiled Code))
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java(Compiled Code))
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java(Compiled Code))
at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:287)
at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:63)
at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:232)
at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:432)
at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:170)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:259)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146)
at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java(Compiled Code))
at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java(Inlined Compiled Code))
at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java(Compiled Code))
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java(Compiled Code))
at com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner.run(UnorderedChannel.java(Compiled Code))
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java(Compiled Code))
at java.security.AccessController.doPrivileged1(Native Method)
at java.security.AccessController.doPrivileged(AccessController.java(Compiled Code))
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java(Compiled Code))
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java(Compiled Code))Karen,
I don't think these dumps are going to ever give you your answers directly. It's a good start. All you know from here is that the sum function broke. Where? Which one? Who knows? What I would do is go into SXMB_MONI and copy the data that was sent and broke this mapping. Then I would copy into the Integration Repository Message Mapping. I would click on the test tab in my Message Mapping and put the data in that I copied from SXMB_MONI and execute. I should get the same error. Then I would by process of elimination change the data in each of the mappings that use the sum function until I found the problem. XI tries to give smart messages, but sometimes you have to dig for your answers.
Hope that gives you at least one method of debugging.
- Emmett
Maybe you are looking for
-
Can/how do i use a 2nd ipod with same itunes account? please help
I dont use itunes/ipod. My husband is in Afghanistan and he would like me to buy him a 2nd ipod perhaps a nano so i can download his music and send that 2nd one to him. I dont know much of this but when i connect the new ipod nano to his itunes, wont
-
How can I avoid Thunderbird timeouts when switching network connections?
I'm using Thunderbird 24.4.0 but this problem goes back many releases. This problem happens when I switch from an external WiFi network to my company's internal LAN (ethernet). I'm connected to the company's email server via WiFi from home and can ge
-
Itunes 7, compatible w/ windows vista?
i just bought a new laptop that has Windows Vista as the operating system & i was wondering if itunes 7 was compatible w/ Vista? i looked on the download page & it only said Windows 98, 2000, XP, or better. i don't want to install it & mess up my com
-
I've written this piece of code to search through a file until it finds: BufferedReader in = new BufferedReader (new FileReader(outputFile)); String name = null; String data = in.readLine(); while (name == null
-
My screen at the App Store froze yesterday when trying to install the genius section to it. I can use everything else on the iPad, except for now, I can not download any apps because of that frozen screen. Any suggestions or help?