/
dynamisch_sätze_vervielfältigen
61 lines (39 loc) · 1.99 KB
/
dynamisch_sätze_vervielfältigen
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
* Input Parmeter ir_data (Referenz auf Datenpackage)
DATA:
lr_data TYPE REF TO data.
FIELD-SYMBOLS:
* Felder
<fs_zyylvstuf> TYPE any,
<fs_zyylbssvs> TYPE any,
<fs_zyylplant> TYPE any,
* Strukturen
<fs_data_tmp> TYPE any,
<fs_data> TYPE any,
<fs_vsfil> TYPE me->ty_vsfil,
* Tabellen
<ft_data> TYPE STANDARD TABLE,
<ft_data_tmp> TYPE STANDARD TABLE.
* Datenpaket das angereichert werden soll zuweisen
ASSIGN ir_data->* TO <ft_data>.
* Datenbojekt temporäre Tablle erstellen. Ansonsten würde es durch die Vervielfältigung einen Endloop produzieren.
CREATE DATA lr_data LIKE <ft_data>.
ASSIGN lr_data->* TO <ft_data_tmp>.
* Datenpaket abarbeiten und Einzelrecs anreichern
LOOP AT <ft_data> ASSIGNING <fs_data_tmp>.
" VS und Stufe auslesen --> Damit wird im VSFil den Betrieb ermittelt
ASSIGN COMPONENT '/BIC/ZYYLVSTUF' OF STRUCTURE <fs_data_tmp> TO <fs_zyylvstuf>.
ASSIGN COMPONENT '/BIC/ZYYLBSSVS' OF STRUCTURE <fs_data_tmp> TO <fs_zyylbssvs>.
" Vervielfätigung der Sätze | über VSFIL mit VS und Stufe
LOOP AT me->pt_vsfil ASSIGNING <fs_vsfil>
WHERE /bic/oizyylvstuf = <fs_zyylvstuf> AND /bic/oizyylvsfil = <fs_zyylbssvs>.
" Betrieb aus VSFIL (VS + ST = Betrieb) ergänzen
ASSIGN COMPONENT '/BIC/zyylplant' OF STRUCTURE <fs_data_tmp> TO <fs_zyylplant>.
<fs_zyylplant> = <fs_vsfil>-/bic/oizyylplant.
" Neuer Datensatz anfügen | Vervielfältigung
APPEND <fs_data_tmp> TO <ft_data_tmp>.
ENDLOOP.
ENDLOOP.
" Inahlt des Datenpakets löschen
FREE: <ft_data>.
" Inahlt der temp Tabelle an das Datenpaket übergeben
<ft_data>[] = <ft_data_tmp>[].