本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:設定CI/CD管道以與 Rocket Enterprise Developer (先前稱為 Micro Focus Enterprise Developer) 搭配使用
本教學課程說明如何在 Rocket Enterprise Developer 中匯入、編輯、編譯和執行 BankDemo 範例應用程式,然後遞交變更以觸發CI/CD管道。
內容
先決條件
下載下列檔案。
-
basic-infra.yaml
-
pipeline.yaml
-
m2-code-sync-function.zip
-
config_git.yml
-
BANKDEMO-source.zip
-
BANKDEMO-exercise.zip
每個檔案的用途如下:
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}
同時在資源 的basic-infra.yaml
範本中參考該儲存貯體SourceSyncLambdaFunction
。 config_git.yml
-
CodeCommit 目錄結構定義。如需詳細資訊,請參閱YAML 觸發檔案 config_git.yml 範例。
BANKDEMO-source.zip
.-
從 CodeCommit 儲存庫建立的 BankDemo 原始程式碼和組態檔案。
BANKDEMO-exercise.zip
.-
從 CodeCommit 儲存庫建立的教學練習的 BankDemo 來源。
建立CI/CD管道基本基礎設施
使用 AWS CloudFormation 範本basic-infra.yaml
透過 AWS CloudFormation 主控台建立 CI/CD 管道基本基礎設施堆疊。此堆疊會建立 Amazon S3 儲存貯體,您可以在其中上傳應用程式程式碼和資料,以及支援 AWS Lambda 函數,以建立其他必要的資源,例如 AWS CodeCommit 儲存庫和 AWS CodePipeline 管道。
注意
若要啟動此堆疊,您需要管理 IAM、Amazon S3、Lambda 和 AWS CloudFormation 的許可才能使用 AWS KMS。
-
登入 AWS Management Console ,並在 https://console.aws.amazon.com/cloudformation
開啟 AWS CloudFormation 主控台。 -
使用以下選項之一建立新的堆疊:
-
選擇 Create Stack (建立堆疊)。如果您目前有堆疊正在執行,這是「唯一的」選項。
-
在堆疊頁面上,選擇建立堆疊。只有當無堆疊執行時才看得到此選項。
-
-
在指定範本頁面上:
-
在準備範本中,選擇範本已就緒。
-
在指定範本中,選擇 Amazon S3 URL 做為範本來源,然後根據您的 輸入下列其中一個 URLs AWS 區域。
-
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 CloudFormation 範本變更為下列其中一個 Amazon S3 URLs。
-
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 範本,否則請勿變更預設參數值。
-
-
在設定堆疊選項中,選擇下一步。
-
在功能中,選擇我確認 AWS CloudFormation 可能會建立 IAM 資源,以允許 代表您建立 IAM 角色 AWS CloudFormation 的許可。選擇建立堆疊。
注意
佈建此堆疊可能需要 3 到 5 分鐘。
-
成功建立堆疊後,導覽至新佈建堆疊的輸出區段。您可以在 Amazon S3 儲存貯體中找到您需要上傳大型主機程式碼和相依檔案的儲存貯體。
建立 AWS CodeCommit 儲存庫和CI/CD管道
在此步驟中,您會呼叫 Lambda 函數來建立 CodeCommit 儲存庫並佈建CI/CD管道堆疊,該函數會呼叫 AWS CloudFormation 來建立管道堆疊。
-
將 BankDemo 範例應用程式
下載到您的本機電腦。 -
bankdemo.zip
從本機電腦上傳到 中建立的 Amazon S3 儲存貯體建立CI/CD管道基本基礎設施。 -
下載
config_git.yml
。 -
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
-
-
將包含 CodeCommit 儲存庫資料夾結構定義的
config_git.yml
檔案上傳至 中建立的 Amazon S3 儲存貯體建立CI/CD管道基本基礎設施。這將調用 Lambda 函數,以自動佈建儲存庫和管道。這會建立 CodeCommit 儲存庫,其名稱在
config_git.yml
檔案中target-repository
定義的 中提供,例如bankdemo-repo
。Lambda 函數也會透過 建立CI/CD管道堆疊 AWS CloudFormation。 AWS CloudFormation 堆疊的字首會與提供
target-repository
的名稱相同,後面接著隨機字串 (例如bankdemo-repo-
。您可以在 管理主控台中找到 AWS CodeCommit 儲存庫 URL 和 URL,以存取建立的管道。01234567
-
如果 CodeCommit 儲存庫建立完成,將立即觸發CI/CD管道以執行完整的 CI/CD。
-
推送檔案後,它將自動觸發管道,該管道將建置、在預備階段部署、執行一些測試並等待手動核准,然後再將其部署在生產環境中。
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 上設定 Rocket Enterprise Developer,請參閱 教學課程:在 AppStream 2.0 上設定 Rocket Enterprise Developer。
若要將 CodeCommit 儲存庫連線至企業開發人員,請使用 target-repository
中指定的名稱YAML 觸發檔案 config_git.yml 範例。
企業開發人員設定和測試
主題
連線至您在 中建立的企業開發人員 AppStream 2建立企業開發人員 AppStream 2.0.0 執行個體。
-
從 Windows Start 啟動企業開發人員。選擇 Micro Focus Enterprise Developer,然後選擇 Enterprise Developer for Eclipse。如果您是第一次啟動,可能需要一些時間。
-
在 Eclipse Launcher 的工作區中:輸入
C:\Users\<username>\workspace
,然後選擇啟動。注意
請務必在重新連線至 AppStream 2.0 執行個體後選擇相同的位置。工作區選擇不是持久性的。
-
在歡迎中,選擇開啟 COBOL 觀點。這只會在新工作區第一次顯示。
在企業開發人員中複製 BankDemo CodeCommit 儲存庫
-
選擇視窗/觀點/開放觀點/其他... / Git。
-
選擇複製 Git 儲存庫。
-
在複製 Git 儲存庫中,輸入下列資訊:
-
在位置 URI 中,輸入 CodeCommit 儲存庫的 HTTPS URL。
注意
在 AWS 管理主控台中複製 CodeCommit 儲存庫的複製 URL HTTPS,並將其貼到這裡。URI 會分割為主機和儲存庫路徑。
-
驗證使用者和密碼中的使用者 CodeCommit 儲存庫登入資料,然後選擇存放在安全存放區。
-
-
在分支選取中,選擇主要分支,然後選擇下一步。
-
在本機目的地的目錄中,輸入
C:\Users\<username>\workspace
並選擇完成。當 Git 儲存庫檢視中顯示
BANKDEMO [main]
時,複製程序即完成。
建立 BankDemo 大型主機 COBOL 專案並建置應用程式
-
變更為 COBOL 觀點。
-
在專案中,停用自動建置。
-
在檔案中,選擇新增,然後選擇大型主機 COBOL 專案。
-
在新的大型主機 COBOL 專案中,輸入下列資訊:
-
在專案名稱中,輸入
BankDemo
。 -
選擇 Micro Focus 範本 【64 位元】。
-
選擇 Finish (完成)。
-
-
在 COBOL Explorer 中,展開新的 BankDemo 專案。
注意
[BANKDEMO main]
方括號中的 表示專案已與本機 BankDemo CodeCommit 儲存庫連線。 -
如果樹狀檢視未顯示 COBOL 程式、複製手冊、BMS 來源和 JCL 檔案的項目,請從 BankDemo 專案內容功能表中選擇重新整理。
-
從 BankDemo 內容功能表中,選擇屬性/微型焦點/專案設定/COBOL:
-
選擇字元集 - ASCII。
-
選擇套用,然後選擇關閉。
-
-
如果建置的 Adobe 和 COBOL 來源未立即開始,請在專案功能表中檢查是否已啟用自動建置選項。
組建輸出將顯示在主控台檢視中,並應在幾分鐘後完成訊息
BUILD SUCCESSFUL
和Build finished with no errors
。現在應編譯 BankDemo 應用程式,並準備好進行本機執行。
建立本機 BankDemo CICS 和批次環境進行測試
-
在 COBOL Explorer 中,展開
BANKDEMO / config
。 -
在編輯器中,開啟
BANKDEMO_ED.json
。 -
尋找指向企業開發人員專案的字串
ED_Home=
和變更路徑,如下所示:D:\\<username>\\workspace\\BANKDEMO
。請注意,在路徑定義中使用雙斜線 (\\
)。 -
儲存並關閉檔案。
-
選擇 Server Explorer。
-
從預設內容功能表中,選擇開啟管理頁面。Micro Focus Enterprise Server 管理頁面會在預設瀏覽器中開啟。
-
僅限 AppStream 2.0 工作階段,請進行下列變更,以便保留本機企業伺服器區域以進行本機測試:
-
在目錄伺服器/預設中,選擇 PROPERTIES/Configure。
-
將儲存庫位置取代為
D:\<username>\My Files\Home Folder\MFDS
。
注意
每次新的 AppStream 2.0 執行個體連線後,您都必須完成步驟 5 - 8。
-
-
在目錄伺服器/預設中,選擇匯入,然後完成下列步驟:
-
在步驟 1:匯入類型中,選擇 JSON,然後選擇下一步。
-
在步驟 2:上傳中,按一下以藍色方塊上傳檔案。
-
在選擇要上傳的檔案中,輸入:
-
檔案名稱:
D:\<username>\workspace\BANKDEMO\config\BANKDEMO_ED.json
。 -
選擇 Open (開啟)。
-
-
選擇下一步。
-
在步驟 3:區域清除來自端點的清除連接埠。
-
選擇下一步。
-
在步驟 4:匯入中,選擇匯入。
-
選擇 Finish (完成)。
清單現在會顯示新的伺服器名稱
BANKDEMO
。 -
從企業開發人員啟動 BANKDEMO 伺服器
-
選擇企業開發人員。
-
在 Server Explorer 中,選擇預設,然後從內容功能表中選擇重新整理。
伺服器清單現在也應該顯示 BANKDEMO。
-
選擇 BANKDEMO。
-
從內容功能表中,選擇與專案建立關聯,然後選擇 BANKDEMO。
-
從內容功能表中,選擇開始。
主控台檢視應會顯示伺服器啟動的日誌。
如果
BANKDEMO CASSI5030I PLTPI Phase 2 List(PI) Processing Completed
顯示訊息,表示伺服器已準備好測試 CICS BANKDEMO 應用程式。
啟動 Rumba 3270 終端機
-
從 Windows Start 啟動 Micro Focus Rumba+ 桌面/Rumba+ 桌面。
-
在歡迎中,選擇建立新工作階段/大型主機顯示。
-
在大型主機顯示中,選擇連線/設定。
-
在工作階段組態中,選擇連線/TN3270。
-
在主機名稱/地址中,選擇插入並輸入 IP 地址
127.0.0.1
。 -
在 Telnet 連接埠中,輸入連接埠
6000
。 -
選擇套用。
-
選擇連線。
CICS 歡迎畫面會顯示包含第 1 列訊息的畫面:
This is the Micro Focus MFE CICS region BANKDEMO
。 -
按 CTRL+Shift+Z 清除畫面。
執行 BankDemo 交易
-
在空白畫面中,輸入
BANK
。 -
在畫面 BANK10 中,在使用者 ID.....: 的輸入欄位中,輸入
guest
,然後按 Enter。 -
在畫面 BANK20 中,在計算貸款成本前的輸入欄位中,輸入
/
(正斜線) 並按下 Enter。 -
在畫面 BANK70 中:
-
在您想要借用的金額中...:,輸入
10000
。 -
在 中,以 的利率: 輸入
5.0
。 -
在 中,對於幾個月......::,輸入
10
。 -
按 Enter。
應顯示下列結果:
Resulting monthly payment.............: $1023.06
這會在企業開發人員中完成 BANKDEMO 應用程式設定。
-
從企業開發人員停止 BANKDEMO 伺服器
-
在 Server Explorer 中,選擇預設,然後從內容功能表中選擇重新整理。
-
選擇 BANKDEMO。
-
從內容功能表中,選擇停止。
主控台檢視應顯示伺服器停止的日誌。
如果
Server: BANKDEMO stopped successfully
顯示訊息,表示伺服器已成功關閉。
練習 1:增強 BANKDEMO 應用程式中的貸款計算
主題
在此案例中,您將逐步完成對程式碼進行範例變更、部署和測試的程序。
貸款部門希望貸款計算畫面上的新欄位 BANK70 顯示總貸款金額。這需要變更 Adobe 畫面 MBANK70.CBL,新增新的欄位和對應的畫面處理程式 SBANK70P.CBL 與相關的複製手冊。此外,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.xml
從BANKDEMO-exercise
資料夾複製到D:\PhotonUser\My Files\Home Folder\AnalysisRules
。
注意
*.CBL 和 *.CPY 中的程式碼變更會在本練習的第 1 - 6 欄中以 EXER01 標示。
將貸款分析規則新增至企業開發人員程式碼分析
Rocket Enterprise Analyzer 中定義的分析規則可以從 Enterprise Analyzer 匯出,並匯入企業開發人員,以在企業開發人員專案的來源上執行相同的分析規則。
-
打開
Window/Preferences/Micro Focus/COBOL/Code Analysis/Rules
. -
選擇編輯...,然後輸入
D:\PhotonUser\My Files\Home Folder\AnalysisRules
包含規則檔案 的資料夾名稱Loan+Calculation+Update.General-1.xml
。 -
選擇 Finish (完成)。
-
選擇套用,然後選擇關閉。
-
從 BANKDEMO 專案內容功能表中,選擇程式碼分析。
您應該會看到貸款計算更新的項目。
步驟 1:執行貸款計算的程式碼分析
使用新的分析規則,我們希望識別符合搜尋模式 的 COBOL 程式和程式碼行*PAYMENT*
,*LOAN*
以及*RATE*
表達式、陳述式和變數。這將有助於導覽程式碼並識別必要的程式碼變更。
-
從 BANKDEMO 專案內容功能表中,選擇程式碼分析/貸款計算更新。
這將執行搜尋規則,並在稱為程式碼分析的新標籤中列出結果。當右下角的綠色進度列消失時,分析執行即完成。
程式碼分析索引標籤應會顯示展開的
BBANK20P.CBL
、BBANK70P.CBL
和 清單SBANK70P.CBL
,每個清單都會列出符合搜尋模式的陳述式、表達式和變數。查看 的結果
BBANK20P.CBL
,只有已移動的常值符合搜尋模式。因此,可以忽略此程式。 -
在索引標籤選單列中,選擇 - 圖示以全部摺疊。
-
只要按兩下,即可展開
SBANK70P.CBL
並選取任何順序的行,查看這會如何開啟來源,並反白在來源碼中選取的行。您也將識別所有已識別的來源行都已標記。
步驟 2:修改 CICSMS 映射和 COBOL 程式和測試
首先,我們將變更 Adobe 地圖MBANK70.BMS
和畫面處理程式SBANK70P.CBL
和複製手冊CBANKDAT.CPY
,以顯示新欄位。為了避免在本練習中不必要的編碼,修改後的來源模組可在 D:\PhotonUser\My Files\Home Folder\BANKDEMO-exercise\Exercise01
資料夾中使用。一般而言,開發人員會使用程式碼分析結果來導覽和修改來源。如果您有時間和 ,並且想要手動變更,請使用 MBANK70.BMS 和 SBANK70P.CBL (選用)* 中 *手動變更中提供的資訊來執行。
如需快速變更,請複製下列檔案:
-
..\BANKDEMO-exercise\Exercis01\screens\MBANK70.BMS
至D:\PhotonUser\workspace\bankdemo\source\screens
。 -
.\BANKDEMO-exercise\Exercis01\cobol\SBANK70P.CBL
至D:\PhotonUser\workspace\bankdemo\source\cobol
。 -
..\BANKDEMO-exercise\Exercis01\copybook\CBANKDAT.CPY
至D:\PhotonUser\workspace\bankdemo\source\copybook
。 -
若要確保所有受變更影響的程式都已編譯,請選擇專案/清除.../清除所有專案。
如需手動變更 MBANK70.BMS
和 SBANK70P.CBL
,請完成下列步驟:
-
對於在
PAYMENT
欄位中MBANK70.BMS
新增的手動變更,請執行下列動作:-
具有與 TXT08 相同屬性和 INITIAL 值「貸款金額總計」的 TXT09 TXT08
-
具有與 付款相同屬性的總計
-
測試變更
若要測試變更,請重複下列各節中的步驟:
-
此外,您現在也應該會看到文字
Total Loan Amount.....................:
。
步驟 3:在 COBOL 程式中新增總金額計算
在第二個步驟中,我們將變更BBANK70P.CBL
並新增總貸款金額的計算。D:\PhotonUser\My Files\Home Folder\BANKDEMO-exercise\Exercise01
資料夾中提供具有必要變更的預備來源。如果您有時間並想要手動變更,請使用 BBANK70P.CBL (選用)* 中 *手動變更中提供的資訊進行變更。
如需快速變更,請複製下列檔案:
-
..\BANKDEMO-exercise\Exercis01\source\cobol\BBANK70P.CBL
至D:\PhotonUser\workspace\bankdemo\source\cobol
。
若要手動變更 BBANK70P.CBL
,請完成下列步驟:
-
使用程式碼分析結果來識別必要的變更。
測試變更
若要測試變更,請重複下列各節中的步驟:
-
此外,您現在也應該會看到文字
Total Loan Amount.....................: $10230.60
。
步驟 4:遞交變更並執行 CI/CD 管道
將變更遞交至中央 CodeCommit 儲存庫,並觸發CI/CD管道來建置、測試和部署變更。
-
從 BANKDEMO 專案的內容選單中,選擇團隊/承諾。
-
在 Git 預備索引標籤中,輸入下列遞交訊息:
Added Total Amount Calculation
。 -
選擇遞交和推送...。
-
開啟 CodePipeline 主控台並檢查管道執行的狀態。
注意
如果您遇到企業開發人員或團隊函數遞交或推送的任何問題,請使用 Git Bash 命令列界面。
練習 2:在 BankDemo 應用程式中擷取貸款計算
在接下來的練習中,您會處理另一個變更請求範例。在此案例中,貸款部門想要將貸款計算常式重複使用為獨立的 WebService。常式應保留在 COBOL 中,並且仍應可從現有的 CICS COBOL 程式 呼叫BBANK70P.CBL
。
步驟 1:將貸款計算常式重構為 COBOL 區段
在第一個步驟中,我們將貸款計算常式擷取至 COBOL 區段。在下一個步驟中,需要此步驟才能將程式碼擷取到獨立的 COBOL 程式。
-
在 COBOL 編輯器
BBANK70P.CBL
中開啟 。 -
在編輯器中,從內容選單中選擇程式碼分析/貸款計算更新。這只會掃描目前來源中分析規則中定義的模式。
-
在程式碼分析標籤的結果中,尋找第一個算術陳述式
DIVIDE WS-LOAN-INTEREST BY 12
。 -
按兩下 陳述式以導覽至編輯器中的來源行。這是貸款計算常式的第一個陳述式。
-
標記下列程式碼區塊,以便將貸款計算常式擷取至區段。
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).
-
在編輯器的內容選單中,選擇重構/擷取至區段...。
-
輸入新區段名稱:LOAN-CALCULATION。
-
選擇確定。
標記的程式碼區塊現在已擷取至新
LOAN-CALCULATION
區段,且程式碼區塊已取代為PERFROM LOAN-CALCULATION
陳述式。
測試變更
若要測試變更,請重複以下各節所述的步驟。
-
此外,您現在也應該會看到文字
Total Loan Amount.....................: $10230.60
。 -
注意
如果您想要避免上述步驟將程式碼區塊擷取至區段,您可以將步驟 1 的修改後來源從 複製到
..\BANKDEMO-exercise\Exercis02\Step1\cobol\BBANK70P.CBL
D:\PhotonUser\workspace\bankdemo\source\cobol
。
步驟 2:將貸款計算常式擷取至獨立 COBOL 程式
在步驟 2 中, LOAN-CALCULATION
區段中的程式碼區塊將擷取至獨立程式,而原始程式碼將取代為程式碼,以呼叫新的子程式。
-
在編輯器
BBANK70P.CBL
中開啟 ,並尋找在步驟 1 中建立的新PERFORM LOAN-CALCULATION
陳述式。 -
將游標放在區段名稱內。它會標示為灰色。
-
從內容功能表中,選取 Refactor->Extract Section/Paragraph to Program...。
-
在擷取區段/段落至程式中,輸入新的檔案名稱:LOANCALC.CBL。
-
選擇確定。
新
LOANCALC.CBL
程式將在編輯器中開啟。 -
向下捲動並檢閱要擷取和產生呼叫界面的程式碼。
-
選取具有 的編輯器
BBANK70P.CBL
,然後移至LOAN-CALCULATION SECTION
。檢閱正在產生的程式碼,以呼叫新的子程式LOANCALC.CBL
。注意
CALL
陳述式使用DFHEIBLK
和DFHCOMMAREA
來LOANCALC
呼叫 CICS 控制區塊。因為我們想要將新的LOANCALC.CBL
子程式呼叫為非 CICS 程式,所以我們必須透過註解或刪除,從呼叫中移除DFHEIBLK
和DFHCOMMAREA
。
測試變更
若要測試變更,請重複以下各節所述的步驟。
-
此外,您現在也應該會看到文字
Total Loan Amount.....................: $10230.60
。 -
注意
如果您想要避免上述步驟將程式碼區塊擷取至區段,您可以將步驟 1 的修改後來源從
..\BANKDEMO-exercise\Exercis02\Step2\cobol\BBANK70P.CBL
和 複製到LOANCALC.CBL
D:\PhotonUser\workspace\bankdemo\source\cobol
。
步驟 3:遞交變更並執行CI/CD管道
將變更遞交至中央 CodeCommit 儲存庫,並觸發CI/CD管道來建置、測試和部署變更。
-
在 BANKDEMO 專案的內容選單中,選擇團隊/承諾。
-
在 Git 預備索引標籤中
-
在未暫存階段 LOANCALC.CBL 和 LOANCALC.CBL.mfdirset 中新增 。
-
輸入遞交訊息:
Added Total Amount Calculation
。
-
-
選擇遞交和推送...。
-
開啟 CodePipeline 主控台並檢查管道執行的狀態。
注意
如果您遇到企業開發人員或團隊函數遞交或推送的任何問題,請使用 Git Bash 命令列界面。
清除資源
如果您不再需要為本教學課程建立的資源,請將其刪除,這樣就不會繼續收取這些資源的費用。請完成下列步驟:
-
刪除 CodePipeline 管道。如需詳細資訊,請參閱AWS CodePipeline 《 使用者指南》中的在 CodePipeline 中刪除管道。
-
刪除 CodeCommit 儲存庫。如需詳細資訊,請參閱AWS CodeCommit 《 使用者指南》中的刪除 CodeCommit 儲存庫。
-
刪除 S3; 儲存貯體。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的刪除儲存貯體。
-
刪除 AWS CloudFormation 堆疊。如需詳細資訊,請參閱AWS CloudFormation 《 使用者指南》中的在AWS CloudFormation 主控台上刪除堆疊。