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

mm check

former_member188827
Active Contributor
0 Likes
662

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.

1 ACCEPTED SOLUTION
Read only

former_member196280
Active Contributor
0 Likes
616

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.

2 REPLIES 2
Read only

former_member196280
Active Contributor
0 Likes
617

Check following

Exit name

MBCF0002

MBCF0005

MBCF0006

MBCF0007

MBCF0009

MBCF0010

MBCF0011

MBCFC003

MBCFC004

MB_CF001

Regards,

SaiRam

Read only

Former Member
0 Likes
616

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