-
Notifications
You must be signed in to change notification settings - Fork 0
/
zrep_c8a016_fill_tabs_cls1.prog.abap
133 lines (84 loc) · 2.81 KB
/
zrep_c8a016_fill_tabs_cls1.prog.abap
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
*&---------------------------------------------------------------------*
*& Include ZREP_C8A016_FILL_TABS_CLS1
*&---------------------------------------------------------------------*
CLASS lcl_fill_demo_data DEFINITION.
PUBLIC SECTION.
METHODS constructor.
METHODS start_of_sel.
METHODS end_of_sel.
PRIVATE SECTION.
METHODS _fill_orders.
METHODS _fill_invoices.
METHODS _empty_tables.
ENDCLASS.
CLASS lcl_fill_demo_data IMPLEMENTATION.
METHOD constructor.
ENDMETHOD.
METHOD start_of_sel.
IF p_mode EQ 'F'.
_empty_tables( ).
ENDIF.
_fill_orders( ).
_fill_invoices( ).
COMMIT WORK AND WAIT.
MESSAGE s000(cl) WITH 'Data filled..'.
ENDMETHOD.
METHOD end_of_sel.
ENDMETHOD.
METHOD _fill_orders.
DATA lt_ordh TYPE STANDARD TABLE OF ztc8a016_ordh WITH DEFAULT KEY.
DATA ls_ordh TYPE ztc8a016_ordh.
DATA lt_ordi TYPE STANDARD TABLE OF ztc8a016_ordi WITH DEFAULT KEY.
DATA ls_ordi TYPE ztc8a016_ordi.
DO 10000 TIMES.
ls_ordh-mandt = sy-mandt.
ls_ordh-vbeln = 1020304000 + sy-index.
ls_ordh-customer = |CUST{ 2500 + sy-index MOD 17 }|.
CONDENSE ls_ordh-customer NO-GAPS.
ls_ordh-order_date = sy-datum - ( sy-index MOD 59 ).
ls_ordh-crdt = sy-datum.
DO 4 TIMES.
ls_ordi-mandt = ls_ordh-mandt.
ls_ordi-vbeln = ls_ordh-vbeln.
ls_ordi-posnr = sy-index.
ls_ordi-matnr = |DEMO_MATNR_{ sy-index }|.
APPEND ls_ordi TO lt_ordi.
ENDDO.
APPEND ls_ordh TO lt_ordh.
ENDDO.
MODIFY ztc8a016_ordh FROM TABLE lt_ordh.
MODIFY ztc8a016_ordi FROM TABLE lt_ordi.
ENDMETHOD.
METHOD _fill_invoices.
DATA lt_invh TYPE STANDARD TABLE OF ztc8a016_invh WITH DEFAULT KEY.
DATA ls_invh TYPE ztc8a016_invh.
DATA lt_invi TYPE STANDARD TABLE OF ztc8a016_invi WITH DEFAULT KEY.
DATA ls_invi TYPE ztc8a016_invi.
DO 9000 TIMES.
ls_invh-mandt = sy-mandt.
ls_invh-inv_num = 5550607000 + sy-index.
ls_invh-payer = |PAYER{ 2500 + sy-index MOD 17 }|.
CONDENSE ls_invh-payer NO-GAPS.
ls_invh-invoice_date = sy-datum - ( sy-index MOD 91 ).
ls_invh-crdt = sy-datum.
DO 4 TIMES.
ls_invi-mandt = ls_invh-mandt.
ls_invi-inv_num = ls_invh-inv_num.
ls_invi-inv_posnr = sy-index.
ls_invi-matnr = |DEMO_MATNR_{ sy-index + 2 }|.
APPEND ls_invi TO lt_invi.
ENDDO.
APPEND ls_invh TO lt_invh.
ENDDO.
MODIFY ztc8a016_invh FROM TABLE lt_invh.
MODIFY ztc8a016_invi FROM TABLE lt_invi.
ENDMETHOD.
METHOD _empty_tables.
DELETE FROM ztc8a016_ordh.
DELETE FROM ztc8a016_ordi .
DELETE FROM ztc8a016_invh .
DELETE FROM ztc8a016_invi .
COMMIT WORK AND WAIT.
ENDMETHOD.
ENDCLASS.
DATA lo_fill_demo_sd TYPE REF TO lcl_fill_demo_data.