本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:設定 CI/CD 管道,以便與微焦點企業開發人員搭配使用
本教學課程說明如何在 Micro Focus 企業開發人員中匯入、編輯、編譯和執行 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
。請確定所有支援 AWS 大型主機現代化的可公開存取 Amazon S3 儲存貯體中都 AWS 區域 可使用此 zip 檔案。我們建議您將檔案儲存在值區中, AWS 區域 並將其複製到所有儲存貯體中 AWS 區域。使用具有可識別特定字尾的值區命名慣例 AWS 區域 (例如,m2-cicd-deployment-source-eu-west-1
),並將字首新增m2-cicd-deployment-source
為參數的預設值,DeploymentSourceBucket
並在資源範basic-infra.yaml
本中參照該值區!Sub {DeploymentSourceBucket}-${AWS::Region}
時,使用 AWS CloudFormation 替代函數形成完整值區SourceSyncLambdaFunction
。 config_git.yml
-
CodeCommit 目錄結構定義。如需詳細資訊,請參閱範例YAML觸發程式檔案組態 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。
-
登入 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
-
-
選擇 Next (下一步)。
注意
除非您已自行修改 AWS CloudFormation 範本,否則請勿變更預設參數值。
-
-
在設定堆疊選項中,選擇下一步。
-
在 [權能] 中,選擇 [我確認 AWS CloudFormation 可能會建立IAM資源,以允許代表您建立IAM角色] 的權限。 AWS CloudFormation 選擇建立堆疊。
注意
佈建此堆疊可能需要 3 到 5 分鐘。
-
成功建立堆疊之後,瀏覽至新佈建之堆疊的「輸出」區段。您會在那裡找到需要上傳大型主機程式碼和相依檔案的 Amazon S3 儲存貯體。
建立 AWS CodeCommit 儲存庫和 CI/CD 管道
在此步驟中,您可以呼叫 Lambda 函數 AWS CloudFormation 來建立管線堆疊,以建立 CodeCommit 存放庫並佈建 CI/CD 管線堆疊。
-
將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 函數。這將使用在
config_git.yml
文件中target-repository
定義的名稱創建一個 CodeCommit 存儲庫;例如,bankdemo-repo
。Lambda 函數也會透過建立 CI/CD 管線堆疊。 AWS CloudFormation AWS CloudFormation 堆棧將具有相同的前綴提供的
target-repository
名稱,後跟隨機字符串(例如bankdemo-repo-
。您可以在「管理主控台」URL 中找到 CodeCommit 存放庫URL和存取建立的 AWS 管道。01234567
-
如果 CodeCommit 存放庫建立完成,將立即觸發 CI/CD 管線以執行完整的 CI/CD。
-
推送文件後,它將自動觸發管道,該管道將構建,在測試中部署,運行一些測試並等待手動批准,然後將其部署到生產環境中。
範例YAML觸發程式檔案組態 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 上設定微焦企業開發人員,請參閱教學課程:在 AppStream 2.0 上設定微焦點企業開發人員。
若要將 CodeCommit 存放庫連線至企業開發人員,請使用target-repository
中指定的名稱範例YAML觸發程式檔案組態 git.yml。
企業開發人員設置和測試
主題
Connect 到您在中建立的企業開發人員 AppStream 2.0 執行個體企業開發人員 AppStream 2.0 建立。
-
從 Windows 開始啟動企業開發人員。選擇微焦點企業開發人員,然後選擇 Eclipse 的企業開發人員。如果您是第一次開始,可能需要一些時間。
-
在 Eclipse 啟動器的「工作區:輸入」,
C:\Users\<username>\workspace
然後選擇「啟動」。注意
請務必在重新連線至 AppStream 2.0 執行個體後選擇相同的位置。工作區選取不是永久性的。
-
在歡迎中,選擇開啟COBOL透視圖。這只會在新工作區的第一次顯示。
在企業開發人員中克隆 BankDemo CodeCommit 存儲庫
-
選擇「視窗」/「透視」/「開啟透視/其他... /Git。
-
選擇複製 Git 儲存庫。
-
在複製 Git 儲存庫中,輸入下列資訊:
-
在位置中URI,輸入 CodeCommit存放庫HTTPSURL的。
注意
在「 AWS 管理主控台」中複製 CodeCommit 儲存區域的複製,然後將其貼到此處。URL HTTPS將URI會分割成主機和儲存庫路徑。
-
驗證使用者和密碼中的使用者 CodeCommit 儲存庫認證,然後選擇儲存在安全存放區中。
-
-
在「分支選擇」中,選擇「主分支」,然後選擇「下一步
-
在本機目的地的目錄中,輸入
C:\Users\<username>\workspace
並選擇完成。當「Git 存放庫」檢視中顯示時,
BANKDEMO [main]
就會完成複製程序。
建立 BankDemo 大型主機專案並建置應用COBOL程式
-
變更為「COBOL透視」。
-
在專案中,停用「自動建置」。
-
在檔案中,選擇新增,然後選擇大型主機COBOL專案。
-
在新大型主機COBOL專案中,輸入下列資訊:
-
在專案名稱中,輸入
BankDemo
。 -
選擇微型對焦範本 [64 位元]。
-
選擇 Finish (完成)。
-
-
在COBOL檔案總管中,展開新 BankDemo 專案。
注意
[BANKDEMO main]
方括號表示該項目與本地 BankDemo CodeCommit 存儲庫連接。 -
如果樹狀檢視未顯示 [COBOL程式集]、[撰寫本]、[BMS來源] 和 [JCL檔案] 的項目,請從 BankDemo 專案快顯功能表中選擇 [重新整理]。
-
從 BankDemo 內容功能表中,選擇「內容」/「微型對焦」/「專案設定」/COBOL:
-
選擇「字元集」-ASCII。
-
選擇套用,然後選擇關閉。
-
-
如果BMS和COBOL來源的建置並未立即啟動,請在 [專案] 功能表中簽入 [自動建置] 選項已啟用。
Build 輸出將顯示在 Console 視圖中,並且應該在幾分鐘後完成,其中包含消息
BUILD SUCCESSFUL
和Build finished with no errors
。應用 BankDemo 程序現在應該被編譯並準備好進行本地執行。
創建本地 BankDemo CICS和批處理環境進行測試
-
在COBOL檔案總管中,展開
BANKDEMO / config
。 -
在編輯器中,開啟
BANKDEMO_ED.json
。 -
查找字符串
ED_Home=
並更改路徑以指向企業開發人員項目,如下所示:D:\\<username>\\workspace\\BANKDEMO
。請注意在路徑定義中使用雙斜線 (\\
)。 -
儲存並關閉檔案。
-
選擇伺服器總管。
-
從「預設」內容功能表中,選擇「開啟管理頁面」。「Micro Focus 企業伺服器管理」頁面會在預設瀏覽器中開啟。
-
僅對於 AppStream 2.0 個工作階段,請進行下列變更,以便保留本機企業伺服器區域以進行本機測試:
-
在目錄伺服器/預設值中,選擇 PROPERTIES/組態。
-
將儲存庫位置取代為
D:\<username>\My Files\Home Folder\MFDS
。
注意
每次連接 AppStream 2.0 執行個體後,您必須完成步驟 5-8。
-
-
在目錄伺服器/預設值中,選擇匯入,然後完成下列步驟:
-
在步驟 1:匯入類型中,選擇JSON並選擇下一步。
-
在「步驟 2:上傳」中,按一下以上傳藍色方塊中的檔案。
-
在選擇要上傳的檔案中,輸入:
-
檔案名稱:
D:\<username>\workspace\BANKDEMO\config\BANKDEMO_ED.json
. -
選擇 Open (開啟)。
-
-
選擇 Next (下一步)。
-
在「步驟 3:區域」中清除「清除端點的連接埠」。
-
選擇 Next (下一步)。
-
在「步驟 4:匯入」中,選擇「匯入」。
-
選擇 Finish (完成)。
清單現在會顯示新的伺服器名稱
BANKDEMO
。 -
從企業開發人員啟動BANKDEMO伺服器
-
選擇企業開發人員。
-
在 [伺服器總管] 中,選擇 [預設],然後從內容功能表選擇 [重新整
伺服器清單現在也應該會顯示BANKDEMO。
-
選擇BANKDEMO。
-
從內容功能表中選擇「與專案關聯」,然後選擇BANKDEMO。
-
從內容功能表中選擇 [開始]。
控制台視圖應顯示服務器啟動的日誌。
如果顯示訊息
BANKDEMO CASSI5030I PLTPI Phase 2 List(PI) Processing Completed
,表示伺服器已準備好測試CICSBANKDEMO應用程式。
啟動倫巴 3270 終端機
-
從 Windows 開始,啟動微焦點倫巴 + 桌上型電腦/倫巴 + 桌上型電腦。
-
在歡迎中,選擇 CREATENEWSESSION/大型主機顯示器。
-
在「大型主機顯示器」中,選擇「連線/設定」。
-
在 [工作階段組態] 中,選擇 [連線/TN3270]
-
在 [主機名稱/位址] 中,選擇 [插入] 並輸入 IP 位址
127.0.0.1
。 -
在 Telnet 連接埠中,輸入連接埠
6000
。 -
選擇套用。
-
選擇連線。
CICS歡迎畫面會顯示畫面,其中包含第 1 列訊息:
This is the Micro Focus MFE CICS region BANKDEMO
。 -
按 CTRL + 轉移 +Z 清除屏幕。
執行交 BankDemo易
-
在空白螢幕中,輸入
BANK
。 -
在屏幕 BANK10 中,在用戶 ID 的輸入字段中... :,輸入
guest
並按下輸入。 -
在屏幕 BANK20 中,在計算貸款成本之前的輸入字段中,輸入
/
(正斜杠),然後按 Enter 鍵。 -
在畫面 BANK70 中:
-
在您想借入的金額... :,輸入
10000
。 -
在以... 的利率計算 :,輸入
5.0
。 -
在多少個月... :,輸入
10
。 -
按 Enter。
應該會顯示下列結果:
Resulting monthly payment.............: $1023.06
這樣就完成了企業開發人員的BANKDEMO應用程式設定
-
從企業開發人員停止BANKDEMO服務器
-
在 [伺服器總管] 中,選擇 [預設],然後從內容功能表選擇 [重新整
-
選擇BANKDEMO。
-
從內容功能表中選擇「停止」。
控制台視圖應顯示服務器停止的日誌。
如果顯示訊息
Server: BANKDEMO stopped successfully
,表示伺服器已成功關閉。
練習一:在BANKDEMO申請中加強貸款計算
主題
在這個案例中,您會逐步執行對程式碼進行範例變更、部署和測試程式碼的程序。
貸款部門希望在「貸款計算」屏幕 BANK7 0 上創建一個新字段以顯示「總貸款金額」。這需要更改屏BMS幕 MBANK7 0。 CBL,添加一個新的字段和相應的屏幕處理程序 SBANK7 0P。 CBL與相關的字筆。此外,貸款計算程序在 BBANK7 0P。 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 欄中以 EXER 01 標記。
將貸款分析規則新增至企業開發人員程式碼
在 Micro Focus 企業分析器中定義的分析規則可以從企業分析器導出,並導入到企業開發人員在企業開發人員項目中的源運行相同的分析規則。
-
打開
Window/Preferences/Micro Focus/COBOL/Code Analysis/Rules
. -
選擇編輯... 然後輸入
D:\PhotonUser\My Files\Home Folder\AnalysisRules
包含 rules 檔案的資料夾名稱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:修改CICSBMS地圖和COBOL程序並進行測試
首先,我們將更改BMS地圖MBANK70.BMS
和屏幕處理程序SBANK70P.CBL
和字帖CBANKDAT.CPY
以顯示新字段。為了避免在本練習中不必要的編碼,修改過的來源模組可在D:\PhotonUser\My
Files\Home Folder\BANKDEMO-exercise\Exercise01
資料夾中使用。通常,開發人員會使用代碼分析結果來導航和修改源。如果您有時間並且想要進行手動更改,請使用 * 手動更改中提供的信息進行操作MBANK7。 BMS和 SBANK7 0 P. 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
,請完成以下步驟:
-
對於在BMS
MBANK70.BMS
源代碼中手動更改,請在PAYMENT
字段後添加:-
TXT09 屬性與 TXT 08 相同,INITIAL價值為「總貸款額」
-
TOTAL具有相同的屬性 PAYMENT
-
測試變更
若要測試變更,請重複下列各節中的步驟:
-
此外,您現在還應該看到文本
Total Loan Amount.....................:
。
步驟 3:在COBOL程序中添加總金額計算
在第二步中,我們將更改BBANK70P.CBL
並添加總貸款金額的計算。具有所需更改的準備源可在D:\PhotonUser\My Files\Home
Folder\BANKDEMO-exercise\Exercise01
文件夾中找到。如果您有時間並希望進行手動更改,請使用 BBANK7 0P 中提供的信息進行手動更改。 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,也應該仍然可以從現有CICSCOBOL程序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
陳述式。 -
將游標置於區段名稱內。它將被標記為灰色。
-
從上下文菜單中,選擇重構-> 提取部分/段落編程... 。
-
在「擷取要程式的段落/段落」中,輸入新檔案名稱:。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. MFDIR 集。
-
輸入提交訊息:
Added Total Amount Calculation
。
-
-
選擇提交並推送... 。
-
打開控 CodePipeline 制台並檢查管道執行的狀態。
注意
如果您遇到企業開發人員或團隊功能提交或推送的任何問題,請使用 Git Bash 命令行界面。
清除資源
如果您不再需要為此教學課程建立的資源,請刪除這些資源,以免繼續支付這些資源的費用。請完成下列步驟:
-
刪除 CodePipeline 配管。如需詳細資訊,請參閱《AWS CodePipeline 使用指南》 CodePipeline中的〈刪除管線〉。
-
刪除存 CodeCommit 放庫。如需詳細資訊,請參閱《AWS CodeCommit 使用指南》中的「刪除 CodeCommit存放庫」。
-
刪除 S3; 儲存貯體。如需詳細資訊,請參閱 Amazon 簡單儲存服務使用者指南中的刪除儲存貯體。
-
刪除 AWS CloudFormation 堆疊。如需詳細資訊,請參閱《使用指南》中的〈刪除 AWS CloudFormation 主控台上的堆疊AWS CloudFormation〉。