星期一, 11月 06, 2023

2003-04-29 如何容易的辨別自己所開發的物件版本?(API QLICOBJD)


如何容易的辨別自己所開發的物件版本?(API QLICOBJD)

這是一個利用物件上的使用者定義屬性(user-defined attributes)文字來將物件以
API QLICOBJD 印上註記的簡單程式,你能藉由這個 API 來改變使用者定義屬性文字,
但無法使用 IBM 的指令更改使用者定義屬性文字。

你能利用這個 API 來完成你應用軟體的版本控制,以確保程式是否有重新編譯過。
最好的方式是利用 DSPOBJD 指令,再執行這隻程式將所有物件加印註記,來分辨程式版本。

範例:

DSPOBJD OBJ(SEARCH400/FNDMSG) OBJTYPE(*PGM) OUTPUT(*OUTFILE) OUTFILE(QTEMP/QADSPOBJ)
OVRDBF FILE(QADSPOBJ) TOFILE(QTEMP/QADSPOBJ)
CALL STAMPOBJ  

File  : QRPGSRC
Member: STAMPOBJ
Type  : RPG  
Usage : CRTRPGPGM STAMPOBJ
OS Version: all

FQADSPOBJIF  E                    DISK                     
I              'MY_VERSION'          C         VERSN       
I           SDS                                            
I                                        1  10 @PGM        
I                                      254 263 @USR        
C*                                                         
ISYSOBJ      DS                                            
I                                        1  10 ODOBNM      
I                                       11  20 ODLBNM      
IOUTREC      DS                                            
I                                    B   1   40NUMKEY      
I                                    B   5   80KEY#        
I                                    B   9  120KEYLEN      
I                                       13  22 DATA        
I                                        1  22 ALL         
C*                                                         
C                     EXSR INIT                            
C           1         SETLLQADSPOBJ                        
C*                                                         
C           *INLR     DOUEQ*ON                             
C                     READ QADSPOBJ                 LR     
C*  PROCESS RECORDS                                        
C           *INLR     IFEQ *OFF  
C*                                                                 
C                     MOVELODOBTP    OUTTYP 10 P                   
C                     CALL 'QLICOBJD'                              
C                     PARM           OUTLIB 10                     
C                     PARM           SYSOBJ                        
C                     PARM           OUTTYP 10                     
C                     PARM           ALL                           
C                     PARM           PERR   40                     
C                     END                                          
C                     END                                          
C*                                                                 
C***************************************************************** 
C*   INIT - INITIALIZATION SUBROUTINE                            * 
C***************************************************************** 
C*                                                                 
C           INIT      BEGSR                                        
C                     Z-ADD1         NUMKEY                        
C                     Z-ADD9         KEY#                          
C                     Z-ADD10        KEYLEN                        
C                     MOVELVERSN     DATA                          
C                     ENDSR                                        
C*     

執行 DSPOBJD 檢視更改結果

Display Object Description - Full                        
                                                                 Library 1 of 1 
 Object . . . . . . . :   FNDMSG          Attribute  . . . . . :   CLP          
   Library  . . . . . :     SEARCH400     Owner  . . . . . . . :   QSECOFR     
 Library ASP device . :   *SYSBAS         Primary group  . . . :   *NONE        
 Type . . . . . . . . :   *PGM                                                  
                                                                                
 User-defined information:                                                      
   Attribute  . . . . . . . . . . . . :   MY_VERSION                            
   Text . . . . . . . . . . . . . . . :   FNDMSG command processing program
                                                                                
 Creation information:                                                          
   Creation date/time . . . . . . . . :   03/02/02  14:29:36                    
   Created by user  . . . . . . . . . :   QSECOFR                              
   System created on  . . . . . . . . :   S1036846                             
   Object domain  . . . . . . . . . . :   *USER                                 
                                                                                
                                                                                
                                                                                
                                                                        More... 
 Press Enter to continue.                                                       
                                                                                
 F3=Exit   F12=Cancel                                                           
 (C) COPYRIGHT IBM CORP. 1980, 2002.                                            

            




沒有留言: