ABAP:RV_CONDITION_COPY、VK11/VK12创建/修改销售价格注意点-----------血泪

”VK11/VK12创建/修改销售价格

  "默认值
  ts_input-kschl = 'YA01'."定价类型	YA01
  ts_input-konwa = 'CNY'."单位(货币单位)  固定值【CNY】
  ts_input-kpein = '1'."单位(数量)  固定值【1】
  ts_input-kmein = 'PCS'."单位(基本计量单位)  固定值【PCS】
  ts_input-prodh = ls_xfdata-prdha."产品层次
  ts_input-kbetr = ls_xfdata-xfnetpr ."现返金额

  "检查创建还是修改
  SELECT SINGLE *
  INTO @DATA(ls_a808)
  FROM a808  AS a INNER JOIN konp  AS b ON a~knumh = b~knumh
  WHERE a~kappl = 'V'
    AND a~kunnr = @ts_input-kunnr
    AND vkorg = @ts_input-vkorg
    AND prodh = @ts_input-prodh
    AND datbi = @ts_input-datbi
    AND datab = @ts_input-datab
    AND a~kschl = @ts_input-kschl
    AND b~loevm_ko = '' .
  IF sy-subrc = 0 .
    lv_mode = 'B' . " 修改
  ELSE.
    lv_mode  = 'A'.  "创建
  ENDIF.

  " Badi 相关 begin
  ls_komv-kappl = 'V'.     "应用 看表
  ls_komv-kschl = 'YA01'.  "类型 看表
  ls_komv-waers = 'CNY'.   "货币
  ls_komv-kmein = 'ZPC'.   "单位
  ls_komv-kpein = '1'.     "定价单位
  ls_komv-kbetr = ts_input-kbetr."售价
  APPEND ls_komv TO lt_komv.
  CLEAR ls_komg.

  ls_komg-vkorg = ts_input-vkorg.          "销售组织
  • ls_komg-vtweg = ls_ztsd_oa_qth-vtweg. "分销渠道
    ls_komg-kunnr = ts_input-kunnr. "客户
    ls_komg-prodh = ts_input-prodh. "产品层次

    CLEAR lv_selection_date.
    lv_selection_date = ts_input-datab+(6) && ‘01’.
    CALL FUNCTION ‘RV_CONDITION_COPY’

    EXPORTING
    application = ‘V’ "(V 销售)
    condition_table = ‘808’
    condition_type = ‘YA01’
    i_komp = ls_komp
    key_fields = ls_komg
    date_from = ts_input-datab
    date_to = ts_input-datbi
    enqueue = ‘X’ " lock entry 锁定VK11/VK12
    overlap_confirmed = ‘X’ " 直接覆盖,跨以前的期间不会弹出界面
    maintain_mode = lv_mode " A= create, B= change, C= display, D= create
    selection_date = lv_selection_date “跨月修改必须传不然只能修改本月的价格,传入的开始结束日期控制不了
    TABLES
    copy_records = lt_komv
    EXCEPTIONS
    enqueue_on_record = 1
    invalid_application = 2
    invalid_condition_number = 3
    invalid_condition_type = 4
    no_authority_ekorg = 5
    no_authority_kschl = 6
    no_authority_vkorg = 7
    no_selection = 8
    table_not_valid = 9
    no_material_for_settlement = 10
    no_unit_for_period_cond = 11
    no_unit_reference_magnitude = 12
    invalid_condition_table = 13
    OTHERS = 14.
    IF sy-subrc = 0.
    CALL FUNCTION ‘RV_CONDITION_SAVE’.
    CALL FUNCTION ‘RV_CONDITION_RESET’.
    COMMIT WORK AND WAIT.
    END.

源码解释:
跨月修改必须传不然只能修改本月的价格,传入的开始结束日期控制不了
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放弃幻想_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值