Ibm midrange 消息子文件未显示

Ibm midrange 消息子文件未显示,ibm-midrange,Ibm Midrange,我编写了一个使用消息子文件的简单程序。但是,这些消息不显示。你能看一下代码和帮助吗 DDS: RPG代码: FMSGSBFL1 CF E WorkStn INDDS(INDDS) DINDDS DS DEXIT 3 3N

我编写了一个使用消息子文件的简单程序。但是,这些消息不显示。你能看一下代码和帮助吗

DDS:

RPG代码:

    FMSGSBFL1  CF   E             WorkStn INDDS(INDDS)                 

    DINDDS            DS                                               
    DEXIT                     3      3N                                
    DCANCEL                  12     12N                                

    DPSDS            SDS                                               
    D SDS_PROC                1     10                                 

    DMsgId            S              7A                                
    DMsgLoc           S             20A   Inz('SFLMSGF   *LIBL     ')  
    DMsgRplDta        S              1A   Inz(' ')                     
    DMsgRplDtaLen     S              4B 0 Inz(0)                       
    DMsgType          S             10A   Inz('*DIAG')                 
    DMsgQueue         S            276A   Inz('*')                     
    DMsgCallStack     S              4B 0 Inz(0)                       
    DMsgKey           S              4A   Inz(' ')                     
    DMsgErr           S              4B 0 Inz(0)                       
    DMsgrmv           S             10A   INZ('*ALL')                  
    DMsgId            S              7A                                  
    DMsgLoc           S             20A   Inz('SFLMSGF   *LIBL     ')    
    DMsgRplDta        S              1A   Inz(' ')                       
    DMsgRplDtaLen     S              4B 0 Inz(0)                         
    DMsgType          S             10A   Inz('*DIAG')                   
    DMsgQueue         S            276A   Inz('*')                       
    DMsgCallStack     S              4B 0 Inz(0)                         
    DMsgKey           S              4A   Inz(' ')                       
    DMsgErr           S              4B 0 Inz(0)                         
    DMsgrmv           S             10A   INZ('*ALL')                    


     /Free                                                        

       DoU Exit or Cancel;                                        

         Write Msgsbctl;                                          
         Exfmt Screen1;                                           
         MsgKey = *Blanks;                                        
         Exsr RcvMsg;                                             

         If First_Name <> 'Thejwal';                              
           MsgId = 'SFL0001';                                     
           Exsr SndMsg;                                           
         EndIf;                                                   

         If Last_Name <> 'Pavithran';                             
           MsgId = 'SFL0002';                                     
           Exsr SndMsg;                                           
         EndIf;                                                   



       EndDo;                                                   

       *Inlr = *on;                                             

    C     SndMsg        Begsr                                 
    C                   CALL      'QMHSNDPM'                  
    C                   PARM                    MsgId         
    C                   PARM                    MsgLoc        
    C                   PARM                    MsgRplDta     
    C                   PARM                    MsgRplDtaLen  
    C                   PARM                    MsgType       
    C                   PARM                    MsgQueue      
    C                   PARM                    MsgCallStack  
    C                   PARM                    MsgKey        
    C                   PARM                    MsgErr        
    C                   Endsr                                 

    C     RcvMsg        Begsr                                  
    C                   CALL      'QMHRMVPM'                   
    C                   PARM                    MsgQueue       
    C                   PARM                    MsgCallStack   
    C                   PARM                    MsgKey         
    C                   PARM                    MsgRmv         
    C                   PARM                    MsgErr         
    C                   Endsr                                  
FMSGSBFL1 CF E工作TN INDDS(INDDS)
DINDDS
DEXIT 3 3N
DCANCEL 12 12N
DPSDS
D SDS_程序110
DMsgId S 7A
DMsgLoc S 20A Inz('SFLMSGF*LIBL')
DMsgRplDta S 1A Inz(“”)
DMsgRplDtaLen S 4B 0英寸(0)
DMsgType S 10A Inz(“*DIAG”)
DMSGS 276A Inz('*')队列
DMsgCallStack S 4B 0英寸(0)
DMSGEY S 4A Inz(“”)
DMsgErr S 4B 0英寸(0)
DMsgrmv S 10A英寸(“*全部”)
DMsgId S 7A
DMsgLoc S 20A Inz('SFLMSGF*LIBL')
DMsgRplDta S 1A Inz(“”)
DMsgRplDtaLen S 4B 0英寸(0)
DMsgType S 10A Inz(“*DIAG”)
DMSGS 276A Inz('*')队列
DMsgCallStack S 4B 0英寸(0)
DMSGEY S 4A Inz(“”)
DMsgErr S 4B 0英寸(0)
DMsgrmv S 10A英寸(“*全部”)
/免费的
退出或取消;
编写Msgsbctl;
Exfmt屏幕1;
MsgKey=*空格;
Exsr-RcvMsg;
如果第一个名字叫“Thejwal”;
MsgId='SFL0001';
Exsr-SndMsg;
EndIf;
如果姓“Pavithran”;
MsgId='SFL0002';
Exsr-SndMsg;
EndIf;
EndDo;
*Inlr=*on;
C SndMsg Begsr
C调用“QMHSNDPM”
帕姆姆斯吉德酒店
C帕尔姆酒店
C PARM MsgRplDta
C PARM MsgRplDtaLen
C PARM MsgType
C参数MsgQueue
C PARM MsgCallStack
帕姆姆斯吉基酒店
帕姆·姆斯盖尔酒店
C Endsr
C RcvMsg Begsr
C调用“QMHRMVPM”
C参数MsgQueue
C PARM MsgCallStack
帕姆姆斯吉基酒店
C PARM MsgRmv
帕姆·姆斯盖尔酒店
C Endsr

我可以看到消息显示在W作业日志中,但由于某些原因,它没有显示在屏幕上。我不确定DDS是否有故障,或者消息是否没有发送到正确的程序队列。请帮助我

我得到了答案!!!问题是我错过了Screen1记录格式的overlay关键字。真是松了一口气:)

    FMSGSBFL1  CF   E             WorkStn INDDS(INDDS)                 

    DINDDS            DS                                               
    DEXIT                     3      3N                                
    DCANCEL                  12     12N                                

    DPSDS            SDS                                               
    D SDS_PROC                1     10                                 

    DMsgId            S              7A                                
    DMsgLoc           S             20A   Inz('SFLMSGF   *LIBL     ')  
    DMsgRplDta        S              1A   Inz(' ')                     
    DMsgRplDtaLen     S              4B 0 Inz(0)                       
    DMsgType          S             10A   Inz('*DIAG')                 
    DMsgQueue         S            276A   Inz('*')                     
    DMsgCallStack     S              4B 0 Inz(0)                       
    DMsgKey           S              4A   Inz(' ')                     
    DMsgErr           S              4B 0 Inz(0)                       
    DMsgrmv           S             10A   INZ('*ALL')                  
    DMsgId            S              7A                                  
    DMsgLoc           S             20A   Inz('SFLMSGF   *LIBL     ')    
    DMsgRplDta        S              1A   Inz(' ')                       
    DMsgRplDtaLen     S              4B 0 Inz(0)                         
    DMsgType          S             10A   Inz('*DIAG')                   
    DMsgQueue         S            276A   Inz('*')                       
    DMsgCallStack     S              4B 0 Inz(0)                         
    DMsgKey           S              4A   Inz(' ')                       
    DMsgErr           S              4B 0 Inz(0)                         
    DMsgrmv           S             10A   INZ('*ALL')                    


     /Free                                                        

       DoU Exit or Cancel;                                        

         Write Msgsbctl;                                          
         Exfmt Screen1;                                           
         MsgKey = *Blanks;                                        
         Exsr RcvMsg;                                             

         If First_Name <> 'Thejwal';                              
           MsgId = 'SFL0001';                                     
           Exsr SndMsg;                                           
         EndIf;                                                   

         If Last_Name <> 'Pavithran';                             
           MsgId = 'SFL0002';                                     
           Exsr SndMsg;                                           
         EndIf;                                                   



       EndDo;                                                   

       *Inlr = *on;                                             

    C     SndMsg        Begsr                                 
    C                   CALL      'QMHSNDPM'                  
    C                   PARM                    MsgId         
    C                   PARM                    MsgLoc        
    C                   PARM                    MsgRplDta     
    C                   PARM                    MsgRplDtaLen  
    C                   PARM                    MsgType       
    C                   PARM                    MsgQueue      
    C                   PARM                    MsgCallStack  
    C                   PARM                    MsgKey        
    C                   PARM                    MsgErr        
    C                   Endsr                                 

    C     RcvMsg        Begsr                                  
    C                   CALL      'QMHRMVPM'                   
    C                   PARM                    MsgQueue       
    C                   PARM                    MsgCallStack   
    C                   PARM                    MsgKey         
    C                   PARM                    MsgRmv         
    C                   PARM                    MsgErr         
    C                   Endsr