目录
功能1:数据库连接(Database Connection)
功能10:结果清单下钻(Drilldown options)
功能12:跨表关联查询(Outer Join Definition)?
本文用于介绍SE16H的使用方式,之前看到过SAP论坛上的一些帖子,写的内容根本就不对,所以自己测试了下SE16H的一些常用功能,整理一下,方便查阅使用。
关于SE16H的介绍,SAP也有专门的note进行说明:
1636416 - CO-OM 工具:事务 SE16H 的功能 - SAP for Me
使用该功能可以进行查看HANA数据库中的表内容,以下是note中对应的说明,我测试的系统无法使用该功能,所以没有进一步测试。
在实施了note:2795867之后,SE16H将会新增该功能,需要使用时,需要现在设置中勾选“技术视图”,目前来看不支持通过请求传输。
在公式中创建的每一行都必须包含以下内容:
我这里用一个简单的测试来说明使用方式:新增一个公式,计算金额ZMONEY = EKPO-MENGE * EKPO-NETPR。
注意点1:如果公式中的字段是字符型,运行时如果不能转换为数字,会触发异常,公式不会运行。
注意点2:如果计算后的数字大小超过参照字段的长度,会引发dump,需要确保参考字段的长度可以容纳计算后的长度。
选中公式,运行查看效果:
可以指定使用GS01创建的组来进查询,比如定义了一个自定义的组,包含两个公司代码,在查询时指定该组,选择条件就相当于输入了维护的两个值。
区别于上面的group,这里的group是用于分组统计,统计勾中的字段有多少个条目。
勾上多个则是以多个维度统计条目数,比如统计到库位级别:
一般配合group分组统计功能使用,比如按照指定的维度来合计PO订单数量:
注意点:如果合计后的值过大,会引发溢出异常。
SAP默认排序都是升序排序,需要倒序排序的话,则需要指定排序类型为DES。
?
用于指定排序的优先级,默认是按照顺序依次从上至下,如果按照下图的设置,则排序优先级会是:公司代码(倒序)->变更日期(倒序)->工厂(升序)->库存地点(倒序),同时输出的列的顺序也会与指定序列的优先级保持一致。
一般配合group分组统计使用,针对同一字段只能使用Aggregate、Total、Group中的一个。
只针对可以进行Total合计的字段可以使用该功能,比如下图设置效果为,只显示合计数量大于500000的条目结果。
只有勾选了group分组统计才会出现
几个选项的区别:
Drilldown/List: 钻取整个清单,不新开窗口
Drilldown/Row: 钻取选中的行,不新开窗口
Dridown/List/New Mode/Value Entry: 钻取整个清单,新开窗口,返回至选择界面
Drilldown/Row/New Mode: 钻取选中的行,新开窗口显示结果清单
Drilldown/Row/New Mode/Value Entry: 钻取选中行数据,新开窗口,返回至选择界面
比如新增要分析的字段,点击Drilldown/List,选中价格字段,执行。
其他每个选项可自行测试效果。?
note中提到了可以根据查询结果按F9自动生成报表,但是看了下,功能还是比较鸡肋,生成的代码没有太大用处,这里使用了公式的逻辑,也并没有包括进去。
SE16H最重要的功能,可以多表关联查询,点击小车传输按钮即可进行传输,属于跨client请求。
例如这里使用EKPO作为主表,查询EKKO及MAKT中的数据,配置过程如下:
点击创建按钮,输入要关联的表名?EKKO:
选中EKKO行,点击维护按钮(放大镜按钮),下面会出现表名,再点击创建按钮,就可以进一步维护关联关系。?
第一列输入关联字段名,第二列选择关联方式,后面每一种关联方式都会有对应的例子说明,这里需要关联EKPO,则选择REFERENCE即可,第三列输入要关联的表的字段,第四列输入要关联的表名。?
点击output按钮,来选择关联表中需要展示的字段,这里只勾选了订单类型和供应商。
再来关联第二张表MAKT,用来取对应的物料描述,点击创建按钮,输入第二张表名MAKT,这里默认是不勾选,即左外关联,勾上即内关联。
同样的步骤,为MAKT添加关联关系:?
这里多加了一个条件,语言代码,这里关联类型选择SYSTEMVAR,变量值填SYST-LANGU,即设置语言等于当前登录环境的语言代码。?SE11查看结构SYST可以查看其它可用字段,不过一般来讲会用到的最多的应该就是语言代码。
同理选择MAKT需要显示的字段
不要忘记点击保存
选择创建好的关联定义,执行查看查询结果:
关联查询的关联方式一共有下面5种:
CONSTANT:常量,注意像单位这种的需要填写未转换的值,比如PC要填写为ST。
REFERENCE:参照,用于参考要关联的表的字段名及表名。
STRING:字符串,可以配合偏移量,长度等附加选项来进行截断查询。
SYSTEMVAR:系统变量,可以引用SYST结构中的值。
VARIABLE:复杂变量,目前只能使用SE16N_OJ_GET_OBJECT_FROM_OBJNR来对内部订单号或者成本对象号进行处理。
REFERENCE和SYSTEMVAR上面的例子中都已经使用过,下面举例说明另外三种的使用方式:
CONSTANT:比如查询EKKO-BUKRS等于2D05的数据。
STRING:可以用来关联两个字段长度不一样的字段,比如根据JEST-OBJNR的第3位开始截取12位作为订单号用于关联AUFK-AUFNR,则可以按照下面的配置来维护关联关系。
关联结果如下:
VARIABLE:?只能用于有OBJNR字段的表格。
debug了一下复杂变量的使用原理,其实是检索主表(JEST)中的OBJNR字段的值,根据规则来自动解析出该对象号是内部订单号还是其他订单号,来截取出对应的单据号再来和指定的目标字段进行比对,比如这里是将JEST-OBJNR和AUFK-AUFNR关联,一般来讲是无法直接关联的,通过SE16N_OJ_GET_OBJECT_FROM_OBJNR函数可以自动截取出其中的订单号(根据前两位的识别码来解析,OR或者其他)并关联到AUFNR。
根据结果可以看到,可以关联到生产订单的则会带出对应的信息,关联不到的则不显示。
以上为SE16H的全部用法。