2005 Jun 16 8:55 PM
HI ALL,
We are trying to upload the forecast values from legacy to SAP material master.
Did found from help.sap.com that Program RMPR1001 would help to copy forecast values from any external system(here for us LEGACY) to SAP material master.
BUT UNFORTUNATELY I DIDN;T FIND THE ANY INFORMATION ON THIS PROGRAM TILL NOW.
Could someone please help me in finding the information on this Program.
Many ThanX
RAJ
2005 Jun 17 3:08 AM
Here is the copy of it
*&----
*
*& Modulpool RMPR1001 *
*&----
*
*& *
*& *
*&----
*
Dieses Include enthält Typdefinitionen, Tables-
INCLUDE RMPR1TOP.
Dieses Include enthält das Layout für den Selectionsscreen.
INCLUDE RMPR1LAY.
Dieses Include enthält die verwendeten Formroutinen.
INCLUDE RMPR1F01.
INCLUDE RMPR1F02.
INCLUDE RMPR1O01 . *
INCLUDE RMPR1I01 . *
*----
-
Ereigniss : INITIALIZATION
*----
-
INITIALIZATION.
SSCRFIELDS-FUNCTXT_01 = TEXT-004.
G_REPID = SY-REPID.
G_TABNAME_HEADER = 'G_T_HEADER'.
G_TABNAME_ITEMS = 'G_T_ITEMS'.
Definition der Schlüsselbeziehung
CLEAR G_S_KEYINFO.
G_S_KEYINFO-HEADER01 = 'MATNR'.
G_S_KEYINFO-ITEM01 = 'MATNR'.
G_S_KEYINFO-HEADER02 = 'WERKS'.
G_S_KEYINFO-ITEM02 = 'WERKS'.
G_S_KEYINFO-HEADER03 = SPACE.
G_S_KEYINFO-ITEM03 = SPACE.
Füllen des Fieldcats
PERFORM FIELDCAT_INIT USING G_T_FIELDCAT[].
Aufbauen von Events
PERFORM EVENTTAB_BUILD USING G_T_EVENTS[].
Gestallten des Layouts
PERFORM LAYOUT_BUILD USING G_S_LAYOUT.
*----
-
Ereigniss : AT SELECTION-SCREEN
*----
-
AT SELECTION-SCREEN.
Ranges und Parameter in globale Felder übernehmen.
G_PARAMETER-PERKZ = P_PERKZ.
G_PARAMETER-PRDUR = P_PRDUR.
G_PARAMETER-MPR1VERFAHREN = P_VERFA.
G_PARAMETER-KZUPD = P_KZUPD.
G_PARAMETER-PROTO_D = P_PROTO.
G_PARAMETER-MPR1USERPAR = P_USERPA.
G_PARAMETER-RFCDEST = P_RFCDES.
R_WERKS[] = S_WERKS[].
R_MATNR[] = S_MATNR[].
Löschen der Tabellen für Kopf- und Zeileninformationen
CLEAR G_T_HEADER[].
CLEAR G_T_ITEMS[].
Abfrage des OK-Codes für zusätzlichen Funktions-Button 01
IF SSCRFIELDS-UCOMM = 'FC01'.
PERFORM DISPLAY_ERROR_LIST.
ENDIF.
G_EINGABE_OK = C_YES.
PERFORM PRUEFE_EINGABE USING G_PARAMETER
G_EINGABE_OK.
Eingabe nicht OK, dann zurück zum Selections-Screen ...
CHECK G_EINGABE_OK = C_YES.
Nur bei <Ausführen> gehts weiter ...
CHECK SY-UCOMM = C_FC_ONLI.
Tabelle der Werke aufbauen ...
SELECT * FROM T001W INTO TABLE G_T_T001W
WHERE WERKS IN R_WERKS.
.. Prognose Werksweise durchführen
LOOP AT G_T_T001W.
PERFORM PROGNOSE_PRO_WERK USING G_PARAMETER
G_T_T001W-FABKL
G_T_T001W-WERKS.
ENDLOOP.
MESSAGE I031.
Tabelle der Messages ins Memory schreiben ...
MEMO_MESSAGES[] = G_T_MESSAGES[].
EXPORT MEMO_MESSAGES[] TO MEMORY ID MEMO_ID.
Ausgabe der Prognosewerte via ALV ...
PERFORM COMMENT_BUILD USING G_T_LIST_TOP_OF_PAGE[].
CHECK G_PARAMETER-PROTO_D = C_YES.
CLEAR SY-MSGID.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
IS_LAYOUT = G_S_LAYOUT
IT_FIELDCAT = G_T_FIELDCAT[]
IT_EVENTS = G_T_EVENTS[]
I_TABNAME_HEADER = G_TABNAME_HEADER
I_TABNAME_ITEM = G_TABNAME_ITEMS
IS_KEYINFO = G_S_KEYINFO
TABLES
T_OUTTAB_HEADER = G_T_HEADER
T_OUTTAB_ITEM = G_T_ITEMS
EXCEPTIONS
PROGRAM_ERROR = 1
ERROR_MESSAGE = 98
OTHERS = 99.
IF SY-SUBRC <> 0.
IF NOT SY-MSGID IS INITIAL.
Reiche die Fehlermeldung durch und setzte Ausnahme ...
SY-MSGTY = 'I'.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
eigene Meldung ...
MESSAGE I003 WITH SY-SUBRC 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'.
ENDIF.
ENDIF.
*&----
*
*& Include RMPR1TOP *
*&----
*
PROGRAM RMPR1001 MESSAGE-ID MPR1.
*----
*
Type-Pools
*----
*
TYPE-POOLS:
MPR1T,
SLIS.
*----
*
Konstanten
*----
*
Dieses Include enhält die Konstanten-Definitionen
INCLUDE LMPR1KON.
CONSTANTS:
C_FORM_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
*----
*
Tabellen und Strukturen
*----
*
TABLES:
MAPR,
T000MD.
TABLES:
SSCRFIELDS.
*----
-
Ranges:
*----
-
RANGES:
R_WERKS FOR MAPR-WERKS,
R_MATNR FOR MAPR-MATNR.
*----
*
Daten
*----
*
DATA:
G_PARAMETER LIKE SMPR1001,
G_EINGABE_OK TYPE C,
G_T_T001W LIKE T001W OCCURS 0 WITH HEADER LINE,
G_T_MESSAGES TYPE MPR1T_S_MESSAGES OCCURS 0 WITH HEADER LINE,
G_T_ARTICLES TYPE MPR1T_S_ARTICLES OCCURS 0 WITH HEADER LINE,
G_T_FORECAST_VALUES
TYPE MPR1T_S_FORECAST_VALUES OCCURS 0 WITH HEADER LINE,
Für den ALV nötige Datendefinitionen
G_T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
G_T_EVENTS TYPE SLIS_T_EVENT,
G_T_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
G_T_HEADER TYPE MPR1T_S_ALV_H OCCURS 0 WITH HEADER LINE,
G_T_ITEMS TYPE MPR1T_S_ALV_I OCCURS 0 WITH HEADER LINE,
G_REPID LIKE SY-REPID,
G_TABNAME_HEADER TYPE SLIS_TABNAME,
G_TABNAME_ITEMS TYPE SLIS_TABNAME,
G_S_KEYINFO TYPE SLIS_KEYINFO_ALV,
G_S_LAYOUT TYPE SLIS_LAYOUT_ALV.
*----
*
Memory
*----
*
DATA:
MEMO_MESSAGES TYPE MPR1T_S_MESSAGES OCCURS 0,
MEMO_ID(4) TYPE C VALUE 'MPR1'.
*----
*
INCLUDE RMPR1LAY *
*----
*
*----
*
Select-Options
*----
*
Selektionskriterien fuer ...
- Werk
- Material
- Periodenkennzeichen
SELECTION-SCREEN BEGIN OF BLOCK SELECT_BLOCK WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS S_WERKS FOR MAPR-WERKS
MATCHCODE OBJECT BETR MEMORY ID WRK.
SELECT-OPTIONS S_MATNR FOR MAPR-MATNR
MATCHCODE OBJECT MAT1 MEMORY ID MAT.
PARAMETERS P_PERKZ LIKE SMPR1001-PERKZ.
SELECTION-SCREEN END OF BLOCK SELECT_BLOCK.
Steuerungsparameter ...
- Prognosedurchführung
- Verfahren
- Update auf der Datenbank
- Anzeige eines Protokollsatzes
SELECTION-SCREEN BEGIN OF BLOCK STEUER_BLOCK WITH FRAME TITLE TEXT-002.
PARAMETERS P_PRDUR LIKE SMPR1001-PRDUR.
PARAMETERS P_VERFA LIKE SMPR1001-MPR1VERFAHREN.
PARAMETERS P_KZUPD LIKE SMPR1001-KZUPD.
PARAMETERS P_PROTO LIKE SMPR1001-PROTO_D.
SELECTION-SCREEN END OF BLOCK STEUER_BLOCK.
Zusatzdaten ...
- Parameter für User-Exit
- Destination
SELECTION-SCREEN BEGIN OF BLOCK ZUSATZ_BLOCK WITH FRAME TITLE TEXT-003.
PARAMETERS P_USERPA LIKE SMPR1001-MPR1USERPAR.
PARAMETERS P_RFCDES LIKE SMPR1001-RFCDEST.
SELECTION-SCREEN END OF BLOCK ZUSATZ_BLOCK.
Funktions-Buttons (Drucktastenleiste)
SELECTION-SCREEN FUNCTION KEY 1.
*----
*
INCLUDE RMPR1F01 *
*----
*
*&----
*
*& Form PRUEFE_EINGABE
*&----
*
FORM PRUEFE_EINGABE USING I_PARAMETER LIKE SMPR1001
E_EINGABE_OK TYPE C.
DATA: L_LINES LIKE SY-TABIX.
Prüfen ob das Konstrukt des Dispobereiches eingesetzt wird ...
SELECT SINGLE * FROM T000MD.
IF SY-SUBRC <> 0.
CLEAR T000MD.
ENDIF.
Arbeiten mit Dispobereich ... wird noch nicht unterstützt.
IF NOT T000MD-DISFG IS INITIAL.
CLEAR E_EINGABE_OK.
MESSAGE E022.
EXIT.
ENDIF.
Die Eingabe eines Periodenkennzeichens ist nötig ...
IF I_PARAMETER-PERKZ <> C_PERKZ_TAG AND
I_PARAMETER-PERKZ <> C_PERKZ_WOCHE AND
I_PARAMETER-PERKZ <> C_PERKZ_MONAT AND
I_PARAMETER-PERKZ <> C_PERKZ_BUCH.
CLEAR E_EINGABE_OK.
MESSAGE E001 WITH I_PARAMETER-PERKZ.
EXIT.
ENDIF.
Die Durchführung ist nur für die aktuelle und die Folgeperiode
möglich ...
IF I_PARAMETER-PRDUR <> C_PERIODE_AKTUELL AND
I_PARAMETER-PRDUR <> C_PERIODE_FOLGE.
CLEAR E_EINGABE_OK.
MESSAGE E004.
EXIT.
ENDIF.
Als Verfahren sind nut 'T ' oder ' U ' erlaubt ...
IF I_PARAMETER-MPR1VERFAHREN <> C_UEBERNAHME_TEST AND
I_PARAMETER-MPR1VERFAHREN <> C_UEBERNAHME_USER_EXIT.
CLEAR E_EINGABE_OK.
MESSAGE E015 WITH C_UEBERNAHME_TEST C_UEBERNAHME_USER_EXIT.
EXIT.
ENDIF.
Die Testübernahme ist nur für Artikel in einem Werk möglich
IF I_PARAMETER-MPR1VERFAHREN = C_UEBERNAHME_TEST.
DESCRIBE TABLE R_WERKS LINES L_LINES.
IF L_LINES <> 1.
CLEAR E_EINGABE_OK.
MESSAGE E005.
EXIT.
ENDIF.
READ TABLE R_WERKS INDEX 1.
IF R_WERKS-SIGN <> 'I' OR R_WERKS-OPTION <> 'EQ'.
CLEAR E_EINGABE_OK.
MESSAGE E005.
EXIT.
ENDIF.
ENDIF.
ENDFORM. " PRUEFE_EINGABE
*&----
*
*& Form PROGNOSE_PRO_WERK
*&----
*
FORM PROGNOSE_PRO_WERK USING I_PARAMETER LIKE SMPR1001
I_FABKL LIKE T001W-FABKL
I_WERKS LIKE T001W-WERKS.
DATA L_T_MESSAGES TYPE MPR1T_T_MESSAGES WITH HEADER LINE.
IF I_FABKL IS INITIAL.
Meldung in Tabelle aufnehmen ...
CLEAR G_T_MESSAGES.
G_T_MESSAGES-WERKS = I_WERKS.
G_T_MESSAGES-MSGID = 'MPR1'.
G_T_MESSAGES-MSGTY = 'I'.
G_T_MESSAGES-MSGNO = '019'.
G_T_MESSAGES-MSGV1 = I_WERKS.
APPEND G_T_MESSAGES.
EXIT.
ENDIF.
Artikeldaten lesen ...
CLEAR SY-MSGID.
CLEAR L_T_MESSAGES[].
CALL FUNCTION 'MPR1_READ_ARTICLES'
EXPORTING
I_PARAMETER = I_PARAMETER
I_FABKL = I_FABKL
I_WERKS = I_WERKS
TABLES
T_ARTICLES = G_T_ARTICLES
T_MESSAGES = L_T_MESSAGES
R_MATNR = R_MATNR
EXCEPTIONS
ERROR_FOUND = 1
NO_ARTICLES_FOUND = 2
ERROR_MESSAGE = 98
OTHERS = 99.
IF SY-SUBRC <> 0.
IF NOT SY-MSGID IS INITIAL.
Meldung in Tabelle aufnehmen ...
CLEAR G_T_MESSAGES.
G_T_MESSAGES-WERKS = I_WERKS.
G_T_MESSAGES-MSGID = SY-MSGID.
G_T_MESSAGES-MSGTY = SY-MSGTY.
G_T_MESSAGES-MSGNO = SY-MSGNO.
G_T_MESSAGES-MSGV1 = SY-MSGV1.
G_T_MESSAGES-MSGV2 = SY-MSGV2.
G_T_MESSAGES-MSGV3 = SY-MSGV3.
G_T_MESSAGES-MSGV4 = SY-MSGV4.
APPEND G_T_MESSAGES.
CLEAR: SY-MSGID, SY-MSGTY, SY-MSGNO.
ELSE.
eigene Meldung ...
CLEAR G_T_MESSAGES.
G_T_MESSAGES-WERKS = I_WERKS.
G_T_MESSAGES-MSGID = 'MPR1'.
G_T_MESSAGES-MSGTY = 'I'.
G_T_MESSAGES-MSGNO = '003'.
G_T_MESSAGES-MSGV1 = SY-SUBRC.
G_T_MESSAGES-MSGV2 = 'MPR1_READ_ARTICLES'.
APPEND G_T_MESSAGES.
ENDIF.
Meldungstabelle übernehmen ...
APPEND LINES OF L_T_MESSAGES TO G_T_MESSAGES.
EXIT.
ENDIF.
Meldungstabelle übernehmen ...
APPEND LINES OF L_T_MESSAGES TO G_T_MESSAGES.
Abholen der Prognosewerte ...
CLEAR SY-MSGID.
CLEAR L_T_MESSAGES[].
IF I_PARAMETER-MPR1VERFAHREN = C_UEBERNAHME_TEST.
CALL FUNCTION 'MPR1_READ_FORECAST_VALUES'
EXPORTING
I_MPR1VERFAHREN = I_PARAMETER-MPR1VERFAHREN
I_MPR1USERPAR = I_PARAMETER-MPR1USERPAR
I_RFCDEST = I_PARAMETER-RFCDEST
TABLES
T_ARTICLES = G_T_ARTICLES
T_FORECAST_VALUES = G_T_FORECAST_VALUES
T_MESSAGES = L_T_MESSAGES
EXCEPTIONS
ERROR_FOUND = 01
OTHERS = 99.
IF SY-SUBRC <> 0.
IF NOT SY-MSGID IS INITIAL.
Meldung in Tabelle aufnehmen ...
CLEAR G_T_MESSAGES.
G_T_MESSAGES-WERKS = I_WERKS.
G_T_MESSAGES-MSGID = SY-MSGID.
G_T_MESSAGES-MSGTY = SY-MSGTY.
G_T_MESSAGES-MSGNO = SY-MSGNO.
G_T_MESSAGES-MSGV1 = SY-MSGV1.
G_T_MESSAGES-MSGV2 = SY-MSGV2.
G_T_MESSAGES-MSGV3 = SY-MSGV3.
G_T_MESSAGES-MSGV4 = SY-MSGV4.
APPEND G_T_MESSAGES.
CLEAR: SY-MSGID, SY-MSGTY, SY-MSGNO.
ELSE.
Eigene Meldung ...
CLEAR G_T_MESSAGES.
G_T_MESSAGES-WERKS = I_WERKS.
G_T_MESSAGES-MSGID = 'MPR1'.
G_T_MESSAGES-MSGTY = 'I'.
G_T_MESSAGES-MSGNO = '003'.
G_T_MESSAGES-MSGV1 = SY-SUBRC.
G_T_MESSAGES-MSGV2 = 'MPR1_READ_FORECAST_VALUES'.
APPEND G_T_MESSAGES.
ENDIF.
Meldungstabelle übernehmen ...
APPEND LINES OF L_T_MESSAGES TO G_T_MESSAGES.
EXIT.
ENDIF.
ENDIF.
IF I_PARAMETER-MPR1VERFAHREN <> C_UEBERNAHME_TEST.
CALL FUNCTION 'MPR1_READ_FORECAST_VALUES'
EXPORTING
I_MPR1VERFAHREN = I_PARAMETER-MPR1VERFAHREN
I_MPR1USERPAR = I_PARAMETER-MPR1USERPAR
I_RFCDEST = I_PARAMETER-RFCDEST
TABLES
T_ARTICLES = G_T_ARTICLES
T_FORECAST_VALUES = G_T_FORECAST_VALUES
T_MESSAGES = L_T_MESSAGES
EXCEPTIONS
ERROR_FOUND = 01
ERROR_MESSAGE = 98
OTHERS = 99.
IF SY-SUBRC <> 0.
IF NOT SY-MSGID IS INITIAL.
Meldung in Tabelle aufnehmen ...
CLEAR G_T_MESSAGES.
G_T_MESSAGES-WERKS = I_WERKS.
G_T_MESSAGES-MSGID = SY-MSGID.
G_T_MESSAGES-MSGTY = SY-MSGTY.
G_T_MESSAGES-MSGNO = SY-MSGNO.
G_T_MESSAGES-MSGV1 = SY-MSGV1.
G_T_MESSAGES-MSGV2 = SY-MSGV2.
G_T_MESSAGES-MSGV3 = SY-MSGV3.
G_T_MESSAGES-MSGV4 = SY-MSGV4.
APPEND G_T_MESSAGES.
CLEAR: SY-MSGID, SY-MSGTY, SY-MSGNO.
ELSE.
Eigene Meldung ...
CLEAR G_T_MESSAGES.
G_T_MESSAGES-WERKS = I_WERKS.
G_T_MESSAGES-MSGID = 'MPR1'.
G_T_MESSAGES-MSGTY = 'I'.
G_T_MESSAGES-MSGNO = '003'.
G_T_MESSAGES-MSGV1 = SY-SUBRC.
G_T_MESSAGES-MSGV2 = 'MPR1_READ_FORECAST_VALUES'.
APPEND G_T_MESSAGES.
ENDIF.
Meldungstabelle übernehmen ...
APPEND LINES OF L_T_MESSAGES TO G_T_MESSAGES.
EXIT.
ENDIF.
Meldungstabelle übernehmen ...
APPEND LINES OF L_T_MESSAGES TO G_T_MESSAGES.
ENDIF.
SORT G_T_ARTICLES BY MANDT WERKS MATNR.
SORT G_T_FORECAST_VALUES BY WERKS MATNR ERTAG.
Zurückgelieferte Prognosewerte an Artikelformate anpassen ...
CLEAR SY-MSGID.
CLEAR L_T_MESSAGES[].
CALL FUNCTION 'MPR1_PERPARE_FORECAST_VALUES'
TABLES
T_ARTICLES = G_T_ARTICLES
T_FORECAST_VALUES = G_T_FORECAST_VALUES
T_MESSAGES = L_T_MESSAGES
EXCEPTIONS
ERROR_MESSAGE = 98
OTHERS = 99.
IF SY-SUBRC <> 0.
IF NOT SY-MSGID IS INITIAL.
Meldung in Tabelle aufnehmen ...
CLEAR G_T_MESSAGES.
G_T_MESSAGES-WERKS = I_WERKS.
G_T_MESSAGES-MSGID = SY-MSGID.
G_T_MESSAGES-MSGTY = SY-MSGTY.
G_T_MESSAGES-MSGNO = SY-MSGNO.
G_T_MESSAGES-MSGV1 = SY-MSGV1.
G_T_MESSAGES-MSGV2 = SY-MSGV2.
G_T_MESSAGES-MSGV3 = SY-MSGV3.
G_T_MESSAGES-MSGV4 = SY-MSGV4.
APPEND G_T_MESSAGES.
CLEAR: SY-MSGID, SY-MSGTY, SY-MSGNO.
ELSE.
Eigene Meldung ...
CLEAR G_T_MESSAGES.
G_T_MESSAGES-WERKS = I_WERKS.
G_T_MESSAGES-MSGID = 'MPR1'.
G_T_MESSAGES-MSGTY = 'I'.
G_T_MESSAGES-MSGNO = '003'.
G_T_MESSAGES-MSGV1 = SY-SUBRC.
G_T_MESSAGES-MSGV2 = 'MPR1_PERPARE_FORECAST_VALUES'.
APPEND G_T_MESSAGES.
ENDIF.
Meldungstabelle übernehmen ...
APPEND LINES OF L_T_MESSAGES TO G_T_MESSAGES.
EXIT.
ENDIF.
Meldungstabelle übernehmen ...
APPEND LINES OF L_T_MESSAGES TO G_T_MESSAGES.
Daten in Listviewer übertragen
LOOP AT G_T_FORECAST_VALUES.
G_T_HEADER-WERKS = G_T_FORECAST_VALUES-WERKS.
G_T_HEADER-MATNR = G_T_FORECAST_VALUES-MATNR.
G_T_HEADER-PERKZ = G_T_FORECAST_VALUES-PERKZ.
G_T_HEADER-PERIV = G_T_FORECAST_VALUES-PERIV.
COLLECT G_T_HEADER.
ENDLOOP.
CLEAR G_T_ITEMS[].
LOOP AT G_T_FORECAST_VALUES.
G_T_ITEMS-WERKS = G_T_FORECAST_VALUES-WERKS.
G_T_ITEMS-MATNR = G_T_FORECAST_VALUES-MATNR.
G_T_ITEMS-ERTAG = G_T_FORECAST_VALUES-ERTAG.
G_T_ITEMS-PRWRT = G_T_FORECAST_VALUES-PRWRT.
G_T_ITEMS-KOPRW = G_T_FORECAST_VALUES-KOPRW.
G_T_ITEMS-MEINS = G_T_FORECAST_VALUES-MEINS.
APPEND G_T_ITEMS.
ENDLOOP.
Sollen die Daten in die Datenbank geschrieben werden ...
CHECK I_PARAMETER-KZUPD = C_YES.
Zurückgelieferte Prognosewerte verbuchen ...
CLEAR SY-MSGID.
CLEAR L_T_MESSAGES[].
CALL FUNCTION 'MPR1_SAVE_FORECAST_VALUES'
EXPORTING
I_COMMIT = C_YES
TABLES
T_ARTICLES = G_T_ARTICLES
T_FORECAST_VALUES = G_T_FORECAST_VALUES
T_MESSAGES = L_T_MESSAGES
EXCEPTIONS
ERROR_MESSAGE = 98
OTHERS = 99.
IF SY-SUBRC <> 0.
IF NOT SY-MSGID IS INITIAL.
Meldung in Tabelle aufnehmen ...
CLEAR G_T_MESSAGES.
G_T_MESSAGES-WERKS = I_WERKS.
G_T_MESSAGES-MSGID = SY-MSGID.
G_T_MESSAGES-MSGTY = SY-MSGTY.
G_T_MESSAGES-MSGNO = SY-MSGNO.
G_T_MESSAGES-MSGV1 = SY-MSGV1.
G_T_MESSAGES-MSGV2 = SY-MSGV2.
G_T_MESSAGES-MSGV3 = SY-MSGV3.
G_T_MESSAGES-MSGV4 = SY-MSGV4.
APPEND G_T_MESSAGES.
CLEAR: SY-MSGID, SY-MSGTY, SY-MSGNO.
ELSE.
Eigene Meldung ...
CLEAR G_T_MESSAGES.
G_T_MESSAGES-WERKS = I_WERKS.
G_T_MESSAGES-MSGID = 'MPR1'.
G_T_MESSAGES-MSGTY = 'I'.
G_T_MESSAGES-MSGNO = '003'.
G_T_MESSAGES-MSGV1 = SY-SUBRC.
G_T_MESSAGES-MSGV2 = 'MPR1_SAVE_FORECAST_VALUES'.
APPEND G_T_MESSAGES.
ENDIF.
Meldungstabelle übernehmen ...
APPEND LINES OF L_T_MESSAGES TO G_T_MESSAGES.
EXIT.
ENDIF.
Meldungstabelle übernehmen ...
APPEND LINES OF L_T_MESSAGES TO G_T_MESSAGES.
ENDFORM. " PROGNOSE_PRO_WERK
*&----
*
*& Form DISPLAY_ERROR_LIST
*&----
*
FORM DISPLAY_ERROR_LIST.
DATA: L_T_MESSAGES TYPE MPR1T_S_MESSAGES OCCURS 0.
IMPORT MEMO_MESSAGES[] FROM MEMORY ID MEMO_ID.
L_T_MESSAGES[] = MEMO_MESSAGES[].
CALL FUNCTION 'MPR1_DISPLAY_MESSAGES'
TABLES
T_MESSAGES = L_T_MESSAGES.
ENDFORM. " DISPLAY_ERROR_LIST
*----
*
***INCLUDE RMPR1F02 .
*----
*
*&----
*
*& Form FIELDCAT_INIT
*&----
*
FORM FIELDCAT_INIT USING L_T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: L_S_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
Werk
CLEAR L_S_FIELDCAT.
L_S_FIELDCAT-FIELDNAME = 'WERKS'.
L_S_FIELDCAT-REF_TABNAME = 'MAPR'.
L_S_FIELDCAT-REF_FIELDNAME = 'WERKS'.
L_S_FIELDCAT-TABNAME = G_TABNAME_HEADER.
APPEND L_S_FIELDCAT TO L_T_FIELDCAT.
Material
CLEAR L_S_FIELDCAT.
L_S_FIELDCAT-FIELDNAME = 'MATNR'.
L_S_FIELDCAT-REF_TABNAME = 'MAPR'.
L_S_FIELDCAT-REF_FIELDNAME = 'MATNR'.
L_S_FIELDCAT-TABNAME = G_TABNAME_HEADER.
APPEND L_S_FIELDCAT TO L_T_FIELDCAT.
Periodenkennzeichen
CLEAR L_S_FIELDCAT.
L_S_FIELDCAT-FIELDNAME = 'PERKZ'.
L_S_FIELDCAT-REF_TABNAME = 'MAPR'.
L_S_FIELDCAT-REF_FIELDNAME = 'PERKZ'.
L_S_FIELDCAT-TABNAME = G_TABNAME_HEADER.
APPEND L_S_FIELDCAT TO L_T_FIELDCAT.
Geschäftsjahresvariante
CLEAR L_S_FIELDCAT.
L_S_FIELDCAT-FIELDNAME = 'PERIV'.
L_S_FIELDCAT-REF_TABNAME = 'MAPR'.
L_S_FIELDCAT-REF_FIELDNAME = 'PERIV'.
L_S_FIELDCAT-TABNAME = G_TABNAME_HEADER.
APPEND L_S_FIELDCAT TO L_T_FIELDCAT.
Periodenanfang
CLEAR L_S_FIELDCAT.
L_S_FIELDCAT-FIELDNAME = 'ERTAG'.
L_S_FIELDCAT-REF_TABNAME = 'PROW'.
L_S_FIELDCAT-REF_FIELDNAME = 'ERTAG'.
L_S_FIELDCAT-TABNAME = G_TABNAME_ITEMS.
APPEND L_S_FIELDCAT TO L_T_FIELDCAT.
Prognosewert
CLEAR L_S_FIELDCAT.
L_S_FIELDCAT-FIELDNAME = 'PRWRT'.
L_S_FIELDCAT-REF_TABNAME = 'PROW'.
L_S_FIELDCAT-REF_FIELDNAME = 'PRWRT'.
L_S_FIELDCAT-TABNAME = G_TABNAME_ITEMS.
L_S_FIELDCAT-QFIELDNAME = 'MEINS'.
L_S_FIELDCAT-QTABNAME = G_TABNAME_ITEMS.
APPEND L_S_FIELDCAT TO L_T_FIELDCAT.
Korrigierter Prognosewert
CLEAR L_S_FIELDCAT.
L_S_FIELDCAT-FIELDNAME = 'KOPRW'.
L_S_FIELDCAT-REF_TABNAME = 'PROW'.
L_S_FIELDCAT-REF_FIELDNAME = 'KOPRW'.
L_S_FIELDCAT-TABNAME = G_TABNAME_ITEMS.
L_S_FIELDCAT-QFIELDNAME = 'MEINS'.
L_S_FIELDCAT-QTABNAME = G_TABNAME_ITEMS.
APPEND L_S_FIELDCAT TO L_T_FIELDCAT.
Mengeneinheit
CLEAR L_S_FIELDCAT.
L_S_FIELDCAT-FIELDNAME = 'MEINS'.
L_S_FIELDCAT-REF_TABNAME = 'MARA'.
L_S_FIELDCAT-REF_FIELDNAME = 'MEINS'.
L_S_FIELDCAT-TABNAME = G_TABNAME_ITEMS.
APPEND L_S_FIELDCAT TO L_T_FIELDCAT.
ENDFORM. " FIELDCAT_INIT
*----
*
FORM TOP_OF_PAGE *
*----
*
FORM TOP_OF_PAGE. "#EC CALLED
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = G_T_LIST_TOP_OF_PAGE.
ENDFORM.
*&----
*
*& Form EVENTTAB_BUILD
*&----
*
FORM EVENTTAB_BUILD USING L_T_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = L_T_EVENTS.
READ TABLE L_T_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE C_FORM_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO L_T_EVENTS.
ENDIF.
ENDFORM. " EVENTTAB_BUILD
*&----
*
*& Form LAYOUT_BUILD
*&----
*
FORM LAYOUT_BUILD USING L_S_LAYOUT TYPE SLIS_LAYOUT_ALV.
L_S_LAYOUT-ZEBRA = C_YES.
ENDFORM. " LAYOUT_BUILD
*&----
*
*& Form COMMENT_BUILD
*&----
*
FORM COMMENT_BUILD USING L_T_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: LS_LINE TYPE SLIS_LISTHEADER.
CLEAR L_T_LIST_TOP_OF_PAGE[].
Listenüberschrift: Typ H
CLEAR LS_LINE.
LS_LINE-TYP = 'H'.
LS_LINE-KEY: not used for this type
LS_LINE-INFO = TEXT-020.
APPEND LS_LINE TO L_T_LIST_TOP_OF_PAGE.
Kopfinfo: Typ S
CLEAR LS_LINE.
LS_LINE-TYP = 'S'.
LS_LINE-KEY = TEXT-021.
LS_LINE-INFO = SY-DATLO.
APPEND LS_LINE TO L_T_LIST_TOP_OF_PAGE.
Aktionsinfo: Typ A
CLEAR LS_LINE.
LS_LINE-TYP = 'A'.
LS_LINE-KEY: not used for this type
LS_LINE-INFO = TEXT-022.
APPEND LS_LINE TO L_T_LIST_TOP_OF_PAGE.
ENDFORM. " COMMENT_BUILD
2005 Jun 17 3:11 AM
Sorry, I miss a file LMPR1KON
here it is
----
INCLUDE LMPR1KON *
----
CONSTANTS:
C_YES TYPE C VALUE 'X',
C_NO TYPE C VALUE ' ',
C_UEBERNAHME_TEST(2) TYPE C VALUE 'T ',
C_UEBERNAHME_USER_EXIT(2) TYPE C VALUE 'U ',
C_PERKZ_TAG(1) TYPE C VALUE 'T',
C_PERKZ_WOCHE(1) TYPE C VALUE 'W',
C_PERKZ_MONAT(1) TYPE C VALUE 'M',
C_PERKZ_BUCH(1) TYPE C VALUE 'P',
C_PERIODE_AKTUELL(1) TYPE C VALUE 'A',
C_PERIODE_FOLGE(1) TYPE C VALUE 'F',
Funktionscodes
C_FC_ONLI(4) TYPE C VALUE 'ONLI',
C_FC_EXIT(4) TYPE C VALUE 'EXIT',
C_FC_BACK(4) TYPE C VALUE 'BACK',
C_FC_CANC(4) TYPE C VALUE 'CANC',
C_FC_CONT(4) TYPE C VALUE 'CONT',
C_FC_SAVE(4) TYPE C VALUE 'SAVE',
C_FC_READ(4) TYPE C VALUE 'READ',
C_FC_NEXT(4) TYPE C VALUE 'NEXT',
Dynpros
C_DYNPRO_0100(4) TYPE C VALUE '0100',
C_DYNPRO_0200(4) TYPE C VALUE '0200',
C_DYNPRO_0300(4) TYPE C VALUE '0300',
GUI-Status
C_STATUS_0100(5) TYPE C VALUE 'S0100',
C_STATUS_0200(5) TYPE C VALUE 'S0200',
C_STATUS_0300(5) TYPE C VALUE 'S0300',
GUI-Titel
C_TITLE_0100(3) TYPE C VALUE '100',
C_TITLE_0200(3) TYPE C VALUE '200',
C_TITLE_0300(3) TYPE C VALUE '300'.
2005 Jun 17 3:33 AM
Hi Zhenglin gu,
Thank you very much for sending me the program.Can you please tell me from what Transaction you have got this program from so that i can see in the system.
Did you ever worked on copying forecast values from Legacy into SAP R/3??? If yes, Could you shed some light on this.
Regards
Raj
Message was edited by: raj shreekar
2005 Jun 17 5:30 AM
Hi, the tcode of it is MPR1.
and you can using se80 to open the RMPR1001.
Sorry, I have no experience on this tcode. My co-worker has used it, so could you tell me what do you want to know about it?
2005 Jun 17 2:45 PM
Hi
I wanted to know, how to use this program for copying the Forecast values into SAP R/3 material master.
Now that I have got the program but dont know how to proceed and make use of this program.
Please help me how to proceed further.
2005 Jun 17 3:10 PM
2005 Jun 17 4:30 PM
Hi rob,
Yes, I know that documentation is available but the problem is it is in German and moreover even the system attempted a message saying Documentation is not available in English also i am not able to translate the language from DE to En saying that object not found or no text exists..
Regards
Raj
2005 Jun 17 4:59 PM
Odd - the documentation is in English in our system. What version are you using?
To translate, try:
http://babelfish.altavista.com/translate.dyn
There are others as well.
Rob
2005 Jun 17 6:51 PM
Hi Rob,
Could you please send me the documentation in english .We are on 4.6C and BTW thanx for the website.I also tried freetranslation.com it is also good...
My only concern is how to use this program to load the Forecast values from Legacy into R/3 material master??
Regards
Arun
2005 Jun 17 7:18 PM
Here is the documentationb from our 4.6C system. I don't understand why it's not in yours:
Rob
Short text
Forecast Adopted from External Data
Title
Forecast Transfer from External Systems
Purpose
You use this program to transfer forecast values from external systems to your R/3 system. The program works as follows:
1. The program searches for the material/plant combination defined for external forecast.
2. Using user exit EXIT_SAPLMPR1_002, you can set a filter on the materials to be forecast externally.
3. The program calls user exit EXIT_SAPLMPR1_001 and transfers information on the materials to be forecast.
4. The user exit must have the forecast values from the external system at its disposal.
5. After the user exit is run, the forecast values are posted in R/3.
Scope of Functions
You can generate a log of the forecast values transferred and the
messages that occur.
Example
You can use this program to transfer forecast values from a legacy system.
2005 Jul 15 8:01 PM
Hi Rob,
Since I got the documentation it shows me what exactly the program does.
But, my question is where does the file reside(i mean a directory or a name or path) like that for RMPR1001.
And also the Format of the File information.like for example Program RFBIKR00 is for vendor master and the format is Vendo.txt like that.
Could you or anyone please help me to find the information.
Thanks
Raj
2005 Jul 15 8:20 PM
The documentation I posted did not include the references to the exits. They are:
EXIT_SAPLMPR1_002
Functionality
You use this user exit to filter materials proposed by your R/3 system for external forecast. The user exit is called by program RMPR1001 (transaction MPR1).
In the material table transferred (T_ARTICLES), simply delete the lines for which you do not want to transfer external forecast data.
You can keep a log of this in table T_MESSAGES, if required. The purpose of the table is to collect error messages that are displayed after the forecast has been transferred to R/3.
and:
EXIT_SAPLMPR1_001
Functionality
You use this user exit to transfer forecast values from a separate system to your R/3 system using program RMPR1001 (transaction MPR1).
When you call up the program, you can enter a parameter (I_MPR1USERPAR) to be transferred to the user exit. The parameter does not have a fixed meaning and can be defined as required. You then analyze the parameter in the user exit.
The materials proposed by R/3 are passed on in table T_ARTICLES. The user exit then has to fill table T_FORECAST_VALUES. Please fill the table in line with the materials in T_ARTICLES.
The program is able to make certain adjustments (such as, if the unit of measure differs) but this is not always possible (for example, if the period indicator differs) and slows down performance.
Rob
2005 Jun 17 7:49 PM
Also - there are a few OSS notes relating to this program. Depending on your patch level, they may apply.
Rob
2005 Jun 17 8:05 PM
Rob,
Thank you very much !! This is good start point for me.I'll let you know if i face any problems.
Regards
Raj