理论教育 特性派生在BW-IP中的应用

特性派生在BW-IP中的应用

时间:2023-05-30 理论教育 版权反馈
【摘要】:BW-IP中的特性派生同BW-BPS的派生类似,只不过BW-IP不是使用一个或多个Exit进行派生,而是使用ABAP OO类的方式进行派生,因此必须新建属于自己的类,同时在Planning Modeler中输入该类。方法IF_RSPLS_CR_METHODS~CREATE与BW-BPS一样,本方法用来建议所有合理的特性组合,如所有符合要求的物料和物料组的组合建议。

特性派生在BW-IP中的应用

BW-IP中的特性派生同BW-BPS的派生类似,只不过BW-IP不是使用一个或多个Exit进行派生,而是使用ABAP OO类的方式进行派生,因此必须新建属于自己的类,同时在Planning Modeler中输入该类。

在很多项目中,我们都会遇到是使用BW-BPS还是使用BW-IP的问题,或是否同时使用旧的BW-BPS和新的BW-IP。为了达到演示的目的,本处的代码逻辑尽量和之前的代码逻辑保持一致,具体步骤如下。

第1步:在SE19中新建类ZCL_IP_CHAR_DERIVE_SAMPLE,在新建类时,需要输入CL_RSPLS_CR_EXIT_BASE,以作为新建类的超类,如图8-10所示。

978-7-111-50218-0-Chapter08-29.jpg

图8-10 创建类ZCL_IP_CHAR_DERIVE_SAMPLE

第2步:在新建的类中,能够看到3个方法,分别对应到之前BW-BPS的3个不同的Exit,它们是:

978-7-111-50218-0-Chapter08-30.jpg

(1)方法IF_RSPLS_CR_METHODS~CHECK

本方法用来检查特性值的组合是否符合业务规则,如物料和物料组组合的检查,日历年/月和日历年组合的检查等。此方法的输入/输出参数如图8-11所示。

978-7-111-50218-0-Chapter08-31.jpg

图8-11 方法CHECK的参数列表

其中,I_S_CHAS参数包含了当前计划的特性(不包括指标);E_IS_VALID参数为检查的返回结果,如果特性值的组合是符合规则的,则该参数的值为“X”,如果不符合规则,则特性值为空;E_T_MESG参数包含了需要报错处理的临时消息。

由于该检查经常被调用到,且检查的规则可能十分复杂,因此最好使用缓存的方式对数据进行处理,也正因如此,标准的示例代码中使用到了缓存技术。

示例:面向对象的方法IF_RSPLS_CR_METHODS~CHECK,代码如下。

978-7-111-50218-0-Chapter08-32.jpg

978-7-111-50218-0-Chapter08-33.jpg

978-7-111-50218-0-Chapter08-34.jpg

(2)方法IF_RSPLS_CR_METHODS~CREATE

与BW-BPS一样,本方法用来建议所有合理的特性组合,如所有符合要求的物料和物料组的组合建议。此方法的输入/输出参数如图8-12所示,例外参数设置如图8-13所示。

978-7-111-50218-0-Chapter08-35.jpg(www.daowen.com)

图8-12 方法CREATE的参数列表

978-7-111-50218-0-Chapter08-36.jpg

图8-13 方法CREATE的例外参数设置

其中,I_TSX_SELDR参数包含了特性的选择值,仅能从这些选择值中来进行组合的建议。尽管I_TSX_SELDR参数比较复杂,但是我们仅需要考虑两个内容,即CHANM字段和RANGE结构,RANGE中包括了以RANGES格式存储的CHANM的值。E_TH_CHAS参数是程序最终返回的符合业务规则的特性值组合,该表是一个HASHED TBALE,因此读取性能较好。如果返回表E_TH_CHAS为空,则说明所有的组合都是符合规则的。E_T_MESG参数包含了需要报错处理的临时消息。

示例:面向对象的方法IF_RSPLS_CR_METHODS~CREATE,代码如下。

978-7-111-50218-0-Chapter08-37.jpg

978-7-111-50218-0-Chapter08-38.jpg

978-7-111-50218-0-Chapter08-39.jpg

(3)方法IF_RSPLS_CR_METHODS~DERIVE

与之前的两个方法相比,DERIVE方法是在单个记录层面对特性进行处理,而不是在汇总级别进行读取。和CHECK一样,特性值的派生发生在单独的数据记录上,所以该方法的重要性不言而喻。此方法的输入/输出参数如图8-14所示,例外参数设置如图8-15所示。

978-7-111-50218-0-Chapter08-40.jpg

图8-14 方法DERIVE的参数列表

978-7-111-50218-0-Chapter08-41.jpg

图8-15 方法DERIVE的例外参数设置

其中,C_S_CHAS参数和I_S_CHAS参数有一样的结构,但是因为需要对特性的值进行派生,所以使用了作为修改结构的C_S_CHAS,而不使用作为输入结构的I_S_CHAS;E_T_MESG参数包含了需要报错处理的临时消息;CX_RSPLS_FAILED参数替代了CHECK方法中的E_IS_VALID参数,本参数只有在出现严重错误和非法的选择条件时才会被触发(如“FROM”比“TO”还大),此时系统完全退出计划功能。

示例:面向对象的方法IF_RSPLS_CR_METHODS~DERIVE,代码如下。

978-7-111-50218-0-Chapter08-42.jpg

978-7-111-50218-0-Chapter08-43.jpg

978-7-111-50218-0-Chapter08-44.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈