MSC2N處理(增加特性值)

此代码段定义了一个名为MODIFY_BATCH_POSTDATE_AGING的表单,用于修改MSC2N的过账日期以进行老化处理。通过设置指定物料、批次和工厂的键值,然后调用'BAPI_OBJCL_CONCATENATEKEY'和'BAPI_OBJCL_CHANGE'函数,更新特定对象的特性值。如果发生错误,将进行事务回滚并显示错误信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 ******************************************************************************
*   FORM: MODIFY_BATCH_POSTDATE_AGING.
*   DESC: 修改MSC2N的posting date for aging
******************************************************************************
FORM MODIFY_BATCH_POSTDATE_AGING USING PF_MATNR PF_CHARG PF_WERKS PF_VALUE PF_MESS2.
data: objectkey          like BAPI1003_KEY-OBJECT,
      objectkeytable     like table of BAPI1003_OBJECT_KEYS with header line,
      allocvaluesnumnew  like table of BAPI1003_ALLOC_VALUES_NUM with header line,
      allocvaluescharnew like table of BAPI1003_ALLOC_VALUES_char with header line,
      allocvaluescurrnew like table of BAPI1003_ALLOC_VALUES_curr with header line,
      return             like table of BAPIRET2 with header line.
    CLEAR: objectkey, objectkeytable, objectkeytable[],
           allocvaluesnumnew, allocvaluesnumnew[],
           return.
**data: l_matnr like mara-matnr,
**      l_charg like aufm-charg,
**      l_werks like aufm-werks.
**l_matnr = 'RMCHLOEBB'.
**l_charg = '2510100007'.
**l_werks = '33D1'.

    objectkeytable-key_field = 'MATNR'.
    objectkeytable-value_int = PF_MATNR.   "l_matnr.
    APPEND objectkeytable.
    objectkeytable-key_field = 'CHARG'.
    objectkeytable-value_int = PF_CHARG.   "l_charg.
    APPEND objectkeytable.
* Only if Batch management is Plant dependant
    objectkeytable-key_field = 'WERKS'.
    objectkeytable-value_int = PF_WERKS.   "l_werks.
    APPEND objectkeytable.

    CALL FUNCTION 'BAPI_OBJCL_CONCATENATEKEY'
      EXPORTING
        objecttable    = 'MCH1' "-objecttable
      IMPORTING
        objectkey_conc = objectkey
      TABLES
        objectkeytable = objectkeytable
        return         = return.

    allocvaluesnumnew-CHARACT = 'Z_BATCH_GLASS_003'.
    allocvaluesnumnew-VALUE_FROM = PF_VALUE.  "-'20100930'.
    append allocvaluesnumnew.
*    allocvaluescharnew-CHARACT    = 'Z_BATCH_GLASS_RM_03'.
*    allocvaluescharnew-VALUE_CHAR = ''.
*    append allocvaluescharnew.
    CALL FUNCTION 'BAPI_OBJCL_CHANGE'
      EXPORTING
        objectkey                = objectkey
        objecttable              = 'MCH1' "objecttable
        classnum                 = 'Z_BATCH_GLSS_RM1' "classnum
        classtype                = '023' "classtype
*       STATUS                   = '1'
*       STANDARDCLASS            = STANDARDCLASS
*       CHANGENUMBER             = CHANGENUMBER
*       KEYDATE                  = SY-DATUM
*       NO_DEFAULT_VALUES        = ' '
*     IMPORTING
*       CLASSIF_STATUS           = CLASSIF_STATUS
      TABLES
        allocvaluesnumnew        = allocvaluesnumnew
        allocvaluescharnew       = allocvaluescharnew
        allocvaluescurrnew       = allocvaluescurrnew
        return                   = return.
    READ TABLE RETURN WITH KEY TYPE = 'E'.    "-顯示錯誤信息
    IF SY-SUBRC <> 0.
        PF_MESS2  = ''.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
          EXPORTING
            WAIT = 'X'.
    ELSE.
        PF_MESS2  = RETURN-MESSAGE.
        CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    ENDIF.
ENDFORM.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值