on 05-27-2015 12:12 PM
See the payload also. Sometimes for some special character restriction this error comes; at least in my case.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You can chage the context of a element, in the source structure
right click.
take care about context change in your queue
in the third parameter take care if you need elements in the same context or different.
can you sand a picture of your mapping? with queue?
you need same elements in parameters 2, and 3, like the following image 3 elements (with different context changes, or equals)
the restult follow context change or third parameter.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Still, I am facing the same error and tried all the possibilities..
Actually, they have used useoneasmany-->splitbycontextd..
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Vishnu,
Please find the screenshot and the payload information..
<?xml version="1.0"?>
-<COND_A04>
-<IDOC BEGIN="1">
-<EDI_DC40 SEGMENT="1">
<TABNAM>EDI_DC40</TABNAM>
<MANDT>300</MANDT>
<DOCNUM>0000000001150422</DOCNUM>
<DOCREL>740</DOCREL>
<STATUS>30</STATUS>
<DIRECT>1</DIRECT>
<OUTMOD>2</OUTMOD>
<IDOCTYP>COND_A04</IDOCTYP>
<MESTYP>COND_A</MESTYP>
<SNDPOR>XXXX</SNDPOR>
<SNDPRT>LS</SNDPRT>
<SNDPRN>XXXX</SNDPRN>
<RCVPOR>XXXX</RCVPOR>
<RCVPRT>LS</RCVPRT>
<RCVPRN>XXXX</RCVPRN>
<CREDAT>20150616</CREDAT>
<CRETIM>174243</CRETIM>
<SERIAL>XXXXX</SERIAL>
</EDI_DC40>
-<E1KOMG SEGMENT="1">
<KVEWE>A</KVEWE>
<KOTABNR>016</KOTABNR>
<KAPPL>M</KAPPL>
<KSCHL>XXXX</KSCHL>
<VAKEY>XXXX</VAKEY>
<MATNR>000000007000009582</MATNR>
<EKORG>1500</EKORG>
<WERKS>1501</WERKS>
<EVRTN>4900000668</EVRTN>
<EVRTP>00040</EVRTP>
<POSNR>000000</POSNR>
<ANZSN>0000000000</ANZSN>
<BSTYP>K</BSTYP>
<BSART>ZI</BSART>
<EKGRP>114</EKGRP>
<VAKEY_LONG>490000066800040</VAKEY_LONG>
<PSTYP>0</PSTYP>
-<E1KONH SEGMENT="1">
<KNUMH>0000159404</KNUMH>
<DATAB>20150616</DATAB>
<DATBI>99991231</DATBI>
-<E1KONP SEGMENT="1">
<KSCHL>P000</KSCHL>
<STFKZ>A</STFKZ>
<KSTBM>0.000</KSTBM>
<KSTBW>0.00</KSTBW>
<KRECH>C</KRECH>
<KBETR>1.00</KBETR>
<KONWA>USD</KONWA>
<KPEIN>1</KPEIN>
<KMEIN>EA</KMEIN>
<KUMZA>1</KUMZA>
<KUMNE>1</KUMNE>
<MEINS>EA</MEINS>
<MXWRT>0.00</MXWRT>
<GKWRT>0.00</GKWRT>
<KZNEP>X</KZNEP>
<ZAEHK_IND>01</ZAEHK_IND>
<KBRUE>0.00</KBRUE>
<VALTG>00</VALTG>
<VALDT>00000000</VALDT>
<ANZAUF>00</ANZAUF>
<MIKBAS>0.000</MIKBAS>
<MXKBAS>0.000</MXKBAS>
<KOMXWRT>0.00</KOMXWRT>
<KLF_STG>0000</KLF_STG>
<KLF_KAL>0000</KLF_KAL>
</E1KONP>
</E1KONH>
</E1KOMG>
</IDOC>
</COND_A04>
Hi Valli,
Then this is the issue.
Due to the absence of VKORG element, XI is not able to perform UseOneAsMany function, that's why it is saying few values in the context error.
Just FYI, you can give some dummy values for VKORG element accordingly in the source data and test it in the MM test tab and check the outcome.
Regards
Vishnu
Yep when i checked the payload information of the success one and failure one, the following information i observed:-
Success message:
Here, VKORG(Sales Organization) values is available..so messages comming with VKORG is successful.
Failure message:
Here, the values of VKORG is not available, instead of that they are updating EKORG(Pruchasing Organisation) information. Which i have not even mapped in PI level..
Because of the above reason, its showing mapping failed error..
My requirement:
I require to map the fields in such a way that when ever we get "VKORG" or the "EKORG" field values, the values should get passed to "Company Code" field.
Do any one help me out to resolve this requirement..Any modification need to make, suggest me.
Hi Valli,
Then you can do like below to take VKORG OR EKORG which ever present in the message, and map to the first argument of the UseOneAsMany node function.
VKORG-->EXISTS node function-->IF boolean function
then part of boolean function is VKORG
Else part of boolean function is EKORG
Try the above logic and let me know if you still facing the issue.
Regards
Vishnu
Hi Valli,
Can you let me know whether VKORG exist in the message and with no value.. or do you mean VKORG doesn't exist?
If former is the case, then that's why you would not gotten any value in the output, since we are just checking whether VKORG exist or not.
Can you let me know whether you need to check whether VKORG has any value or not in the condition?
Regards
Vishnu
I dont want to check whether VKORG value is there or not.
Actually, my requirement is some times VKORG value exist and sometimes EKORG value exist..
But both the values doesnt exist at the same time.
Suppose, if VKORG value has been passed..then it should get updated into CompanyCode and if EKORG value has been passed..then it should get updated into CompanyCode.
Hi Valli,
When you mean, when, i pass EKORG value making VKORG with no value..I have not received the output.
Did you get any error? if not, then VKORG has present with no value. When this is the case, then in the logic, instead of just passing VKORG to the THEN part of IF, first pass VKORG to STRING LENGTH function and use ARITHMETIC GREAT function(the second argument of this function is a CONSTANT with value 0), and then pass this to the THEN part. Now test and check.
Try this.
Regards
Vishnu
Hi Valli,
In Order for the function UseOneAsMany to work, the prerequisites are:
1. The number of context changes for the first argument and the second argument should be same.
2. The number of values should be same for the second argument and the third argument.
Can you please check these and let us know the outcome.
Regards
Vishnu
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Valli,
Have you solved it? The main goals in this forums are to find answer or share knowledge. If you have found the solution, share it. If some of the answers have helped you, then assign the Correct or Helpful points and close the thread.
Thanks and regards.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Source Queue Target Queue
====== =======
value1 value1
====== =======
value2 value2
====== =======
value3 value3
====== =======
? Producing Error
=======
? Producing Error
=======
This is happening in your case, Target has more context or requiring more values to map in same context than source, so you are getting this error.
Try to dig on context change, queues in SAP PI mappings. You will learn about your mistakes,
What is Context and Context Change - Process Integration - SCN Wiki
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi mate,
It's a context problem with the Useone asMany function, check it. Yes it hosul hace the same or be at the same level, try to modifiy the context level or the Removecontext function.
Regards
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
85 | |
10 | |
10 | |
9 | |
6 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.