EDI document Mapping with SAP IDOC

Saurabh,

Here the thread issue is different.Anyway call name is RMG.This is better.Any problem?

Hi RMG,

After installing the SP WMEDI_4-6_SP.ZIP error has vanished .
It is fixed now. I can C the EDIValues.

Thanks for your Help

Regards

Ajay

Cool…

Goodluck,

Hi ,
Presently i am trying to send the Data to SAP system i am using outboundProcess Flow service. But in IDOC_DATA_REC_40 record i am getting NULL.
I mapped the EDIValues to DESADV(EDI) the I mapped DESADV to SAP IDOc Structure . This SAP IDoc structure i created from Schema which i got it from ifr.sap.com. As anything missing here.

Regards
Ajay

Ajay,

Are you using transformHierarchyToFlat service?

This service creates IDOC string based on the SAP schema)service is creating the problem.

Make sure the necessary inputs are provided to this service,and check in the pipeline whether mapped IDOC document is creating properly.

HTH,

I have a problem for DESADV document converting into IDOC.
I am not able to fetch the values from LIN Segment in EDIFACT.
It is inside /DESADV/UNH/CPS/LIN. I tried to loop over the segment and tried to map to SAP IDOc Segment. But values are not transfered into segment.
Pls help me
Ajay

Ajay,

If you are looping on the In-Array (DESADV/UNH/CPS/LIN),so what is the structure of your IDOC segment that you are trying to map.

and also if CPS is also a document list then you have to keep loops
Loop In-Array /DESADV/UNH/CPS
—/DESADV/UNH/CPS/LIN,
------------------Map here to target IDOC segment

If the target segment is also a documentList then its better to create a temp document(IDOC Segment) and map the LIN fields to this temp document and finally inside the loop itself do appendToRecordList.

If you are not comfortable doing this way try Out-Array with that particular IDOC segment.

HTH,

Hi ,
Looping as you said works without any problem.
But appendToRecordList appends only one time.
For example RECORD
—RECORD[0]
------ MATNR = 12344

IF i have two values MATNR 3445, MATNR 12344

It appends only once .
I am trying to get it in this fasion RECORD
— RECORD[0]
---- MATNR = 3445
— RECORD[1]
----- MATNR = 12344

Pls help me out
Regards
Ajay

This shows that you are not dropping the fromItem of appendToRecordList so you are seeing the last RECORD[0]/MATNR = 12344 and it is overwriting all the records.

So when you are mapping to appendToRecordList service what ever you map for fromItem drop that temporary record element,so that in runtime loop will append onebyone to the final recordList.

Remember this appendToRecordlist should be inside the loop as a last step once you map the MTNR element using temporary record.

HTH,
RMG

Hi,
My trading Partner recieved the EDIFACT document,
He cannot process the document as UNA:+.? segment doesnot exist in my file.
my file starts from
UNB which is generated from addICEnvelopeEDIFACT
ends with UNZ
I dont know how to add UNA:+.? segment

Regards
Ajay

Ajay,

I think the addICEnvelopeEDIFACT contains an argument called UNARequired or something similar which you can set to true. Specifying this should create the UNA segment.

-Jordy

Hi Jordy,
I am using SAP BC which has following parameters

documents
syntaxId
syntaxVersion
senderId
senderQual
reverseRoute
receiverId
receiverQual
routingAddress
ICreference
password
passwordQual
applReference
priority
ackRequested
agreementId
testIndicator
delimiters
but not UNARequired.

Regards
Ajay

Ajay,

In the addICEnvelopeEDIFACT service you should see the input element called UNARequired.since this param is almost widely used when processing EDIFACT documents.

Since your above list doesnt show this param,so check in the Advantage site whether any fix is released for this problem.

HTH,
RMG

RMG,

I tried to get the bug fix for EDIFACT. Unfortunatly i didnot get any fix for that .
I tried also from SAP site to get bug fix implemented it didnot change in the service.
Is it possible to get this class from any where else.
Regards
Ajay

As of now i dont have any other clues to resolve this issue unless if WM has released some fix.

Other solution might be you have to some how set the UNA element in the EDIFACt data before routing it to the target system.Test this change.

HTH,

I am trying to get multiple DESADV document in one envelope.
Is it possible to multiple EDIFACt document which has one envelope.
How can i proceed with it
Ajay

yes you can have multiple DESADV documents in one envelope,so you have to loop thru UNB/UNH and extract the data and map it to target.

HTH,
RMg

Ajay,

If the LIN segment is not an array then why you want to use Loop step for this,just extract the UNH/LIN segment data directly.

Ajay,

I think the LIN segment should be a an array at the detail level of the document. If it’s not may be your schema is in correct. What version of wm and EDIFACT are you working with?
Verfiy what you did but you may want to investigate if there’s a fix for this. It may not be you at fault here. I’m assuming you’re using 4.6 and I know I ran into similar issues.
Just a thought.
Good Luck!

Thanks for your comment .
I found where the problem is when i send one DESADV in envelope
i get UNH. On which i cannot loop.If i send more than one desadv in envelope i get UNH-- >UNH[0]
UNH[1] as array.

Logic works when 2 documents in one envelope but 1 document in 1 envelope doesnot work.
Can U help me out here
Ajay