需要有关 IBM COBOL 计划状态条款的帮助

问题描述 投票:0回答:1

我需要一个函数或过程来从活动运行的程序中检索用户名、库名、模块名等。 IBM 文档告诉我一些有关“程序状态结构”的信息!我从RPG中知道这样的结构。 我如何使用 COBOL 程序状态结构模拟 RPG PSDS?


我们使用的是System i操作系统V7R5M0!作为新手,我声明了一个像 ibm 文档这样的数据结构。我不知道如何将数据放入结构的模具字段中!

代码片段:

   SPECIAL-NAMES. LOCAL-DATA IS LOCDATA        
                  DECIMAL-POINT IS COMMA       
                  PROGRAM STATUS IS PSDS.      
 ...
structur
 * Programmdatenstruktur                           
  01  REDEFINES PSDS.                              
 *    Programmname                                 
      03  SDSPGMNM                     PIC X(10).  
 *    Bibliotheksname                              
      03  SDSLIBNM                     PIC X(10).  
 *    Modulname                                    
      03  SDSMODNM                     PIC X(10).  
 *    Statement nuber. *N if not availible         
      03  SDSSTATEN                    PIC X(10).  
 *    Optimization Level                           
      03  SDSOPTLVL                    PIC X(6). 
 *    Exception Message Identifier                 
      03  SDSEXCEPTM                   PIC X(7).   
 *    Job name                                     
      03  SDSJOBNM                     PIC X(10).  
 *    Job number                                   
      03  SDSJOBNBR                    PIC X(6).   
 *    Job type                                     
      03  SDSJOBTYPE                   PIC X(1).   
 *    User Profile running the program             
      03  SDSUSERP                     PIC X(10).    
....

我必须在 COBOL 中使用

ACCEPT
子句来用数据填充模具结构字段吗?

ibm-midrange cobol
1个回答
0
投票

根据文档,COBOL 的程序状态数据结构会在发生错误时更新。 https://www.ibm.com/docs/en/i/7.5?topic=handling-program-status-struct

   ENVIRONMENT DIVISION.                            
   CONFIGURATION SECTION.                           
     SPECIAL-NAMES.                                 
        PROGRAM STATUS IS PSDS.                     
     WORKING-STORAGE SECTION.                       
      01  PSDS.                                     
          03  SDSPGMNM PIC X(10).                   
   PROCEDURE DIVISION.                              
   BEGIN.                                           
     display "Pgmname before exception: " SDSPGMNM. 
     CALL "BADPGM"                                  
          ON EXCEPTION                              
          DISPLAY "Call error".                     
     display "Pgmname after exception: " SDSPGMNM.  
    STOP RUN.                                       

输出(我的COBOL程序称为PGMSTAT)

Pgmname before exception:        
Call error                       
Pgmname after exception: PGMSTAT 
© www.soinside.com 2019 - 2024. All rights reserved.