简述例程
在“转换”中,最重要的有三种类型的例程,开始例程,转换例程及结束例程;此外还有专家例程,反向例程。
开始例程:开始例程在每个数据包开始进行转换时运行。开始例程没有返回的值,它直接对数据包进行计算、修改或删除等操作,将操作的结果直接保存在数据包中进行后续的转换步骤。当然,开始例程也可以访问和操作SAPBI 系统中的其他数据库表。
转换例程:则是在每笔数据传输过程中,对数据进行的一个转换,例如数据根据条件进行的匹配转换。当在每个字段的详细规则中,选择例程的规则类型就会弹出对话框来贴些转换例程。
结束例程:结束例程对经过转换规则转换后的数据进行操作,它操作的是一个与目标对象字段结构一致的表结构。与开始例程一样,它也是逐个数据包进行处理的。在结束例程中,可以进行各种数据的操作,比如,删除不需要的数据、进行数据质量检查等。
专家例程 : 专家例程是系统提供的进行数据转换的另一个选项,这一类型的例程较少使用。一般只在SAP BI 提供的标准函数不能满足转换需要的时候,才使用专家例程。在已知道数据库表逻辑时,出于提高性能的考虑,也可以使用专家例程而不使用图形界面。
专家例程还可以更方便地将一条长记录分成多条短记录。使用专家例程可以编写系统提供的规则类型以外的任意转换,这时需要自定义写入数据加载日志的信息。一旦为一个转换创建了专家例程,系统会删除同一转换内已经定义好的其他转换规则。
反向例程 :在上图中没有标识出来,它将目标对象在运行报表时的选择条件和输出字段转化为对源对象的选择条件和输出字段的要求。
反向例程只在两种情况下使用。
1) 如果为虚拟信息提供者定义了例程,出于性能方面的考虑,可以使用反向例程。由于虚拟信息提供者本身并不存储数据,只在运行报表时直接到源系统读取数据,转换中的例程可能使报表的选择条件与输出字段与源系统不存在直接的对应关系,因此有必要把这些信
息通过反向例程传给源对象。
2) 当使用SAPBI 的报表跳转功能,从SAPBI 系统跳转到其他SAP 系统的事务处理界面时,如果数据是经过例程转换的,需要使用反向例程将报表中相应的信息返回给其他的SAP 系统。
在这两种情况下,如果不使用反向例程,系统选择源对象所有的值。
在代码*$*$ begin of global …和*$*$end of global ...之间输入用户的数据定义。用户可以使用两种方式声明数据:
1 )使用语句'CLASS DATA'进行全局数据声明。用这一方法声明的数据在整个数据请求
中都有效。
2) 使用语句'DATA'进行全局数据声明。用这一方法声明的数据只在当前的数据包中都
有效。
全局数据声明使不同的例程之间共享数据成为可能。例如,可以在例程中使用其他例程
的中间计算结果,或者在稍后再次调用同时例程时重用例程的数据。