2007 May 09 11:00 AM
hi all,
I want to validate that the Batch and quantity entered in MB1B should be cheked against Batch & quantity in MIGO, if the user has entered different batches an error message should be issued.
kindly suggest as how to do this & which exit shuld be used.
points wuld be awarded.
thnx & rgds.
2007 May 09 11:08 AM
Check following
Exit name
MBCF0002
MBCF0005
MBCF0006
MBCF0007
MBCF0009
MBCF0010
MBCF0011
MBCFC003
MBCFC004
MB_CF001
Regards,
SaiRam
hi all,
I want to validate that the Batch and quantity entered in MB1B should be cheked against Batch & quantity in MIGO, if the user has entered different batches an error message should be issued.
kindly suggest as how to do this & which exit shuld be used.
points wuld be awarded.
thnx & rgds.
2007 May 09 11:08 AM
Check following
Exit name
MBCF0002
MBCF0005
MBCF0006
MBCF0007
MBCF0009
MBCF0010
MBCF0011
MBCFC003
MBCFC004
MB_CF001
Regards,
SaiRam
2007 May 09 12:02 PM
hi,
have a look at one of my Z programs running succesfully at my company for MB1B:
REPORT Z_MAT_TO_MAT_TRANSFER.
TABLES:MKPF,MSEG,MARA,RM07M,MCHA.
*DATA DECLARATION
DATA: BEGIN OF IMB1B OCCURS 0,
BLDAT LIKE MKPF-BLDAT,
BUDAT LIKE MKPF-BUDAT,
MTSNR LIKE RM07M-MTSNR,
BKTXT LIKE MKPF-BKTXT,
WERKS LIKE MSEG-WERKS,
LGORT LIKE MSEG-LGORT,
GSBER LIKE MSEG-GSBER,
CHARG LIKE MSEG-CHARG,
SMATNR LIKE MSEG-MATNR,
RMATNR LIKE MSEG-MATNR,
MEINS LIKE MSEG-MEINS,
MENGE LIKE MSEG-MENGE,
END OF IMB1B.
DATA DECLARATIONS FOR CREATION OF STRUCTURE TO PASS TO BAPI*//
DATA:BEGIN OF I_GOODSMVT_HEADER.
INCLUDE STRUCTURE BAPI2017_GM_HEAD_01.
DATA:END OF I_GOODSMVT_HEADER.
DATA:BEGIN OF I_GOODSMVT_CODE.
INCLUDE STRUCTURE BAPI2017_GM_CODE.
DATA:END OF I_GOODSMVT_CODE.
DATA:BEGIN OF I_GOODSMVT_ITEM OCCURS 0.
INCLUDE STRUCTURE BAPI2017_GM_ITEM_CREATE.
DATA:END OF I_GOODSMVT_ITEM.
FOR GETTING THE ERROR MESSAGE OF THE FAILED ISSUE GOODS*************//
DATA: BEGIN OF I_RETURN OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA: END OF I_RETURN.
TO GET THE DETAILS OF CREATED MATERIAL********************//
DATA: I_GOODSMVT_HEADRET LIKE BAPI2017_GM_HEAD_RET,
I_MATERIALDOCUMENT TYPE BAPI2017_GM_HEAD_RET-MAT_DOC,
I_MATDOCUMENTYEAR TYPE BAPI2017_GM_HEAD_RET-DOC_YEAR.
DATA: MESSAGE1(75).
DATA: MESSAGE2(75).
START-OF-SELECTION.
CALL SCREEN 100.
&----
*& Module STATUS_0100 OUTPUT
&----
text
----
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'PFMB1B'.
SET TITLEBAR 'TTMB1B'.
PERFORM INITIALIZE.
ENDMODULE. " STATUS_0100 OUTPUT
&----
*& Module USER_COMMAND_0100 INPUT
&----
text
----
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'END'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'CANCEL'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'FRDPO'.
PERFORM FORWARD_POSTING.
WHEN 'BCKPO'.
PERFORM BACKWARD_POSTING.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
&----
*& Form FORWARD_POSTING
&----
text
----
--> p1 text
<-- p2 text
----
FORM FORWARD_POSTING.
PERFORM VALIDATE_REC_MATNR.
PERFORM GET_DATA.
PERFORM POPULATE_DATA_FOR_BAPI USING 'Z09' '04'.
PERFORM POSTING.
ENDFORM. " FORWARD_POSTING
**&----
**
**& Form BACKWARD_POSTING
**&----
**
text
**----
**
--> p1 text
<-- p2 text
**----
**
*FORM BACKWARD_POSTING.
*
PERFORM VALIDATE_REC_MATNR.
PERFORM GET_DATA.
PERFORM POPULATE_DATA_FOR_BAPI USING 'Z10' '06'.
PERFORM POSTING.
*
*ENDFORM. " BACKWARD_POSTING
&----
*& Form GET_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_DATA.
CLEAR : IMB1B.
IMB1B-BLDAT = MKPF-BLDAT.
IMB1B-BUDAT = MKPF-BUDAT.
IMB1B-MTSNR = RM07M-MTSNR.
IMB1B-BKTXT = MKPF-BKTXT.
IMB1B-WERKS = MSEG-WERKS.
IMB1B-LGORT = MSEG-LGORT.
IMB1B-GSBER = MSEG-GSBER.
IMB1B-CHARG = MSEG-CHARG.
IMB1B-SMATNR = MSEG-MATNR.
IMB1B-RMATNR = MARA-MATNR.
IMB1B-MEINS = MSEG-MEINS.
IMB1B-MENGE = MSEG-MENGE.
ENDFORM. " GET_DATA
&----
*& Form POPULATE_DATA_FOR_BAPI
&----
text
----
-->P_0184 text
-->P_0185 text
----
FORM POPULATE_DATA_FOR_BAPI USING VALUE(P_0184)
VALUE(P_0185).
CLEAR: I_GOODSMVT_HEADER,I_GOODSMVT_CODE,I_GOODSMVT_HEADRET,
I_MATERIALDOCUMENT,I_MATDOCUMENTYEAR,I_GOODSMVT_ITEM,
I_GOODSMVT_ITEM[],I_RETURN,I_RETURN[].
I_GOODSMVT_HEADER-PSTNG_DATE = IMB1B-BUDAT.
I_GOODSMVT_HEADER-DOC_DATE = IMB1B-BLDAT.
I_GOODSMVT_HEADER-GR_GI_SLIP_NO = IMB1B-MTSNR.
I_GOODSMVT_HEADER-HEADER_TXT = IMB1B-BKTXT.
I_GOODSMVT_CODE-GM_CODE = P_0185.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = IMB1B-RMATNR
IMPORTING
OUTPUT = IMB1B-RMATNR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = IMB1B-SMATNR
IMPORTING
OUTPUT = IMB1B-SMATNR.
I_GOODSMVT_ITEM-MATERIAL = IMB1B-SMATNR.
I_GOODSMVT_ITEM-PLANT = IMB1B-WERKS.
I_GOODSMVT_ITEM-STGE_LOC = IMB1B-LGORT.
I_GOODSMVT_ITEM-BATCH = IMB1B-CHARG.
I_GOODSMVT_ITEM-MOVE_TYPE = P_0184.
I_GOODSMVT_ITEM-ENTRY_QNT = IMB1B-MENGE.
I_GOODSMVT_ITEM-ENTRY_UOM = IMB1B-MEINS.
I_GOODSMVT_ITEM-MOVE_MAT = IMB1B-RMATNR.
SELECT SINGLE BWTAR
FROM MCHA
INTO MCHA-BWTAR
WHERE MATNR = IMB1B-SMATNR
AND WERKS = IMB1B-WERKS
AND CHARG = IMB1B-CHARG.
I_GOODSMVT_ITEM-VAL_TYPE = MCHA-BWTAR.
I_GOODSMVT_ITEM-MOVE_VAL_TYPE = I_GOODSMVT_ITEM-VAL_TYPE.
APPEND I_GOODSMVT_ITEM.
ENDFORM. " POPULATE_DATA_FOR_BAPI
&----
*& Form POSTING
&----
text
----
--> p1 text
<-- p2 text
----
FORM POSTING.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
GOODSMVT_HEADER = I_GOODSMVT_HEADER
GOODSMVT_CODE = I_GOODSMVT_CODE
IMPORTING
GOODSMVT_HEADRET = I_GOODSMVT_HEADRET
MATERIALDOCUMENT = I_MATERIALDOCUMENT
MATDOCUMENTYEAR = I_MATDOCUMENTYEAR
TABLES
GOODSMVT_ITEM = I_GOODSMVT_ITEM
RETURN = I_RETURN.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
WAIT UP TO 10 SECONDS.
IF I_RETURN IS INITIAL.
MESSAGE S060(M7) WITH I_MATERIALDOCUMENT.
ELSE.
READ TABLE I_RETURN WITH KEY TYPE = 'E'.
MESSAGE1 = I_RETURN-MESSAGE+0(50).
MESSAGE2 = I_RETURN-MESSAGE+50(100).
MESSAGE I398(00) WITH MESSAGE1 MESSAGE2.
LEAVE TO SCREEN '100'.
ENDIF.
ENDFORM. " POSTING
&----
*& Form VALIDATE_REC_MATNR
&----
text
----
--> p1 text
<-- p2 text
----
FORM VALIDATE_REC_MATNR.
SELECT SINGLE MATNR FROM MARA INTO MARA-MATNR
WHERE BEGRU IN ('309','310').
IF SY-SUBRC NE 0.
MESSAGE S398(00) WITH 'Recieving material does not have'
'required authorization group'.
LEAVE TO SCREEN '100'.
ENDIF.
ENDFORM. " VALIDATE_REC_MATNR
&----
*& Form INITIALIZE
&----
text
----
--> p1 text
<-- p2 text
----
FORM INITIALIZE.
MKPF-BLDAT = SY-DATUM.
MKPF-BUDAT = SY-DATUM.
ENDFORM. " INITIALIZE
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |