SAP SE16H的使用方式介绍

2023-12-27 20:09:21

目录

功能1:数据库连接(Database Connection)

功能2:公式(Formula)

功能3:组查询(Group)?

功能4:分组统计(Group)

功能5:合计(Total)?

功能6:排序(Sort)?

功能7:序列(Sequence)

功能8: 最大值,最小值,平均值(Aggregate)

功能9:附加条件(Having)

功能10:结果清单下钻(Drilldown options)

功能11: F9根据选择条件生成报表

功能12:跨表关联查询(Outer Join Definition)?


本文用于介绍SE16H的使用方式,之前看到过SAP论坛上的一些帖子,写的内容根本就不对,所以自己测试了下SE16H的一些常用功能,整理一下,方便查阅使用。

关于SE16H的介绍,SAP也有专门的note进行说明:

1636416 - CO-OM 工具:事务 SE16H 的功能 - SAP for Me

功能1:数据库连接(Database Connection)

使用该功能可以进行查看HANA数据库中的表内容,以下是note中对应的说明,我测试的系统无法使用该功能,所以没有进一步测试。

  • 在“数据库连接”字段中,可使用输入帮助显示和选择可用的数据库连接。
  • 然后使用所选的相关数据库连接执行访问。
  • 如果选择数据库连接,“表”字段的输入帮助将显示 SAP HANA 中的可用表和视图。
  • 为可用表确定行数。这不适用于视图。请注意,行数也是跨所有客户端确定的。因此,当前系统/客户端中的行数可能低于显示的数量。
  • 请注意,事务 SE16H 只能检查数据库的物理连接。在 SAP HANA 中创建的表必须与 SAP ERP 字典中的定义完全对应。如果存在偏差(例如,不同的字段名称),事务 SE16H 会在访问时触发短转储。使用事务 SE16H 访问 SAP HANA 仅对一对一复制的表有用。所有其他表(例如,仅在 SAP HANA 中创建)必须使用 SAP HANA Studio 进行评估。
  • 如果将“数据库连接”字段留空,SE16H 将使用 ERP 系统主数据库中的所有功能。如果这不是 SAP HANA 数据库,则这种情况下可能会出现极长的运行时。

功能2:公式(Formula)

在实施了note:2795867之后,SE16H将会新增该功能,需要使用时,需要现在设置中勾选“技术视图”,目前来看不支持通过请求传输。

在公式中创建的每一行都必须包含以下内容:

  • 序列号
  • 新字段的名称(该字段名不能和现有表中的字段名重名),此名称在输出字段目录中生成。
  • 用于定义新字段的引用表和字段(长度、类型)
  • 根据数学逻辑的公式字段(括号、加法和减法前的乘法和除法等)
  • 计算数量的单位。可以在此处输入默认值。
  • 计算货币的单位。可以在此处输入默认值。
  • 如果计算字段依赖于表中的货币或数量字段,则可以输入该字段。如果此字段的内容在命中集中为空,则使用默认值。

我这里用一个简单的测试来说明使用方式:新增一个公式,计算金额ZMONEY = EKPO-MENGE * EKPO-NETPR。

注意点1:如果公式中的字段是字符型,运行时如果不能转换为数字,会触发异常,公式不会运行。

注意点2:如果计算后的数字大小超过参照字段的长度,会引发dump,需要确保参考字段的长度可以容纳计算后的长度。

选中公式,运行查看效果:

功能3:组查询(Group)?

可以指定使用GS01创建的组来进查询,比如定义了一个自定义的组,包含两个公司代码,在查询时指定该组,选择条件就相当于输入了维护的两个值。

功能4:分组统计(Group)

区别于上面的group,这里的group是用于分组统计,统计勾中的字段有多少个条目。

勾上多个则是以多个维度统计条目数,比如统计到库位级别:

功能5:合计(Total)?

一般配合group分组统计功能使用,比如按照指定的维度来合计PO订单数量:

注意点:如果合计后的值过大,会引发溢出异常。

功能6:排序(Sort)?

SAP默认排序都是升序排序,需要倒序排序的话,则需要指定排序类型为DES。

?

功能7:序列(Sequence)

用于指定排序的优先级,默认是按照顺序依次从上至下,如果按照下图的设置,则排序优先级会是:公司代码(倒序)->变更日期(倒序)->工厂(升序)->库存地点(倒序),同时输出的列的顺序也会与指定序列的优先级保持一致。

功能8: 最大值,最小值,平均值(Aggregate)

一般配合group分组统计使用,针对同一字段只能使用Aggregate、Total、Group中的一个。

功能9:附加条件(Having)

只针对可以进行Total合计的字段可以使用该功能,比如下图设置效果为,只显示合计数量大于500000的条目结果。

功能10:结果清单下钻(Drilldown options

只有勾选了group分组统计才会出现

几个选项的区别:

  1. Drilldown/List: 钻取整个清单,不新开窗口

  2. Drilldown/Row: 钻取选中的行,不新开窗口

  3. Dridown/List/New Mode/Value Entry: 钻取整个清单,新开窗口,返回至选择界面

  4. Drilldown/Row/New Mode: 钻取选中的行,新开窗口显示结果清单

  5. Drilldown/Row/New Mode/Value Entry: 钻取选中行数据,新开窗口,返回至选择界面

比如新增要分析的字段,点击Drilldown/List,选中价格字段,执行。

其他每个选项可自行测试效果。?

功能11: F9根据选择条件生成报表

note中提到了可以根据查询结果按F9自动生成报表,但是看了下,功能还是比较鸡肋,生成的代码没有太大用处,这里使用了公式的逻辑,也并没有包括进去。

功能12:跨表关联查询(Outer Join Definition)?

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的全部用法。

文章来源:https://blog.csdn.net/DeveloperMrMeng/article/details/135111436
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。