Professional Documents
Culture Documents
1 Table type
The internal table issue is replaced by a table of type HASHED.
***********************************************************************
DATA
************************************************************************
DATA itab TYPE TABLE OF ty_tab WITH HEADER LINE.
*DATA issue TYPE TABLE OF ty_issue WITH HEADER LINE.
DATA issue TYPE HASHED TABLE OF ty_issue
WITH UNIQUE KEY order_# ord_pos WITH HEADER LINE.
issue-order_# = itab-order_#.
issue-ord_pos = itab-ord_pos.
* APPEND issue.
INSERT TABLE issue.
****************************************************************************
MATCH_ORDERS_TO_PGI
****************************************************************************
.....
****************************************************************************
MATCH_ORDERS_TO_PGI
****************************************************************************
* >>> SOLUTION
LOOP AT itab ASSIGNING <fs_itab>.
IF <fs_itab>-order_# NE tmp_ord OR
<fs_itab>-ord_pos NE tmp_pos.
IF sy-subrc EQ 0.
MOVE: issue-pgi_qty TO mpd_pgi,
issue-pgi_qty TO crd_pgi.
ELSE.
CLEAR: mpd_pgi,
crd_pgi.
ENDIF.
ENDIF.
PERFORM apply_pgi_docs.
ENDLOOP.
****************************************************************************
APPLY_PGI_DOCS
****************************************************************************
FORM apply_pgi_docs.
* >>> SOLUTION
* All 'itab' is replaced by '<fs_itab>'
* Manufactured Promised - issue Qty
IF mpd_pgi >= <fs_itab>-mpd_qty.
mpd_pgi = mpd_pgi - <fs_itab>-mpd_qty.
<fs_itab>-mpd_qty = 0.
ELSE.
* MODIFY itab.
ENDIF.
****************************************************************************
CURRENCY_CONVERSION
****************************************************************************
FORM currency_conversion.
3 The identical SELECTs on table KKNA1 are avoided by internal buffering in the program.
************************************************************************
* TYPES
************************************************************************
TYPES: BEGIN OF ty_buffer_kkna1,
kunnr LIKE kkna1-kunnr,
name1 LIKE kkna1-name1,
END OF ty_buffer_kkna1.
.....
************************************************************************
* DATA
************************************************************************
* Buffer table KKNA1
DATA buffer_kkna1 TYPE HASHED TABLE OF ty_buffer_kkna1
****************************************************************************
PROCESS_GET_NAME1
****************************************************************************
FORM process_get_name1.
* >>> SOLUTION
READ TABLE buffer_kkna1 WITH TABLE KEY kunnr = itab-kunnr.
IF sy-subrc <> 0.
* >>> SOLUTION
SELECT SINGLE name1 FROM kkna1
INTO buffer_kkna1-name1 WHERE kunnr EQ itab-kunnr.
buffer_kkna1-kunnr = itab-kunnr.
INSERT TABLE buffer_kkna1.
ELSE.
itab-name1 = buffer_kkna1-name1.
ENDIF.