在这篇博文中,北京大数据公司有哪些,我将详细解释由ABAP-BAPI-BO类代码生成器工具生成的Create方法。
这篇博文是ABAP-BAPI-BO类生成器的后续博文。
Create方法的解释是通过示例完成的。示例是创建销售订单–基于BAPI BAPI\U SALESORDER\U CREATEFROMDAT2的Create方法。
此博客文章的De解释基于ABAP BAPI BO Class Generator v.1.2。有关此版本的更多信息,请访问GitHub:https://github.com/alwinvandeput/abap\u bapi\u bo\u class\u生成器
启动事务SA38执行ABAP程序:ZAB\ U ABAP\ U BAPI\ U BO\ U CLASS\ U GEN\ U PRG。启动工具时,选择屏幕几乎为空,如下所示。单击"选择业务对象"按钮。使用主DB表VBAK搜索BAPI。双击:BUS2032–Sales Order–BAPI\u Sales Order\u CREATEFROMDAT2.
因为这个演示是关于"Create BAPI"而不是"Update BAPI",所以我们清除了"Update BAPI(change)"字段按Enter键刷新选择屏幕。所以呢只有与"创建BAPI"相关的复选框处于活动状态。
业务对象类设置在上一步中自动填充。
这些设置在blog post ABAP BAPI BO class Code Generator–Business Object parameters中解释。所以现在我们跳过它们。
方法"Get key and instance method"和"Create method"现在被选中。因此将创建方法GET\u KEY、GET\u INSTANCE\u BO和CREATE\u INSTANCE\u BO。
生成后,您将在ABAP Workbench(T:SE80)的类接口和类实现中看到这些方法。见下图
定义
创建实例的方法是静态方法。在OO原则中,静态方法只能用于获取对象的实例。因此在这里使用得当。
方法有一个导入参数,返回对已创建实例的引用。
导入参数的另一个名称是create(mehod)消息。
消息数据类型
create方法的导入参数也可以称为消息。消息类型TCREATE\u DATA\u S在类接口中生成。信息实际上是一个深层结构。所以它是一个包含元素类型、结构类型和表类型的结构,更改BAPI的表和参数,生成消息数据类型。
将功能模块参数包装在一个深层结构中。
使用深层结构作为方法消息而不是单独的参数的优点是方法调用只需要一个参数。请参见下图中的方法调用。参数突出显示。
如果创建消息被扩展,这样你就不必改变方法的参数了。
另外,到消息的字段映射现在可以在一个单独的方法中轻松完成。
例如:
方法实现
在调用BAPI之前,大数据研发,大数据和云计算,方法消息将被复制到一个本地消息变量,因为Create BAPI可能会改变表和参数的数据。如果使用导入参数,则程序将转储,淘客放单,因为BAPI无法更改数据。
请查看方法消息映射到导入和表参数。导出参数将映射到局部变量
返回变量为局部表变量,稍后用于异常处理
错误处理
调用Create BAPI后直接进行错误处理
BAPI返回消息的错误处理需要3个步骤
参见变量_return_t
如果表变量_return_t包含类型为E、X或A的消息,则异常类将由methode CREATE_by_BAPIRET2_table()实例化。如果是实例化的,则会引发than is,并引发异常。
方法CREATE\u INSTANCE\u BO中的实例化
方法CREATE\u INSTANCE\u BO中的实例化是在错误检查后完成的。
设置键值
实例化后设置键值。
键现在基于方法消息(=导入参数),但我希望为了设置SAP生成的key,我将其改为功能模块的导出参数
自动勾选"实例化调用"、"创建对象调用"和"-Out注释数据"方法。这将导致测试方法在测试类中创建\u INSTANCE \u BO并获取\u INSTANCE \u BO。
生成的测试数据
输出注释数据表示数据被输出注释,免费大数据,如下所示。
您必须取消对测试所需数据的注释。
数据类型、元素名称、域、名称和长度的额外注释应为删除。
测试类
测试类在程序加载事件中实例化,并在选择程序启动事件中执行。
默认情况下,CREATE_INSTANCE_BO()被注释掉。删除*以激活方法调用。
如前所述,所有数据都被注释掉。
为了帮助您生成额外的信息,如数据类型(C,N,…),数据元素、域、字段长度和值表被添加为注释。
填充测试数据…
激活代码并按F8执行程序。如果结果正常,则会收到消息如果不正常,则会收到错误消息,例如: