批次特性获取
批次特性獲取:
DATA:WK_OBTAB TYPE TABELLE, ?
? ? ? ?WK_KLART TYPE KLASSENART,?
? ? ? ?WK_CLASS TYPE KLASSE_D, ?
WK_OBJEK TYPE OBJNUM. ?
??
CALL FUNCTION BAPI_OBJCL_GETDETAIL_KEY
獲取特性
?
? ? ? CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT'?
? ? ? ? EXPORTING ?
? ? ? ? ? I_MATNR = ITAB_MSEG-MATNR?
? ? ? ? ? I_CHARG = ITAB_MSEG-CHARG?
? ? ? ? ? I_WERKS = 'WG01'?
? ? ? ? IMPORTING ?
? ? ? ? ? E_OBJEK = WK_OBJEK?
? ? ? ? ? E_OBTAB = WK_OBTAB?
? ? ? ? ? E_KLART = WK_KLART?
? ? ? ? ? E_CLASS = WK_CLASS.?
??
? ? ? CLEAR MCH1.?
? ? ? SELECT SINGLE *?
? ? ? ? FROM MCH1 ?
? ? ? ?WHERE MATNR = ITAB_MSEG-MATNR?
? ? ? ? ?AND CHARG = ITAB_MSEG-CHARG.?
??
* ? ? ?SELECT SINGLE CLINT?
* ? ? ? ?INTO CLINT?
* ? ? ? ?FROM KSSK ?
* ? ? ? WHERE OBJEK = MCH1-CUOBJ_BM?
* ? ? ? ? AND KLART = '023'.?
* ?
* ? ? ?SELECT SINGLE CLASS?
* ? ? ? ?INTO CLASS?
* ? ? ? ?FROM KLAH ?
* ? ? ? WHERE CLINT = CLINT.?
?
??
*
取特性值并填充
segment zchar ?
? ? ? CALL FUNCTION 'BAPI_OBJCL_GETDETAIL_KEY'?
? ? ? ? EXPORTING ?
? ? ? ? ? CLOBJECTKEY ? ? = MCH1-CUOBJ_BM?
? ? ? ? ? CLASSNUM ? ? ? ?= WK_CLASS?
? ? ? ? TABLES ?
?ALLOCVALUESNUM ?= ALLOCVALUESNUM?
? ? ? ? ? ALLOCVALUESCHAR = ALLOCVALUESCHAR?
? ? ? ? ? ALLOCVALUESCURR = ALLOCVALUESCURR?
? ? ? ? ? RETURN ? ? ? ? ?= RETURN.?
??
? ? ? LOOP AT ALLOCVALUESCHAR. ?
? ? ? ? ZCHAR-ATNAM = ALLOCVALUESCHAR-CHARACT. ?
? ? ? ? ZCHAR-ATWRT = ALLOCVALUESCHAR-VALUE_NEUTRAL.?
? ? ? ? CLEAR INT_EDIDD. ?
? ? ? ? INT_EDIDD-SDATA = ZCHAR.?
? ? ? ? INT_EDIDD-SEGNAM = 'ZCHAR'.?
? ? ? ? APPEND INT_EDIDD.?
? ? ? ENDLOOP.?
??
? ? ? LOOP AT ALLOCVALUESNUM. ?
? ? ? ? WK_MENGE = ALLOCVALUESNUM-VALUE_FROM.?
? ? ? ? ZCHAR-ATNAM = ALLOCVALUESNUM-CHARACT.?
? ? ? ? ZCHAR-ATWRT = WK_MENGE.?
? ? ? ? CONDENSE ZCHAR-ATWRT.?
??
? ? ? ? CLEAR INT_EDIDD. ?
? ? ? ? INT_EDIDD-SDATA = ZCHAR.?
? ? ? ? INT_EDIDD-SEGNAM = 'ZCHAR'.?
? ? ? ? APPEND INT_EDIDD. ?
ENDLOOP.
÷
??
??
批次特性修改
??
? SELECT SINGLE *?
? ? FROM MCHA ?
? ?WHERE MATNR = GOODSMVT_ITEM-MATERIAL?
? ? ?AND WERKS = GOODSMVT_ITEM-PLANT?
? ? ?AND CHARG = GOODSMVT_ITEM-BATCH.?
??
? IF SY-SUBRC <> 0.?
??
? ? CALL FUNCTION 'BAPI_BATCH_CREATE'?
? ? ? EXPORTING ?
? ? ? ? MATERIAL = GOODSMVT_ITEM-MATERIAL?
? ? ? ? BATCH ? ?= GOODSMVT_ITEM-BATCH?
? ? ? ? PLANT ? ?= GOODSMVT_ITEM-PLANT?
? ? ? TABLES ?
? ? ? ? RETURN ? = RETURN. ?
LOOP AT RETURN WHERE TYPE = 'E' OR TYPE = 'A'.?
? ? ? EXIT.?
? ? ENDLOOP.?
??
? ? IF SY-SUBRC <> 0.?
? ? ? FLAG = '0'. ?
? ? ? COMMIT WORK AND WAIT.?
? ? ELSE. ?
? ? ? FLAG = '1'.?
? ? ENDIF.?
??
? ? MESSAGE = RETURN-MESSAGE.?
??
? ENDIF.?
??
? CHECK FLAG = '0'.?
??
? IF NOT CHAR[] IS INITIAL. ?
? ? ? CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT'?
? ? ? EXPORTING ?
? ? ? ? I_MATNR = GOODSMVT_ITEM-MATERIAL?
? ? ? ? I_CHARG = GOODSMVT_ITEM-BATCH?
? ? ? ? I_WERKS = 'WG01'?
? ? ? IMPORTING ?
? ? ? ? E_OBJEK = WK_OBJEK?
? ? ? ? E_OBTAB = WK_OBTAB?
? ? ? ? E_KLART = WK_KLART?
? ? ? ? E_CLASS = WK_CLASS.?
??
? ? BAPIBATCHCTRL-CLASS_NUM = WK_CLASS.?
? ? BATCHATTRIBUTES-AVAILABLE = SY-DATUM.?
? ? BATCHATTRIBUTESX-AVAILABLE = 'X'.?
??
? ? REFRESH: CLASSALLOCATIONS,RETURN.?
??
? ? CLASSALLOCATIONS-OBJECTKEY = WK_OBJEK.?
? ? CLASSALLOCATIONS-OBJECTTABLE = WK_OBTAB.?
? ? CLASSALLOCATIONS-CLASS_TYPE = '023'.?
? ? CLASSALLOCATIONS-CLASSNUM = WK_CLASS.?
? ? CLASSALLOCATIONS-CLASSTYPE = '023'.?
? ? APPEND CLASSALLOCATIONS.?
??
? ? LOOP AT CHAR. ?
?CHAR1-OBJECTKEY = WK_OBJEK.?
? ? ? CHAR1-CHARACT = CHAR-ATNAM.?
? ? ? CHAR1-VALUE_CHAR = CHAR-ATWRT.?
? ? ? CHAR1-CLASS_TYPE = '023'.?
? ? ? CHAR1-OBJECTTABLE = WK_OBTAB.?
? ? ? APPEND CHAR1.?
? ? ENDLOOP.?
?
??
? ? CALL FUNCTION 'BAPI_BATCH_SAVE_REPLICA'?
? ? ? EXPORTING ?
? ? ? ? MATERIAL ? ? ? ? ? ?= GOODSMVT_ITEM-MATERIAL?
? ? ? ? BATCH ? ? ? ? ? ? ? = GOODSMVT_ITEM-BATCH?
? ? ? ? PLANT ? ? ? ? ? ? ? = GOODSMVT_ITEM-PLANT?
? ? ? ? BATCHATTRIBUTES ? ? = BATCHATTRIBUTES?
? ? ? ? BATCHATTRIBUTESX ? ?= BATCHATTRIBUTESX?
? ? ? ? BATCHCONTROLFIELDS ?= BAPIBATCHCTRL?
? ? ? TABLES ?
? ? ? ? RETURN ? ? ? ? ? ? ?= RETURN ?
? ? ? ? CLASSALLOCATIONS ? ?= CLASSALLOCATIONS?
? ? ? ? CLASSVALUATIONSCHAR = CHAR1.
DATA:WK_OBTAB TYPE TABELLE, ?
? ? ? ?WK_KLART TYPE KLASSENART,?
? ? ? ?WK_CLASS TYPE KLASSE_D, ?
WK_OBJEK TYPE OBJNUM. ?
??
CALL FUNCTION BAPI_OBJCL_GETDETAIL_KEY
獲取特性
?
? ? ? CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT'?
? ? ? ? EXPORTING ?
? ? ? ? ? I_MATNR = ITAB_MSEG-MATNR?
? ? ? ? ? I_CHARG = ITAB_MSEG-CHARG?
? ? ? ? ? I_WERKS = 'WG01'?
? ? ? ? IMPORTING ?
? ? ? ? ? E_OBJEK = WK_OBJEK?
? ? ? ? ? E_OBTAB = WK_OBTAB?
? ? ? ? ? E_KLART = WK_KLART?
? ? ? ? ? E_CLASS = WK_CLASS.?
??
? ? ? CLEAR MCH1.?
? ? ? SELECT SINGLE *?
? ? ? ? FROM MCH1 ?
? ? ? ?WHERE MATNR = ITAB_MSEG-MATNR?
? ? ? ? ?AND CHARG = ITAB_MSEG-CHARG.?
??
* ? ? ?SELECT SINGLE CLINT?
* ? ? ? ?INTO CLINT?
* ? ? ? ?FROM KSSK ?
* ? ? ? WHERE OBJEK = MCH1-CUOBJ_BM?
* ? ? ? ? AND KLART = '023'.?
* ?
* ? ? ?SELECT SINGLE CLASS?
* ? ? ? ?INTO CLASS?
* ? ? ? ?FROM KLAH ?
* ? ? ? WHERE CLINT = CLINT.?
?
??
*
取特性值并填充
segment zchar ?
? ? ? CALL FUNCTION 'BAPI_OBJCL_GETDETAIL_KEY'?
? ? ? ? EXPORTING ?
? ? ? ? ? CLOBJECTKEY ? ? = MCH1-CUOBJ_BM?
? ? ? ? ? CLASSNUM ? ? ? ?= WK_CLASS?
? ? ? ? TABLES ?
?ALLOCVALUESNUM ?= ALLOCVALUESNUM?
? ? ? ? ? ALLOCVALUESCHAR = ALLOCVALUESCHAR?
? ? ? ? ? ALLOCVALUESCURR = ALLOCVALUESCURR?
? ? ? ? ? RETURN ? ? ? ? ?= RETURN.?
??
? ? ? LOOP AT ALLOCVALUESCHAR. ?
? ? ? ? ZCHAR-ATNAM = ALLOCVALUESCHAR-CHARACT. ?
? ? ? ? ZCHAR-ATWRT = ALLOCVALUESCHAR-VALUE_NEUTRAL.?
? ? ? ? CLEAR INT_EDIDD. ?
? ? ? ? INT_EDIDD-SDATA = ZCHAR.?
? ? ? ? INT_EDIDD-SEGNAM = 'ZCHAR'.?
? ? ? ? APPEND INT_EDIDD.?
? ? ? ENDLOOP.?
??
? ? ? LOOP AT ALLOCVALUESNUM. ?
? ? ? ? WK_MENGE = ALLOCVALUESNUM-VALUE_FROM.?
? ? ? ? ZCHAR-ATNAM = ALLOCVALUESNUM-CHARACT.?
? ? ? ? ZCHAR-ATWRT = WK_MENGE.?
? ? ? ? CONDENSE ZCHAR-ATWRT.?
??
? ? ? ? CLEAR INT_EDIDD. ?
? ? ? ? INT_EDIDD-SDATA = ZCHAR.?
? ? ? ? INT_EDIDD-SEGNAM = 'ZCHAR'.?
? ? ? ? APPEND INT_EDIDD. ?
ENDLOOP.
÷
??
??
批次特性修改
??
? SELECT SINGLE *?
? ? FROM MCHA ?
? ?WHERE MATNR = GOODSMVT_ITEM-MATERIAL?
? ? ?AND WERKS = GOODSMVT_ITEM-PLANT?
? ? ?AND CHARG = GOODSMVT_ITEM-BATCH.?
??
? IF SY-SUBRC <> 0.?
??
? ? CALL FUNCTION 'BAPI_BATCH_CREATE'?
? ? ? EXPORTING ?
? ? ? ? MATERIAL = GOODSMVT_ITEM-MATERIAL?
? ? ? ? BATCH ? ?= GOODSMVT_ITEM-BATCH?
? ? ? ? PLANT ? ?= GOODSMVT_ITEM-PLANT?
? ? ? TABLES ?
? ? ? ? RETURN ? = RETURN. ?
LOOP AT RETURN WHERE TYPE = 'E' OR TYPE = 'A'.?
? ? ? EXIT.?
? ? ENDLOOP.?
??
? ? IF SY-SUBRC <> 0.?
? ? ? FLAG = '0'. ?
? ? ? COMMIT WORK AND WAIT.?
? ? ELSE. ?
? ? ? FLAG = '1'.?
? ? ENDIF.?
??
? ? MESSAGE = RETURN-MESSAGE.?
??
? ENDIF.?
??
? CHECK FLAG = '0'.?
??
? IF NOT CHAR[] IS INITIAL. ?
? ? ? CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT'?
? ? ? EXPORTING ?
? ? ? ? I_MATNR = GOODSMVT_ITEM-MATERIAL?
? ? ? ? I_CHARG = GOODSMVT_ITEM-BATCH?
? ? ? ? I_WERKS = 'WG01'?
? ? ? IMPORTING ?
? ? ? ? E_OBJEK = WK_OBJEK?
? ? ? ? E_OBTAB = WK_OBTAB?
? ? ? ? E_KLART = WK_KLART?
? ? ? ? E_CLASS = WK_CLASS.?
??
? ? BAPIBATCHCTRL-CLASS_NUM = WK_CLASS.?
? ? BATCHATTRIBUTES-AVAILABLE = SY-DATUM.?
? ? BATCHATTRIBUTESX-AVAILABLE = 'X'.?
??
? ? REFRESH: CLASSALLOCATIONS,RETURN.?
??
? ? CLASSALLOCATIONS-OBJECTKEY = WK_OBJEK.?
? ? CLASSALLOCATIONS-OBJECTTABLE = WK_OBTAB.?
? ? CLASSALLOCATIONS-CLASS_TYPE = '023'.?
? ? CLASSALLOCATIONS-CLASSNUM = WK_CLASS.?
? ? CLASSALLOCATIONS-CLASSTYPE = '023'.?
? ? APPEND CLASSALLOCATIONS.?
??
? ? LOOP AT CHAR. ?
?CHAR1-OBJECTKEY = WK_OBJEK.?
? ? ? CHAR1-CHARACT = CHAR-ATNAM.?
? ? ? CHAR1-VALUE_CHAR = CHAR-ATWRT.?
? ? ? CHAR1-CLASS_TYPE = '023'.?
? ? ? CHAR1-OBJECTTABLE = WK_OBTAB.?
? ? ? APPEND CHAR1.?
? ? ENDLOOP.?
?
??
? ? CALL FUNCTION 'BAPI_BATCH_SAVE_REPLICA'?
? ? ? EXPORTING ?
? ? ? ? MATERIAL ? ? ? ? ? ?= GOODSMVT_ITEM-MATERIAL?
? ? ? ? BATCH ? ? ? ? ? ? ? = GOODSMVT_ITEM-BATCH?
? ? ? ? PLANT ? ? ? ? ? ? ? = GOODSMVT_ITEM-PLANT?
? ? ? ? BATCHATTRIBUTES ? ? = BATCHATTRIBUTES?
? ? ? ? BATCHATTRIBUTESX ? ?= BATCHATTRIBUTESX?
? ? ? ? BATCHCONTROLFIELDS ?= BAPIBATCHCTRL?
? ? ? TABLES ?
? ? ? ? RETURN ? ? ? ? ? ? ?= RETURN ?
? ? ? ? CLASSALLOCATIONS ? ?= CLASSALLOCATIONS?
? ? ? ? CLASSVALUATIONSCHAR = CHAR1.
總結(jié)
- 上一篇: 12星座男生最吃哪一套
- 下一篇: SAP 库存关联表信息