本人诚心接ABAP远程开发任务,价格公道,有需要的联系我,欢迎个人,甲方爸爸,乙方私信联系。
MSC2N 修改批次特性对应的BAPI :BAPI_BATCH_CHANGE
DATA: LS_BAPIBATCH TYPE BAPIBATCHATT.
DATA: LS_BAPIBATCHX TYPE BAPIBATCHATTX.
DATA: LT_RETURN TYPE STANDARD TABLE OF BAPIRET2.
DATA: LS_RETURN TYPE BAPIRET2.
CALL FUNCTION 'BAPI_BATCH_CHANGE'
EXPORTING
MATERIAL = LS_DATA-MATNR
BATCH = LS_DATA-CHARG
* PLANT =
BATCHATTRIBUTES = LS_BAPIBATCH
BATCHATTRIBUTESX = LS_BAPIBATCHX
* BATCHCONTROLFIELDS =
* INTERNALNUMBERCOM =
* EXTENSION1 =
* MATERIAL_EVG =
* IMPORTING
* BATCHATTRIBUTES =
TABLES
RETURN = LT_RETURN.
用了这个BAPI之后发现只是改了 基本数据 如图
但是 分类页签中的 dates 中的下一次检验日期没改成功 如图
接下来去修改这个值
"获取批次对应GUID
SELECT SINGLE CUOBJ_BM FROM MCH1 INTO LV_GUID_IN
WHERE MATNR EQ LS_DATA-MATNR
AND CHARG EQ LS_DATA-CHARG.
IF SY-SUBRC = 0.
REFRESH RETURN.
CALL FUNCTION 'BAPI_OBJCL_GET_OBJECT_OF_KEY'
EXPORTING
CLOBJECTKEYIN = LV_GUID_IN
IMPORTING
OBJECTNAME = LV_OBJECTNAME
OBJECTTABLE = LV_OBJECTTABLE
CLASSTYPE = LV_CLASSTYPE
TABLES
RETURN = RETURN.
READ TABLE RETURN WITH KEY TYPE = 'E'.
IF SY-SUBRC NE 0.
"获取类别
REFRESH RETURN.
CALL FUNCTION 'VB_BATCH_2_CLASS_OBJECT'
EXPORTING
I_MATNR = LS_DATA-MATNR
I_CHARG = LS_DATA-CHARG
I_WERKS = LS_DATA-WERKS
IMPORTING
E_OBJEK = LV_OBJEK
E_OBTAB = LV_OBTAB
E_KLART = LV_KLART
E_CLASS = LV_CLASS.
I_OBJEK = LV_OBJEK.
I_OBTAB = LV_OBTAB.
I_CLASS = LV_CLASS.
I_KLART = LV_KLART.
REFRESH RETURN.
CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'
EXPORTING
OBJECTKEY = I_OBJEK
OBJECTTABLE = I_OBTAB
CLASSNUM = I_CLASS
CLASSTYPE = I_KLART
UNVALUATED_CHARS = 'X'
TABLES
ALLOCVALUESNUM = CLASSVALUATIONSNUM
ALLOCVALUESCHAR = CLASSVALUATIONSCHAR
ALLOCVALUESCURR = CLASSVALUATIONSCURR
RETURN = RETURN.
LOOP AT CLASSVALUATIONSNUM.
CASE CLASSVALUATIONSNUM-CHARACT.
WHEN 'LOBM_QNDAT'.
LV_DATE = LS_BAPIBATCH-NEXTINSPEC.
CONDENSE LV_DATE.
CALL FUNCTION 'CTCV_CONVERT_DATE_TO_FLOAT'
EXPORTING
DATE = LV_DATE
IMPORTING
FLOAT = CLASSVALUATIONSNUM-VALUE_FROM.
ENDCASE.
MODIFY CLASSVALUATIONSNUM.
ENDLOOP.
"更改批次特性
REFRESH RETURN.
CALL FUNCTION 'BAPI_OBJCL_CHANGE'
EXPORTING
OBJECTKEY = I_OBJEK
OBJECTTABLE = LV_OBJECTTABLE
CLASSNUM = LV_CLASS
CLASSTYPE = LV_CLASSTYPE
TABLES
ALLOCVALUESNUMNEW = CLASSVALUATIONSNUM
ALLOCVALUESCHARNEW = CLASSVALUATIONSCHAR
ALLOCVALUESCURRNEW = CLASSVALUATIONSCURR
RETURN = RETURN.