后SAP时代
(3/3)SAP BPC企业绩效管理的最佳业务实践
四、如何后台直接运行Data Manager包 Data Manager应该是所有实施项目的顾问第一个要进行的模块,除了要把master data和transaction data首先导入BPC,还要设置相应的数据包,以便后期进行数据的...
详细信息
四、如何后台直接运行Data Manager包
Data Manager应该是所有实施项目的顾问第一个要进行的模块,除了要把master data和transaction data首先导入BPC,还要设置相应的数据包,以便后期进行数据的维护,以及进行报表合并操作、自动运行script logic操作、优化BPC Cube。这些操作都会需要用到数据包,也是因为数据包可以被BW process chain设置为周期运行。当然,作为节约人力的便捷方式,也有一些不方便的地方,最明显的就是在出错之后,如果在log中没有记下有意义的信息,很难检查出错的地方。本文最后也会介绍一两个可以自己检查数据包执行的方法。本文主题是介绍如何能自己在后台搭建一个能运行的数据包。在进行后台设置之前,首先是同一般的前台执行数据包一样,这里举例是从BW infoprovider导出数据到BPC Application,如下图:

当我们从后台直接运行这个数据包时,一样需要有这些前台配置的参数信息,而这些信息是如何被代码读到的呢。这里是需要我们去写一个文本文件(answer prompt)。比如下面这样:

这个answer prompt文件的内容很容易理解,基本上都是与界面上面的参数设置一一对应的。每个参数作为一行,每一行用回车符作为结束,参数名称和参数值之间用一个tab符作为分隔。每一个BPC的process chain都有自己不同格式的answer prompt,要想知道如何去做answer prompt文件,简单的办法是前台运行一次数据包,然后去后台下载log文件,在log文件的基础上修改即可。进入Tcode:UJFS,打开文件夹root->webfolders->appset name->app name->privatepublications->user name->tempfiles,如下图:

log文件的文件名是根据执行的数据包名称和时间命名的,所以很容易找到你刚刚执行的那个数据包log文件,下载后打开如下:

跟上面的answer prompt文件对比,就可以看出log文件的第2-6行,就是answer prompt文件的内容。通过这样的方法,就可以得到任何一个数据包的answer prompt文件。
接下来,进入TCode:SE38->UJD_TEST_PACKAGE,填入一系列需要的参数,Team ID大多数时候是为空,Schedule Info不用修改,answerPrompt选取本地做好的answerprompt文件,程序会自动读取内容。不要直接把内容复制到这个文本框中,因为程序会做一些特殊字符的替换。第一个参数If Synchronous,是用来提示程序,执行数据包的操作不是通过schedule的方式从BW新建job的方式来运行的,而是直接通过程序执行的。这样的执行方法,是我们可以debug代码的第一种方法。

在执行之前,可以设置好内部断点,这样就可以在后台debug dm的代码了。同时可以把此页的参数存下来。然后自己搭建一个新的process chain,内容就是执行这个program,这样也可以实现一个从后台的自动运行的数据包任务。
对于已经执行过的job,如果没有执行成功,而又不能简单重现找到原因的,有另一个办法可以尝试去debug,进入TCode: SM37,输入相应的filter参数,查找出已经执行过的job,选中想要debug的job,在命令框中输入jdbg,执行就可以进入debug界面,当然最好提前设置好内部断点。

五、最受期待的75版新功能BPF(Business Process Flow)概述
对于做非企业软件的朋友来说,对为什么要在一个财务软件中加入流程控制的功能有疑问。其实这也很容易理解,对于在公司从事财务的人员来说,财务软件本身的易用性是很重要的。在BPC中,具体数据的录入,输出报表,数据的导入导出,都是分布在各个菜单项中,如果有一个流程管理的功能来集成,会方便很多。BPC7中没有实现这个功能,在75中隆重推出了这个功能,这也是中国客户最为看重的功能,因为它也集合了权限审批功能,这在预算中应该是非常必要的。什么时候需要使用BPF呢?一言概之,通过提前设定好每一步要做的事情,指导商业用户使用BPC完成预算流程。举一个实际的例子来说明。某跨国公司,包括美国,加拿大,德国分公司,预算流程包括四个步骤。
第一,复制前一个月的实际数据作为预测数据;
第二,审阅之前的预测数据,手动调整这个数据;
第三,进行商业逻辑的运算,比如货币转换;
第四,执行并输出报表。
同时,我们假设这几个步骤间存在依赖关系。前面三步可以分别在美国,加拿大,德国分公司中分别执行,而第三步要求必须在前面两步完成之后进行,第四步又可以分别执行。设想在没有BPF时,做预算的人如何能知道何时前面两个步骤已经完成了呢,如何去检查前面步骤的完成情况呢,审批的人如何能知道做预算的人已经完成预算了呢,等等。这些问题当然可以通过邮件来完成。BPF就解决了上面提到的问题。通过BPF,用户可以明确知道当前的状态和要去做什么。对于上一个步骤的完成,到打开下一个步骤都是由BPF来控制的。在例子中,只有美国的用户完成了第一步,美国的第二步才会开始;如果美国用户完成了前面的两步,而加拿大还没有开始第二步,那么美国的第三步是无法开始的。这样的控制流程都会由BPF来完成。
BPF主要作用于商业流程所需要的集中化处理数据,验证数据。BPF帮助执行序列化的流程步骤。而且在BPF中可以进行流程的监控,流程状态的报表显示。

BPF不同于普通的工作流,虽然在很多功能上相似,比如可以指导用户执行下一步行动,显示出期望用户去执行的行动,支持在完成上一个步骤后打开下一个步骤。BPF所涉及的BPC行为,本身是可以独立执行的,可以在BPF之外的。比如用户是可以进行报表输入的,无论他是不是一个BPF用户,这个是与工作流系统的一个区别。当然,通过BPF来设置和进行常规的月度预算,合并报表过程是更方便的。
构成BPF的主要概念。BPF模板和实例是两个最主要的BPF概念。每一个模板就代表着一个商务流程,一个模板可以产生若干个实例。比如我们建立一个模板,作为月度预算模板,它可以有一个20XX年3月的实例,也可以还有一个20XX年4月的实例,这两个实例共用一个模板。

每一个商务流程,对应一个模板,它有很多步骤和子步骤。每一个步骤和子步骤都可以拥有多个行为。一个具体的行为可以是输入报表的行为或者是执行某一个数据包。每一个步骤可以有不同的执行数据区域。每一个步骤都可以有一个所有者和可选的审阅者。所有的步骤是顺序执行的而一个步骤中的子步骤是可以不顺序执行的。重新打开已经执行完毕的步骤也是可以允许的。BPF希望为公司监控和管理商务流程提供最大的灵活性。
BPF的用户界面。看惯了SAP系统界面的用户,可能会对这样“花哨”的界面感觉格外新鲜。BPF的执行界面和监控结果的界面都是基于Flex的。BPF监控界面会提示所有激活的BPF活动状态,提供图形化的状态结果。同时也可以让实例所有者去结束所有实例。

我的活动,提示用户当前需要操作的行为。每个用户会看到需要自己进行操作的BPF实例状态。当点击具体的步骤/子步骤时,BPF会提示他们所关联的行为及状态。

其他功能。我们同样可以通过另一个reporting工具Xcelsius去查看BPF状态,和运行BPF。BPF中内嵌邮件通知功能。所有者会在实例产生和行为执行时得到邮件提示。这样可以保证所有者/审阅者能了解每一个行动的执行。审阅者会在当前数据区域步骤完成时得到提示。BPF的实例生成会向所有关联用户发送邮件通知。实例所有者会在所有步骤结束可以终结实例时得到通知。所有的BPF行为一样会被BPC审计功能记录。我们可以记录下BPF模板和实例的产生、修改、删除。而审计报告可以在运行时用户界面查看。

BPF为BPC的用户提供了更好的预算执行流程用户体验。