在sap的定价配置中,我们常常会使用到参考结构和参考字段(条件表和存储顺序),这些字段是如何使用的呢,我带着这个好奇阅读了sap的源码(函数SD_COND_ACCESS),并将我的理解记录下来供大家参考。

Step 1 调用t682z_select子过程从T682Z读取存储顺序存储到t682z_tab
PERFORM t682z_select TABLES t682z_tab
USING t682i_i
CHANGING subrc.
并根据参考结构和参考字段拼接存放到内表的字段kommfield中
CONCATENATE t682z_buf-qustr '-' t682z_buf-qufna
INTO t682z_buf-kommfield.

Step 2 在子例程sel_kondtab中根据存储顺序里的参考结构和字段名提取参考结构的对应字段值
ASSIGN TABLE FIELD (proto_fld_tab-kommfield) TO <f>.
proto_fld_tab-wert = <f>.

注:proto_fld_tab-kommfield的值,如:KOMP-PRODH1

Step 3 在子例程sel_kondtab中拼接查询条件(放在coding_tab内表中)
* buffered with wrong value -> replace value
coding_template-value = proto_fld_tab-wert.
REPLACE ALL OCCURRENCES OF '''' IN proto_fld_tab-wert
WITH '''''' IN CHARACTER MODE.
CONCATENATE '''' proto_fld_tab-wert '''' INTO h_value.
CONCATENATE <t682z>-zifna '=' h_value
INTO coding_template-line
SEPARATED BY ' '.
MODIFY coding_template INDEX sy-tabix TRANSPORTING value line.
IF first = yes.
first = no.
coding_tab = coding_template-line.
ELSE.
CONCATENATE 'AND' coding_template-line INTO coding_tab
SEPARATED BY ' '.
ENDIF.
ENDIF.
APPEND coding_tab.

Step 4 在子例程sel_kondtab中根据拼接(放在coding_tab内表中)出查询条件取读取条件记录。
SELECT * FROM (t681-kotab) APPENDING TABLE <cond_tab>
UP TO 1 ROWS
WHERE kappl = se_kappl
AND kschl = se_kschl
AND (coding_tab).

注:t681-kotab为条件表名称如:A802 ;coding_tab内容参见下图

有了这些,我们对参考字段和参考结构的使用的理解就应该很容易了。

SD--关于定价过程中的存储顺序的参考结构和参考字段的使用代码跟踪相关推荐

  1. 计算机在播放音乐时 将数字音频信号转化为,计算机在数字音频信息获取与播放过程中正确的顺序是什么...

    计算机在数字音频信息获取与播放过程中正确的顺序是采样.A/D变换.压缩.存储.解压缩.D/A变换:其中把模拟音频转成数字音频,在电脑音乐里就称作采样,其过程所用到的主要硬件设备便是模拟/数字转换器. ...

  2. SAP WM中阶存储类型里的Full stk rmvl 字段和Return Storage type字段

    SAP WM中阶存储类型里的Full stk rmvl 字段和Return Storage type字段 SAP WM存储类型的配置里,可以配置从某个存储区域里下架的时候都是全数下架,不管需要下架的数 ...

  3. 递归过程中语句执行顺序

    递归的两种模式 模式一 //递归的过程中在"递"的过程中解决问题 function function_name(Max_argument){if(end_condition){en ...

  4. matlab查找集合中某个元素的位置/Struct结构体某个字段值的位置

    % 查找集合中某个元素的位置 C = {'xlh','gyl','xyh'}; c = strcmp(C,'gyl'); % logical array ind0 = find(c==1);% Str ...

  5. 条件EK02在定价过程中丢失

    EK01和EK02,其中EK01项目上面用的不多,用的最多的就是EK02,其目的是用来在SO里面体现COST RUN的信息. EK01和EK02都来自CK51N的计算结果.但是EK01参与SO价格计算 ...

  6. C语言中的程序设计——顺序、选择结构程序设计

    俗话讲C语言为一种计算机语言,那怎么才能成功运行呢?那就是依靠这个程序的设计,之所以有了这些程序才能使C语言成功"跑"起来 1.顺序结构程序 就是一种由上到下编程结构,自上而下就叫 ...

  7. [SAP ABAP开发技术总结]SD销售订单定价过程

    16.3.2.     定价过程 16.3.2.1.           条件技术七要素 16.3.2.2.           条件表V/03.V/04.V/05 16.3.2.3.         ...

  8. SAP SD 定价过程

    16.3.2.     定价过程 16.3.2.1.           条件技术七要素 16.3.2.2.           条件表V/03.V/04.V/05 16.3.2.3.         ...

  9. 【转】继承过程中 父类子类的 字段方法 内存分配 (非java语言)

    名人名言:思想好比火星:一颗火星会点燃另一颗火星.一个深思熟虑的教师和班主任,总是力求在集体中创造一种共同热爱科学和渴求知识的气氛,使智力兴趣成为一些线索,以其真挚的.复杂的关系--即思想的相互关系把 ...

最新文章

  1. 延长线段ab到c的画法有几种_终于有人把趋势线的正确画法和错误画法讲透彻了,字字精华,原来大多数人都画错了...
  2. 设计模式-创建型模式-工厂模式(工厂三兄弟) TypeScript
  3. VS(visual studio)如何查看预处理后的文件?(查看宏定义展开,头文件展开等)(注意如果要运行或调试代码,要把第一步的改回来!!!!)
  4. P3033 [USACO11NOV]牛的障碍Cow Steeplechase
  5. [ZJOI2014] 星系调查(树上差分 + 数学推式子)
  6. 使用Java实现发送email邮件
  7. FFmpeg 转码压缩
  8. 输入阻抗和输出阻抗的理解
  9. 学习日记——Quartus工程创建与运行
  10. 网络字节序与主机字节序的转换 - HEN_MAN的专栏 - 博客频道 - CSDN.NET
  11. java怎样写网页_java怎么写网站
  12. BSN智能合约开发培训-CITA(三)
  13. CSS中如何实现背景图片透明并且固定和文字不透明效果
  14. Android bugreport 充电日志解读
  15. 软件实施工程师面试总结
  16. 求职偶摘1,据说是高盛offer。
  17. LaTex(Texshop)的入门(一)(此篇有关中字字符的编译,格式的初步编排)
  18. 开发过程中遇到问题怎么解决?
  19. 解决Win10安装Ubuntu20.04双系统出现的win10引导失败方案
  20. IntelliJ IDEA 2021下载、安装

热门文章

  1. 【移动开发】Android应用程序中实用的代码框架(一)
  2. Linux工具快速上手,Linux很实用命令
  3. mysql5.5在linux下的集群,同步和配置优化
  4. [原]Android打包之Gradle打包
  5. Matlab 重命名
  6. H3C 2126 限速后的问题
  7. React拾遗:Render Props及其使用场景
  8. 2016第一季度目标
  9. strncmp实现方式之一
  10. linux消息队列操作