免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5493 | 回复: 12
打印 上一主题 下一主题

通过程序修改原代码(DDS/RPG等) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-26 18:31 |只看该作者 |倒序浏览
日常作业中,有时候需要修改原代码(如修改LF的条件等) ,但由于权限\作业模式等原因 不能直接在SEU中进行手工修改,则可以通过程序来作业

本例以修改 一个 LF -DDS  条件 为例:
                                                             修改前 的DDS
*************** Beginning of data *************************************
0001.00      A          R RLF                       PILE(PF)               
0002.00      A          K NO                                                
0003.00      A          K DATE                                                
0004.00      A          S DATE                      COMP(GE 20061101)         
0005.00      A            DATE                       COMP(LE 20061131)                                      


                                            CLP
*************** Beginning of data *************************************
              PGM                                                        
              OVRDBF     FILE(PF) TOFILE(SOURCEH/QDDSSRC) +         
                           MBR(PF) SHARE(*YES)                       
              CALL       PGM(RPGNAM)                                    
              DLTF       FILE(LIB/LF)                              
              CRTLF      FILE(LIB/LF) SRCFILE(SOURCEH/QDDSSRC)     
              DLTOVR     FILE(*ALL)                                      
              ENDPGM   



                                            RPGLE 程序
****************************************************************************
H DFTNAME(SX050) DATEDIT(*YMD)                                         
FLF         UF   F   92        DISK                                    
ILF         NS  01                                                      
C                   MOVEL     04            BB                2 0      
C                   MOVEL     05            CC                2 0   
C*BB /CC 为要修改的 行号   .可以根据需要做成参数 传入
C                   MOVEL     *DATE         YYMM              6 0      
C                   SETON                                        9093  
C     BB          IFNE      0                                       
C     BB          CHAIN    LF                                 90   
C  N90           EXCEPT                                             
C                   SETON                                        90   
C                   ENDIF                                             
C     CC          IFNE      0                                       
C     CC          CHAIN     LF                                93   
C  N93            EXCEPT                                             
C                    SETON                                        93   
C                    ENDIF                                             
C                    SETON                                        LR   
OLF         E   N90                                                     
O                 N90      YYMM                70                        
OLF         E   N93                                                      
O                 N93      YYMM                70   
O* 70 =  LF里要修改的字段 最右边字符位置 + 4   = 要修改的列号                  
                                 

*************** Beginning of data *************************************

                                              修改后的DDS
*************** Beginning of data *************************************
0001.00      A          R RLF                       PILE(PF)               
0002.00      A          K NO                                                
0003.00      A          K DATE                                                
0004.00      A          S DATE                      COMP(GE 20071201)         
0005.00      A            DATE                       COMP(LE 20071231)

[ 本帖最后由 caomangyu 于 2007-12-26 23:26 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-12-26 18:42 |只看该作者
这个系统设计的,LF居然这样

论坛徽章:
0
3 [报告]
发表于 2007-12-26 21:31 |只看该作者
这其实也没什么只是他数据太多了,又没有每年移植数据才会导致如此的。

论坛徽章:
0
4 [报告]
发表于 2007-12-26 23:01 |只看该作者

回复 #2 roden 的帖子

恩!跟系统业务流程没关系 公司的数据移植和备份做得挺好!
只是共享一下修改 DDS的方法

[ 本帖最后由 caomangyu 于 2007-12-26 23:03 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-12-26 23:07 |只看该作者
呵呵,这样改LF还真有趣,目前还没用到过这样的方法

论坛徽章:
0
6 [报告]
发表于 2007-12-27 10:17 |只看该作者
还没有用到过,收藏了。

论坛徽章:
0
7 [报告]
发表于 2007-12-27 10:25 |只看该作者
樓主的帖子是原創嗎?很不錯的帖子,謝謝樓主無私的分享。支持原創。

论坛徽章:
0
8 [报告]
发表于 2007-12-27 11:54 |只看该作者
我不提倡这种方法,因为PF数据库库记录数超大时,建一个LF要用很长时间。我曾经做过一家加拿大钢铁厂ERP项目,他们的数据从1973年一直保留下来,一个PF文件有好几十个G,建一个index,要用几个小时。

为什么不用SETxx,然后reade呢?

从生产管理角度出发,在生产AS400机上,绝对不允许产生新的程序代码,用QUERY/400和RPG程序描述文件,都可以达到同样的效果,代码也简单,程序代码也固定化。

[ 本帖最后由 passthru 于 2007-12-27 12:01 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2007-12-27 14:40 |只看该作者

回复 #8 passthru 的帖子

回复 #2 roden 的帖子


恩!跟系统业务流程没关系 公司的数据移植和备份做得挺好!
只是共享一下修改 DDS的方法

[ 本帖最后由 caomangyu 于 2007-12-26 23:03 编辑 ]

论坛徽章:
0
10 [报告]
发表于 2007-12-28 08:31 |只看该作者
长见识了

坐过80T的数据库,这样改法得运行到什么时候?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP