ABAP KP26 批量更改作业类型/作业价格计划

ABAP KP26 批量更改作业类型/作业价格计划

实现方式是调用 BAPI_COSTACTPLN_POSTACTOUTPUT,

需留意参数PERVALUE-PRICE_FIX_PERXX,其中XX为修改的期间,同理PERVALUE-PRICE_VAR_PERXX 和 PRICE_UNIT_PERXX。

举例说明一下:

如果需要修改的期间为01,则需将固定价格写入字段PRICE_FIX_PER01,可变价格写入字段PRICE_VAR_PER01,价格单位写入字段PRICE_UNIT_PER01。

如果需要修改的期间为02,则需将固定价格写入字段PRICE_FIX_PER02,可变价格写入字段PRICE_VAR_PER02,价格单位写入字段PRICE_UNIT_PER02。

以此类推,本例中修改的期间为04。

以下是我的示例程序,请欣赏~

DATA: LS_HEADERINFO     TYPE BAPIPLNHDR,
      LT_INDEXSTRUCTURE TYPE STANDARD TABLE OF BAPIACPSTRU,
      LS_INDEXSTRUCTURE TYPE BAPIACPSTRU,
      LT_COOBJECT       TYPE STANDARD TABLE OF BAPIACPOBJ,
      LS_COOBJECT       TYPE BAPIACPOBJ,
      LT_PERVALUE       TYPE STANDARD TABLE OF BAPIACPVAL,
      LS_PERVALUE       TYPE BAPIACPVAL,
      LT_RETURN         TYPE STANDARD TABLE OF BAPIRET2,
      LS_RETURN         TYPE BAPIRET2.

LS_HEADERINFO-CO_AREA       = 'MITH'.       "控制范围
LS_HEADERINFO-FISC_YEAR     = 2021.         "会计年度
LS_HEADERINFO-PERIOD_FROM   = 4.            "从期间
LS_HEADERINFO-PERIOD_TO     = 4.            "终止期
LS_HEADERINFO-VERSION       = '0'.          "版本
LS_HEADERINFO-PLAN_CURRTYPE = 'C'.          "流通计划

LS_INDEXSTRUCTURE-OBJECT_INDEX = 0001.
LS_INDEXSTRUCTURE-VALUE_INDEX  = 0001.
APPEND LS_INDEXSTRUCTURE TO LT_INDEXSTRUCTURE.
CLEAR LS_INDEXSTRUCTURE.

LS_COOBJECT-OBJECT_INDEX = 0001.
LS_COOBJECT-COSTCENTER   = '0000100006'.    "成本中心
LS_COOBJECT-ACTTYPE      = 'A00001'.        "活动类型
APPEND LS_COOBJECT TO LT_COOBJECT.
CLEAR LS_COOBJECT.

LS_PERVALUE-VALUE_INDEX      = 0001.
LS_PERVALUE-PRICE_FIX_PER04  = 9999.        "价格(固定的)
LS_PERVALUE-PRICE_VAR_PER04  = 9999.        "可变价格
LS_PERVALUE-PRICE_UNIT_PER04 = 1.           "价格单位
LS_PERVALUE-CURRENCY         = 'CNY'.       "货币码
APPEND LS_PERVALUE TO LT_PERVALUE.
CLEAR LS_PERVALUE.

CALL FUNCTION 'BAPI_COSTACTPLN_POSTACTOUTPUT'
  EXPORTING
    HEADERINFO     = LS_HEADERINFO
*   DELTA          = ' '
*   PRICE_QUANT_PLAN       = 'B'
  TABLES
    INDEXSTRUCTURE = LT_INDEXSTRUCTURE
    COOBJECT       = LT_COOBJECT
    PERVALUE       = LT_PERVALUE
*   TOTVALUE       =
*   CONTRL         =
    RETURN         = LT_RETURN.
LOOP AT LT_RETURN  INTO LS_RETURN WHERE TYPE = 'E' OR TYPE = 'A'.
  EXIT.
ENDLOOP.
IF SY-SUBRC = 0.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      WAIT = 'X'.
ENDIF.
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值