Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1298416
  • 博文数量: 287
  • 博客积分: 11000
  • 博客等级: 上将
  • 技术积分: 3833
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-16 08:43
文章分类
文章存档

2013年(15)

2012年(17)

2011年(17)

2010年(135)

2009年(85)

2008年(18)

分类: 其他UNIX

2013-12-17 12:16:09

问:()


我编写了Service Program如下:
Service Program Name:CBJSRVPGM.RPGLE---------------源码建于CBJSRC库,SRCTEST下,编译在CBJRUNSRC下
     H NOMAIN
     d/copy srcdfn,cbjsrvpgmi
     DVDS_M1           DS
     d/copy srcdfn,cmodule01i
     DVDS_M2           DS
     d/copy srcdfn,cmodule02i
      *
     P CBJSRV01Y       B                   EXPORT
     D CBJSRV01Y       PI
     D VDS_TM1                             LIKE(VDS_M1)
      *
      *
     C                   CALLB     'CMODULE01'
     C                   PARM                    VDS_TM1
     C                   RETURN
     P CBJSRV01Y       E
      *
     P CBJSRV02Y       B                   EXPORT
     D CBJSRV02Y       PI
     D VDS_TM2                             LIKE(VDS_M2)
      *
     C                   CALLB     'CMODULE02'
     C                   PARM                    VDS_TM2
     C                   RETURN
     P CBJSRV02Y       E

 CMODULE01和CMODULE02已经变异为MODULE----源码建于CBJSRC库,SRCTEST下,MODULE编译在CBJRUNSRC下

.BND文件(CBJSRVPGM.BND)-------源码在CBJSRC库,SRCTEST2下
             STRPGMEXP  SIGNATURE('CBJSRVPGM')
             EXPORT     SYMBOL(CBJSRV01Y)
             EXPORT     SYMBOL(CBJSRV02Y)
             ENDPGMEXP

请各位指教,以上是否有问题。
我先将CBJSRVPGM.RPGLE变异为MODULE,然后再使用CRTSRVPGM命令创建服务程序,
请问该命令中各项如何填写


答:

首先,你的代码中有多处错误:
1)        如果把程序CBJSRVPGM.RPGLE作为服务程序,且你的代码是采用.BND定义模式,就应该在服务程序CBJSRVPGM中module定义,EXPORT  SYMBOL(CBJSRVPGM),即自定义module;
2)        服务程序CBJSRVPGM代码中漏写了return操作码(因为你是采用nomain参数);
3)        看你的代码结构,因为module CBJSRV01Y、CBJSRV02Y都是与服务程序代码放在同一个module CBJSRVPGM代码中,无需在.BND文件再定义EXPORT  SYMBOL(CBJSRV01Y)和EXPORT  SYMBOL(CBJSRV02Y);

做好这些调整后,就可以生成服务程序CBJSRVPGM了:
Service program …CBJSRVPGM
  Library …………… CBJSRC
Module ………………CBJSRVPGM
  Library …………… CBJSRC

Export ……………….*SRCFILE
Export source file .. SRCTEST2
  Library …………… CBJSRC

注意:命令执行后要查看joblog,日志。

改进的地方:
把服务程序外部调用程序CMODULE01和CMODULE02也生成module后,也用BND文件定义:
             EXPORT     SYMBOL(CMODULE01)
             EXPORT     SYMBOL(CMODULE02)

这样做的好处:一旦module CMODULE01,或module CMODULE02,变化重新生成,只做update服务程序CBJSRVPGM,相应的module CMODULE01,或module CMODULE02更新,而无需对*pgm CMODULE01或*pgm CMODULE02重新生成。

Good Luck,

Passthru

阅读(1383) | 评论(0) | 转发(0) |
0

上一篇:为什么我会这么看重数据结构Ds的qualified

下一篇:没有了

给主人留下些什么吧!~~