cancel
Showing results for 
Search instead for 
Did you mean: 

Error in SXMB_MONI for Idoc to File Scenario (missing of field plant

venkatasap
Participant
0 Kudos

Hi SapAll.

here i have got a tricky situation where in a Idoc(Matmas.Matmas05) to file Interface thorugh XI there is an error message raising in sxmb_moni.

to get the conclusion for this error i just copied the message from Sxmb_moni and tried with Message mapping in Design by just pasting there,after all this process iam getting the error message as below

Cannot produce target element /MT_FCI_MATERIAL/fcidataimport/objects/object/extensions/collection[3]/row/fields/PLANTEXT. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd

When i go the mapping program it is defined as

if Matmas.matmas05WERKS(sender) exists then map werks to plant tex(reciver MType)t else map constant with(null value) to reciever(MType).

and the important thing is the here the occurance of field plant text is 1.1.

so iam not sure on why the error was raised in message mapping as every thing is fine.

can any body help in slolving this.

regards.

Varma

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Varma,

*Cannot produce target element /MT_FCI_MATERIAL/fcidataimport/objects/object/extensions/collection[3]/row/fields/PLANTEXT*

means that the mapping to the field PLAINTEXT is not correct.

Since the occurence of PLAINTEXT is 1..1 u need to map one variable always.

If there is no mapping required please map with a constant or make PLAINTEXT field optional(0..1).

If still prblm occurs pl do post the problem...

Babu.

Edited by: hlbabu123 on Feb 15, 2010 1:57 PM

venkatasap
Participant
0 Kudos

Hi.

here the occurance of the field plant text is 1.1 and in case if the sender field doesnt exist then i also mapped the reciever field plant text with constant(space or no value).

so there should be no chance to get the error as i also defined the mapping in such a way that if there is no value at sender werks then map constant(no value or space) with plant text(reciever).

regards.

Varma

former_member200962
Active Contributor
0 Kudos

When you are using IfWithElse there should be some value in the IF-queue......in your case you are not passing any value for the source node and hence the result of IfWithEsle is getting suppressed.....so use a mapWithDefault function just after the source node/ or at least try to pass some value to the if-queue when the source node is absent from the input payload.

Regards,

Abhishek.

Former Member
0 Kudos

Hi,

So it means that, ur source XML which is coming is having a problem.

Please go through the source xml once. May be the fields which u are mapping with are not populationg.

As mentioned in above post... by Abhishek... please take care of occuerence also using the context changes.

If the field is not there in source and u r trying to map... then it will throw the above said problem.

Hence u use two mappings, which will make sure that every field is populating properly... if not use \

exists node function, and if conditions.

If node or element doesn't exist assign a default values.

I hope this should work fr you...

Babu

venkatasap
Participant
0 Kudos

Hi SapAll.

here for one synchronous interface we using http adapter at sender side.

i just want to know on how i can get the sender ip adress or url through which they sending the data.

will be waiting for best asnwer.

regards.

Varma

-

Answers (3)

Answers (3)

Former Member
0 Kudos
if Matmas.matmas05WERKS(sender) exists then map werks to plant tex(reciver MType)t else map constant with(null value) to reciever(MType).

When WERKS's is absent the IF doesn't have a value and hence the whole context gets suppressed which returns the error. What you have configured would work fine if WERKS is there but with no value. Here the case is a bit different. WERKS itself is not coming. Your logic doesn't handle that. Hope you got what I intend to convey.

Correct me if I am wrong but the logic is you need to pass WERKS value to PLANTTEXT if value comes else map a blank constant...right??

If so, why not just use mapWithDefault

WERKS -> mapWithDefault(blank contant) -> PLANTTEXT

This way if WERKS comes teh value would be passed, if comes with blank value blank value would eb passed if doesn't come atall, even then a blank value would be passed.

Regards

Soumen...

Former Member
0 Kudos

Hi,

Please check whether the field is string or anything else and also the value which is coming as output is ok as per the data type.

Also if possible can you provide the xsd part for the particular field.

Regards,

Tiny

former_member200962
Active Contributor
0 Kudos

When you test and get the above error, do you have an occurence of the source node....Matmas.matmas05WERKS?

Regards,

Abhishek.