Programme SAP RSEIDOC3 - Documentation IDoc Record Types and IDoc Types (Parser)

Information about the syntax description

  • Non-terminals can be recognized by the mixture of upper case and lower
  • case characters. Terminals comprise only upper case or only lower caseletters.
    • Empty is empty output.

    • Explanatory comments are enclosed by /* and */.

    • LF is the end-of-line character.

    • An asterisk (*) after an expression means that the expression
    • can occur as often as required.
      • A plus sign (+) after an expression means that the expression
      • must occur at least once.
        • A selective (exclusive!) occurrence of several expressions is marked by
        • an exclamation mark (!).
          • Generally, each token is written in a new line with any subsequent
          • value - or Linefeed/LF are also used as delimiters. This isparticularly useful for the fields TEXT and VALUE_TEXT. A free text isoutput after the tokens TEXT and VALUE_TEXT, which mainly containsblanks. The line must be ended by line feed so that new tokens are notidentified as a result of these blanks. It was decided not to enclosethe free text in inverted commas, as the free text itself may containthese characters.

            Syntax
            Output ::=,,Records
            ,,,,,,Segments
            /* The output comprises the two main parts records andsegments. */
            Records ::=,,empty !
            ,,,,,,BEGIN_RECORD_SECTION LF+
            ,,,,,,,,DC DD DS
            ,,,,,,END_RECORD_SECTION LF+
            /* Records comprise the control, data, and status records. Ifthe record types were not selected on the selection screens, thissection remains empty. */
            DC ::=,,,,BEGIN_CONTROL_RECORD LF+
            ,,,,,,,,Fields
            ,,,,,,END_CONTROL_RECORD LF+
            DD ::=,,,,BEGIN_DATA_RECORD LF+
            ,,,,,,,,Fields
            ,,,,,,END_DATA_RECORD LF+
            DS ::=,,,,BEGIN_STATUS_RECORD LF+
            ,,,,,,,,Fields
            ,,,,,,END_STATUS_RECORD LF+
            /* Each record is described by its fields. */
            Fields ::=,,BEGIN_FIELDS LF+
            ,,,,,,,,Field+
            ,,,,,,END_FIELDS LF+
            Field ::=,,NAME Alphanum LF+
            ,,,,,,TEXT (Alphanum ! empty) LF+
            ,,,,,,TYPE Alphanum LF+
            ,,,,,,LENGTH Num LF+
            ,,,,,,FIELD_POS Num LF+
            ,,,,,,CHARACTER_FIRST Num LF+
            ,,,,,,CHARACTER_LAST Num LF+
            ,,,,,,Values
            Segments ::=empty !
            ,,,,,,BEGIN_SEGMENT_SECTION LF+
            ,,,,,,,,IDoc
            ,,,,,,END_SEGMENT_SECTION LF*
            /* The IDoc type selected is output here. If no IDoc type is containedin the selection, this section remains empty. */
            IDoc ::=,,BEGIN_IDOC Alphanum LF+
            ,,,,,,,,(empty ! EXTENSION Alphanum LF+)
            ,,,,,,,,(Segment ! Group)+
            ,,,,,,END_IDOC LF+
            /* An IDoc type comprises several segments and/or groups. The name ofthe current IDoc type is output directly after the token BEGIN_IDOC. */
            Segment ::=,,BEGIN_SEGMENT Alphanum LF+
            ,,,,,,,,LEVEL Num LF+
            ,,,,,,,,STATUS Status LF+
            ,,,,,,,,LOOPMIN Num LF+
            ,,,,,,,,LOOPMAX Num LF+
            ,,,,,,,,Fields
            ,,,,,,END_SEGMENT LF+
            /* The attributes and the assigned fields are output for each segment.The name of the current segment is output directly after the tokenBEGIN_SEGMENT. */
            Group ::=,,BEGIN_GROUP Num LF+
            ,,,,,,,,LEVEL Num LF+
            ,,,,,,,,STATUS Status LF+
            ,,,,,,,,LOOPMIN Num LF+
            ,,,,,,,,LOOPMAX Num LF+
            ,,,,,,,,Segment
            ,,,,,,,,(Segment ! Group)*
            ,,,,,,END_GROUP LF+
            /* A group has group attributes which are stored in the first segment.The first segment itself possesses default attributes. This firstsegment is also used to identify the beginning of the group within anIDoc type for repetitions. Other segments and groups can followsubsequently. The number of the current group is output directly afterthe token BEGIN_GROUP. */
            Values ::=,,(Single ! Range)* !
            ,,,,,,VALUE_TABLE Alphanum LF+
            /* Values are either defined in the domain (single values/Single orranges/Range), or there is an assigned value table. If no values can befound, this output does not occur. */
            Single ::=,,VALUE 'Alphanum' LF+
            ,,,,,,VALUE_TEXT (Alphanum ! empty) LF+
            Range ::=,,VALUE_RANGE 'Alphanum' - 'Alphanum' LF+
            ,,,,,,VALUE_TEXT (Alphanum ! empty) LF+
            /* A single value is output for Single, a range for Range. Here thealphanumeric output is enclosed in inverted commas. It is followed bythe comment stored in the domain. */
            Alphanum ::=,,(A-Z, a-z, ' ', 0-9)*
            Num ::=,,,,,,(0-9)+
            Status ::=,,,,MANDATORY ! OPTIONAL
            /* The status determines whether a segment or group must or canoccur.*/