DATA: CHARACTNAME LIKE BAPICHARACTKEY-CHARACTNAME.
DATA: CHARACTDETAILNEW LIKE TABLE OF BAPICHARACTDETAIL WITH HEADER LINE.
DATA: CHARACTVALUESCHARNEW LIKE TABLE OF BAPICHARACTVALUESCHAR WITH HEADER LINE.
DATA: CHARACTDESCRNEW LIKE TABLE OF BAPICHARACTDESCR WITH HEADER LINE.
DATA: CHARACTVALUESDESCRNEW LIKE TABLE OF BAPICHARACTVALUESDESCR WITH HEADER LINE.
"--DATA: RETURN LIKE TABLE OF BAPIRET2 WITH HEADER LINE.
CLEAR:CHARACTNAME,CHARACTDETAILNEW,CHARACTVALUESCHARNEW,CHARACTDESCRNEW.
CLEAR:CHARACTNAME,CHARACTDETAILNEW[],CHARACTVALUESCHARNEW[],CHARACTDESCRNEW[].
DATA: CLASSBASICDATA LIKE BAPI1003_BASIC,
CLASSDOCUMENT LIKE BAPI1003_DOCU,
CLASSADDITIONAL LIKE BAPI1003_ADD,
CLASSSTANDARD LIKE BAPI1003_STAND.
DATA: CLASSDESCRIPTIONS LIKE TABLE OF BAPI1003_CATCH_R WITH HEADER LINE,
CLASSLONGTEXTS LIKE TABLE OF BAPI1003_LONGTEXT_R WITH HEADER LINE,
CLASSCHARACTERISTICS LIKE TABLE OF BAPI1003_CHARACT_R WITH HEADER LINE,
CLASSCHARVALUES LIKE TABLE OF BAPI1003_CHAR_VAL_R WITH HEADER LINE.
DATA: L_INDEX LIKE SY-TABIX.
CHARACTNAME = 'Z_BATCH_PVD_005'.
*檢查CHARACTNAME存在與否(不存在肯定沒有值可選)
CALL FUNCTION 'BAPI_CHARACT_EXISTENCECHECK'
EXPORTING
CHARACTNAME = CHARACTNAME
* KEYDATE = SY-DATUM
TABLES
RETURN = O_RESULT.
READ TABLE O_RESULT WITH KEY TYPE = 'S'.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
*-1
CLEAR: CHARACTDETAILNEW, CHARACTDETAILNEW[].
CHARACTDETAILNEW-CHARACT_NAME = CHARACTNAME.
CHARACTDETAILNEW-DATA_TYPE = 'CHAR'.
CHARACTDETAILNEW-LENGTH = '12'.
CHARACTDETAILNEW-STATUS = '1'.
CHARACTDETAILNEW-VALUE_ASSIGNMENT = 'M'.
CHARACTDETAILNEW-ADDITIONAL_VALUES = 'X'.
APPEND CHARACTDETAILNEW.
*-2
CLEAR: CHARACTDESCRNEW, CHARACTDESCRNEW[].
CHARACTDESCRNEW-LANGUAGE_INT = 'E'.
CHARACTDESCRNEW-DESCRIPTION = 'RM BATCH'.
APPEND CHARACTDESCRNEW.
CHARACTDESCRNEW-LANGUAGE_INT = '1'.
CHARACTDESCRNEW-DESCRIPTION = '原材料批号'.
APPEND CHARACTDESCRNEW.
L_INDEX = 0.
DO 2 TIMES.
L_INDEX = L_INDEX + 1.
IF L_INDEX = 1. "L_INDEX=1時,執行bapi是清空值,第二次才修改值
* *--3
CLEAR: CHARACTVALUESCHARNEW, CHARACTVALUESCHARNEW[].
CLEAR: CHARACTVALUESDESCRNEW, CHARACTVALUESDESCRNEW[].
ELSE.
IF I_BATCH[] IS INITIAL.
CONTINUE.
ENDIF.
LOOP AT I_BATCH.
CHARACTVALUESCHARNEW-VALUE_CHAR = I_BATCH-CHARG.
APPEND CHARACTVALUESCHARNEW.
CLEAR CHARACTVALUESCHARNEW.
CHARACTVALUESDESCRNEW-LANGUAGE_INT = sy-langu.
CHARACTVALUESDESCRNEW-LANGUAGE_ISO = SY-LANGU.
CHARACTVALUESDESCRNEW-VALUE_CHAR = I_BATCH-CHARG.
CONCATENATE '[' I_BATCH-CHARG ']' I_BATCH-MAKTX INTO CHARACTVALUESDESCRNEW-DESCRIPTION.
"-CHARACTVALUESDESCRNEW-DESCRIPTION = 'TEST 882'. "I_BATCH-MATNR
APPEND CHARACTVALUESDESCRNEW.
CLEAR CHARACTVALUESDESCRNEW.
ENDLOOP.
ENDIF.
CALL FUNCTION 'BAPI_CHARACT_CHANGE'
EXPORTING
CHARACTNAME = CHARACTNAME
* CHANGENUMBER =
* KEYDATE = SY-DATUM
TABLES
CHARACTDETAILNEW = CHARACTDETAILNEW
CHARACTDESCRNEW = CHARACTDESCRNEW
* CHARACTVALUESNUMNEW =
CHARACTVALUESCHARNEW = CHARACTVALUESCHARNEW
* CHARACTVALUESCURRNEW =
CHARACTVALUESDESCRNEW = CHARACTVALUESDESCRNEW
* CHARACTREFERENCESNEW =
* CHARACTRESTRICTIONSNEW =
RETURN = O_RESULT.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
ENDDO.
CT04 修改特性值BAPI_CHARACT_CHANGE
最新推荐文章于 2024-06-04 13:51:00 发布
本文介绍了一个使用 SAP BAPI 进行特性维护的例子,包括创建特性详情、描述及值的过程。通过调用 'BAPI_CHARACT_EXISTENCECHECK' 和 'BAPI_CHARACT_CHANGE' 函数来实现特性维护的功能。

834

被折叠的 条评论
为什么被折叠?



