Hi Friends,
I have created a remote-enabled function module which simulates the MFBF transaction as follows.
Import Parameters: I_WERKS type WERKS I_MATNR type MATNR I_QTY type ERFMG I_UOM type SA_ERFME I_VERID type VERID I_BUDAT type BUDAT I_HDRTXT type BKTXT
Export Parameters: CONFIRMATION type PRTNR MATERIAL_DOC type MBLNR RETURN type BAPIRET2
Source code:
TABLES: ZWS_ERR.
DATA: WA_ZWS_ERR TYPE ZWS_ERR.
DATA: L_FLAGS TYPE BAPI_RM_FLG,
L_GENDATA TYPE BAPI_RM_DATGEN,
L_SPCDATA TYPE BAPI_RM_DATSTOCK.
DATA: BEGIN OF GM OCCURS 0.
INCLUDE STRUCTURE BAPI2017_GM_ITEM_CREATE.
DATA: END OF GM.
DATA: L_TMSTMP(11) TYPE p DECIMALS 7.
DATA: L_LOW TYPE TVARV_VAL.
*Make to Stock Scenario:
*check to see if we need to capture successful calls:
select SINGLE low INTO L_LOW
FROM tvarvc
where name = 'ZWS_MTS_GD'
AND LOW = 'X'.
IF I_WERKS IS INITIAL.
I_WERKS = '0010'.
ENDIF.
L_FLAGS = '01'.
L_GENDATA-MATERIALNR = I_MATNR.
L_GENDATA-PRODPLANT = I_WERKS.
L_GENDATA-PRODVERSION = I_VERID.
L_GENDATA-BACKFLQUANT = I_QTY.
L_GENDATA-UNITOFMEASURE = I_UOM.
L_GENDATA-DOCHEADERTXT = I_HDRTXT.
L_GENDATA-POSTDATE = I_BUDAT.
L_GENDATA-DOCDATE = SY-DATUM.
CALL FUNCTION 'BAPI_REPMANCONF1_CREATE_MTS'
EXPORTING
BFLUSHFLAGS = L_FLAGS
BFLUSHDATAGEN = L_GENDATA
BFLUSHDATAMTS = L_SPCDATA
IMPORTING
CONFIRMATION = CONFIRMATION
RETURN = RETURN
* TABLES
* SERIALNR =
GOODSMOVEMENTS = GM.
* Commit or rollback the bapi
if CONFIRMATION ne '0000000000'.
call function 'BAPI_TRANSACTION_COMMIT'.
*Capture "successful" calls in table to track usage
*for initial deploymnet (testing, monitoring, etc.)
*To turn off - Set TVARVC variable ZWS_MTS_GD to initial
IF L_LOW EQ 'X'.
get time stamp field L_TMSTMP.
WA_ZWS_ERR-MANDT = SY-MANDT.
WA_ZWS_ERR-TIMESTAMP = L_TMSTMP.
WA_ZWS_ERR-WERKS = I_WERKS.
WA_ZWS_ERR-MATNR = I_MATNR.
WA_ZWS_ERR-BACKFLQUANT = I_QTY.
WA_ZWS_ERR-UOM = I_UOM.
WA_ZWS_ERR-VERID = I_VERID.
WA_ZWS_ERR-BUDAT = I_BUDAT.
WA_ZWS_ERR-HDRTXT = I_HDRTXT.
WA_ZWS_ERR-TYPE = RETURN-TYPE.
WA_ZWS_ERR-ID = RETURN-ID.
WA_ZWS_ERR-MSGNO = RETURN-NUMBER.
WA_ZWS_ERR-MESSAGE = CONFIRMATION.
WA_ZWS_ERR-ERNAM = SY-UNAME.
WA_ZWS_ERR-ERDAT = SY-DATUM.
WA_ZWS_ERR-ERZET = SY-UZEIT.
INSERT ZWS_ERR FROM WA_ZWS_ERR.
endif.
else .
*Do not send application errors back to calling application!!
*Application Errors will be handled in SAP, so store the errors in table ZWS_ERR
*And then clear RETURN
call function 'BAPI_TRANSACTION_ROLLBACK' .
get time stamp field L_TMSTMP.
WA_ZWS_ERR-MANDT = SY-MANDT.
WA_ZWS_ERR-TIMESTAMP = L_TMSTMP.
WA_ZWS_ERR-WERKS = I_WERKS.
WA_ZWS_ERR-MATNR = I_MATNR.
WA_ZWS_ERR-BACKFLQUANT = I_QTY.
WA_ZWS_ERR-UOM = I_UOM.
WA_ZWS_ERR-VERID = I_VERID.
WA_ZWS_ERR-BUDAT = I_BUDAT.
WA_ZWS_ERR-HDRTXT = I_HDRTXT.
WA_ZWS_ERR-TYPE = RETURN-TYPE.
WA_ZWS_ERR-ID = RETURN-ID.
WA_ZWS_ERR-MSGNO = RETURN-NUMBER.
WA_ZWS_ERR-MESSAGE = RETURN-MESSAGE.
WA_ZWS_ERR-ERNAM = SY-UNAME.
WA_ZWS_ERR-ERDAT = SY-DATUM.
WA_ZWS_ERR-ERZET = SY-UZEIT.
INSERT ZWS_ERR FROM WA_ZWS_ERR.
CLEAR RETURN.
endif.
When I test my FM, I am getting confirmation number(It is working fine till here) But I don't see any material document number.
Have I done anything wrong? Please suggest me in such a way that I need my material document number also get populated.
Thanks in Advance.