我目前正在执行一项任务,为AS/400相关对象开发Rational Developer for Power(RDP)IDE的iProject Remote Build功能。我正在开发一个自定义的编译实用程序,这是一个通用工具,用于编译不同的源成员,例如RPGLE、CLLE、PF。它是一个接受源成员、源文件、源库和目标库作为参数的命令。它将编译指定的源成员,并将创建的对象放入目标库中。在它内部,实际编译是使用QCMDEXC API完成的,编译命令设置为输入参数。它在AS/400上运行良好。现在我需要让它直接在RDP上使用iProject远程构建功能。同时,生成的任何错误都应在编译后自动加载到"错误列表"视图中。我知道必须包含Option(*EVENTF)才能生成事件文件。但是如何让RDP加载它呢?编译实用程序是一个名为CPLABJ的命令。使用库C中文件B中的源成员A在库D中创建对象A类似于以下内容:CPLABJ SERMBR(C/B/A)library(D)。
看看这篇旧文章是否有帮助:http://www.itjungle.com/fhg/fhg080404-story01.html
基本上,RDP和编译器之间的链接是通过事件文件进行的。除非你告诉编译器,否则编译器不会生成事件文件。大多数编译器命令都允许OPTION(*EVENTF),这就是你告诉编译器创建事件文件的方式。您的自定义编译命令需要相同的参数。它还必须有一个SRCMBR()参数。因此,您的自定义编译命令需要如下所示:
COMPILE SRCMBR(nnnnn)选项(*EVENTF)
并且它将把这些值传递给IBM编译命令。
因为您正在使用QCMDEXC来执行IBM编译命令(实际生成事件文件的命令),所以需要额外的步骤。您需要告诉RDP编译已完成,并且事件文件已准备就绪。这是通过将事件文件库和成员名称放置在本地数据区域来实现的。库名称在1-10列中,成员名称在11-20列中。
最好在midrange.com上问这个问题。名单上有Rational开发团队的成员,还有其他了解RDP内部工作的人。
它对我来说是自动工作的,我有一种感觉,有些地方设置不正确,或者你在某个地方缺少了一个PTF。