631 lines
22 KiB
Plaintext
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 |