logseq_kauer/assets/MPDV_LZ_PP_HYINFO_GETF01_16...

631 lines
22 KiB
Plaintext

*----------------------------------------------------------------------*
***INCLUDE /MPDV/LZ_PP_HYINFO_GETF01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form /MPDV/satzart_am
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_WA_HYINFO_ORDERID text
* -->P_WA_HYINFO_SEQUENCE text
* -->P_WA_HYINFO_OPERATION text
* -->P_WA_HYINFO_SUB_OPER text
* -->P_WA_HYINFO_SUBSYSTEM_GROUPING text
* <--P_NEW_HYINFO text
*----------------------------------------------------------------------*
FORM /mpdv/satzart_am
USING sub_orderid TYPE aufnr " Auftragsnr.
sub_sequence TYPE aplfl " Folgennr.
sub_operation TYPE vornr " Vorgangsnr.
sub_sub_oper TYPE uvorn " U-Vorg.nr.
sub_subsystem_grouping TYPE bdegr " BDE-Grupp.
* Die selektierten Daten werden an die bestehende Tabelle
* für die neuen Sätze angefügt.
CHANGING value(sub_hyinfo) TYPE /mpdv/hyinfo_tab.
* Konstante für die Satzart
CONSTANTS sub_recordtype TYPE /mpdv/recordtype VALUE 'AM'.
* Lokale ITAB für alle Komponentendaten und Materialkurztext
TYPES: BEGIN OF komplist_str,
matnr LIKE resb-matnr, " Materialnummer
potx1 LIKE resb-potx1, " Zusatztext Stelle 1..30
potx2 LIKE resb-potx2, " Zusatztext Stelle 1..30
esmng LIKE resb-esmng, " Einsatzmng f. 1 Teil Vor.menge
meins LIKE resb-meins, " Mengeneinheit
bdmng LIKE resb-bdmng, " Bed.mng. f. gesamte Vor.menge
posnr LIKE resb-posnr, " Nummer der Stücklistenposition
fmeng LIKE resb-fmeng, " Kennzeichen fixe Menge
rgekz LIKE resb-rgekz, " Kennz. retrograde Entnahme
werks LIKE resb-werks, " Werk
lgort LIKE resb-lgort, " Lagerort
maktg LIKE makt-maktg, " Materialkurztext
END OF komplist_str.
* Struktur für die Zuweisung zu Infotext1
TYPES: BEGIN OF infotext1_str,
matnr TYPE matnr, " Materialnummer
END OF infotext1_str.
* Struktur für die Zuweisung zu Infotext2
TYPES: BEGIN OF infotext2_str,
potx1 TYPE potx1, " Zusatztext Stelle 1..30
potx2 TYPE potx2, " Zusatztext Stelle 1..30
END OF infotext2_str.
* Struktur für die Zuweisung zu Infotext3
TYPES: BEGIN OF infotext3_str,
* ACHTUNG: ESMNG in dieser Sturktur vom Typ CHAR wg. Typkonvertierung
esmng TYPE char15, " Einsatzmenge für 1 Teil Vor.menge
meins TYPE meins, " Mengeneinheit
* ACHTUNG: BDMNG in dieser Sturktur vom Typ CHAR wg. Typkonvertierung
bdmng TYPE char15, " Bedarfsmenge für gesamte Vor.menge
posnr TYPE aposn, " Nummer der Stücklistenposition
fmeng TYPE fmeng, " Kennzeichen fixe Menge
rgekz TYPE rgekz, " Kennzeichen retrograde Entnahme
werks TYPE werks, " Werk
lgort TYPE lgort_d, " Lagerort
END OF infotext3_str.
* Struktur für die Zuweisung zu Infotext4
TYPES: BEGIN OF infotext4_str,
maktg TYPE maktg, " Materialkurztext
END OF infotext4_str.
* Dann die ITAB aufbauen
DATA my_komplist TYPE STANDARD TABLE OF komplist_str WITH DEFAULT KEY.
* Und zum Schluss den Arbeitsbereich einrichten
DATA wa_my_komplist TYPE komplist_str.
* Variablen für Infotextfelder deklarieren
* Ist zwar etwas umständlicher, macht aber hintenraus
* die Zuordnung leichter.
DATA:
my_infotext1 TYPE infotext1_str,
my_infotext2 TYPE infotext2_str,
my_infotext3 TYPE infotext3_str,
my_infotext4 TYPE infotext4_str.
* Variable für die Seitenzahl
DATA sub_pageno TYPE /mpdv/pageno VALUE '0'.
* Lokaler Arbeitsbereich für HYINFO-ITAB
DATA wa_sub_hyinfo TYPE /mpdv/hyinfo_struct.
* Zur Umwandlung Exponentialdarstellung wird das Feld ESMNG zuerst
* in eine Dezimalzahl umgewandelt.
DATA esmng_dec TYPE bdmng.
************************************************************
************************************************************
*
* BEGIN DER VERARBEITUNG
*
*************************************************************
*************************************************************
* Selektion der benötigten Felder aus der RESB. Einstieg mit Auftrag,
* Folge, Vorgang; Auswertung des Löschenkennzeichens und zusätzlich
* Selektion des technischen Materialkurztextes (nur Grossbuchstaben)
* unter Berücksichtigung des Systemweiten Default-Sprachschlüssels.
SELECT
resb~matnr " Materialnummer
resb~potx1 " Zusatztext Stelle 1..30
resb~potx2 " Zusatztext Stelle 1..30
resb~esmng " Einsatzmenge für 1 Teil Vorgangmenge
resb~meins " Mengeneinheit
resb~bdmng " Bedarfsmenge für gesamte Vorgangsmenge
resb~posnr " Nummer der Stücklistenposition
resb~fmeng " Kennzeichen fixe Menge
resb~rgekz " Kennzeichen retrograde Entnahme
resb~werks " Werk
resb~lgort " Lagerort
makt~maktg " Materialkurztext
FROM resb AS resb
INNER JOIN makt AS makt
ON resb~matnr = makt~matnr
INTO TABLE my_komplist
WHERE resb~aufnr = sub_orderid
AND resb~plnfl = sub_sequence
AND resb~vornr = sub_operation
AND resb~xloek NE 'X'
AND makt~spras = sy-langu.
* Über die Ergebnistabelle loopen und jeweils die Ergebnisse
* in die HYINFO-Ergebnistabelle übertragen.
LOOP AT my_komplist INTO wa_my_komplist.
* Seitenzahl belegen
sub_pageno = sub_pageno + 1.
* Infotext1 belegen
my_infotext1-matnr = wa_my_komplist-matnr.
* Infotext2 belegen
my_infotext2-potx1 = wa_my_komplist-potx1.
my_infotext2-potx2 = wa_my_komplist-potx1.
* Infotext3 belegen
esmng_dec = wa_my_komplist-esmng.
my_infotext3-esmng = esmng_dec.
my_infotext3-meins = wa_my_komplist-meins.
my_infotext3-bdmng = wa_my_komplist-bdmng.
my_infotext3-posnr = wa_my_komplist-posnr.
my_infotext3-fmeng = wa_my_komplist-fmeng.
my_infotext3-rgekz = wa_my_komplist-rgekz.
my_infotext3-werks = wa_my_komplist-werks.
my_infotext3-lgort = wa_my_komplist-lgort.
* Infotext4 belegen
my_infotext4-maktg = wa_my_komplist-maktg.
* Jetzt noch die Infotextfelder an die HYINFO-Struktur übergeben
wa_sub_hyinfo-orderid = sub_orderid.
wa_sub_hyinfo-sequence = sub_sequence.
wa_sub_hyinfo-operation = sub_operation.
wa_sub_hyinfo-recordtype = sub_recordtype.
wa_sub_hyinfo-pageno = sub_pageno.
wa_sub_hyinfo-infotext1 = my_infotext1.
wa_sub_hyinfo-infotext2 = my_infotext2.
wa_sub_hyinfo-infotext3 = my_infotext3.
wa_sub_hyinfo-infotext4 = my_infotext4.
* Generierten HYINFO-Satz an FORM-lokale Tabelle anhängen
APPEND wa_sub_hyinfo TO sub_hyinfo.
ENDLOOP.
ENDFORM. " /MPDV/satzart_am
*&---------------------------------------------------------------------*
*& Form /MPDV/satzart_ai
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_WA_HYINFO_ORDERID text
* -->P_WA_HYINFO_SEQUENCE text
* -->P_WA_HYINFO_OPERATION text
* -->P_WA_HYINFO_SUB_OPER text
* -->P_WA_HYINFO_SUBSYSTEM_GROUPING text
* <--P_NEW_HYINFO text
*----------------------------------------------------------------------*
FORM /mpdv/satzart_ai
USING sub_orderid TYPE aufnr " Auftragsnr.
sub_sequence TYPE aplfl " Folgennr.
sub_operation TYPE vornr " Vorgangsnr.
sub_sub_oper TYPE uvorn " U-Vorg.nr.
sub_subsystem_grouping TYPE bdegr " BDE-Grupp.
* Die selektierten Daten werden an die bestehende Tabelle
* für die neuen Sätze angefügt.
CHANGING value(sub_hyinfo) TYPE /mpdv/hyinfo_tab.
* Konstante für die Satzart
CONSTANTS sub_recordtype TYPE /mpdv/recordtype VALUE 'AI'.
* Struktur für Textgeader (siehe Funktion 'K_LTXT_CHK_LANGU_EXIST')
TYPES: BEGIN OF kkek0_ltext, "Hilfsstruktur für Textheader
tdobject LIKE thead-tdobject,
tdid LIKE thead-tdid,
tdname LIKE thead-tdname,
tdspras LIKE thead-tdspras,
END OF kkek0_ltext.
* Variable für die Seitenzahl
DATA sub_pageno TYPE /mpdv/pageno VALUE '0'.
* Lokaler Arbeitsbereich für HYINFO-ITAB
DATA wa_sub_hyinfo TYPE /mpdv/hyinfo_struct.
* Lokale ITAB für Zusatzdaten
DATA my_tline TYPE TABLE OF tline.
DATA wa_my_tline TYPE tline.
DATA my_name TYPE tdobname.
* Struktur für Check ob Langtext vorhanden
DATA my_ltext TYPE kkek0_ltext.
DATA my_langu LIKE sy-langu.
DATA my_rc LIKE sy-subrc.
* Variablen für die Beschaffung der Schlüsseldaten
DATA my_afko TYPE afko.
DATA my_afvc TYPE afvc.
* Variablen zur Berechnung und Steuerung der Durchläufe beim
* Auslesen der TLINES-Tabelle:
* Anzahl der zu durchlaudenden 10er Schritte
DATA z_count TYPE i.
* Interne Zähler um zu wissen, der wievielte Durchlauf gerade
* stattfindet
DATA z_count_intern TYPE i.
* Der eigene Tabellenindex (in welcher Zeile der TLINES ist man)
DATA my_index TYPE i VALUE 0.
* Anzahl der Zeilen in TLINE-ITAB
DATA max_lines TYPE i.
* Zeilennummer pro 10er Durchlauf
DATA line_nr TYPE i.
* Wieviel Zeilen stehen innerhalb eines aktuellen 10er Blocks
* tatsächlich mit Daten zur Verfügung
DATA do_count TYPE i.
* Sonstiges
DATA frac_result TYPE f.
************************************************************
************************************************************
*
* BEGIN DER VERARBEITUNG
*
*************************************************************
* Selektion der Schlüsselwerte zum Laden der Zusatzdaten
SELECT SINGLE * FROM afko INTO my_afko WHERE aufnr = sub_orderid.
SELECT SINGLE * FROM afvc INTO my_afvc WHERE
aufpl = my_afko-aufpl AND
vornr = sub_operation.
* Aufbereitung des Schlüssel für READ_TEXT und für die Existenz-
* prüfung vorweg
CONCATENATE sy-mandt my_afvc-aufpl my_afvc-aplzl INTO my_name.
my_ltext-tdobject = 'AUFK'.
my_ltext-tdid = 'AVOT'.
my_ltext-tdname = my_name.
my_ltext-tdspras = sy-langu.
* Prüfung, ob ein Langtext in der Systemsprache vorhanden ist,
* um Laufzeitfehler zu vermeiden...
CALL FUNCTION 'K_LTXT_CHK_LANGU_EXIST'
EXPORTING
ltext = my_ltext " ID
IMPORTING
selected_language = my_langu " RC verfügbare Sprache
rc = my_rc. " Returncode
* Bei 0 (Ltext vorhanden) und 1 (vorhanden in der Sprache aus
* SELECTED_LANGUAGE weitermachen, sonst alles überspringen
IF my_rc LT 2.
* Lesen der Langtexte über STD-Baustein
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'AVOT'
language = my_langu
name = my_name
object = 'AUFK'
* ARCHIVE_HANDLE = 0
* LOCAL_CAT = ' '
* IMPORTING
* HEADER =
TABLES
lines = my_tline.
* Exceptionbehandlung kann wegfallen, da vorher auf Existenz geprüft
* EXCEPTIONS.
* ID = 1
* LANGUAGE = 2
* NAME = 3
* NOT_FOUND = 4
* OBJECT = 5
* REFERENCE_CHECK = 6
* WRONG_ACCESS_TO_ARCHIVE = 7
* OTHERS = 8.
* Anzahl der Zeilen in der Ergebnis-Tabelle bestimmen
DESCRIBE TABLE my_tline LINES max_lines.
* Entspricht die Anzahl der Zeilen einem Vielfachen von 10 ???
frac_result = FRAC( max_lines / 10 ).
* Wenn max_lines < 10, dann nur einen 10er Block Durchlauf
IF max_lines LE 10.
z_count = 1.
* Sonderbehandlung wenn Anzahl Zeilen ein Vielfaches von 10
ELSEIF ( max_lines GT 10 ) AND ( frac_result EQ 0 ).
z_count = ( max_lines DIV 10 ).
* Und schliesslich der Normalfall
ELSE.
z_count = ( max_lines DIV 10 ) + 1.
ENDIF.
* Initialisierung des internen 10er Block Zählers
z_count_intern = 0.
* Durchführen von z_count 10er Blöcken
DO z_count TIMES.
* Initialisierung der internen Zähler
z_count_intern = z_count_intern + 1. " interne 10er Blockzähler
line_nr = 0. " immer mit 1. Zeile anfangen
* 1 mal pro 10er Durchlauf die Kopffelder zuweisen.
CLEAR wa_sub_hyinfo.
wa_sub_hyinfo-orderid = sub_orderid.
wa_sub_hyinfo-sequence = sub_sequence.
wa_sub_hyinfo-operation = sub_operation.
wa_sub_hyinfo-recordtype = sub_recordtype.
wa_sub_hyinfo-pageno = z_count_intern.
do_count = max_lines - my_index.
IF do_count LT 10.
do_count = do_count.
ELSE.
do_count = 10.
ENDIF.
* Anzahl Durchläufe entspricht Anzahl der (verbleibenden) Zeilen
DO do_count TIMES.
* Zeilen Zahl erhöhen
line_nr = line_nr + 1.
* Index in Tabelle TLINES berechnen
my_index = ( ( z_count_intern - 1 ) * 10 ) + line_nr.
* Ergebnistabelle TLINES auslesen
READ TABLE my_tline INDEX my_index INTO wa_my_tline.
* Ergebnis abhängig von Zeilennummer auf INFOTEXTE verteilen
CASE line_nr.
WHEN 1.
wa_sub_hyinfo-infotext1 = wa_my_tline-tdline.
WHEN 2.
wa_sub_hyinfo-infotext2 = wa_my_tline-tdline.
WHEN 3.
wa_sub_hyinfo-infotext3 = wa_my_tline-tdline.
WHEN 4.
wa_sub_hyinfo-infotext4 = wa_my_tline-tdline.
WHEN 5.
wa_sub_hyinfo-infotext5 = wa_my_tline-tdline.
WHEN 6.
wa_sub_hyinfo-infotext6 = wa_my_tline-tdline.
WHEN 7.
wa_sub_hyinfo-infotext7 = wa_my_tline-tdline.
WHEN 8.
wa_sub_hyinfo-infotext8 = wa_my_tline-tdline.
WHEN 9.
wa_sub_hyinfo-infotext9 = wa_my_tline-tdline.
WHEN 10.
wa_sub_hyinfo-infotext10 = wa_my_tline-tdline.
ENDCASE.
* Ende der Zeilendurchläufe
ENDDO.
* Generierten HYINFO-Satz an FORM-lokale Tabelle anhängen
APPEND wa_sub_hyinfo TO sub_hyinfo.
* Ende der 10er Block Durchläufe
ENDDO.
ELSE.
ENDIF.
ENDFORM. "/MPDV/satzart_ai
*&---------------------------------------------------------------------*
*& Form /MPDV/satzart_ak
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_WA_HYINFO_ORDERID text
* -->P_WA_HYINFO_SEQUENCE text
* -->P_WA_HYINFO_OPERATION text
* -->P_WA_HYINFO_SUB_OPER text
* -->P_WA_HYINFO_SUBSYSTEM_GROUPING text
* <--P_NEW_HYINFO text
*----------------------------------------------------------------------*
FORM /mpdv/satzart_ak
USING sub_orderid TYPE aufnr " Auftragsnr.
sub_sequence TYPE aplfl " Folgennr.
sub_operation TYPE vornr " Vorgangsnr.
sub_sub_oper TYPE uvorn " U-Vorg.nr.
sub_subsystem_grouping TYPE bdegr " BDE-Grupp.
* Die selektierten Daten werden an die bestehende Tabelle
* für die neuen Sätze angefügt.
CHANGING value(sub_hyinfo) TYPE /mpdv/hyinfo_tab.
* Konstante für die Satzart
CONSTANTS sub_recordtype TYPE /mpdv/recordtype VALUE 'AK'.
* Struktur für die Zuweisung zu Infotext1
TYPES: BEGIN OF infotext1_str,
sbmng TYPE char15, " Basismenge
sbmeh TYPE meins, " Basismengeneinheit
gasmg TYPE char15, " Auftragsauschussmenge
gamng TYPE char15, " Aufragskopfmengen
END OF infotext1_str.
* Struktur für die Zuweisung zu Infotext2
TYPES: BEGIN OF infotext2_str,
gltrp TYPE co_gltrp, " Eckendtermin
gluzp TYPE co_gluzp, " Eckenduhrzeit
gstrp TYPE co_gstrp, " Eckstarttermin
gsuzp TYPE co_gsuzp, " Eckstartuhrzeit
gltrs TYPE co_gltrs, " Terminiertes Ende
gluzs TYPE co_gluzs, " Terminiertes Ende (Uhrzeit)
gstrs TYPE co_gstrs, " Terminierter Start
gsuzs TYPE co_gsuzs, " Terminierter Start (Uhrzeit)
terkz TYPE termkz, " Terminierungsart
END OF infotext2_str.
* Struktur für die Zuweisung zu Infotext3
TYPES: BEGIN OF infotext3_str,
kdauf TYPE kdauf, " Kundenauftrag
kdpos TYPE kdpos, " Kundenauftragsposition
dispo TYPE co_dispo," Disponent / Fertigungssteuerer
fevor TYPE fevor, " Fertigungssteuerer
plnnr TYPE plnnr, " Plangruppe
plnal TYPE plnal, " Plangruppenzähler
END OF infotext3_str.
TYPES: BEGIN OF infotext4_str,
matnr TYPE matnr, " Materialnummer
matxt TYPE co_matxt," Materialkurztext
END OF infotext4_str.
* Variable für die Seitenzahl
DATA sub_pageno TYPE /mpdv/pageno VALUE '1'.
* Lokaler Arbeitsbereich für HYINFO-ITAB
DATA wa_sub_hyinfo TYPE /mpdv/hyinfo_struct.
* Variablen für die Beschaffung der Schlüsseldaten
DATA my_afko TYPE afko.
DATA my_afpo TYPE afpo.
* Strukturen für Infotexte definieren
DATA:
my_infotext1 TYPE infotext1_str,
my_infotext2 TYPE infotext2_str,
my_infotext3 TYPE infotext3_str,
my_infotext4 TYPE infotext4_str.
* Zur Umwandlung Exponentialdarstellung werden Mengenfelder zuerst
* in eine Dezimalzahl umgewandelt.
DATA menge_dec TYPE bdmng.
************************************************************
************************************************************
*
* BEGIN DER VERARBEITUNG
*
*************************************************************
* Selektion der Schlüsselwerte zum Laden der Zusatzdaten
SELECT SINGLE * FROM afko INTO my_afko WHERE aufnr = sub_orderid.
SELECT SINGLE * FROM afpo INTO my_afpo WHERE aufnr = sub_orderid.
PERFORM /mpdv/get_maktxt
USING
my_afko-plnbez
sy-langu
CHANGING
my_infotext4-matxt.
* Infotext1 aus AFKO füllen
menge_dec = my_afko-sbmng.
my_infotext1-sbmng = menge_dec.
my_infotext1-sbmeh = my_afko-sbmeh.
menge_dec = my_afko-gasmg.
my_infotext1-gasmg = menge_dec.
menge_dec = my_afko-gamng.
my_infotext1-gamng = menge_dec.
* Infotext2 aus AFKO füllen
my_infotext2-gltrp = my_afko-gltrp.
my_infotext2-gluzp = my_afko-gluzp.
my_infotext2-gstrp = my_afko-gstrp.
my_infotext2-gsuzp = my_afko-gsuzp.
my_infotext2-gltrs = my_afko-gltrs.
my_infotext2-gluzs = my_afko-gluzs.
my_infotext2-gstrs = my_afko-gstrs.
my_infotext2-gsuzs = my_afko-gsuzs.
my_infotext2-terkz = my_afko-terkz.
* Infotext3 aus AFKO und AFPO füllen
my_infotext3-kdauf = my_afpo-kdauf.
my_infotext3-kdpos = my_afpo-kdpos.
my_infotext3-dispo = my_afko-dispo.
my_infotext3-fevor = my_afko-fevor.
my_infotext3-plnnr = my_afko-plnnr.
my_infotext3-plnal = my_afko-plnal.
* Infotext4 aus AFKO füllen
my_infotext4-matnr = my_afko-plnbez.
* Aufbau des HYINFO-Satzes
wa_sub_hyinfo-orderid = sub_orderid.
wa_sub_hyinfo-sequence = sub_sequence.
wa_sub_hyinfo-operation = sub_operation.
wa_sub_hyinfo-recordtype = sub_recordtype.
wa_sub_hyinfo-pageno = sub_pageno.
wa_sub_hyinfo-infotext1 = my_infotext1.
wa_sub_hyinfo-infotext2 = my_infotext2.
wa_sub_hyinfo-infotext3 = my_infotext3.
wa_sub_hyinfo-infotext4 = my_infotext4.
* Und Einfügen in neue Tabelle.
APPEND wa_sub_hyinfo TO sub_hyinfo.
ENDFORM. " /MPDV/satzart_ak
*&---------------------------------------------------------------------*
*& Form /MPDV/get_maktxt
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_MY_AFKO_MATNR text
* -->P_SY_LANGU text
* <--P_MY_INFOTEXT1_MATXT text
*----------------------------------------------------------------------*
FORM /mpdv/get_maktxt USING sub_matnr TYPE afko-plnbez
sub_langu TYPE sy-langu
CHANGING
value(sub_matxt) TYPE makt-maktg.
SELECT SINGLE maktg FROM makt INTO sub_matxt
WHERE
matnr = sub_matnr AND
spras = sub_langu.
ENDFORM. " /MPDV/get_maktxt
*&---------------------------------------------------------------------*
*& Form /MPDV/satzart_dlg_string
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_WA_HYINFO_ORDERID text
* -->P_WA_HYINFO_SEQUENCE text
* -->P_WA_HYINFO_OPERATION text
* -->P_WA_HYINFO_SUB_OPER text
* -->P_WA_HYINFO_SUBSYSTEM_GROUPING text
* <--P_NEW_HYINFO text
*----------------------------------------------------------------------*
FORM /mpdv/satzart_dlg_string
USING sub_orderid TYPE aufnr " Auftragsnr.
sub_sequence TYPE aplfl " Folgennr.
sub_operation TYPE vornr " Vorgangsnr.
sub_sub_oper TYPE uvorn " U-Vorg.nr.
sub_subsystem_grouping TYPE bdegr " BDE-Grupp.
CHANGING value(sub_dlg) TYPE /mpdv/dlg_tab.
* Loakaler Arbeitsbereich für Dialogdaten-Tabelle
DATA my_dlg TYPE /mpdv/dlg_struct.
* String zur Aufbereitung des Dialogstring
DATA my_string TYPE /mpdv/dlg_string.
CLEAR my_string.
CONCATENATE
'DLG=AUNR.MODIFY'
'|ANR.ATYP=AU'
'|ANR.ANR=' sub_orderid
'|ANR.AUART=0'
'|ANR.ATK=Mein Material'
'|'
INTO my_string.
my_dlg-dlg_transaktion = 'ANR.MODIFY'.
my_dlg-dlg_bemerkung = 'Auftragskopf ändern'.
my_dlg-dlg_string = my_string.
APPEND my_dlg TO sub_dlg.
ENDFORM. " /MPDV/satzart_dlg_string