SAP Programming Syntax for Provide in ABAP

The sap programming language ABAP syntax for provide is discussed here in detail and we have done about print control in the previous post.

Basic form

PROVIDE f1 f2 ... FROM itab1
g1 g2 ... FROM itab2
...
* FROM itabi
...
BETWEEN f AND g.

Effect

Retrieves the contents of the specified fields from the internal tables ( itab1 , itab2 , ...) and places them in the table header lines within the required range. Also executes the processing block enclosed by the PROVIDE and ENDPROVIDE statements for each range.

For itab1 , itab2 ... only tables with header lines are allowed.

Basic principle:

The diagram below illustrates the functionality of the PROVIDE statement for the most simple case where just two tables A and B are to be processed:

IA1 IA2
|-----------| |--------------| table A
: : : :
: IB1 : IB2 : :
: |-----------| |-------------| : table B
: : : : : : : :
: : PROVIDE area : : :
...|----------------------------------------|...
: : : : : : : :
:TI1: TI2 :TI3: : TI4 : TI5 : TI6 :
...|---|-------|---| |-------|-----|-----|...

result ranges

The data structures which form the basis for the table lines must each contain two components which can be interpreted as a range (e.g. start date and end date). In the diagram, the ranges belonging to the entries in table A are marked with IA1 or IA2 , and those in table B with IB1 or IB2 .

If you split the ranges of both tables into overlapping and non-overlapping ranges and then form the union set with the PROVIDE area, this results in 6 sub-ranges TI1 to TI6 . In these sub-ranges, the values of the tables A and B are constant. The PROVIDE1 statement makes the contents of the tables A and B available for the 6 sub-ranges, one after the other. It thus acts as a kind of loop where the data of the tables involved can be processed1 with reference to each range.

Effect

General principle

Each of the specified internal tables has two fields which contain the line-related validity range. You can determine these in the DATA statement with the addition " VALID BETWEEN ... AND ...

". If this addition is not used, sub-fields of the table determine these range fields (e.g. VALID BETWEEN first field AND second field). These fields can be date fields, time fields or even number fields. Both these two fields and also f and g should be the same type.

PROVIDE splits the range f to g into sub-ranges so that each of the fields ( f1 , f2 , ...) specified for each table is constant in this range and so that each sub-range is as large as possible (range limits are considered part of the range).

Each time the processing passes through the loop, the current range limits and the specified sub-fields are placed in the header lines of the internal tables. If you want to make all subfields available, enter '*' instead of the field list. The unspecified sub-fields are set to their initial value (CLEAR ).

It is a requirement that the ranges within a table are in ascending order and not overlapping. However, there can be gaps between one upper range limit and the next lower range limit. For each table itab1 , itab2 ... , the automatically generated fields itab1_VALID , itab2_VALID , ... indicate (with 'X' oder Leerzeichen ' ' ) whether a suitable entry was found for the current sub-range.

sap edi with out message control
sap edi outbound process with message control for purchase introduction
And part two of edi outbound with message control for Purchase order
Cost center report for open line items of SAP
ERP Introduction