SAP 维护SD价格的探讨
SAP前台维护SD模块价格 vk11/vk12/vk13
对应的BAPI:BAPI_PRICES_CONDITIONS
假设维护A类价格时,当期有效价格期间是 20220101~20221231
1)本次维护价格期间如果是 20230101~20231231 (即本次维护与当期有效价格无交叉)
2)本次维护价格期间如果是 20220301~20220531 (即本次维护被当期有效价格包含)
3)本次维护价格期间如果是 20221201~20230531 (即本次维护被当期有效价格部分交叉)
抑或是 20211201-20220301 (实际情况可能不存在,一般要求起始时间>当前时间)
4)本次维护价格期间如果是 20211201~20230531 (即本次维护包含当期有效价格)
==================================================================
第一种情况:
前台操作:vk11 新增价格维护接口
BAPI:直接新增
第二种情况:VK11新增时,会将当期有效价格期间拆分成2段,前后都是当期价格,中间一段是新维护价格。
BAPI:先对当期有效价格期间尽心拆分,原则上拆分成2段。然后新增价格
第三种:VK11新增时,会将当期有效价格期间拆分成2段,前/后都是当期价格。交叉部分是新维护价格
BAPI:先对当期有效价格期间的起始/截止日期修改。然后新增维护价格
第四种:VK11 新增时,直接删除当期有效价格,维护新价格
BAPI:删除当期有效价格记录,维护新价格
BAPI:
DATA:LITEM LIKE ZSTRU_SD_PRICE_CONDITION.DATA:L_KEY LIKE BAPICONDCT-VARKEY.DATA:LPDATE TYPE SY-DATUM.DATA:LKUNNR LIKE KNA1-KUNNR,LMATNR LIKE MARA-MATNR.data:lflg TYPE ABAP_BOOL.DATA: H_VARKEY(255),H_COND_UNIT TYPE MEINS .DATA: LT_BAPICONDCT TYPE BAPICONDCT OCCURS 0 , "WA_BAPICONDCT TYPE BAPICONDCT ,LT_BAPICONDHD TYPE BAPICONDHD OCCURS 0 , "WA_BAPICONDHD TYPE BAPICONDHD ,LT_BAPICONDIT TYPE BAPICONDIT OCCURS 0 ,WA_BAPICONDIT TYPE BAPICONDIT ,LT_BAPICONDQS TYPE BAPICONDQS OCCURS 0 ,WA_BAPICONDQS TYPE BAPICONDQS ,LT_BAPICONDVS TYPE BAPICONDVS OCCURS 0 ,WA_BAPICONDVS TYPE BAPICONDVS .DATA:LITEMRET LIKE ZOBJDESC,L_MESSAGE TYPE MSGTXT.DATA: LT_BAPIRET2 LIKE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE .DATA: RET TYPE BAPIRET2 .DATA: LT_BAPIKNUMHS TYPE BAPIKNUMHS OCCURS 0 .DATA: LT_MEM_INITIAL TYPE CND_MEM_INITIAL OCCURS 0 .lflg = ABAP_TRUE.EV_STATUS = 'S'.EV_MESSAGE = '成功'.LOOP AT ITEMS INTO LITEM.IF LITEM-VALID_TO < LITEM-VALID_FROM OR LITEM-VALID_FROM <= SY-DATUM.LFLG = ABAP_FALSE.CONTINUE.ENDIF.CLEAR LT_BAPICONDCT[].CLEAR WA_BAPICONDCT.CLEAR LT_BAPICONDHD[].CLEAR WA_BAPICONDHD.CLEAR LT_BAPICONDIT[].CLEAR WA_BAPICONDIT.IF COND_USAGE = 'A' AND TABLE_NO = '920'.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGINPUT = LITEM-KUNNRIMPORTINGOUTPUT = LKUNNR.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGINPUT = LITEM-MATNRIMPORTINGOUTPUT = LMATNR.CONCATENATE LKUNNR LMATNR LITEM-WAERS INTO H_VARKEY.ENDIF.SELECT SINGLE MEINS FROM MARAINTO H_COND_UNIT WHERE MATNR = LMATNR.WA_BAPICONDCT-TABLE_NO = TABLE_NO."'941'.WA_BAPICONDCT-APPLICATIO = APPLICATIO."'V'.WA_BAPICONDCT-COND_USAGE = COND_USAGE."'A'. "条件表用途 ‘A' 定价WA_BAPICONDCT-COND_TYPE = COND_TYPE."I_KSCHL. "定价条件WA_BAPICONDCT-OPERATION = OPERATION."'009'. "消息功能 : 003 DEL ; 004 MODIFY ;005 REPLACE 009 INITIAL
* WA_BAPICONDCT-OPERATION = '004'. "更改WA_BAPICONDCT-VARKEY = H_VARKEY.WA_BAPICONDCT-VALID_TO = LITEM-VALID_TO.WA_BAPICONDCT-VALID_FROM = LITEM-VALID_FROM.WA_BAPICONDCT-COND_NO = '$000000001'. "创建APPEND WA_BAPICONDCT TO LT_BAPICONDCT.
*KONHWA_BAPICONDHD-OPERATION = OPERATION."'009'.
*WA_BAPICONDHD-OPERATION = '004'.WA_BAPICONDHD-COND_NO = '$000000001'.
*WA_BAPICONDHD-COND_NO = '0003224015'.WA_BAPICONDHD-CREATED_BY = SY-UNAME.WA_BAPICONDHD-CREAT_DATE = SY-DATUM.WA_BAPICONDHD-COND_USAGE = COND_USAGE."'A'.WA_BAPICONDHD-TABLE_NO = TABLE_NO."'941'.WA_BAPICONDHD-APPLICATIO = APPLICATIO."'V'.WA_BAPICONDHD-COND_TYPE = COND_TYPE."I_KSCHL. "WA_BAPICONDHD-VARKEY = H_VARKEY.WA_BAPICONDHD-VALID_FROM = LITEM-VALID_FROM.WA_BAPICONDHD-VALID_TO = LITEM-VALID_TO.APPEND WA_BAPICONDHD TO LT_BAPICONDHD .
*KONPWA_BAPICONDIT-OPERATION = OPERATION."'009'.WA_BAPICONDIT-COND_NO = '$000000001'.WA_BAPICONDIT-COND_COUNT = '01'. "条件序列号WA_BAPICONDIT-APPLICATIO = APPLICATIO."'V'.WA_BAPICONDIT-COND_TYPE = COND_TYPE."I_KSCHL. "WA_BAPICONDIT-SCALETYPE = 'A'. "STFKZ STAFFELSOORTWA_BAPICONDIT-SCALEBASIN = ''. "KZBZG TEKEN:REKENEENHEID " WA_BAPICONDIT-SCALEBASIN = 'C'. 存在数量等级WA_BAPICONDIT-SCALE_QTY = '0'. "KSTBM CONDITIESTAFFELBASIS HOEVEELHEIDWA_BAPICONDIT-COND_P_UNT = '1'. "KPEIN PRIJSEENHEIDWA_BAPICONDIT-COND_UNIT = H_COND_UNIT. "KMEIN CONDITIE-HOEVEELHEIDSEENHEIDWA_BAPICONDIT-CALCTYPCON = 'C'. "KRECH CONDITIE-REKENREGELWA_BAPICONDIT-COND_VALUE = LITEM-COND_VALUE.WA_BAPICONDIT-CONDCURR = LITEM-WAERS.APPEND WA_BAPICONDIT TO LT_BAPICONDIT.if LFLG = ABAP_TRUE.LPDATE = LITEM-VALID_From - 1.CALL FUNCTION 'ZRFC_SD_KNA_PART_PRICE_M'EXPORTINGPDATBI = LPDATEKUNNR = LITEM-KUNNRMATNR = LITEM-MATNRWAERK = LITEM-WAERSCURRDAT = LITEM-VALID_FROMCOND_TYPE = COND_TYPETABLE_NO = TABLE_NOAPPLICATIO = APPLICATIOCOND_USAGE = COND_USAGEOPERATION = '004'.commit WORK AND WAIT.CALL FUNCTION 'BAPI_PRICES_CONDITIONS'
* EXPORTING
* PI_INITIALMODE = ' '
* PI_BLOCKNUMBER =
* PI_PHYSICAL_DELETION =TABLESTI_BAPICONDCT = LT_BAPICONDCTTI_BAPICONDHD = LT_BAPICONDHDTI_BAPICONDIT = LT_BAPICONDITTI_BAPICONDQS = LT_BAPICONDQSTI_BAPICONDVS = LT_BAPICONDVSTO_BAPIRET2 = LT_BAPIRET2TO_BAPIKNUMHS = LT_BAPIKNUMHSTO_MEM_INITIAL = LT_MEM_INITIALEXCEPTIONSUPDATE_ERROR = 1OTHERS = 2.IF SY-SUBRC = 0.LOOP AT LT_BAPIRET2 WHERE TYPE EQ 'A' OR TYPE EQ 'E'.L_MESSAGE = L_MESSAGE && LT_BAPIRET2-MESSAGE.ENDLOOP.IF SY-SUBRC EQ 0.EV_STATUS = 'E'.EV_MESSAGE = '客户价格更新失败:' && L_MESSAGE.LITEMRET-OBJDESC = H_VARKEY.LITEMRET-OBJKEY = EV_STATUS.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.ELSE.LITEMRET-OBJDESC = H_VARKEY.LITEMRET-OBJKEY = 'S'.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.ENDIF.APPEND LITEMRET TO ITEMSMSG.ELSE.EV_STATUS = 'E'.EV_MESSAGE = '客户价格更新失败:' && L_MESSAGE.LITEMRET-OBJDESC = H_VARKEY.LITEMRET-OBJKEY = EV_STATUS.APPEND LITEMRET TO ITEMSMSG.ENDIF.else.EV_STATUS = 'E'.EV_MESSAGE = '客户价格更新失败:有效期间不正确'.LITEMRET-OBJDESC = H_VARKEY.LITEMRET-OBJKEY = EV_STATUS.APPEND LITEMRET TO ITEMSMSG.endif.CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'IMPORTINGRETURN = RET.ENDLOOP.
ENDFUNCTION.
FUNCTION ZRFC_SD_KNA_PART_PRICE_M.
*"----------------------------------------------------------------------
*"*"局部接口:
*" IMPORTING
*" VALUE(PDATBI) TYPE SY-DATUM DEFAULT SY-DATUM
*" VALUE(KUNNR) TYPE KUNNR OPTIONAL
*" VALUE(MATNR) TYPE MATNR OPTIONAL
*" VALUE(WAERK) TYPE WAERK OPTIONAL
*" VALUE(CURRDAT) TYPE SY-DATUM DEFAULT SY-DATUM
*" VALUE(COND_TYPE) TYPE CHAR4 DEFAULT 'ZPR1'
*" VALUE(TABLE_NO) TYPE NUMC3 DEFAULT '920'
*" VALUE(APPLICATIO) TYPE CHAR1 DEFAULT 'V'
*" VALUE(COND_USAGE) TYPE CHAR1 DEFAULT 'A'
*" VALUE(OPERATION) TYPE CHAR3 DEFAULT '004'
*" EXPORTING
*" VALUE(EV_STATUS) TYPE ZE_STATUS
*" VALUE(EV_MESSAGE) TYPE MSGTXT
*"----------------------------------------------------------------------data:lA920 like A920 OCCURS 0 WITH HEADER LINE,lvalue TYPE konp-KBETR,WA920 TYPE A920,LT_BAPICONDCT TYPE BAPICONDCT OCCURS 0 , "WA_BAPICONDCT TYPE BAPICONDCT ,LT_BAPICONDHD TYPE BAPICONDHD OCCURS 0 , "WA_BAPICONDHD TYPE BAPICONDHD ,LT_BAPICONDIT TYPE BAPICONDIT OCCURS 0 ,WA_BAPICONDIT TYPE BAPICONDIT ,LT_BAPICONDQS TYPE BAPICONDQS OCCURS 0 ,WA_BAPICONDQS TYPE BAPICONDQS ,LT_BAPICONDVS TYPE BAPICONDVS OCCURS 0 ,WA_BAPICONDVS TYPE BAPICONDVS .FIELD-SYMBOLS: <FS1> TYPE BAPICONDCT,<fs2> TYPE BAPICONDHD,<fs3> TYPE BAPICONDIT.DATA: LT_BAPIRET2 LIKE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE .DATA: LT_BAPIKNUMHS TYPE BAPIKNUMHS OCCURS 0 .DATA: LT_MEM_INITIAL TYPE CND_MEM_INITIAL OCCURS 0 .DATA: H_VARKEY(255),H_COND_UNIT TYPE MEINS .DATA:LKUNNR LIKE KNA1-KUNNR,LMATNR LIKE MARA-MATNR.DATA:L_KEY LIKE BAPICONDCT-VARKEY.SELECT * INTO TABLE LA920FROM A920WHERE A920~DATBI > CURRDAT AND DATAB < CURRDAT ANDMATNR = MATNR AND KUNNR = KUNNR AND WAERK = WAERK and KSCHL = COND_TYPE and KAPPL = APPLICATIO.IF LA920[] IS NOT INITIAL.READ TABLE LA920 INTO WA920 INDEX 1.SELECT SINGLE KBETR INTO LVALUEFROM KONPWHERE KONP~KNUMH = WA920-KNUMH.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGINPUT = WA920-KUNNRIMPORTINGOUTPUT = LKUNNR.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGINPUT = WA920-MATNRIMPORTINGOUTPUT = LMATNR.CONCATENATE LKUNNR LMATNR waerk INTO H_VARKEY.SELECT SINGLE MEINS FROM MARAINTO H_COND_UNIT WHERE MATNR = LMATNR.WA_BAPICONDCT-TABLE_NO = TABLE_NO."'941'.WA_BAPICONDCT-APPLICATIO = APPLICATIO."'V'.WA_BAPICONDCT-COND_USAGE = COND_USAGE."'A'. "条件表用途 ‘A' 定价WA_BAPICONDCT-COND_TYPE = COND_TYPE."I_KSCHL. "定价条件WA_BAPICONDCT-OPERATION = '003'."'009'. "消息功能 : 003 DEL ; 004 MODIFY ;005 REPLACE 009 INITIAL
* WA_BAPICONDCT-OPERATION = '004'. "更改WA_BAPICONDCT-VARKEY = H_VARKEY.WA_BAPICONDCT-VALID_TO = WA920-DATBI.WA_BAPICONDCT-VALID_FROM = WA920-DATAB.WA_BAPICONDCT-COND_NO = WA920-KNUMH. "创建APPEND WA_BAPICONDCT TO LT_BAPICONDCT.WA_BAPICONDHD-OPERATION = '003'."'009'.
*WA_BAPICONDHD-OPERATION = '004'.WA_BAPICONDHD-COND_NO = WA920-KNUMH.
*WA_BAPICONDHD-COND_NO = '0003224015'.WA_BAPICONDHD-CREATED_BY = SY-UNAME.WA_BAPICONDHD-CREAT_DATE = SY-DATUM.WA_BAPICONDHD-COND_USAGE = COND_USAGE."'A'.WA_BAPICONDHD-TABLE_NO = TABLE_NO."'941'.WA_BAPICONDHD-APPLICATIO = APPLICATIO."'V'.WA_BAPICONDHD-COND_TYPE = COND_TYPE."I_KSCHL. "WA_BAPICONDHD-VARKEY = H_VARKEY.WA_BAPICONDHD-VALID_FROM = WA920-DATAB.WA_BAPICONDHD-VALID_TO = WA920-DATBI.APPEND WA_BAPICONDHD TO LT_BAPICONDHD .WA_BAPICONDIT-OPERATION = '003'."'009'.WA_BAPICONDIT-COND_NO = WA920-KNUMH. "'$000000001'.WA_BAPICONDIT-COND_COUNT = '01'. "条件序列号WA_BAPICONDIT-APPLICATIO = APPLICATIO."'V'.WA_BAPICONDIT-COND_TYPE = COND_TYPE."I_KSCHL. "WA_BAPICONDIT-SCALETYPE = 'A'. "STFKZ STAFFELSOORTWA_BAPICONDIT-SCALEBASIN = ''. "KZBZG TEKEN:REKENEENHEID " WA_BAPICONDIT-SCALEBASIN = 'C'. 存在数量等级WA_BAPICONDIT-SCALE_QTY = '0'. "KSTBM CONDITIESTAFFELBASIS HOEVEELHEIDWA_BAPICONDIT-COND_P_UNT = '1'. "KPEIN PRIJSEENHEIDWA_BAPICONDIT-COND_UNIT = H_COND_UNIT. "KMEIN CONDITIE-HOEVEELHEIDSEENHEIDWA_BAPICONDIT-CALCTYPCON = 'C'. "KRECH CONDITIE-REKENREGELWA_BAPICONDIT-COND_VALUE = LVALUE.WA_BAPICONDIT-CONDCURR = WAERK.APPEND WA_BAPICONDIT TO LT_BAPICONDIT.CALL FUNCTION 'BAPI_PRICES_CONDITIONS'EXPORTING
* PI_INITIALMODE = ' '
* PI_BLOCKNUMBER =PI_PHYSICAL_DELETION = 'X' "物理删除 删除的时候要打上XTABLESTI_BAPICONDCT = LT_BAPICONDCTTI_BAPICONDHD = LT_BAPICONDHDTI_BAPICONDIT = LT_BAPICONDITTI_BAPICONDQS = LT_BAPICONDQSTI_BAPICONDVS = LT_BAPICONDVSTO_BAPIRET2 = LT_BAPIRET2TO_BAPIKNUMHS = LT_BAPIKNUMHSTO_MEM_INITIAL = LT_MEM_INITIALEXCEPTIONSUPDATE_ERROR = 1OTHERS = 2.ENDIF.COMMIT WORK AND WAIT.READ TABLE LT_BAPICONDCT ASSIGNING <FS1> INDEX 1.<FS1>-OPERATION = operation.<FS1>-VALID_TO = PDATBI.READ TABLE LT_BAPICONDHD ASSIGNING <FS2> INDEX 1.<FS2>-OPERATION = operation.<FS2>-VALID_TO = PDATBI.READ TABLE LT_BAPICONDIT ASSIGNING <FS3> INDEX 1.<FS3>-OPERATION = operation.CALL FUNCTION 'BAPI_PRICES_CONDITIONS'TABLESTI_BAPICONDCT = LT_BAPICONDCTTI_BAPICONDHD = LT_BAPICONDHDTI_BAPICONDIT = LT_BAPICONDITTI_BAPICONDQS = LT_BAPICONDQSTI_BAPICONDVS = LT_BAPICONDVSTO_BAPIRET2 = LT_BAPIRET2TO_BAPIKNUMHS = LT_BAPIKNUMHSTO_MEM_INITIAL = LT_MEM_INITIALEXCEPTIONSUPDATE_ERROR = 1OTHERS = 2.ENDFUNCTION.
SAP 维护SD价格的探讨相关推荐
- SAP MM初阶事务代码MEK1维护PB00价格
SAP MM初阶事务代码MEK1维护PB00价格 MM模块里的采购价格,比如条件类型PB00的价格,除了可以在ME11里维护以外,还可以在事务代码MEK1里维护. 执行事务代码MEK1,条件类型PB0 ...
- SAP ERP SD模块中维护销售人员
SAP ERP SD模块中维护销售人员信息并分配销售组织 分类: SAPHCM用户指南 在SAP ERP系统,销售和分销(SD)模块中需要创建销售人员(Sales Personnels)消息,后者 ...
- SAP中SD模块的销售价格确定逻辑简析
在销售业务中,销售订单项目有一些基本要素,数量,价格,运费,税率等. 在SD模块的销售订单或销售计划协议功能中,这些要素往往通过条件记录的形式来处理.如何理解条件记录?通过价格比较好理解.例如有物料M ...
- SAP MM 采购价格里的阶梯价格
SAP MM 采购价格里的阶梯价格 1, 采购信息记录里的阶梯价格数据 2,采购订单新建时, 3,采购订单保存后, 阶梯价格生效了! -完- 写于2021-10-15早上.
- 关于SAP的SD的定价公式的资料
关于SAP的SD的定价公式的资料(强力推荐,有时间我会进行翻译) Enhancing Output Determination Implementing Subsequent Function Req ...
- SAP的SD模块中客户的销售视图--扩充客户销售范围
在SAP中 客户 主数据 有三个视图:一般数据(常规数据),公司代码数据,销售数据. 其中前两个视图由财务会计维护 财务会计会使用FD01这个事务码,维护常规数据 下图就是FD01 而在SD模块中,需 ...
- SAP 修改物料价格那些事
每一个 FI 或则 MM 顾问,都被用户无数次问物料价格修改过吧?尤其是做运维的时候.物料价格究竟能不能修改,怎么修改,修改价格有什么影响?本文总结一下,以备将来业务再问之需:都在这里,自己去看吧. ...
- SAP中SD交货与WM下架功能的集成应用
如题的应用场景比较容易理解,销售发货.从哪里发?即发货的源头在哪?货是存储在库位Strorage location,还是存在货架上,并引入了SAP WM模块的货架管理.如果存货引用的WM管理.那么SD ...
- SAP维护币种间汇率前的币种间的汇况比例维护实例
以前只知道在OB08中维护汇率,并没有维护过折算率.在SAP中有很多类似情况,由于后台有一些标准的基础配置存在,所以正常情况下,可以满足基本的业务需求.但当业务需求扩展时,有时基础配置并不能完全满足需 ...
最新文章
- class-5 If语句
- 工具_好(zhuang)用(bi)的chrome插件
- 【学习笔记】类对象的内存释放
- struts2配置文件中action的name属性
- 将Chrome调试器里的JavaScript变量保存成本地JSON文件
- pycharm引用python_在Python/Pycharm中找不到引用“xxx”
- 队列:先入先出的数据结构讲解
- CentOS 7 启用远程连接和使用postgis等客户端连接
- 拓端tecdat|python中的copula:Frank、Clayton和Gumbel copula模型估计与可视化
- 【Rust日报】 2019-05-22:Mozilla图像团队发布WebRender MVP
- 路由器服务器账号密码,路由器上网账号密码设置的一般步骤介绍
- 小程序商城需要食品流通许可证吗?
- [BJTU]C语言期中考试总结
- 计算机设备图形符号,常用一次设备的图形符号和文字符号
- word怎么设置分栏 word设置分栏的方法
- python exec 返回值_Python exec()用法及代码示例
- Imu_heading使用
- 随机向量函数链神经网络(RVFLNN)
- ch340t电路_CH340电路设计 - ch340g典型应用电路
- 怎么写竞品分析报告(思路):
热门文章
- Python 切割mp3片段为每30秒一个并降低文件码率
- 安全科普:局域网攻击的常见方法
- 合并多个excel,csv Excel+Python
- java如何统计网站访问量
- 华为 — 路由和交换(OSPF+VRRP+PAT+MSTP)及USG防火墙(实验案列+配置)
- Spotify for Mac(音乐播放器)中文版永久使用教程
- 请更换备份电池 pos机_POS机大机故障的解决办法,有POS机的必看此文章
- TERASOLUNA Framework
- Qt Icon Resource 图标素材
- 苹果手机数据线充不了电_手机充不满电?教你四个办法解决!