选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

教程:设置 CI/CD 管道以与 Micro Focus Enterprise Developer 搭配使用

聚焦模式
教程:设置 CI/CD 管道以与 Micro Focus Enterprise Developer 搭配使用 - AWS Mainframe Modernization

本教程展示如何在 Micro Focus Enterprise Developer 中导入、编辑、编译和运行 BankDemo 示例应用程序,然后提交更改以触发 CI/CD 管道。

先决条件

下载以下文件。

每个文件的用途如下:

basic-infra.yaml

该 AWS CloudFormation 模板创建 CI/CD 管道所需的基本基础设施:VPC、Amazon S3 存储桶等。

pipeline.yaml

Lambda 函数使用此 AWS CloudFormation 模板来启动管道堆栈。请确保此模板位于可公开访问的 Amazon S3 存储桶中。将指向此存储桶的链接添加为 basic-infra.yaml 模板中 PipelineTemplateURL 参数的默认值。

m2-code-sync-function.zip

此 Lambda 函数创建 CodeCommit 存储库和基于 config_git.yaml 的目录结构,并使用 pipeline.yaml 启动管道堆栈。确保此 zip 文件位于所有支持 AWS Mainframe Modernization 的 AWS 区域中可公开访问的 Amazon S3 存储桶中。我们建议您将文件存储在一个 AWS 区域的存储桶中,然后将其复制到所有 AWS 区域的存储桶中。使用以下存储桶命名约定:带有标识特定 AWS 区域的后缀(例如 m2-cicd-deployment-source-eu-west-1),添加前缀 m2-cicd-deployment-source 作为参数 DeploymentSourceBucket 的默认值,并使用 AWS CloudFormation 替换函数 !Sub {DeploymentSourceBucket}-${AWS::Region} 形成完成的存储桶名称,同时针对资源 SourceSyncLambdaFunction 引用 basic-infra.yaml 模板中的存储桶。

config_git.yml

CodeCommit 目录结构定义。有关更多信息,请参阅 示例 YAML 触发器文件 config_git.yml

BANKDEMO-source.zip.

从 CodeCommit 存储库中创建的 BankDemo 源代码和配置文件。

BANKDEMO-exercise.zip.

从 CodeCommit 存储库中创建的用于教程练习的 BankDemo 源。

创建 CI/CD 管道基本基础设施

通过 AWS CloudFormation 控制台,使用 AWS CloudFormation 模板 basic-infra.yaml 创建 CI/CD 管道基本基础设施堆栈。此堆栈创建可用于上传应用程序代码和数据的 Amazon S3 存储桶,以及一个用于创建其他必要资源(例如 AWS CodeCommit 存储库和 AWS CodePipeline 管道)的支持 AWS Lambda 函数。

注意

要启动此堆栈,您需要管理 IAM、Amazon S3、Lambda 和 AWS CloudFormation 的权限以及使用 AWS KMS 的权限。

  1. 登录到 AWS Management Console 并打开 AWS CloudFormation 控制台 https://console.aws.amazon.com/cloudformation

  2. 使用以下其中一个选项创建堆栈:

    • 选择创建堆栈。如果您当前有正在运行的堆栈,这将是唯一选项。

    • 堆栈页面上,选择 创建堆栈。仅当您没有运行堆栈时,才可以看到此选项。

  3. 指定模板页面上:

    • 准备模板中,选择模板已就绪

    • 指定模板中,选择 Amazon S3 URL 作为模板来源,并根据您的 AWS 区域,输入以下 URL 之一。

      • https://m2-us-east-1.s3.us-east-1.amazonaws.com/cicd/mf/basic-infra.yaml

      • https://m2-eu-central-1.s3.eu-central-1.amazonaws.com/cicd/mf/basic-infra.yaml

    • 接受您的设置,选择下一步

    随后会打开创建堆栈页面。

    堆栈详细信息页面(其中已填充 AWS Mainframe Modernization 值)。

    进行以下更改:

    • 堆栈名称网络配置参数提供适当的值。

    • 部署配置中的大多数参数都已适当预先填充,因此您无需对其进行修改。根据您的 AWS 区域,将管道 AWS CloudFormation 模板更改为以下 Amazon S3 URL 之一。

      • https://m2-us-east-1.s3.amazonaws.com/cicd/mf/pipeline.yaml

      • https://m2-eu-central-1.s3.eu-central-1.amazonaws.com/cicd/mf/pipeline.yaml

    • 选择下一步

    注意

    除非您自己修改了 AWS CloudFormation 模板,否则,请勿更改默认参数值。

  4. 配置堆栈选项中,选择下一步

  5. 功能中,选择我确认 AWS CloudFormation 可能会创建 IAM 资源,以便允许 AWS CloudFormation 代表您创建 IAM 角色。选择创建堆栈

    注意

    该堆栈配置需要花费 3 到 5 分钟。

  6. 成功创建堆栈后,导航至新配置堆栈的输出部分。在此,您可以找到需要上传大型机代码和相关文件的 Amazon S3 存储桶。

    AWS CloudFormation 的“输出”选项卡(显示 Amazon S3 存储桶)。

创建 AWS CodeCommit 存储库和 CI/CD 管道

在此步骤中,创建一个 CodeCommit 存储库,并通过调用 Lambda 函数(调用 AWS CloudFormation 来创建管道堆栈)来配置 CI/CD 管道堆栈。

  1. BankDemo 示例应用程序下载到本地机器中。

  2. bankdemo.zip 从本地机器上传到创建 CI/CD 管道基本基础设施中创建的 Amazon S3 存储桶。

  3. 下载 config_git.yml

  4. 按如下方式修改 config_git.yml(如有必要):

    • 添加您自己的目标存储库名称、目标分支和提交消息。

      repository-config: target-repository: bankdemo-repo target-branch: main commit-message: Initial commit for bankdemo-repo main branch
    • 输入您用于接收通知的电子邮件地址。

      pipeline-config: # Send pipeline failure notifications to these email addresses alert-notifications: - myname@mycompany.com # Send notifications for manual approval before production deployment to these email addresses approval-notifications: - myname@mycompany.com
  5. 将包含 CodeCommit 存储库文件夹结构定义的 config_git.yml 文件上传到创建 CI/CD 管道基本基础设施中创建的 Amazon S3 存储桶。这将调用 Lambda 函数,该函数将自动配置存储库和管道。

    这将创建一个 CodeCommit 存储库,该存储库使用 config_git.yml 文件中定义的 target-repository 中提供的名称,例如 bankdemo-repo

    Lambda 函数还将通过 AWS CloudFormation 创建 CI/CD 管道堆栈。AWS CloudFormation 堆栈使用提供的 target-repository 名称作为前缀,后跟一个随机字符串(例如 bankdemo-repo-01234567)。您可以在 AWS Management Console 中找到 CodeCommit 存储库 URL 和用于访问已创建管道的 URL。

    AWS CloudFormation 的“输出”选项卡(显示 CodeCommit 存储库和 CodePipeline 的端点)。
  6. CodeCommit 存储库创建完成时,将立即触发 CI/CD 管道来执行完整的 CI/CD。

  7. 推送文件后,将自动触发管道,该管道将构建、分阶段部署、运行一些测试并等待手动批准,然后再将其部署到生产环境中。

示例 YAML 触发器文件 config_git.yml

repository-config: target-repository: bankdemo-repo target-branch: main commit-message: Initial commit for bankdemo-repo main branch directory-structure: - '/': files: - build.xml - '*.yaml' - '*.yml' - '*.xml' - 'LICENSE.txt' readme: | # Root Folder - 'build.xml' : Build configuration for the application - tests: files: - '*.py' readme: | # Test Folder - '*.py' : Test scripts - config: files: - 'BANKDEMO.csd' - 'BANKDEMO.json' - 'BANKDEMO_ED.json' - 'dfhdrdat' - 'ESPGSQLXA.dll' - 'ESPGSQLXA64.so' - 'ESPGSQLXA64_S.so' - 'EXTFH.cfg' - 'm2-2021-04-28.normal.json' - 'MFDBFH.cfg' - 'application-definition-template-config.json' readme: | # Config Folder This folder contains the application configuration files. - 'BANKDEMO.csd' : CICS Resource definitions export file - 'BANKDEMO.json' : Enterprise Server configuration - 'BANKDEMO_ED.json' : Enterprise Server configuration for ED - 'dfhdrdat' : CICS resource definition file - 'ESPGSQLXA.dll' : XA switch module Windows - 'ESPGSQLXA64.so' : XA switch module Linux - 'ESPGSQLXA64_S.so' : XA switch module Linux - 'EXTFH.cfg' : Micro Focus File Handler configuration - 'm2-2021-04-28.normal.json' : M2 request document - 'MFDBFH.cfg' : Micro Focus Database File Handler - 'application-definition-template-config.json' : Application definition for M2 - source: subdirs: - .settings: files: - '.bms.mfdirset' - '.cbl.mfdirset' - copybook: files: - '*.cpy' - '*.inc' readme: | # Copy folder This folder contains the source for COBOL copy books, PLI includes, ... - .cpy COBOL copybooks - .inc PLI includes # - ctlcards: # files: # - '*.ctl' # - 'KBNKSRT1.txt' # readme: | # # Control Card folder # This folder contains the source for Batch Control Cards # - .ctl Control Cards - ims: files: - '*.dbd' - '*.psb' readme: | # ims folder This folder contains the IMS DB source files with the extensions - .dbd for IMS DBD source - .psb for IMS PSB source - jcl: files: - '*.jcl' - '*.ctl' - 'KBNKSRT1.txt' - '*.prc' readme: | # jcl folder This folder contains the JCL source files with the extensions - .jcl # - proclib: # files: # - '*.prc' # readme: | # # proclib folder # This folder contains the JCL procedures referenced via PROCLIB statements in the JCL with extensions # - .prc - rdbms: files: - '*.sql' readme: | # rdbms folder This folder contains any DB2 related source files with extensions - .sql for any kind of SQL source - screens: files: - '*.bms' - '*.mfs' readme: | # screens folder This folder contains the screens source files with the extensions - .bms for CICS BMS screens - .mfs for IMS MFS screens subdirs: - .settings: files: - '*.bms.mfdirset' - cobol: files: - '*.cbl' - '*.pli' readme: | # source folder This folder contains the program source files with the extensions - .cbl for COBOL source - .pli for PLI source subdirs: - .settings: files: - '*.cbl.mfdirset' - tests: files: - 'test_script.py' readme: | # tests Folder This folder contains the application test scripts pipeline-config: alert-notifications: - myname@mycompany.com approval-notifications: - myname@mycompany.com

创建 Enterprise Developer AppStream 2.0

要在 AppStream 2.0 上设置 Micro Focus Enterprise Developer,请参阅教程:在 AppStream 2.0 上设置 Micro Focus Enterprise Developer

要将 CodeCommit 存储库连接到 Enterprise Developer,请使用示例 YAML 触发器文件 config_git.ymltarget-repository 指定的名称。

Enterprise Developer 设置和测试

连接到您在创建 Enterprise Developer AppStream 2.0 中创建的 Enterprise Developer AppStream 2.0 实例。

  1. 从 Windows“开始”中,启动 Enterprise Developer。选择“Micro Focus Enterprise Developer”,然后选择“Enterprise Developer for Eclipse”。如果您是初次启动,则可能需要一些时间。

  2. 在 Eclipse 启动器中的工作区中,输入 C:\Users\<username>\workspace 然后选择启动

    注意

    请确保在重新连接到 AppStream 2.0 实例后选择相同的位置。工作区选择不是永久性的。

  3. 欢迎中,选择打开 COBOL 透视图。这仅在新工作区首次使用时显示。

在 Enterprise Developer 中克隆 BankDemo CodeCommit 存储库

  1. 选择窗口 / 透视图 / 打开透视图 / 其他... / Git

  2. 选择克隆 Git 存储库

  3. 克隆 Git 存储库中,输入以下信息:

    • 位置 URI 中,输入 CodeCommit 存储库的 HTTPS URL。

      注意

      在 AWS Management Console 中复制 CodeCommit 存储库的克隆 URL HTTPS 并将其粘贴到此处。URI 将分为主机存储库路径。

    • 身份验证用户密码中,输入用户 CodeCommit 存储库凭证,然后在安全存储中选择存储

  4. 分支选择中,选择分支,然后选择下一步

  5. 本地目标目录中,输入 C:\Users\<username>\workspace 并选择完成

    Git 存储库视图中显示 BANKDEMO [main] 时,即表示克隆过程完成。

创建 BankDemo 大型机 COBOL 项目并构建应用程序

  1. 更改为 COBOL 透视图

  2. 项目 中,禁用自动构建

  3. 文件中,选择新建,然后选择大型机 COBOL 项目

  4. 新建大型机 COBOL 项目中,输入以下信息:

    • 项目名称中,输入 BankDemo

    • 选择 Micro Focus 模板 [64 位]

    • 选择完成

  5. COBOL 资源管理器 中,展开新的 BankDemo 项目。

    注意

    方括号中的 [BANKDEMO main] 表示该项目已连接到本地 BankDemo CodeCommit 存储库。

  6. 如果树视图未显示 COBOL 程序、Copybook、BMS 源和 JCL 文件的条目,请从 BankDemo 项目上下文菜单中选择刷新

  7. 从 BankDemo 上下文菜单中选择属性 / Micro Focus / 项目设置 / COBOL

    • 选择字符集 – ASCII

    • 选择应用,然后选择确定

  8. 如果 BMS 和 COBOL 源的构建没有立即启动,在项目菜单中检查是否已启用自动构建选项。

    构建输出将显示在控制台视图中,应在几分钟后完成,并显示消息 BUILD SUCCESSFULBuild finished with no errors

    BankDemo 应用程序现在应该已经编译完毕,可以进行本地执行。

创建用于测试的本地 BankDemo CICS 和批处理环境

  1. COBOL 资源管理器中,展开 BANKDEMO / config

  2. 在编辑器中,打开 BANKDEMO_ED.json

  3. 找到字符串 ED_Home= 并更改路径以指向 Enterprise Developer 项目,如下所示:D:\\<username>\\workspace\\BANKDEMO。请注意在路径定义中使用双斜杠 (\\)。

  4. 保存并关闭文件。

  5. 选择服务器资源管理器

  6. 默认上下文菜单中,选择打开管理页面。随后,Micro Focus Enterprise Server 管理页面在默认浏览器中打开。

  7. (仅适用于 AppStream 2.0 会话)进行以下更改,以便可以保存本地 Enterprise Serve 区域以供本地测试使用:

    • 目录服务器 / 默认中,选择属性 / 配置

    • 存储库位置替换为 D:\<username>\My Files\Home Folder\MFDS

    注意

    每次与 AppStream 2.0 实例建立新连接后,都必须完成步骤 5 – 8。

  8. 目录服务器 / 默认中,选择导入,然后完成以下步骤:

    • 步骤 1:导入类型中,选择 JSON,然后选择下一步

    • 步骤 2:上传中,单击以在蓝色方块中上传文件。

    • 选择要上传的文件中,输入:

      • 文件名:D:\<username>\workspace\BANKDEMO\config\BANKDEMO_ED.json

      • 选择打开

    • 选择下一步

    • 步骤 3 中:区域中,取消选中从端点清除端口

    • 选择下一步

    • 步骤 4:导入中,选择导入

    • 选择完成

    此时,列表中将显示一个新的服务器名称 BANKDEMO

从 Enterprise Developer 启动 BANKDEMO 服务器

  1. 选择Enterprise Developer

  2. 服务器资源管理器中,选择默认,然后从上下文菜单中选择刷新

    此时,服务器列表中也应该显示 BANKDEMO。

  3. 选择 BANKDEMO

  4. 从上下文菜单中,选择与项目关联,然后选择 BANKDEMO

  5. 从上下文菜单中,选择启动

    控制台视图中应显示服务器启动的日志。

    如果显示消息 BANKDEMO CASSI5030I PLTPI Phase 2 List(PI) Processing Completed,则服务器已准备好用于测试 CICS BANKDEMO 应用程序。

启动 Rumba 3270 终端

  1. 从 Windows“开始”中,启动 Micro Focus Rumba+ Desktop / Rumba+ Desktop。

  2. 欢迎中,选择创建新会话 / 大型机显示

  3. 大型机显示中,选择连接 / 配置

  4. 会话配置中,选择连接 / TN3270

  5. 主机名 / 地址中,选择插入并输入 IP 地址 127.0.0.1

  6. Telnet 端口中,输入端口 6000

  7. 选择 应用

  8. 选择连接

    CICS 欢迎屏幕显示的屏幕带有第 1 行消息:This is the Micro Focus MFE CICS region BANKDEMO

  9. 按 Ctrl+Shift+Z 可清除屏幕。

运行 BankDemo 事务

  1. 在空白屏幕中,输入 BANK

  2. 在屏幕 BANK10 中,在用户 ID...:输入字段中,输入 guest 并按 Enter。

  3. 在屏幕 BANK20 中,在计算贷款成本之前的输入字段中,输入 /(正斜杠),然后按 Enter。

  4. 在屏幕 BANK70 中:

    • 希望借贷的金额...:中,输入 10000

    • 利率为...:中,输入 5.0

    • 借期(月)为...:中,输入 10

    • 按 Enter。

    此时应显示以下结果:

    Resulting monthly payment.............: $1023.06

    Enterprise Developer 中的 BANKDEMO 应用程序设置到此完成。

从 Enterprise Developer 停止 BANKDEMO 服务器

  1. 服务器资源管理器中,选择默认,然后从上下文菜单中选择刷新

  2. 选择 BANKDEMO

  3. 从上下文菜单中,选择停止

    控制台视图中应显示服务器停止的日志。

    如果显示消息 Server: BANKDEMO stopped successfully,即表示服务器已成功关闭。

练习 1:在 BANKDEMO 应用程序中增强贷款计算

在此场景中,逐步完成对代码进行示例更改、部署和测试的过程。

贷款部门希望在贷款计算屏幕 BANK70 上添加一个新字段来显示贷款总额。这需要更改 BMS 屏幕 MBANK70.CBL,添加一个新字段和相应的屏幕处理程序 SBANK70P.CBL 以及相关的copybook。此外,BBANK70P.CBL 中的贷款计算例程需要使用额外的公式进行扩展。

要完成本练习,请确保满足以下先决条件。

  • BANKDEMO-exercise.zip 下载到 D:\PhotonUser\My Files\Home Folder

  • 将 zip 文件解压缩到 D:\PhotonUser\My Files\Home Folder\BANKDEMO-exercise

  • 创建文件夹 D:\PhotonUser\My Files\Home Folder\AnalysisRules

  • 将规则文件 Loan+Calculation+Update.General-1.xmlBANKDEMO-exercise 文件夹复制到 D:\PhotonUser\My Files\Home Folder\AnalysisRules

注意

在本练习中,*.CBL 和 *.CPY 中的代码更改在 1 – 6 列用 EXER01 标记。

向 Enterprise Developer 代码分析添加贷款分析规则

可从 Enterprise Analyzer 导出 Micro Focus Enterprise Analyzer 中定义的分析规则,并将其导入到 Enterprise Developer 中,以便在 Enterprise Developer 项目中跨源运行相同的分析规则。

  1. 打开 Window/Preferences/Micro Focus/COBOL/Code Analysis/Rules

  2. 选择编辑... 并输入文件夹名称 D:\PhotonUser\My Files\Home Folder\AnalysisRules(其中包含规则文件 Loan+Calculation+Update.General-1.xml)。

  3. 选择完成

  4. 选择应用,然后选择关闭

  5. 从 BANKDEMO 项目上下文菜单中,选择代码分析

    您会看到贷款计算更新条目。

步骤 1:执行贷款计算代码分析

借助新的分析规则,我们可以在表达式、语句和变量中识别出与搜索模式 *PAYMENT**LOAN**RATE* 相匹配的 COBOL 程序和代码行。这将有助于浏览代码并确定所需的代码更改。

  1. 从 BANKDEMO 项目上下文菜单中,选择代码分析/贷款计算更新

    该操作将运行搜索规则,并在名为代码分析的新选项卡中列出结果。当右下角的绿色进度条消失时,即表示分析运行完成。

    代码分析选项卡应显示 BBANK20P.CBLBBANK70P.CBLSBANK70P.CBL 的扩展列表,每个列表都列出了与搜索模式匹配的语句、表达式和变量。

    BBANK20P.CBL 的结果来看,只移动了与搜索模式匹配的文字。因此,可以忽略此程序。

  2. 在选项卡菜单栏中,选择 - 图标,可全部折叠。

  3. 双击,按任意顺序展开 SBANK70P.CBL 并选择任意行,查看如何打开源代码并突出显示源代码中选定的行。您还将看到,所有已识别的源行都已标记。

步骤 2:修改 CICS BMS 映射和 COBOL 程序并进行测试

首先,我们更改 BMS 映射 MBANK70.BMS、屏幕处理程序 SBANK70P.CBL 和 copybook CBANKDAT.CPY,以便显示新字段。为避免在本练习中进行不必要的编码,D:\PhotonUser\My Files\Home Folder\BANKDEMO-exercise\Exercise01 文件夹中提供了修改后的源模块。通常,开发人员会使用代码分析结果来浏览和修改源代码。如果您有时间并想手动进行更改,请使用 *MBANK70.BMS 和 SBANK70P.CBL 中的手动更改(可选)* 中提供的信息进行手动更改。

要进行快速更改,请复制以下文件:

  1. ..\BANKDEMO-exercise\Exercis01\screens\MBANK70.BMSD:\PhotonUser\workspace\bankdemo\source\screens

  2. .\BANKDEMO-exercise\Exercis01\cobol\SBANK70P.CBLD:\PhotonUser\workspace\bankdemo\source\cobol

  3. ..\BANKDEMO-exercise\Exercis01\copybook\CBANKDAT.CPYD:\PhotonUser\workspace\bankdemo\source\copybook

  4. 为确保受更改影响的所有程序都进行编译,请选择 项目/清理.../清理所有项目

要手动更改 MBANK70.BMSSBANK70P.CBL,请完成以下步骤:

  • 要手动更改 BMS MBANK70.BMS 源,请在 PAYMENT 字段后面添加:

    • TXT09(具有与 TXT08 相同的属性,INITIAL 值为“贷款总额”)

    • TOTAL(与 PAYMENT 具有相同属性)

测试更改

要测试这些更改,请重复以下各节中的步骤:

  1. 从 Enterprise Developer 启动 BANKDEMO 服务器

  2. 启动 Rumba 3270 终端

  3. 运行 BankDemo 事务

    此外,您此时还应该看到文本 Total Loan Amount.....................:

  4. 从 Enterprise Developer 停止 BANKDEMO 服务器

步骤 3:在 COBOL 程序中添加总金额计算

在第二步中,我们更改 BBANK70P.CBL 并添加贷款总额的计算。D:\PhotonUser\My Files\Home Folder\BANKDEMO-exercise\Exercise01 文件夹中提供经过必要更改的可用源。如果您有时间并想手动进行更改,请使用 *BBANK70P.CBL 中的手动更改(可选)* 中提供的信息进行手动更改。

要进行快速更改,请复制以下文件:

  • ..\BANKDEMO-exercise\Exercis01\source\cobol\BBANK70P.CBLD:\PhotonUser\workspace\bankdemo\source\cobol

要手动更改 BBANK70P.CBL,请完成以下步骤:

  • 使用代码分析结果来确定所需的更改。

测试更改

要测试这些更改,请重复以下各节中的步骤:

  1. 从 Enterprise Developer 启动 BANKDEMO 服务器

  2. 启动 Rumba 3270 终端

  3. 运行 BankDemo 事务

    此外,您此时还应该看到文本 Total Loan Amount.....................: $10230.60

  4. 从 Enterprise Developer 停止 BANKDEMO 服务器

步骤 4:提交更改并运行 CI/CD 管道

将更改提交到中央 CodeCommit 存储库并触发 CI/CD 管道来构建、测试和部署更改。

  1. 从 BANKDEMO 项目的上下文菜单中,选择团队/提交

  2. Git 暂存选项卡中,输入以下提交消息:Added Total Amount Calculation

  3. 选择提交并推送...

  4. 打开 CodePipeline 控制台并查看管道执行状态。

    注意

    如果您在使用 Enterprise Developer 或团队功能“提交”或“推送”时遇到任何问题,请使用 Git Bash 命令行界面。

练习 2:在 BANKDEMO 应用程序中提取贷款计算

在本练习中,您将完成另一个示例变更请求。在此场景中,贷款部门希望将贷款计算例程作为独立的 Web 服务重复使用。该例程应保留在 COBOL 中,并且仍然可以从现有的 CICS COBOL 程序 BBANK70P.CBL 中调用。

步骤 1:将贷款计算例程重构为 COBOL 部分

首先,我们将贷款计算例程提取到 COBOL部分中。需要执行此步骤才能在下一步骤中将代码提取到独立的 COBOL 程序中。

  1. 在 COBOL 编辑器中打开 BBANK70P.CBL

  2. 在编辑器中,从上下文菜单中选择代码分析/贷款计算更新。这只会扫描当前来源中是否存在分析规则中定义的模式。

  3. 代码分析选项卡的结果中,找到第一条算术语句 DIVIDE WS-LOAN-INTEREST BY 12

  4. 双击该语句可在编辑器中导航到源代码行。这是贷款计算例程的第一个语句。

  5. 标记贷款计算例程的以下代码块,以便将提取到某个部分。

    DIVIDE WS-LOAN-INTEREST BY 12 GIVING WS-LOAN-INTEREST ROUNDED. COMPUTE WS-LOAN-MONTHLY-PAYMENT ROUNDED = ((WS-LOAN-INTEREST * ((1 + WS-LOAN-INTEREST) ** WS-LOAN-TERM)) / (((1 + WS-LOAN-INTEREST) * WS-LOAN-TERM) - 1 )) * WS-LOAN-PRINCIPAL. EXER01 COMPUTE WS-LOAN-TOTAL-PAYMENT = EXER01 (WS-LOAN-MONTHLY-PAYMENT * WS-LOAN-TERM).
  6. 从编辑器的上下文菜单中,选择重构/提取到部分...

  7. 输入新部分名称:LOAN-CALCULATION

  8. 选择“确定”。

    标记的代码块现已提取到新的 LOAN-CALCULATION 部分,并且该代码块已替换为 PERFROM LOAN-CALCULATION 语句。

测试更改

要测试这些更改,请重复以下各节中所述的步骤:

  1. 从 Enterprise Developer 启动 BANKDEMO 服务器

  2. 启动 Rumba 3270 终端

  3. 运行 BankDemo 事务

    此外,您此时还应该看到文本 Total Loan Amount.....................: $10230.60

  4. 从 Enterprise Developer 停止 BANKDEMO 服务器

    注意

    如果要避免上述步骤将代码块提取到某个部分,则可以将步骤 1 中的已修改源从 ..\BANKDEMO-exercise\Exercis02\Step1\cobol\BBANK70P.CBL 复制到 D:\PhotonUser\workspace\bankdemo\source\cobol

步骤 2:将贷款计算例程提取到独立的 COBOL 程序中

在步骤 2 中,LOAN-CALCULATION 部分中的代码块将被提取到独立程序中,原始代码将替换为用于调用新子程序的代码。

  1. 在编辑器中打开 BBANK70P.CBL,找到在步骤 1 中创建的新 PERFORM LOAN-CALCULATION 语句。

  2. 将游标置于部分名称内。它将被标记为灰色。

  3. 从上下文菜单中,选择重构->提取部分/段落到程序...

  4. 提取部分/段落到程序中,输入新文件名:LOANCALC.CBL

  5. 选择确定

    新的 LOANCALC.CBL 程序将在编辑器中打开。

  6. 向下滚动并查看正在为调用接口提取和生成的代码。

  7. 在编辑器中选择 BBANK70P.CBL,然后转至 LOAN-CALCULATION SECTION。查看正在生成的用于调用新子程序 LOANCALC.CBL 的代码。

    注意

    CALL 语句正在使用 DFHEIBLKDFHCOMMAREA 调用带 CICS 控制块的 LOANCALC。由于我们希望将新的 LOANCALC.CBL 子程序作为非 CICS 程序调用,因此必须通过注释或删除从调用中移除 DFHEIBLKDFHCOMMAREA

测试更改

要测试这些更改,请重复以下各节中所述的步骤:

  1. 从 Enterprise Developer 启动 BANKDEMO 服务器

  2. 启动 Rumba 3270 终端

  3. 运行 BankDemo 事务

    此外,您此时还应该看到文本 Total Loan Amount.....................: $10230.60

  4. 从 Enterprise Developer 停止 BANKDEMO 服务器

    注意

    如果要避免上述步骤将代码块提取到某个部分,则可以将步骤 1 中的已修改源从 ..\BANKDEMO-exercise\Exercis02\Step2\cobol\BBANK70P.CBLLOANCALC.CBL 复制到 D:\PhotonUser\workspace\bankdemo\source\cobol

步骤 3:提交更改并运行 CI/CD 管道

将更改提交到中央 CodeCommit 存储库并触发 CI/CD 管道来构建、测试和部署更改。

  1. 从 BANKDEMO 项目的上下文菜单中,选择团队/提交

  2. Git 暂存选项卡

    • 未暂存的阶段 LOANCALC.CBLLOANCALC.CBL.mfdirset 中,添加内容。

    • 输入提交消息:Added Total Amount Calculation

  3. 选择提交并推送...

  4. 打开 CodePipeline 控制台并查看管道执行状态。

    注意

    如果您在使用 Enterprise Developer 或团队功能“提交”或“推送”时遇到任何问题,请使用 Git Bash 命令行界面。

清理资源

如果您不再需要为本教程创建的资源,请将其删除,以免继续产生费用。完成以下步骤:

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。