CT04 修改或添加特性包含的特性值BAPI_CHARACT_CHANGE

来源:互联网 发布:好看的日剧 知乎 编辑:程序博客网 时间:2024/06/05 09:23
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.


转载自:http://blog.csdn.net/twty5210/article/details/6003114




0 0
原创粉丝点击