Sequence of IDOC segments
Hi,
I have duplicated some segment in a IDOC for my mapping on the targetside. As far as they stick together this is no problem. But after several changes and activations of my mapping the sequence of the segments are suddenly mixed up. I don't know why this happened. But now the IDOC adapter parser throws an error because the duplicate segments are mixed up now with other segments. How can I get these segments again into the logical order without throwing the duplicated Segements away, recreate them and redo all the mapping work (hundreds of fields)? in the graphicals mapper ther is no posibility on the target side to shift segments up and down.
Thankx
Manfred S.V.
That means in the graphical target structure, these segments are mixed up already ?
In such cases, when the output does not match the expected order of the segments anymore, you can use an additional graphical 1:1 mapping for the target structure. Select both root elements, and press the button for mapping all elements with same name automatically.
XI will then make sure the order will be ok, because that is determined by the target structure (which is ok in that case).
I have used that technique after using Java mappings on complex structures, and it worked. But it will depend on how "wrong" your result is. Maybe there will be context problems then.
If all else fails, you can export Ctrl Shift 0 the mapping, and manually modify the result, and then import again. But that is dangerous.
CSY
Similar Messages
-
Idoc Error - EDI: Syntax error in IDoc (segment cannot be identified)
Hi All,
have created a new reduced message type for our new vendor A/C group through BD53. Also done reqd config for sending the vendor master through this message type. .
I have created couple of vendors for testing with X01 with withholding tax functionality and when try to send these vendors , Idocs are getting failed .
When I create vendor without withholding tax functionality , idoc is getting posted succesfully . If create vendor with entries in the feild whih are related to withholding tax . Idocs are getting failed .
If I see the status in WE05 ,Idocs which are posted succefully are showing the basic type as CREMAS03 . For idocs which are getting failed have the basic type as CREMAS04 and also the extension as Z1CREMAS . I don`t understand why the system is defaulting CREMA04 & Z1CREMAS when I send the vendor master with withholding tax feild entries.
I am not much familiar with ALE /Idoc set up. Please can any body help me to resolve the issue.
The error message in we05 as below
EDI: Syntax error in IDoc (segment cannot be identified)
Message no. E0078
Diagnosis
The segment Z1LFA1M does not occur at the current level of the basic type CREMAS04 (extension Z1CREMAS).
This error can have several reasons:
The segment Z1LFA1M is assigned to a group whose header segment does not occur.
The segment Z1LFA1M does not exist in the syntax description of the basic type CREMAS04 (extension Z1CREMAS).
The sequence of segments in the group in which the segment appears is incorrect.
Previous errors ('mandatory' segment or group missing) may be due to this error.
Procedure
Please check the IDoc or the syntax description of the basic type CREMAS04 (extension Z1CREMAS).
ThanksHi,
I don`t understand what do you mean release after adding segment.
Message type works i.e. Idoc get posted if I send with the vendor w/o withholding tax field entries. Idoc fails when send vendor with withholding tax field entry.
Regards -
Hi All,
I have created IDOC extension for IDOC Basic type "PROACT01" and have followed all required necessary steps but getting IDOC
Status 26. EDI: Syntax error in IDoc (segment cannot be identified). The exact error is:
Please check Error Details and the details of the steps I followed for Setting up IDOC Extension:
Error Detail :
EDI: Syntax error in IDoc (segment cannot be identified)
Message no. E0078
Diagnosis
The segment ZPROSEG does not occur at the current level of the basic type PROACT01 (extension PROACTEX).
This error can have several reasons:
The segment ZPROSEG is assigned to a group whose header segment does not occur.
The segment ZPROSEG does not exist in the syntax description of the basic type PROACT01 (extension PROACTEX).
The sequence of segments in the group in which the segment appears is incorrect.
Previous errors ('mandatory' segment or group missing) may be due to this error.
Procedure
Please check the IDoc or the syntax description of the basic type PROACT01 (extension PROACTEX).
Can you please look at this problem and suggest what is wrong with IDOC Extension/Custome Segment?
Below is the Details of the Steps which I have followed:
1. Tcode WE31 - Created new custom Segment ZPROSEG with 4 fields. Released segment.
2. TCode WE30 - Created IDOC Extension PROACTEX for Basic Type PROACT01. Released IDOC extension.
Here when I run syntax check warning appears "No predecessors exist". I am not sure if its okay!!
3. TCode WE82 - Added Extension PROACTEX in the Message Type PROACT with BASIC Type PROACT01.
4. TCode WE20 - Added IDOC Extension PROACTEX in the predefined partner profile in WE20 transaction.
5. Added the following code in the Customer Exit EXIT_SAPLWVMI_001 include ZXWVMIU01 .
DATA segnam(27).
READ TABLE dedidd WITH KEY segnam = 'ZPROSEG'.
IF sy-subrc NE 0.
LOOP AT dedidd WHERE segnam = 'E1EDP31'.
CLEAR dedidd.
dedidd-segnam = 'ZPROSEG'.
zproseg-matnr = 'Mat1'.
zproseg-lgort = '001'.
zproseg-gernr = 'SNo1'.
zproseg-labst = 2.
dedidd-sdata = zproseg.
APPEND dedidd.
ENDLOOP.
ENDIF.
Finally ran transaction WVM2 (Transfer of Stock & Sales Data) to generate IDOC, its creating IDOC but when checked IDOC in WE05 its getting Status Error "26".
Looking forward for your reply.
Many thanks in advance.Hello,
Actually you are appending the Z segment instead of inserting into the correct position. So the segment is added at the last, so hierarchy of segments is collapsed.
So get the index of the previous segment E1EDP31 and increase the index by 1 and INSERT the Z segment with that new index as below.
LOOP AT dedidd WHERE segnam = 'E1EDP31'.
lv_index = sy-tabix. " <<--
ADD 1 TO lv_index. " <<--
CLEAR dedidd.
dedidd-segnam = 'ZPROSEG'.
zproseg-matnr = 'Mat1'.
zproseg-lgort = '001'.
zproseg-gernr = 'SNo1'.
zproseg-labst = 2.
dedidd-sdata = zproseg.
*APPEND dedidd.
INSERT dedidd INDEX lv_index. " <<---
ENDLOOP.
Here actually we are insering the record inside the LOOP and it regenerates the index again. It is not actually a good practice.
So the best practice is get the index and generate the segment inside the loop, store them into another internal table, come out the loop and insert the Z segments into DEDIDD by looping the new internal table. -
EDI: Syntax error in IDoc (segment cannot be identified)
Hi All,
Im facing the below error EDI: Syntax error in IDoc (segment cannot be identified).
And this error is coming only for few idocs rest are getting processed successfully.
Message no. E0078
Diagnosis
The segment E1EDP03 does not occur at the current level of the basic type ORDERS05 (extension ).
This error can have several reasons:
The segment E1EDP03 is assigned to a group whose header segment does not occur.
The segment E1EDP03 does not exist in the syntax description of the basic type ORDERS05 (extension ).
The sequence of segments in the group in which the segment appears is incorrect.
Previous errors ('mandatory' segment or group missing) may be due to this error.
Procedure
Please check the IDoc or the syntax description of the basic type ORDERS05 (extension ).
Please suugest.
Thanks,
SpandanaHi,
Is this standard program or custom program?
you might be appending the Z segment instead of inserting it. Always best practice is get the index of the segment and instert it.
If all the data is not populated then segment position will change incase of appending. Please check your code and revert back.
Refer the below link for detailed information.
IDOC Status 26: EDI: Syntax error in IDoc (segment cannot be identified).
Thank you -
Regarding EDI: Syntax error in IDoc (segment cannot be identified)
Hi,
My requirement is that I was adding two diffrent field values under two diffrent segments as "E1EDKA1" and "E1EDK02" in outbound invoice IDOCS, INVOIC02 (process code: SD09 - IDOC_OUTPUT_INVOIC).
I am getting the IDOC number through Tcode "VF02". Can any body give me idea how to check that syntax error in debug mode.
Please find the following error details using TCODE "WE02".
*EDI: Syntax error in IDoc (segment cannot be identified)*
*Message no. E0 078*
*Diagnosis*
*The segment E1EDKA1 does not occur at the current level of the basic type INVOIC02 (extension ).*
*This error can have several reasons:*
*The segment E1EDKA1 is assigned to a group whose header segment does not occur.*
*The segment E1EDKA1 does not exist in the syntax description of the basic type INVOIC02 (extension ).*
*The sequence of segments in the group in which the segment appears is incorrect.*
*Previous errors ('mandatory' segment or group missing) may be due to this error.*
Please help me to resolve this problem. <REMOVED BY MODERATOR>
Regards,
Skumar.
Edited by: Alvaro Tejada Galindo on Apr 28, 2008 1:09 PMIt seems that you added segment E1EDKA1 at a place where it is not supposed to be. That's where this error is coming from. The structure of every IDOC is definded by SAP standard and you cannot change the sequence or the level of standard segments. If you require a certain field at a certain level you have to add that field to a Z-segment and then add that Z-segment where appropriate in your extension.
Hope that helps,
Michael -
Hi All,
I am new to ALE Idoc. I have created few Idoc segments.
Later I have found that i am using few segments in same sequence.
I have thought that if i group these segements into one segement then it will be helpful for me in future.
Please do let me know, by any means can i acheive this.
Thanking you in advance.
PiyushHi
It seems that i am unable to convey my requirement in last post.
Sorry for that.
I will explain it by the example.
I have defined Segements Seg1, Seg2, Seg3.
Now while defining basic type, i am using these segments as
Seg1 <<Parent segment>>
Seg2 <<Child Segment>>
Seg3 <<Child Segment>>
I have observed that i need to create the same structure using these 3 segments in <b>different basic types</b>.
Hence if i club these 3 segments into one group or....
and use that group or... while defining new Basic type.
Please do let me know if i am not able to convey the requirement.
If this can be acheived bu some other mean then do let me know.
Thanking you in advance
Piyush -
Can anyone tell me how idoc segment numbers/order are determined? I have a rather large ORDERS05 idoc being used to send outbound EDI 850 documents. This line sequence number is kept in segment E1EDP01, element POSEX).
For smaller purchase orders (20 lines or so) the idoc segment sequence follows the same order as the purchase order line numbers (0010, 0020, 0030 and so on). This means that E1EDP01, POSEX = 0010 followed by 0020 etc.
But in one of my larger idocs POSEX is beginning with 00220, goes up consecutivelt to 00410, then goes to 00210, then to 0010 - 00200. I can't find any obvious sort order in this.
Any insights will be greatly appreciated. Thanks.Ram,
Create a File port in WE21 and assign this port to your IDoc in WE20. When the Idoc is triggered the corresponding IDoc is converted into IDoc Flat file with fixed lengths. Then you can read this fixed length Idoc and can convert into Idoc XML. or Check the section 3.2 which converts your flat file idoc into Idoc XML. This should solve your issue.
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/46759682-0401-0010-1791-bd1972bc0b8a
---Satish -
Replaced value is not getting relected in IDOC segment field
Hi,
Need your help for the below issue.
I am replacing the PO # with Delivery Doc # . But the replaced value is not getting reflected in the IDOC segment field(e1bp2017_gm_item_create-po_number.).
Function Module which I am using is IDOC_INPUT_MBGMCR as a copy.
Here is my code given below:
SELECT
SINGLE vbeln
INTO lx_vbeln
FROM lips
WHERE vgbel EQ e1bp2017_gm_item_create-po_number.
Move lx_vbeln TO e1bp2017_gm_item_create-po_number.
MOVE-CORRESPONDING e1bp2017_gm_item_create
TO goodsmvt_item.
Then this is passed as TABLE in "BAPI_GOODSMVT_CREATE".
Please do the needful.Hi Dheepa,
Check it in debug whether the filed is empty or having po#, when ur code is executed for the replacement. if it is empty, po# is populated after ur code. in this case you need to write the code in suitable place.
Reddy -
Unable to change the length of field in idoc segment
Dear all,
My requirement is to change the length of a field(Z field) in a segment (Z Segment). I tried the following but in vain
1)Tried to Cancel the release and then change the length of the domain. Unfortunately it is givin an error saying "Error while resetting release of segment ZC9DEMARA01".
I also tried cancelling hte release of extension and then cancelled the release of segment
2) Created a new version, but in new version the earlier fields are diabled. So I am unable to edit.
I have gone through some of the links available in SDN but I could not solve as I am unable to cancel the release in the first step.
[Idoc segment field length changes]
Could you please help me.
Thanks in advance!
regards,
AravindHello Aravind,
I Have created one Segment type with some fields, changed the field length also its working.
just try to cancel the release and change the length of the filed and do it set release again.
Try it .
Thanks,
santhosh -
Idoc Segment Cancel release error
Hi all,
I have problem in cancelling the release of an Idoc Segment. I have a requirement to add new fields to the segment. When I try to do Edit->Cancel Release it is throwing below error.
"Error while resetting release of segment Z1PXXXX
Message no. EA259"
Could anyone tell me how to overcome this error or the root cause of this error?
Many Thanks,
Sri
Edited by: Arunsri on Nov 10, 2009 8:37 AMHello,
The reason that you are getting these errors is that you cannot cancel
the release of an extension made in previous version e.g. 4.6C. Instead you have to
create a new extension.
It is not possible to change a segment definition which is released in a
lower release. This is a basic concept of our release strategy to
guarantee compatibility between different releases.
You must create a new segment definition for the new release e.g. 620 with a new segment
field with the appropriate length. In transaction WE20, outbound parameters, you can specify
the "segment release in IDoc type" for the communication. Please read the F1 help of this field for further
information.
For your own segments you can define a new version of the segment via
transaction WE31 -> Add Version (Shift+F5).
Please review your online help for more information on this and related topics.
Hope this information helps.
Regards,
David -
Problem with creation of IDOC Segment Type
Hi,
I tried to create IDOC Segment Type Z1LFA1 but error
prompted "Structure Z1LFA1 already exist.".
I tried deleting it at se11 but prompted
"You cannot edit object R3TR TABL Z1LFA1 with the
standard editor"
and at sm30-TADIR, but prompted
with "Cannot delete object directory entry, object exists."
How will go about this??
Please help!
Thanks!hi,
yup, tried doing that on we31 but the segment does not exist yet.
we're currently upgrading from 4.6 to ecc, I think the structure
was tranferred to our ecc client but the idoc segment and idoc type were not. I'll just have to transport it then.
Thanks! -
How to Read Idoc - Segment fields values and status messages
Hi,
I am having one requirement as i want to read the segments along with the field values and also i want to read all the status messages.
first i read the idoc data from EDIDS and segments data from EDID4 and the staus messges from T100. but still i am not getting all the status messages.
is there any other table which contains the information of IDOC segments and field values and also the status messages.
Regards,
KumarYou need to use
V_MSGNO = EDIDS-STAMNO.
CALL FUNCTION 'MESSAGE_PREPARE'
EXPORTING
MSG_ID = EDIDS-STAMID
MSG_NO = V_MSGNO
MSG_VAR1 = EDIDS-STAPA1
MSG_VAR2 = EDIDS-STAPA2
MSG_VAR3 = EDIDS-STAPA3
MSG_VAR4 = EDIDS-STAPA4
IMPORTING
MSG_TEXT = V_TEXT.
WRITE: / V_TEXT.
a® -
Idoc segment field length changes
Hi friends,,
I am new to idoc.
My requirement is in my segment
i am having 5 fields and also this segment is already realeased one.
i wnat to change the field length from 10 to 20 . how to do this ?
actually what i did is
1. i cancel the release for that segment.
2. in that field inside the dataelement i changed the field length from 10 to 20.
3. data elemnt get chaged from 10 to 20 but Export length for that field in Idoc segment still retain the 10 only
can you plz how to resolve this
devaHi,
The way you used is right. ( cancel release or create a new segment )
After you cancel release, try delete that field, and insert a new one.
If it isn't valid still, create a new segment instead.
Regards
Sam -
Custom idoc segment fields not populated
Way back in 1999 someone create a custom Idoc type with custom Idoc segments in it. Unfortunately, they forgot to release one of the segments.
Recently a change was request to add new fields to this custom segment. In order to get the fields transported the segment had to be released.
All worked fine in Dev and the new Idoc segments were populated as expected. However when the idoc segment was moved to the test system all visually appears to be fine but when the idoc is created (status 50) the new fields are not popultated.
In 40B the start of the inbound process was IDOC_INBOUND_DATA. Does anyone know what the new starting point is in 4.7??
I beleive the error is actually that SData is not reading all the input values and stopping right where the old fields end in teh custom segment.
Thanks,
Anthonyadditionally,
SAP will not allow us to release the basic idoc type because it was released in 40B. It also will not allow us to cancel the release since we are now in 620. So, unless anyone has input for this I think the only solution will be to create a successor IDoc type and change our apps to use the new IDoc type with it's enhancements. -
IDOC-Segment Created a idoc document against Billing document
Dear All,
Thanks in advance.
Already created a idoc document against Billing document and one of the IDOC segment is not in the IDOC document output segments(WE05) actually it missed the segment.
so i want to add the segment which it was missed during generation of IDOC document against billing document.
Example:
a) IDOC document misses one segment let suppose "Seg1".
b) In "Seg1" it have only one field let suppose "Field1".
c) But "Field1" does not have any value while generation of IDOC document so it doesn't create the respective segment in IDOC document.
d) so here, i want to edit the IDOC document to add the "Seg1" in the IDOC document and reprocessing the IDOC document.
Please help on this issue.
Regards,
Sridhar.Hello,
If your requirement is to have the Segment even with only 1 Field, you'll have to create an Idoc Extension in WE30.
In order to populate the Custom Segment, Use the Customer Function '002' in the IDOC_OUTPUT_INVOIC which is EXIT_SAPLVEDF_002 where you can actually insert the Segment as a Child Segment of an Appropriate Segment.
You can go for Custom segment with the IDoc Extension so that you dont have to manually insert the Segment again and again while reprocessing it.
Thanks and Regards,
Venkat Phani Prasad Konduri
Maybe you are looking for
-
Hi, I have updated IOS6 yesterday, It was amaizing but I have lost Maps. Earlier it was very easy to access on Maps as a GPS device. I was very much happy with iPhone 4S as it was working with Maps very fast and was able to provide me correct route b
-
Excel 2010 - Userform - VBA How to stop 'Job No' from duplicating itself on next empty row
Hi there Thank you in advance for taking the time to check this out. Objective: To prevent duplication of incident numbers in the datasheet, and format the job number with a prefix of Inc- at the beginning. I currently have the cell customization
-
Can I "show invisibles" in MUSE text?
I'm working with a text column in MUSE, and every time I click in a paragraph the spacing above and below paragraphs goes haywire. I'm using paragraph styles with space above for subheads, and body text without for paragraphs, but it doesn't matter.
-
I have a problem previewing data recorded on DVR machine H.264 trnsfered to the apple machine using a flash disk. The data is in form of video footage. The Mac player warns of missing codec to allow the preview. How do I tell which codec and how will
-
Sending binary data from JSP (1.1)
Hi all: I am using Tomcat 3.2.1 and Apache under Linux Mandrake OS. I have a JSP (1.1) sending binary data (GIF, PDF, DOC ..) using response.getOutputStream().write(data) method. The problem is the precompiler automatically creates the JspWriter and