Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Program RMPR1001

Former Member
0 Likes
2,572

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

14 REPLIES 14
Read only

Former Member
0 Likes
1,745

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

Read only

Former Member
0 Likes
1,745

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'.

Read only

0 Likes
1,745

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

Read only

Former Member
0 Likes
1,745

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?

Read only

Former Member
0 Likes
1,745

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.

Read only

Former Member
0 Likes
1,745

It has some documentation. Have you checked it?

Rob

Read only

0 Likes
1,745

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

Read only

Former Member
0 Likes
1,745

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

Read only

0 Likes
1,745

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

Read only

Former Member
0 Likes
1,745

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.

Read only

0 Likes
1,745

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

Read only

0 Likes
1,745

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

Read only

Former Member
0 Likes
1,745

Also - there are a few OSS notes relating to this program. Depending on your patch level, they may apply.

Rob

Read only

0 Likes
1,745

Rob,

Thank you very much !! This is good start point for me.I'll let you know if i face any problems.

Regards

Raj