教程:设置 CI/CD 管道以与 Micro Focus Enterprise Developer 搭配使用 - AWS 大型机现代化

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

本教程向您展示如何在 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 大型机现代化的可公开访问的 Amazon S3 存储桶中。 AWS 区域 我们建议您将文件存储在同一个存储桶中, AWS 区域 然后将其复制到所有 AWS 区域存储桶中。使用带有标识特定内容的后缀的存储桶命名约定 AWS 区域 (例如m2-cicd-deployment-source-eu-west-1),并使用替代函数将该前缀m2-cicd-deployment-source添加为参数的默认值,DeploymentSourceBucket并在资源basic-infra.yamlSourceSyncLambdaFunction模板中引用该存储桶!Sub {DeploymentSourceBucket}-${AWS::Region}时使用 AWS CloudFormation 替代函数形成完整的存储桶。

config_git.yml

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

BANKDEMO-source.zip.

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

BANKDEMO-exercise.zip.

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

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

使用 AWS CloudFormation 模板通过控制basic-infra.yaml台创建 CI/CD 管道基础架构堆栈。 AWS CloudFormation 此堆栈创建 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. 使用以下其中一个选项创建堆栈:

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

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

  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 大型机现代化值。

    进行以下更改:

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

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

      • 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 输出选项卡,显示 AWS 大型机现代化 Amazon S3 存储桶。

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

在此步骤中,您将通过调 AWS CloudFormation 用用于创建管道堆栈的 Lambda 函数来创建 CodeCommit 存储库并配置 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的文件上传到中创建的 Amazon S3 存储桶创建 CI/CD 管道基本基础设施。这将调用 Lambda 函数,该函数将自动配置存储库和管道。

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

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

    AWS CloudFormation Outputs 选项卡显示了代表您创建的 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

企业开发者 AppStream 2.0 创建

要在 AppStream 2.0 上设置 Micro Focus 企业开发者,请参阅教程:在 AppStream 2.0 上设置 Micro Focus 企业版开发者

要将 CodeCommit 存储库连接到企业开发人员,请使用target-repository中指定的名称示例 YAML 触发器文件 config_git.yml

Enterprise Developer 设置和测试

Connect 连接到您在中创建的企业开发者 AppStream 2.0 实例企业开发者 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 透视图。这仅在新工作区首次使用时显示。

在 “企业开发者” 中克隆 BankDemo CodeCommit 存储库

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

  2. 选择克隆 Git 存储库

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

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

      注意

      在 AWS 管理控制台中复制 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 会话,请进行以下更改,以便保留本地企业服务器区域供本地测试使用:

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

    • 存储库位置替换为 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应用程序中提取贷款计算结果

在本练习中,您将完成另一个示例变更请求。在这种情况下,贷款部门希望将贷款计算例程作为独立程序重复使用 WebService。该例程应保留在 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 Pipeline 来构建、测试和部署更改。

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

  2. Git 暂存选项卡

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

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

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

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

    注意

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

清理资源

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

  • 删除 CodePipeline 管道。有关更多信息,请参阅《AWS CodePipeline 用户指南》 CodePipeline中的删除管道

  • 删除 CodeCommit 存储库。有关更多信息,请参阅《AWS CodeCommit 用户指南》中的删除 CodeCommit存储库

  • 删除 S3 存储桶。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的删除存储桶

  • 删除 AWS CloudFormation 堆栈。有关更多信息,请参阅《AWS CloudFormation 用户指南》中的在 AWS CloudFormation 控制台上删除堆栈