Monday, April 21, 2008

Program for Outbound IDOC

All IDoc data records are exchanged in a fixed format, regardless of the segment type. The
segment’s true structure is stored in R/3’s repository as a DDic structure of the same name.
The segment info tells the IDoc processor how the current segment data is structured
and should be interpreted. The information, which is usually the only interest, is the
name of the segment EDID4-SEGNAM.

The segment name corresponds to a data dictionary structure with the same name,
which has been created automatically when defining the IDoc segment definition
with transaction WE31 .

For most applications, the remaining information in the segment info can be ignored
as being redundant. Some older, non-SAP-compliant partners may require it. E.g.
the IDoc segment info will also store the unique segment number for systems, which
require numeric segment identification.

To have the segment made up for processing in an ABAP, it is usually wise to move
the segment data into a structure, which matches the segment definition.
For a segment of type e1maram the following coding is commonly used:


TABLES: e1maram.
. . .
MOVE edidd-sdata TO e1maram.


Then you can access the fields of the IDoc segment EDIDD-SDATA as fields of the
structure e1maram .


WRITE: e1maram-matnr.


The following coding sample, shows how you may read a MATMAS IDoc and
extract the data for the MARA and MARC segments to some internal variables and
tables.


DATA: xmara LIKE e1maram.
DATA: tmarc AS STANDARD TABLE OF e1marcm
WITH HEADER LINE.
LOOP AT edidd.
CASE edidd-segnam.
WHEN 'E1MARAM'.
MOVE edidd-sdata TO xmara.
WHEN 'E1MARCM'.
MOVE edidd-sdata TO tmarc.
APPEND tmarc.
ENDCASE.
ENDLOOP.
now do something with xmara and tmarc.

No comments: