
上一章学习了SAP Query - SQVISAP学习笔记 - ABAP开发02 - SQP QuerySQVI - Quick View 数据源-表表连接逻辑数据库查询信息集基本模式布局模式集合输出格式调整数据时效/数据温度-CSDN博客本章继续学习SAP Query知识。目录1表连接概要2表连接实例2-1SQVI - 新建Query2-2添加表 VBAK-销售订单抬头VBAP-销售订单行项目2-3添加 VBFA-销售凭证流2-4设置 导出为字段颜色a显示字段b调整顺序c修改字段Header名称以及输出长度d运行测试2-5添加LIKP-送货单抬头LIPS-送货单行项目2-6运行测试2-7总结3逻辑数据库- LDB3-1LDB是一种特殊的ABAP程序3-2事务代码 - SE36 - 所以说它是一个ABAP程序3-3实例 - SE36 查找逻辑数据库3-4SQVI 中使用逻辑数据库LDB3-5总结使用逻辑数据库的优点4总结4-1SQVI - 快速视图下面是详细内容。1表连接概要-1 - Inner Join内连接取两个表间的共同部分-2 - Left Join 也叫Left Outer Join左连接-3 - Left Join Where B.KeyNULL/空 常常用于把表A中数据进行删除-45 - Right Join 右连接类似于左连接23方向不同而已-6 - Union Join /Full Join并集-7 - A Union B并且去掉交集SAP中并没有提供这么多只是有122表连接实例-案例 - 销售订单追踪-描述根据销售订单查看送货单信息-查询条件订单号物料号时间客户送货状态- 用到的表用SAP QuerySQ01/SQ02/SQ03来做一个“销售订单 → 出库/送货单追踪”的查询。核心逻辑可以设计成销售订单 VBAK/VBAP → 销售订单后续凭证 VBFA → 送货单 LIKP/LIPS最终查询结果可以做到输入销售订单号、物料号、订单日期/交货日期、客户、送货状态 → 显示订单及对应送货单信息并判断是否已经创建/完成交货。下面按 SAP Query 的实际实现方式分析。1、首先确定业务关系5 张表表用途关键字段VBAK销售订单抬头VBELNVBAP销售订单行项目VBELN POSNRVBFA销售凭证流VBELV/POSNV → VBELN/POSNNLIKP送货单抬头VBELNLIPS送货单行项目VBELN POSNR关系可以理解为销售订单 VBAK │ │ VBELN ▼ VBAP │ │ 销售订单项目 │ ▼ VBFA │ │ 后续凭证 ▼ LIKP │ │ VBELN ▼ LIPS其中最重要的是 VBFA。因为不建议直接通过 VBAK/VBAP 和 LIKP/LIPS 硬连接。销售订单和交货单之间可能存在一个订单 → 一个交货一个订单 → 多个交货一个订单项目 → 多个交货项目一个交货 → 多个销售订单项目所以最好通过VBFA 销售凭证流来确定对应关系。2、推荐的核心 Join 关系如果用 SAP Query 建 InfoSet我建议核心关系设计成VBAK | | VBAK-VBELN VBAP-VBELN | VBAP | | VBAP-VBELN VBFA-VBELV | VBAP-POSNR VBFA-POSNV | VBFA | | VBFA-VBELN LIKP-VBELN | LIKP | | LIKP-VBELN LIPS-VBELN | LIPS但是这里有一个非常重要的问题VBFA 的字段不是你想象的简单“订单号 → 交货单号”。主要字段VBELV 前一个凭证 POSNV 前一个凭证项目 VBELN 后一个凭证 POSNN 后一个凭证项目所以VBFA-VBELV VBAK-VBELN VBFA-POSNV VBAP-POSNR找到后续凭证VBFA-VBELN 送货单号 VBFA-POSNN 送货单项目再VBFA-VBELN LIPS-VBELN VBFA-POSNN LIPS-POSNR这样才能准确追踪。哎看着也挺复杂的哈。咱们从简单的部分开始做。2-1SQVI - 新建Query2-2添加表 VBAK-销售订单抬头VBAP-销售订单行项目默认根据Inner Join进行连接2-3添加 VBFA-销售凭证流VBAPVBFA 默认是Inner Join修改为左外部连接修改完之后在线上显示为左外部连接检查2-4设置 导出为字段颜色a显示字段b调整顺序c修改字段Header名称以及输出长度VBFA 后续凭证类别 VBTYP_N然后再调整字段颜色其他字段长度等这样就做好了d运行测试执行效果2-5添加LIKP-送货单抬头LIPS-送货单行项目这里可以调整为先连接LIPS再连接LIKP这样能保证只抽出送货单存在的数据2-6运行测试2-7总结-确定输出格式如果是自己用可以多设置几种输出格式如果是给客户用尽量简单化比如只选择客户认定的某一种格式规避客户选择困难3逻辑数据库- LDB3-1LDB是一种特殊的ABAP程序3-2事务代码 - SE36 - 所以说它是一个ABAP程序3-3实例 - SE36 查找逻辑数据库SE36 LIKP这些都是Inner Join简单来说就是下图逻辑3-4SQVI 中使用逻辑数据库LDBSQVI- 数据源逻辑数据库- 逻辑数据库VLV 就是上面SE36查出来的那个它显示的内容跟SE36显示的内容是一样的并且可以跟其他单表或复数表一样选择导出为选择字段等等进行设计默认已经添加了一些字段可以根据需要再添加其他字段- M-发票发票的信息3-5总结使用逻辑数据库的优点- 不需要手动连接表- 不需要额外定制选择字段4总结4-1SQVI - 快速视图以上就是本篇的全部内容。更多业务知识请点击下面目录 链接 或东京老树根的博客主页https://blog.csdn.net/shi_ly/category_12216766.html东京老树根-CSDN博客