点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
人们好,
许多人都知道,我还没有真正和ABAP OO对话,所以即使是最简单的任务也很难解决,因为我不确定自己在做什么是正确和/或最佳方法 为此(即使在清洁代码中填充内容之后) 或各种书籍)。 因此,这是我想做的事情,已经为它编写的代码,然后是一些"健全性检查"问题。
我们有一个通用的参数表-我们称它为ZPARAMETERS-用于很多东西,例如,如果有特定值的条目或为字段提供特定值,则决定是否应执行例程。 它虽然不漂亮,但不会很快消失。 查询表的方式有多种,我至少会尝试使其更加简化。 这就是为什么我对功能方法有些涉猎的原因。
创建了一个接口:
界面zif_table_zparameters_dao 上市 。 方法: entry_exists 输入 i_zparameters TYPE zparameters 正在返回 VALUE(entry_found)TYPE abap_bool, return_value2 输入 i_zparameters TYPE zparameters 正在返回 VALUE(结果)TYPE zparameters-value2。 终端接口。
实现该接口的全局类:
CLASS zcl_table_zparameters定义 公开创建公众。 公共部分。 接口zif_table_zparameters_dao。 受保护的部分。 专用部分。 ENDCLASS。 类别zcl_table_zparameters的实现。 方法zif_table_zparameters_dao〜entry_exists。 清除entry_found。 选择单个@abap_true 从z参数 INTO @entry_found 哪里调EQ @ i_zparameters-modul AND z_program EQ @ i_zparameters-z_program AND字段EQ @ i_zparameters-field AND值1 EQ @ i_zparameters-value1 AND value2 EQ @ i_zparameters-value2。 终结法。 方法zif_table_zparameters_dao〜return_value2。 清除结果。 选择单值2 从z参数 INTO @结果 哪里调EQ @ i_zparameters-modul AND z_program EQ @ i_zparameters-z_program AND字段EQ @ i_zparameters-field AND值1 EQ @ i_zparameters-value1。 终结法。 ENDCLASS。
在程序,出口和增强中将如何使用此示例代码:
数据:int_zparameters类型参考zif_table_zparameters_dao。 DATA(cls_zparameters)=新的zcl_table_zparameters()。 int_zparameters?= cls_zparameters。 类型:l_zparameters TYPE zparameters。 "只需检查条目是否存在 如果int_zparameters-> entry_exists(VALUE l_zparameters(modul ='SD' z_program ='ZPROG' 字段='FIELD' value1 ='VALUE1' value2 ='VALUE2' ))。 "如果找到条目,应做任何事情 万一。 "如果提供了其他字段,请返回VALUE2 DATA(value2)= int_zparameters-> return_value2(VALUE l_zparameters( 模块化='SD' z_program ='ZPROG' 字段='FIELD' value1 ='VALUE1' ))。 如果value2不是初始值。 "根据需要使用VALUE2 万一。
所以,这是我的"健全性检查"问题:
- 我在这里做什么甚至需要接口-尤其是。 因为极不可能针对逻辑进行单元测试? 我创建它的主要原因是,这似乎是公共类/方法的推荐方法。
- 为不同实体命名是否有意义?
- 如何让调用例程知道在RETURN_VALUE2的函数方法中可能仅返回仅一个值(在这种情况下为VALUE2的内容)的任何条目? 目前,我通过查询VALUE2是否已填充来解决该问题,但我不确定这是否是最佳/正确的方法。
- 还有其他发现吗?
非常感谢和欢呼
贝尔贝尔
一周热门 更多>