当前位置: 首页 > news >正文

CICS Application Programming Fundamentals 第4章

4. The Execute Interface

TRANS(SHWE), PROG(EIBSHOW), MAP(EIBMAPS)

註: 105-112 行跟原視頻的不同,這裡修改了一下,也包括按 Esc, PA1, PA2 的 MAPFAIL 處理

****** ********************************* Top of Data **********************************
000001        Identification Division.                                                 
000002        Program-Id. EIBSHOW.                                                     
000003        Data Division.                                                           
000004        Working-Storage Section.                                                 
000005            copy EIBMAPS.                                                        
000006            copy DFHBMSCA.                                                       
000007            copy DFHAID.                                                         
000008        01  filler.                                                              
000009            05  ws-response-code   pic s9(09) binary.                            
000010            05  ws-eibdate         pic 9(07).                                    
000011            05  filler redefines ws-eibdate.                                     
000012                10  filler         pic x.                                        
000013                10  ws-century     pic 9.                                        
000014                10  ws-year-last-2 pic 9(02).                                    
000015                10  ws-3-digit-day pic 9(03).                                    
000016            05  filler.                                                          
000017                10  ws-base-year   pic 9(04) value 1900.                         
000018                10  ws-century-factor pic 9(03) value 100.                       
000019                10  ws-leap-adjust pic 9.                                        
000020            05  ws-formatted-date.                                               
000021                10  ws-form-month  pic x(04).                                    
000022                10  ws-form-day    pic z9.                                       
000023                10  filler         pic x(02) value ', '.                         
000024                10  ws-form-year   pic 9(04).                                    
000025            05  ws-month-values.                                                 
000026                10  filler         pic x(03) value 'Jan'.                        
000027                10  filler         pic s9(03) packed-decimal value 31.           
000028                10  filler         pic x(03) value 'Feb'.                        
000029                10  filler         pic s9(03) packed-decimal value 59.           
000030                10  filler         pic x(03) value 'Mar'.                        
000031                10  filler         pic s9(03) packed-decimal value 90.           
000032                10  filler         pic x(03) value 'Apr'.                        
000033                10  filler         pic s9(03) packed-decimal value 120.          
000034                10  filler         pic x(03) value 'May'.                        
000035                10  filler         pic s9(03) packed-decimal value 151.          
000036                10  filler         pic x(03) value 'Jun'.                        
000037                10  filler         pic s9(03) packed-decimal value 182.          
000038                10  filler         pic x(03) value 'Jul'.                        
000039                10  filler         pic s9(03) packed-decimal value 212.          
000040                10  filler         pic x(03) value 'Aug'.                        
000041                10  filler         pic s9(03) packed-decimal value 243.          
000042                10  filler         pic x(03) value 'Sep'.                        
000043                10  filler         pic s9(03) packed-decimal value 274.          
000044                10  filler         pic x(03) value 'Oct'.                        
000045                10  filler         pic s9(03) packed-decimal value 304.          
000046                10  filler         pic x(03) value 'Nov'.                        
000047                10  filler         pic s9(03) packed-decimal value 335.          
000048                10  filler         pic x(03) value 'Dec'.                        
000049                10  filler         pic s9(03) packed-decimal value 365.          
000050            05  ws-month-table redefines ws-month-values.                        
000051                10  ws-month-entry occurs 12 times                               
000052                                   indexed by month-ix.                          
000053                    15  ws-month-abbrev pic x(03).                               
000054                    15  ws-end-day pic s9(03) packed-decimal.                    
000055            05  ws-eibtime pic 9(07).                                            
000056            05  ws-time-breakout redefines ws-eibtime.                           
000057                10  filler-t-b     pic x.                                        
000058                10  ws-hour        pic 9(02).                                    
000059                10  ws-minute      pic x(02).                                    
000060                10  ws-second      pic x(02).                                    
000061            05  ws-formatted-time.                                               
000062                10  ws-hour        pic z9.                                       
000063                10  filler-f-t-1   pic x value ':'.                              
000064                10  ws-minute      pic x(02).                                    
000065                10  filler-f-t-2   pic x value ':'.                              
000066                10  ws-second      pic x(02).                                    
000067            05  ws-loop-control    pic s9(03) packed-decimal.                    
000068        Procedure Division.                                                      
000069            perform 0000-Loop                                                    
000070                varying ws-loop-control from 1 by 1                              
000071                until ws-loop-control greater than 10                            
000072            EXEC CICS SEND CONTROL FREEKB ERASE END-EXEC                         
000073            EXEC CICS RETURN END-EXEC                                            
000074            .                                                                    
000075        0000-Loop.                                                               
000076            initialize EIBMAPMO                                                  
000077            perform 1000-Format-the-Date                                         
000078            move ws-formatted-date to EDATEO                                     
000079            perform 2000-Format-the-Time                                         
000080            move ws-formatted-time to ETIMEO                                     
000081            move EIBTRNID to ETRANO                                              
000082            move EIBTASKN to ETASKO                                              
000083            move EIBTRMID to ETERMO                                              
000084            move EIBTRNID to NEXTO                                               
000085            move DFHBMFSE to NEXTA                                               
000086            EXEC CICS SEND                                                       
000087                MAP('EIBMAPM')                                                   
000088                MAPSET('EIBMAPS')                                                
000089                FROM(EIBMAPMO)                                                   
000090                FREEKB                                                           
000091                ERASE                                                            
000092            END-EXEC                                                             
000093            EXEC CICS RECEIVE                                                    
000094                MAP('EIBMAPM')                                                   
000095                MAPSET('EIBMAPS')                                                
000096                INTO(EIBMAPMI)                                                   
000097                RESP(ws-response-code)                                           
000098            END-EXEC                                                             
000099       *    if EIBRESP equal DFHRESP(MAPFAIL)                                    
000100       *        continue                                                         
000101       *    end-if                                                               
000102       *    if EIBAID equal DFHPF3                                               
000103       *        move 100 to ws-loop-control                                      
000104       *    end-if                                                               
000105            evaluate true                                                        
000106                when ws-response-code = DFHRESP(MAPFAIL)                         
000107                    continue                                                     
000108                when other                                                       
000109                    if EIBAID = DFHPF3                                           
000110                        move 100 to ws-loop-control                              
000111                    end-if                                                       
000112            end-evaluate                                                         
000113            .                                                                    
000114        1000-Format-the-Date.                                                    
000115            move EIBDATE to ws-eibdate                                           
000116            compute ws-form-year = ws-year-last-2 +                              
000117                                  (ws-base-year +                                
000118                                   (ws-century * ws-century-factor))             
000119            end-compute                                                          
000120            if ws-3-digit-day less than 28                                       
000121                move 0 to ws-leap-adjust                                         
000122            else                                                                 
000123                compute ws-leap-adjust =                                         
000124                    function mod(ws-form-year, 4)                                
000125                end-compute                                                      
000126                if function mod(ws-form-year, 100) equal zero                    
000127                and function mod(ws-form-year, 400) not equal zero               
000128                    move 0 to ws-leap-adjust                                     
000129                end-if                                                           
000130            end-if                                                               
000131            set month-ix to 1                                                    
000132            search ws-month-entry                                                
000133                varying month-ix                                                 
000134                when ws-3-digit-day                                              
000135                        less than or equal to ws-end-day(month-ix) + 1           
000136                    move ws-month-abbrev(month-ix) to ws-form-month              
000137                    if ws-3-digit-day less than 31                               
000138                        compute ws-form-day = ws-3-digit-day                     
000139                    else                                                         
000140                        compute ws-form-day =                                    
000141                            ws-end-day(month-ix - 1) - ws-3-digit-day            
000142                        end-compute                                              
000143                    end-if                                                       
000144            end-search                                                           000141            .                                                                    
000142        2000-Format-the-Time.                                                    
000143            move EIBTIME to ws-eibtime                                           
000144            move corresponding ws-time-breakout to ws-formatted-time             
000145            .                                                                    
****** ******************************** Bottom of Data ********************************
****** ********************************* Top of Data **********************************
000001 EIBMAPS DFHMSD TYPE=&SYSPARM,                                          X        
000002                CTRL=(FREEKB,FRSET),                                    X        
000003                LANG=COBOL,                                             X        
000004                MAPATTS=(COLOR,HILIGHT),                                X        
000005                MODE=INOUT,                                             X        
000006                STORAGE=AUTO,                                           X        
000007                TIOAPFX=YES                                                      
000008 EIBMAPM DFHMDI SIZE=(24,80),LINE=1,COLUMN=1                                     
000009 NEXT    DFHMDF POS=(1,1),LENGTH=16,INITIAL='SHWE',                     X        
000010                ATTRB=(UNPROT,IC)                                                
000011         DFHMDF POS=(1,29),LENGTH=21,                                   X        
000012                INITIAL='Selected EIBLK fields'                                  
000013         DFHMDF POS=(3,9),LENGTH=16,                                    X        
000014                INITIAL='           Date:'                                       
000015 EDATE   DFHMDF POS=(3,30),LENGTH=12,ATTRB=(PROT)                                
000016         DFHMDF POS=(4,9),LENGTH=16,                                    X        
000017                INITIAL='     Time (UTC):'                                       
000018 ETIME   DFHMDF POS=(4,30),LENGTH=8,ATTRB=(PROT)                                 
000019         DFHMDF POS=(5,9),LENGTH=16,                                    X        
000020                INITIAL=' Transaction id:'                                       
000021 ETRAN   DFHMDF POS=(5,30),LENGTH=4,ATTRB=(PROT)                                 
000022         DFHMDF POS=(6,9),LENGTH=16,                                    X        
000023                INITIAL='    Task number:'                                       
000024 ETASK   DFHMDF POS=(6,30),PICOUT='9999999',ATTRB=(PROT)                         
000025         DFHMDF POS=(7,9),LENGTH=16,                                    X        
000026                INITIAL='    Terminal id:'                                       
000027 ETERM   DFHMDF POS=(7,30),LENGTH=4,ATTRB=(PROT)                                 
000028         DFHMDF POS=(24,1),LENGTH=17,INITIAL='Press F3 to exit'                  
000029         DFHMSD TYPE=FINAL                                                       
000030         END                                                                     
****** ******************************** Bottom of Data ********************************

http://www.lryc.cn/news/587715.html

相关文章:

  • 74、【OS】【Nuttx】【启动】深入理解 caller-saved 和 callee-saved(下)
  • 游戏框架笔记
  • 网络准入控制系统的作用解析,2025年保障企业入网安全第一道防线
  • 在 Azure Linux 上安装 RustFS
  • 使用 pytest 测试框架构建自动化测试套件之一
  • LightGBM 在处理**不均衡二分类任务**时,能在 **AUC 和 Accuracy** 两个指标上表现良好
  • SQL性能调优经验总结
  • 【Linux】基本指令详解(一) 树状文件结构、家目录、绝对/相对路径、linux文件类型
  • 1.2.1 面向对象详解——AI教你学Django
  • 【世纪龙科技】迈腾B8汽车整车检测与诊断仿真实训系统
  • 波兰无人机具身导航基准测试与最新进展!FlySearch:探索视觉语言模型的探索能力
  • 用Spring Boot逻辑删除(isDelete)优雅守护你的数据资产:告别物理删除的烦恼
  • 第十二批深度合成算法备案情况
  • [源力觉醒 创作者计划]_文心大模型4.5开源部署指南:从技术架构到实战落地
  • C++动态数组vector
  • JavaScript数据交互:现代Web应用的核心引擎
  • Redis技术笔记-主从复制、哨兵与持久化实战指南
  • 【MySQL】剖析InnoDB存储引擎
  • FBRT-YOLO: Faster and Better for Real-Time Aerial Image Detection论文精读(逐段解析)
  • Spring原理揭秘--初识AOP
  • openEuler系统串口文件手法压力测试及脚本使用说明
  • 11.设置 Python 3 和 pip 3 为默认版本
  • 从零构建搜索引擎 build demo search engine from scratch
  • 如何单独安装设置包域名
  • PostgreSQL ExecInitIndexScan 函数解析
  • Cesium源码打包
  • MyBatis 在执行 SQL 时找不到名为 name 的参数
  • 项目进度压缩影响质量,如何平衡进度与质量
  • 多模态数据处理新趋势:阿里云ODPS技术栈深度解析与未来展望
  • 【Echarts】 电影票房汇总实时数据横向柱状图比图