Read IDOC segment with qualifier
Hi,
I need to read data into a workArea from a IDOC segment which has Qualifiers for it.
The IDOC or BASIC type is DELVRY03.
Segment E1EDT13.
Qualifier 006
Thx in advance
Mac
DATA:
lx_e1edt13 TYPE e1edt13.
FIELD-SYMBOLS:
<fs_idoc_data> LIKE LINE OF idoc_data.
LOOP AT idoc_data ASSIGNING <fs_idoc_data> WHERE segnam = 'E1EDT13'.
lx_e1edt13 = <ls_idoc_data>-sdata.
IF lx_e1edt13-qualf = '006'.
your code
or get the data into internal table as per your requiremnt
ENDIF.
ENDLOOP.
Similar Messages
-
How to map IDoc segment with qualifiers
Hi everyone!
I have the following problem: In an IDoc of type DESADV01 there can be several segments of type E2EDS01. Each segment has a different qualifier, which is the value of the field SUMID in this case. My target structure (type EDIFACT) now has several segments, each again with a sort of qualifier. Now I have to map the values of certain source segments to the respective target segments.
Exaple (in XML format):
Source
<E1EDS01 SEGMENT="1">
<SUMID>021</SUMID>
<SUMME>0000000001.000</SUMME>
<SUNIT>KGM</SUNIT>
</E1EDS01>
<E1EDS01 SEGMENT="1">
<SUMID>022</SUMID>
<SUMME>0000000001.000</SUMME>
<SUNIT>KGM</SUNIT>
</E1EDS01>
Target
<S_MEA>
<C_C502>
<D_6313>N</D_6313>
</C_C502>
<C_C174>
<D_6411>KGM</D_6411>
<D_6314>1</D_6314>
</C_C174>
</S_MEA>
<S_MEA>
<C_C502>
<D_6313>G</D_6313>
</C_C502>
<C_C174>
<D_6411>KGM</D_6411>
<D_6314>1</D_6314>
</C_C174>
</S_MEA>
(i have omitted several details here, but I'm only interested in the general procedure anyway).
So in general the source segment with qualifier "021" should be mapped to a target structure with qualifier "N" etc.
How can this be done using standard XI mapping techniques?
Regards, JoergHi everyone!
Thanks for your input data - unfortunately this wasn't quite what I was looking for. However I thik I solved my original problem and I just wanted to share this solution with you - maybe it helps others, maybe some of you have suggestions what I could do differently.
To sum up the requirement: There can be multiple input segments, each with a certain qualifier. These input segments have to be mapped to the target segments, respectively - however, the qualifiers change. There can be several segments with qualifiers that do not match the requirement, and required segments might be missing.
So here's what I came up with:
Use the qualifier of the source segments as an input to a <b>FixValues</b> function. In this function, map the desired qualifiers to the value <b>true</b>, use <b>false</b> as the default value. Map the output of the <b>FixValues</b> function to a <b>createIf</b> function and use this to create the desired output segment. This way, for each of the required segments, one target segment will be created. All other segments (with unwanted qualifiers) will be removed.
So far, this technique worked for me - do you have improvements/suggestions?
Regards, Joerg -
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® -
Hi
I have a custom IDOC created with one of the segments being 1000 char. The data is populated through a custom program.
In WE02 I am unable to see all the 1000 char. Even if I export the IDOC to a spreadsheet or word doc it does not show completely all the characters.
I am able to use FM IDOC_Read_Completely to read the IDOC and view the complete segment but I am looking for a standard transaction.
Any inputs on how the I can view all the data in the segment in a standard trx ?.hi,
the data in the edid4-sdata is filled with according to Segement field lenght.
you can directly read from table with Idoc number from table EDID4 in se16.
or we05 or we02 or we19 or BD87 transactions.
prabhudas -
Dump while extracting IDOC segments with FM 'EDI_SEGMENTS_GET_ALL'
Hi All,
I am fetching all the available segments for a perticular IDOC with the help of function module "EDI_SEGMENTS_GET_ALL".
In production i am getting dump because of large no. of segments for the IDOC.
The short dump is as follows:
Runtime error TSV_TNEW_PAGE_ALLOC_FAILED
Opgetreden op 11.11.2008 om 23:11:41
No storage space available for extending the internal table.
What happened?
You attempted to extend an internal table, but the required space was
not available.
Error Analysis
The internal table (with the internal identifier "IT_11") could not be
enlarged any further. To enable error handling, the internal table had
to be deleted before this error log was formatted. Consequently, if you
navigate back from this error log to the ABAP Debugger, the table will
be displayed there with 0 lines.
When the program was terminated, the internal table concerned returned
the following information:
Line width: 1062
Number of lines: 351368
Allocated lines: 351368
New no. of requested lines: 8 (in 1 blocks)
Information about breaking off
The termination occurred in the ABAP program "SAPLEDI1" in
"EDI_SEGMENTS_GET_ALL".
The main program was "SAPMSSY1 ".
The termination occurred in line 39 of the source code of the (Include)
program "LEDI1U03"
of the source code of program "LEDI1U03" (when calling the editor 390).
Is there any other function module or method sothat i can fetch all the segments without causing dump.
Thanks in advance
TajTry to call fm EDI_DOCUMENT_CLOSE_READ after fm call EDI_SEGMENTS_GET_ALL?
* procedure to read idoc (open - read - close)
call function 'EDI_DOCUMENT_OPEN_FOR_READ'
if sy-subrc = 0.
" <<<<< clear your internal table
call function 'EDI_SEGMENTS_GET_ALL'
endif.
* close idoc after usage
call function 'EDI_DOCUMENT_CLOSE_READ'
a® -
How to read multiple segments with same name in IDOC
I want to read segments in IDOC say e1edk02.I am using orders05 idoc.
BUT If I use the statement
CONSTANTS :
c_segnam1 type char19 value 'E1EDK02'.
read table idoc_data into wa_idocdata with key segnam = c_segnam1.
It will read only one segment.but we are populating 2 e1edk02 segments.LOOP AT IDOC_DATA
WHERE DOCNUM = IDOC_CONTRL-DOCNUM.
CASE IDOC_DATA-SEGNAM.
WHEN 'E1EDK02'.
MOVE IDOC_DATA-SDATA TO E1EDK02.
reward if useful
check FM idoc_input_orders for reference -
IDOC segment with multiple lines
Hi,
I have a requirement where I need to populate the multiple lines in one segment without getting created multiple segment.
I am generating material with multiple line data in the additional data using MATMAS05 IDOC for segment E1MTXHM but its generating multiple sub segments. I need to have multiple lines in one segment and not multiple segment.
Please let me know how to achieve multiple lines in one segment.
Thanks & Regards,
RayanHi Subas,
I haven written any code as I am triggering IDOC through BD10. This is a testing requirement and we need any IDOC irresepective of MATMAS, DEBMAS, CREMAS etc etc which can have multiple lines in a single segemnt.
Sample IDOC:
Z2XXXXD000 00002300002203CTDI-PA
90210 Testing Address
CA
Beverly Hills
United States
Z2XXXD000 00002400002203ON TESTING
303 308 5319
Z2XXXXC000 00002500000102Z004E
Actually every IDOC I am generating is getting multiple segment and each segment holding one line and my requirement is that all the lines should be get accomadated in a single segment like the above sample IDOC.
Actually each segment has segment name and IDOC no. followed by field values but my requirement is within one segment name and IDOC no. all the field values get accomadated. Hope you got the understanding of what my requirement is? Please guide me how to trigger multiple line in a segment.
Thanks & Regards,
Rayan -
Idoc segment not apperaing for PO creation.
Dear All.
Sceanrio:
Once PO is created , NEU ouptut gets triggered.On release of PO, it generates an outbound idoc.
Issue.
In this outbound idoc the segment E1EDKA1 WE is missing.This segment gives the Ship to address in the PO, ie normally the plant address to which the material is shipped.
Analysis:
This PO has 3 line items and these are created by reffering 3 different PR s.So my question here is , whether is this standarad SAP behaviour where Ship to address segment wont get populated into idocs for multiple line item POs.Why i am asking this is that, if suppose the PO has 10 different line items , with 10 different plants.Each plant has different address.Then how system will decide which ship to address will populate in E1EDKA1 WE segment.
Or is there any other behaviours, when the PO has multiple line items.
Please let me know your thoughts on this.
Regards
ShyamHello Shyam ,
The reason for this behavior could be that tthe items in the IDOC have a different delivery address maintained in the Ourchase Order. If the delivery address for all items is the same , the segment E1EDPA1 with qualifier WE will be not populated. Instead of generating E1EDPA1 , the system will create one E1EDKA1 segment with qualifier WE. This will prevent on receiving side the creation of the same delivery address for all items.
I hope this information has been helpful.
Best Regards,
Frank Farinella -
IDOC SEGMENT QUALIFIER DOUBT...
Gurus,
I was looking at a givcen IDOC which was posted. The IDOC was of t5ype INVOIC01. I see that there are couple of segments with the same name but with different IDOC qualifier like:
EIEDP02 which has three qulaifier reocrds like 001, 002 and 016. But the data gets posted only from one of this qualifier record.
What is a qualifier ? How the system comes to know what qualifier record should be used to post data?
Regards,
Rajesh.>What is a qualifier ? How the system comes to know what qualifier record should be used to post data?
if it is inbound it should be handled by Inbound processing function module. if it is Outbound then a predefined mapping (Requirement specific) can tell you which qualifier belongs to what data.
and also Read the Idoc type documentation using tcode WE61. -
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! -
Read MULTIPLE idocs data with all sgmn to my internal table in a single
Dear SAP Folks!
I have a question, I know to read SINGLE idoc data with all segments, we have FM IDOC_READ_COMPLETELY but my requirement is to Read MULTIPLE idocs data with all segments to my internal table in a single shot without keeping this FM in loop! since it is performance issue, at a time i may want to read 1000 idocs data!
Could anyone please let me know is there any way to get this, keeping mind of performance and any other FM?
Best Regards,
SriniHi,
I know idoc numbers and i can write a select Query to DB table EDID4 to get all segments data to my internal table. But i am looking for FM to do this. because i have too many number of idocs and each idoc is having many segments(I am thinking in performance point of view!) The FM IDOC_READ_COMPLETELY can accept only ONE IDOC number as import parameters at a time to get segment data. in similar way do we have any other FM? or other way? except select query to EDID4 table?
Best Regards,
Srini -
How to map idoc segment field E1IDB02-FIIKONTO with BSEG-ESRNR.
Hi,
I have searched for lot of threads in the forum , and also i tried myself but i am not able to map this fields segment with my logic, so please anyone kindly contribute in mapping idoc segment field with the logic given below:
idoc type :PAYEXT outbound idoc.
message type: PEXR2002
This is my logic: i need to populate the ISR number(BSEG-ESRNR ) in idoc segment field( E1IDB02-FIIKONTO)
DATA : str1 TYPE string,
len1 TYPE i,
len2 TYPE i,
str2 TYPE string,
str3 TYPE string.
str1 = '01-1234-4'. ---> BSEG-ESRNR "ISR Subscriber Number
REPLACE FIRST OCCURRENCE OF '-' IN str1 WITH '_'.
REPLACE ALL OCCURRENCES OF '-' IN str1 WITH space.
CONDENSE str1.
len1 = STRLEN( str1 ).
IF len1 LT '9'.
len2 = '9' - len1.
CASE len2.
WHEN '1'.
REPLACE ALL OCCURRENCES OF '_' IN str1 WITH '00'.
WHEN '2'.
REPLACE ALL OCCURRENCES OF '_' IN str1 WITH '000'.
WHEN '3'.
REPLACE ALL OCCURRENCES OF '_' IN str1 WITH '0000'.
WHEN '4'.
REPLACE ALL OCCURRENCES OF '_' IN str1 WITH '000000'.
WHEN OTHERS.
ENDCASE.
ELSEIF len1 EQ '9'.
REPLACE ALL OCCURRENCES OF '_' IN str1 WITH '0'.
ELSEIF len1 GT '9'.
REPLACE ALL OCCURRENCES OF '_' IN str1 WITH space.
CONDENSE str1.
ENDIF.
Thanks in Advance.Resolved.
-
IDOC segment report with domain lookup
Does anyone know of a report that will list an IDOC's segments with the qualifier texts expanded.
Example:
The E1EDK14-QUALF segment belongs to domain EDI_QUALFO (IDOC qualifier organization) which has 19 values in its value table.
I'd like a report that would print the IDOC segment by segment along with the qualifiers value text.Hello Ed,
Use function module 'IDOCTYPE_READ_COMPLETE'. This will give you a list of segments with description, a list of fields with description, a list of domain values for the fields and a list of message types connected to that IDOC type.
You need to populate PI_IDOCTYP with the IDOC type and possibly PI_CIMTYP with the extension, if you are using an extension with that type. If not, Idoc Type is sufficient.
Regards,
Michael -
Find the idoc segment link with Sap Table
Dear Abaers,
I am new to Idoc. i have one Idoc (Orders01) for creating sales order.
I had seen the t-codes WE 30 and WE 60 to know the field description.
The fielddescription shows names like name1 name2 ort01 etc.
i want to know what are the db tables involved for that particular idoc segment.
Thanks in Advance,
AratiHi Arati,
to get the description name:
WE30 transaction and check the segments name available.
With the segment name, go to WE31 and check the fields used and column 'Data element'.
Double-click in data element (or inform in se11), you have the description value of the field.
About the tables involved:
Click in 'Where use list' os this data element. -
IDOC: How to create child segment with abap code.
Hi,
I'am trying to write an abap code to create segments for an Idoc which structure is the following:
ZLE_00060_DLVY
> E1EDL20
> Z1DEL_CONS
>Z1DEL_MAT_HEADER
> Z1DEL_MAT
> E1EDL20RET2
> E1EDL22
> E1EDL21
> E1EDL23
> E1EDL51
I receive a sintax error: Error in IDoc with status 26 .
Checking the result I note all segment at the same level and an error about the segment E1EDL22
EDI: Syntax error in IDoc (segment cannot be identified)
Message no. E0078
Diagnosis
The segment E1EDL22 does not occur at the current level of the basic
type DELVRY05 (extension ZLE_00060_DLVY).
This error can have several reasons:
o The segment E1EDL22 is assigned to a group whose header segment does
not occur.
o The segment E1EDL22 does not exist in the syntax description of the
basic type DELVRY05 (extension ZLE_00060_DLVY).
o 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
DELVRY05 (extension ZLE_00060_DLVY).
After the error I have:
data records
E1EDL20
Z1DEL_CONS
Z1DEL_MAT_HEADER
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
Z1DEL_MAT
E1EDL20RET2
E1EDL22
E1EDL21
Abap code:
idoc_data-segnam = 'Z1DEL_CONS'.
idoc_data-sdata = s_z1del_cons.
append idoc_data.
idoc_data-segnam = 'Z1DEL_MAT_HEADER'.
s_z1del_mat_header-tsegment = 'MATERIAL'.
idoc_data-sdata = s_z1del_mat_header.
append idoc_data.
clear idoc_data-sdata. <<<<<<<<<<< how to indent the structure because this is a child.
idoc_data-sdata = s_Z1DEL_MAT.
idoc_data-segnam = 'Z1DEL_MAT'.
append idoc_data.
idoc_data-segnam = 'E1EDL20RET2'.
idoc_data-sdata = s_E1EDL20RET2.
append idoc_data.
clear idoc_data.
idoc_data-segnam = 'E1EDL22'.
idoc_data-sdata = s_e1edl22.
append idoc_data.
clear idoc_data.
idoc_data-segnam = 'E1EDL21'.
idoc_data-sdata = s_e1edl21.
append idoc_data.
Any help will be well appreciated.
Thanks in advance.
Regards,
GiovanniHi,
following in debugging mode the abap code of the INCLUDE ZXTRKU02 where is defined the TABLES IDOC_DATA STRUCTURE EDIDD, I find that all field of the table IDOC_DATA are not set. More exactly my expectation is to find values for SEGNUM, HLEVEL, PSGNUM.
In a few words I need to execute an enhancement, via abap code, of the struscure of the idoc before sending it out since I have a requirement to test this enhancement in my XI environment, receiving as input this ideoc modified.
Then, I need to add a new segment and one child.
Any suggestion will be well appreciated.
Thanks in advance.
Regards,
Giovanni
Maybe you are looking for
-
How to use cfloop index value as part of another variable
Hello, I have a RATE form that first asks "how many rates will you be adding?" that answer generates a series of form elements based on the answer. You then have a form grid to populate, 3 values for each rate (price, code, name). This part works fin
-
How to change the Maxinum of item in a iview
i use KM to display news, but it only can display 5 item,how to change it to 10?
-
I installed firefox on my new computer (Win XP). So how can I move all my firefox bookmarks from my old computer to the new one and use them?
-
Use of Sales Employee in HR and SD
Hi We have this scenario in our company. 1.A Employee is hired using the HR module and h gets a personnel number.2.we maintain infotype 0900 "Sales Data" for this employee here we select his Sales Org , Sales Office , Sales Group. 3.We want to send s
-
Can anyone tell me how to export a sequence out of premiere pro cc, so i can watch on the TV. I have tried mp4 hd265 and others. I know AVI works, but I can't find it in export. [Please choose a short description for the thread title and only post th