当前位置: 首页 > news >正文

SAP ABAP VK11/VK12 创建销售物料价格(附源码)

需求:

通过接口批量创建销售物料的价格(含阶梯价),对应事务码VK11/VK12

方法:(会在下面源码写出各个方法的优缺点,仅供参考)

  1. 通过函数 RV_CONDITION_COPY创建(目前最优)
  2. 通过函数 BAPI_PRICES_CONDITIONS
  3. 通过BDC录屏使用VK11事务码进行创建

分析:

通过测试可发现,VK11不仅可以创建,还可以修改,存在期间冲突还可以自动切割有效期间,如:

正常有效期:2025-05-01~2025-05-20

修改有效期:2025-05-10~2025-05-15

使用VK11修改后应该会生成三个有效期间,分别是:

  • 2025-05-01~2025-05-09
  • 2025-05-10~2025-05-15
  • 2025-05-16~2025-05-20

VK12不会自行切割区间,只能根据某个日期的基准值对单个区间进行修改,如

基准值为2025-05-10

对应的正常有效期:2025-05-01~2025-05-20

修改有效期:2025-05-10~2025-05-15

使用VK12修改后应该只在原基础上修改,结果是:

2025-05-10~2025-05-15

通过上述测试后,所以对我们此次需求来说VK12无法满足,所以只能使用VK11的录屏

方法一:使用BDC录屏创建(VK11)

DATA:   GT_BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
DATA:   GT_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE. DATA:LS_OPTIONS TYPE CTU_PARAMS.
DATA: LV_KPEIN  TYPE CHAR20.
DATA: LV_KSTBM  TYPE CHAR20.
DATA: LV_KBETR  TYPE CHAR20."利用BDC 录屏方法创建阶梯价"---- 屏幕1录屏PERFORM BDC_DYNPRO      USING 'SAPMV13A' '0100'.PERFORM BDC_FIELD       USING 'BDC_CURSOR' 'RV13A-KSCHL'.PERFORM BDC_FIELD       USING 'BDC_OKCODE' '/00'.PERFORM BDC_FIELD       USING 'RV13A-KSCHL' LS_INPUT-KSCHL."条件类型IF LS_INPUT-KSTBM01 IS INITIAL AND LS_INPUT-KBETR01 IS INITIAL."销售价不含阶梯价"---- 屏幕2录屏PERFORM BDC_DYNPRO      USING 'SAPMV13A' '1005'.PERFORM BDC_FIELD       USING 'BDC_CURSOR' 'RV13A-DATBI(01)'.PERFORM BDC_FIELD       USING 'BDC_OKCODE' '=SICH'.PERFORM BDC_FIELD       USING 'KOMG-VKORG' LS_INPUT-VKORG."销售组织PERFORM BDC_FIELD       USING 'KOMG-VTWEG' LS_INPUT-VTWEG."分销PERFORM BDC_FIELD       USING 'KOMG-KUNNR' LS_INPUT-KUNNR."客户PERFORM BDC_FIELD       USING 'KOMG-MATNR(01)' LS_INPUT-MATNR."物料WRITE LS_INPUT-KBETR TO LV_KBETR.CONDENSE LV_KBETR NO-GAPS.PERFORM BDC_FIELD       USING 'KONP-KBETR(01)' LV_KBETR."金额CLEAR LV_KBETR.PERFORM BDC_FIELD       USING 'KONP-KONWA(01)' LS_INPUT-KONWA."币别"---类型转换WRITE LS_INPUT-KPEIN TO LV_KPEIN.CONDENSE LV_KPEIN NO-GAPS.PERFORM BDC_FIELD       USING 'KONP-KPEIN(01)' LV_KPEIN."价格单位CLEAR LV_KPEIN.
*      PERFORM BDC_FIELD       USING 'RV13A-KRECH(01)' 'C'."有效期自PERFORM BDC_FIELD       USING 'RV13A-DATAB(01)' LS_INPUT-DATAB."有效期自PERFORM BDC_FIELD       USING 'RV13A-DATBI(01)' LS_INPUT-DATBI."截止日期ELSE.                 "销售价含阶梯价"---- 屏幕2录屏PERFORM BDC_DYNPRO      USING 'SAPMV13A' '1005'.
*      PERFORM BDC_FIELD       USING 'BDC_CURSOR' 'RV13A-KRECH(01)'.PERFORM BDC_FIELD       USING 'BDC_CURSOR' 'RV13A-DATBI(01)'.PERFORM BDC_FIELD       USING 'BDC_OKCODE' '/00'.PERFORM BDC_FIELD       USING 'KOMG-VKORG' LS_INPUT-VKORG."销售组织PERFORM BDC_FIELD       USING 'KOMG-VTWEG' LS_INPUT-VTWEG."分销PERFORM BDC_FIELD       USING 'KOMG-KUNNR' LS_INPUT-KUNNR."客户PERFORM BDC_FIELD       USING 'KOMG-MATNR(01)' LS_INPUT-MATNR."物料WRITE LS_INPUT-KBETR TO LV_KBETR.CONDENSE LV_KBETR NO-GAPS.PERFORM BDC_FIELD       USING 'KONP-KBETR(01)' LV_KBETR."金额CLEAR LV_KBETR.PERFORM BDC_FIELD       USING 'KONP-KONWA(01)' LS_INPUT-KONWA."币别"---类型转换WRITE LS_INPUT-KPEIN TO LV_KPEIN.CONDENSE LV_KPEIN NO-GAPS.PERFORM BDC_FIELD       USING 'KONP-KPEIN(01)' LV_KPEIN."价格单位CLEAR LV_KPEIN.PERFORM BDC_FIELD       USING 'RV13A-DATAB(01)' LS_INPUT-DATAB."有效期自PERFORM BDC_FIELD       USING 'RV13A-DATBI(01)' LS_INPUT-DATBI."截止日期"---- 屏幕3录屏PERFORM BDC_DYNPRO      USING 'SAPMV13A' '1005'.PERFORM BDC_FIELD       USING 'BDC_CURSOR' 'KOMG-MATNR(01)'.PERFORM BDC_FIELD       USING 'BDC_OKCODE' '=PSTF'.
*      PERFORM BDC_FIELD       USING 'KOMG-KUNNR' LS_INPUT-KUNNR."客户
*      PERFORM BDC_FIELD       USING 'KOMG-MATNR(01)' LS_INPUT-MATNR."物料
*    PERFORM BDC_FIELD       USING 'KONP-KBETR(01)' LS_INPUT-KBETR."金额"---- 屏幕4录屏PERFORM BDC_DYNPRO      USING 'SAPMV13A' '0303'.PERFORM FILD_VALUE USING LV_FIELD LS_INPUT.PERFORM BDC_FIELD      
http://www.xdnf.cn/news/653347.html

相关文章:

  • 华润电力招聘认知能力测评及性格测评真题题库考什么?
  • ATPrompt方法:属性嵌入的文本提示学习
  • 饭卡管理系统(接口文档)
  • 对接 uniapp 通过中间层(JSBridge)集成零信任 原生androiid和ios SDK
  • 【iOS】 锁
  • 【iOS】 GCD小结
  • NTDS.dit 卷影副本提权笔记
  • sass,less是什么?为什么要使用他们?
  • [特殊字符]《Qt实战:基于QCustomPlot的装药燃面动态曲线绘制(附右键菜单/样式美化/完整源码)》
  • 华为云物联网应用接入对于API及接口调试的梳理
  • Java设计模式之责任链模式:从基础到高级的全面解析
  • Chrome 开发中的任务调度与线程模型实战指南
  • Redis批量删除Key的三种方式
  • LSTM模型进行天气预测Pytorch版本
  • 索尼PS4模拟器shadPS4最新版 v0.9.0 提升PS4模拟器的兼容性
  • 【Linux】基础IO
  • 提问:鲜羊奶是解决育儿Bug的补丁吗?
  • mysql存储过程(if、case、begin...end、while、repeat、loop、cursor游标)的使用
  • 从0开始学习R语言--Day10--时间序列分析数据
  • 手机平板等设备租赁行业MDM方案解析
  • OpenCV计算机视觉实战(8)——图像滤波详解
  • vite常见面试问题
  • 新书速览|ASP.NET MVC高效构建Web应用
  • 精益数据分析(87/126):市场-产品契合度重构——现有产品寻找新市场的实战指南
  • springboot 微服务下部署AI服务
  • 2025年5月26日工作总结
  • 论文阅读:2024 arxiv Prompt Injection attack against LLM-integrated Applications
  • c#基础07(调试与异常捕捉)
  • [Git] 如何将已经执行的修改操作撤销
  • 力扣热题100之LRU缓存机制