创建物料批次和批次分类特性
大约 2 分钟约 471 字...
创建物料批次和批次分类特性
相关事物代码和函数
事物代码:
MSC3N 显示批次
CL03 显示分类
函数:
BAPI_BATCH_CREATE 批次创建
VB_BATCH_2_CLASS_OBJECT 批次分类相关信息获取BAPI OBJCL CHANGE 分类特性创建用这个发现不行BAPI_BATCH_SAVE_REPLICA 批次分类特性创建
代码示例
DATA GS_BATCHATTRIBUTES LIKE BAPIBATCHATT.
DATA GV_MATERIAL LIKE BAPIBATCHKEY-MATERIAL.
DATA GT_RETURN LIKE TABLE OF BAPIRET2.
*批次分类创建参数Z_BATCH 023
DATA: GS_BATCHATTRIBUTES_023 LIKE BAPIBATCHATT,
GS_BATCHATTRIBUTESX_023 LIKE BAPIBATCHATTX.
DATA: GS_CLASSALLOCATIONS LIKE BAPI3060_ALLOCATION,
GT_CLASSALLOCATIONS LIKE TABLE OF BAPI3060_ALLOCATION,
GS_CLASSVALUATIONSCHAR LIKE BAPI3060_VALUATION_CHAR,
GT_CLASSVALUATIONSCHAR LIKE TABLE OF BAPI3060_VALUATION_CHAR
.
DATA GT_RETURN023 LIKE TABLE OF BAPIRET2.
DATA GV_MESSAGE LIKE BAPIRET2-MESSAGE.
CLEAR: GS_BATCHATTRIBUTES,GV_MATERIAL.
GS_BATCHATTRIBUTES-COUNTRYORI = 'CN'.
GS_BATCHATTRIBUTES-PROD_DATE = <FS_DATA>-HSDAT.
SELECT SINGLE MHDHB INTO @DATA(GV_MADHB)
FROM MARA WHERE MATNR = @<FS_DATA>-MATNR.
IF GV_MADHB IS INITIAL.
ES_RET-CODE = 'E'.
ES_RET-MSG = <FS_DATA>-MATNR && ',请维护货架寿命'.
ZJT-RFC-LOG-E IS_REQ ES_RET.
RETURN.
ENDIF.
GS_BATCHATTRIBUTES-EXPIRYDATE = GS_BATCHATTRIBUTES-PROD_DATE + GV_MADHB.
GV_MATERIAL = LS_KOMDLGN-MATNR.
CALL FUNCTION 'BAPI_BATCH_CREATE'
EXPORTING
MATERIAL = GV_MATERIAL
* BATCH =
PLANT = LS_KOMDLGN-WERKS
BATCHATTRIBUTES = GS_BATCHATTRIBUTES
* BATCHCONTROLFIELDS =
* BATCHSTORAGELOCATION =
* INTERNALNUMBERCOM =
* EXTENSION1 =
* MATERIAL_EVG =
* MATERIAL_LONG =
IMPORTING
BATCH = LS_KOMDLGN-CHARG
* BATCHATTRIBUTES =
TABLES
RETURN = GT_RETURN.
READ TABLE GT_RETURN INTO DATA(GS_RETURN) WITH KEY TYPE = 'S' ID = '12' NUMBER = '128'. "#EC CI_STDSEQ
IF SY-SUBRC = 0. "批次创建成功
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
.
WAIT UP TO '0.2' SECONDS.
CLEAR:GS_BATCHATTRIBUTES_023,GS_BATCHATTRIBUTESX_023,GS_CLASSALLOCATIONS,GS_CLASSVALUATIONSCHAR.
REFRESH:GT_CLASSALLOCATIONS[],GT_CLASSVALUATIONSCHAR[],GT_RETURN023[].
GS_BATCHATTRIBUTES_023-PROD_DATE = <FS_DATA>-HSDAT.
GS_BATCHATTRIBUTESX_023-PROD_DATE = 'X'.
GS_CLASSALLOCATIONS-CLASS_TYPE = '023'.
GS_CLASSALLOCATIONS-OBJECTTABLE = 'MCH1'.
GS_CLASSALLOCATIONS-CLASSNUM = 'Z_BATCH'.
GS_CLASSALLOCATIONS-CLASSTYPE = '023'.
GS_CLASSALLOCATIONS-STANDARDCLASS = 'X'.
CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT'
EXPORTING
I_MATNR = <FS_DATA>-MATNR
I_CHARG = LS_KOMDLGN-CHARG
I_WERKS = <FS_DATA>-WERKS
IMPORTING
E_OBJEK = GS_CLASSALLOCATIONS-OBJECTKEY_LONG
* E_OBTAB =
* E_KLART =
* E_CLASS =
.
APPEND GS_CLASSALLOCATIONS TO GT_CLASSALLOCATIONS.
GS_CLASSVALUATIONSCHAR-CLASS_TYPE = '023'.
GS_CLASSVALUATIONSCHAR-OBJECTTABLE = 'MCH1'.
GS_CLASSVALUATIONSCHAR-CHARACT = 'LOBM_HSDAT'.
GS_CLASSVALUATIONSCHAR-VALUE_CHAR = <FS_DATA>-HSDAT.
GS_CLASSVALUATIONSCHAR-OBJECTKEY_LONG = GS_CLASSALLOCATIONS-OBJECTKEY_LONG.
APPEND GS_CLASSVALUATIONSCHAR TO GT_CLASSVALUATIONSCHAR.
CALL FUNCTION 'BAPI_BATCH_SAVE_REPLICA' "创建物料批次分类
EXPORTING
MATERIAL = GV_MATERIAL
BATCH = LS_KOMDLGN-CHARG
* PLANT =
BATCHATTRIBUTES = GS_BATCHATTRIBUTES_023
BATCHATTRIBUTESX = GS_BATCHATTRIBUTESX_023
* BATCHSTATUS =
* BATCHSTATUSX =
* BATCHCONTROLFIELDS =
* BATCHSTORAGELOCATION =
* INTERNALNUMBERCOM =
* EXTENSION1 =
* MATERIAL_EVG =
* MATERIAL_LONG =
TABLES
RETURN = GT_RETURN023[]
CLASSALLOCATIONS = GT_CLASSALLOCATIONS[]
CLASSVALUATIONSCHAR = GT_CLASSVALUATIONSCHAR[]
* CLASSVALUATIONSCURR =
* CLASSVALUATIONSNUM =
.
ELSE. "批次创建失败
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ES_RET-CODE = 'E'.
ES_RET-MSG = |批次创建失败,错误:{ GS_RETURN-TYPE } ID:{ GS_RETURN-ID } Number:{ GS_RETURN-NUMBER } 消息:{ GS_RETURN-MESSAGE }|.
ZJT-RFC-LOG-E IS_REQ ES_RET.
RETURN.
ENDIF.你认为这篇文章怎么样?
0
0
0
0
0
0





