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

35 篇文章 27 订阅
20 篇文章 11 订阅
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




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值