Developer ToolsFree checklistPDF, Excel, Word exportSAP ECC 6.0All SAP ECC 6.0 tools

SAP ECC IDoc Extension and Custom Segment Checklist

This checklist covers adding a custom segment to a standard IDoc in SAP ECC 6.0: designing the segment, building it in WE31, WE30 and WE82, filling or reading it in a user exit, setting up partner profiles and testing. It is written for ABAP developers and integration consultants extending ORDERS, MATMAS and similar IDocs.

0%

0 of 27 items complete

6 critical items still open - these are the highest-risk gaps.

Download checklist:

Design

Build

Fill and read logic

Partner profile and runtime

Test and transport

Critical items are the usual reasons a new segment never appears: unreleased segment, missing WE82 assignment or extension in WE20, a wrong exit or a syntax error from segment order.

Get your IDoc extension reviewed

Send the WE30 structure and exit code and we will check segment design, exit choice and partner setup.

Optional. The tool and every export work without this. No spam.

Was this tool useful?

How IDoc extensions work

A basic type such as ORDERS05 is SAP's fixed structure. An extension type adds customer segments to it without changing SAP's definition, so upgrades are unaffected. The segment is created in WE31 as a segment type (Z1...) with a versioned definition (Z2...000). WE30 builds the extension: you choose the basic type, add the Z segment under the right parent and set occurrences. WE82 ties message type, basic type, extension and release together. At runtime the control record carries the basic type in IDOCTP and the extension in CIMTYP, which is how the receiver knows to expect the new segment.

  • WE31: segment editor
  • WE30: basic types and extensions
  • WE82: message type assignment
  • WE20: partner profiles, WE21: ports

Filling and reading the segment

Standard function modules do not know your segment, so you fill or read it in an exit. For inbound sales orders through IDOC_INPUT_ORDERS, enhancement VEDA0001 offers EXIT_SAPLVEDA_001 to read segment data into the order structures. For outbound purchase orders created through message control, enhancement MM06E001 offers EXIT_SAPLEINM_002 to append segments. For MATMAS sent through ALE, enhancement MGV00001 offers EXIT_SAPLMV01_002. Implement them in a CMOD project, and always confirm the exit and its parameters in SMOD on your release, because interfaces differ between IDoc functions.

Worked example: ZORDERS05EXT

A customer sends a line-level drawing revision. The team creates segment Z1DRAWREV with fields DRAWNO (CHAR 25) and REVLEV (CHAR 2) in WE31 and releases it. In WE30 it creates extension ZORDERS05EXT on ORDERS05 with Z1DRAWREV under E1EDP01, occurrences 0 to 1, and releases it. WE82 assigns ORDERS, ORDERS05, ZORDERS05EXT and the release. The partner adds CIMTYP ZORDERS05EXT to its control record. EXIT_SAPLVEDA_001 reads the segment and fills a custom field on the item. WE19 testing shows status 53 with the revision on the order.

Common mistakes

Forgetting to release the segment, so it cannot be transported or used in production. Adding the extension in WE30 but not in WE82, which produces syntax errors. Leaving the extension field blank in the outbound WE20 parameters. Using non-character field types. Coding in the wrong exit and seeing nothing in the IDoc. Testing only in WE19 without a full end-to-end run through message control or ALE.

Frequently Asked Questions

How do I add a custom segment to an SAP IDoc?

Create and release the segment in WE31, create an extension in WE30 on the basic type with the segment under the right parent, assign message type, basic type and extension in WE82, fill or read the segment in the relevant user exit, set the extension in the WE20 outbound partner profile, and test with WE19.

Which user exit is used for inbound ORDERS IDocs?

Inbound ORDERS uses function module IDOC_INPUT_ORDERS. Its customer exits are in enhancement VEDA0001; EXIT_SAPLVEDA_001 is commonly used to move custom segment data into the order. Check the exits listed in SMOD for VEDA0001 on your release to pick the one called at the point you need.

Why do I get status 26 after adding an extension?

Status 26 is a syntax error in an outbound IDoc. Typical causes are a segment in the wrong position, too many occurrences, an extension not assigned in WE82 or not named in the partner profile, or an unreleased segment. Compare the IDoc in WE02 with the structure in WE30 or WE60.

Should I copy a basic type or create an extension?

Create an extension. Copying a basic type to a Z basic type cuts it off from SAP's later versions and from the standard IDoc functions, while an extension keeps the standard processing and only adds your segments. A new basic type makes sense only for fully custom message types.

If you want your integration team to ask ECC about IDoc volumes, errors and segment contents in plain English on your own servers, we can set that up.

ArchRay builder
Design the on-prem AI stack for SAP ECC 6.0: model, GPUs, RAG pipeline, guardrails
See memory, speed and cost as you swap parts, then export the diagram. Free, in your browser.
Open the builder

Keep exploring

Free tools

ERP fixes and how-tos

AI on your ERP

Integrations