CICS, IMS 및 호스트 파일에 대한 COBOL 호스트 정의 가져오기
원래 호스트 통합 서버 TI Designer 기능은 메인프레임 프로그래머의 지원을 받아 메타데이터 아티팩트 처음부터 디자인하기 위한 전체 기능으로 도입되었습니다. 나중에 COBOL 또는 RPG 카피북 형식으로 호스트 정의를 가져오는 기능이 추가되어 디자인을 자동화하고 메인프레임 프로그래머의 참여를 줄이는 시나리오를 지원합니다. 수년에 걸쳐 이 기능은 메타데이터 아티팩트 만들기의 주요 옵션이 되었습니다.
사전 요구 사항
Visual Studio 다운로드 및 설치. 설치 후 Visual Studio에서 C++를 사용하여 데스크톱 개발이라는 워크로드도 설치해야 합니다. 그렇지 않으면 HRESULT 0x800A007C 예외 오류가 발생합니다.
Azure Logic Apps용 HIS Designer 다운로드하여 설치합니다. 유일한 필수 구성 요소는 Microsoft .NET Framework 4.8입니다.
호스트 정의를 가져오려는 Visual Studio 호스트 애플리케이션 솔루션 및 프로젝트(CICS 또는 IMS 또는 호스트 파일 솔루션 프로젝트 )
참고
HIS Designer CICS, IMS 또는 호스트 파일 솔루션을 여는지 여부에 따라 다양한 옵션을 제공하고 표시합니다.
CICS 또는 IMS인 통합하려는 기술에 프로그래밍 모델이 작동하는 방식을 이해합니다. 두 플랫폼 모두 서로 다른 요구 사항과 정보를 전달하고 받는 방법이 있습니다. 호스트 정의를 가져오기 전에 적절한 프로그래밍 모델에 대해 알아보세요.
Logic Apps용 HIS Designer 가져오려는 호스트 정의(copybooks)를 가져옵니다. 이 디자이너는 COBOL 및 RPG 카피북을 지원합니다.
COBOL 복사 문서 준비
COBOL 카피북은 기본 COBOL 코딩 규칙을 따라야 합니다. Logic Apps에 대한 HIS Designer 많은 규칙을 적용합니다. 다음 표에서는 기본 규칙을 나열합니다.
열 형식 관측 1–6 시퀀스 번호 이러한 위치에 아무 것도 입력하지 마세요. 7 표시기 별표(*) 또는 슬래시(/)를 사용하여 주석을 코딩합니다. 8-11 여백(영역 A) 77 수준 숫자 및 01 수준 숫자 12-72 B 여백(영역 B) 02 수준 이상용으로 예약됨 73-80 Identification(식별) 여기서는 정의가 허용되지 않습니다. COBOL 또는 RPG 카피북이 선택한 프로그래밍 모델의 요구 사항을 충족하는지 확인합니다.
모든 줄의 끝에 있는 점을 확인합니다. COBOL의 최신 버전에 이 서식이 필요하지 않더라도 표시되는지 확인합니다.
카피북에 REDEFINE가 포함된 경우, 비범죄자를 사용할 수 없는 경우 메인프레임 프로그래머가 사용하려는 호스트 정의를 확인하도록 합니다.
이전 표에 명시된 문자 이외의 문자를 제거합니다. 올바른 수의 문자가 있는지 확인합니다.
COBOL 호스트 정의 가져오기(CICS)
다음 단계에서는 CICS 호스트 애플리케이션 프로젝트에 대한 COBOL 복사 문서를 Logic Apps용 HIS Designer 가져오는 방법을 보여 줍니다. 이 COBOL 프로그램은 CICS ELM Link 프로그래밍 모델을 따릅니다.
Visual Studio에서 CICS 호스트 애플리케이션 솔루션을 열고 Logic Apps용 HIS Designer 자동으로 엽니다.
디자이너의 왼쪽 창에서 구성 요소 노드의 바로 가기 메뉴를 열고호스트 정의가져오기>를 선택합니다.
다음 예제에서 구성 요소 노드의 이름은 NetCInt1입니다.
시스템 가져오기 z COBOL 원본 파일 상자에서 찾아보기를 선택합니다.
가져올 복사 문서를 찾아 선택한 다음 열기를 선택합니다.
다음 예제에서는 가져올 COBOL 프로그램을 보여줍니다.
***************************************************************** ** THIS PROGRAM IS A SAMPLE CICS SERVER THAT DEMONSTRATES A * ** SIMPLE BANKING APPLICATION WHICH FORMATS AND RETURNS AN * ** ARRAY OF ACCOUNT RECORDS THAT WILL CONTAIN EITHER CHECKING OR* ** SAVINGS INFORMATION. * ***************************************************************** IDENTIFICATION DIVISION. PROGRAM-ID. GETAINFO. ENVIRONMENT DIVISION. DATA DIVISION. ***************************************************************** ** VARIABLES FOR INTERACTING WITH THE TERMINAL SESSION * ***************************************************************** WORKING-STORAGE SECTION. LINKAGE SECTION. 01 DFHCOMMAREA. 05 SSN PIC X(9). 05 ACCT-ARRAY OCCURS 2 TIMES. 10 ACCT-NUM PIC X(10). 10 ACCT-TYPE PIC X. 10 ACCT-INFO PIC X(39). 10 CHECKING REDEFINES ACCT-INFO. 15 CHK-OD-CHG PIC S9(3)V99 COMP-3. 15 CHK-OD-LIMIT PIC S9(5)V99 COMP-3. 15 CHK-OD-LINK-ACCT PIC X(10). 15 CHK-LAST-STMT PIC X(10). 15 CHK-DETAIL-ITEMS PIC S9(7) COMP-3. 15 CHK-BAL PIC S9(13)V99 COMP-3. 10 SAVINGS REDEFINES ACCT-INFO. 15 SAV-INT-RATE PIC S9(1)V99 COMP-3. 15 SAV-SVC-CHRG PIC S9(3)V99 COMP-3. 15 SAV-LAST-STMT PIC X(10). 15 SAV-DETAIL-ITEMS PIC S9(7) COMP-3. 15 SAV-BAL PIC S9(13)V99 COMP-3. 15 FILLER PIC X(12). PROCEDURE DIVISION. IF SSN = '111223333' THEN ********************************************************** * SSN = 111223333 IS AN INDICATION TO RETURN A * DISCRIMINATED UNION OF CHECKING AND SAVINGS ACCOUNTS ********************************************************** MOVE 'CHK4566112' TO ACCT-NUM OF ACCT-ARRAY(1) MOVE 'C' TO ACCT-TYPE OF ACCT-ARRAY(1) MOVE SPACES TO ACCT-INFO OF ACCT-ARRAY(1) MOVE 25.00 TO CHK-OD-CHG OF ACCT-ARRAY(1) MOVE 2000.00 TO CHK-OD-LIMIT OF ACCT-ARRAY(1) MOVE 'SAV1234567' TO CHK-OD-LINK-ACCT OF ACCT-ARRAY(1) MOVE '10/31/2005' TO CHK-LAST-STMT OF ACCT-ARRAY(1) MOVE 1 TO CHK-DETAIL-ITEMS OF ACCT-ARRAY(1) MOVE 41852.16 TO CHK-BAL OF ACCT-ARRAY(1) MOVE 'SAV1234567' TO ACCT-NUM OF ACCT-ARRAY(2) MOVE 'S' TO ACCT-TYPE OF ACCT-ARRAY(2) MOVE SPACES TO ACCT-INFO OF ACCT-ARRAY(2) MOVE 4.50 TO SAV-INT-RATE OF ACCT-ARRAY(2) MOVE 5.00 TO SAV-SVC-CHRG OF ACCT-ARRAY(2) MOVE '10/15/2005' TO SAV-LAST-STMT OF ACCT-ARRAY(2) MOVE 1 TO SAV-DETAIL-ITEMS OF ACCT-ARRAY(2) MOVE 146229.83 TO SAV-BAL OF ACCT-ARRAY(2) ELSE ********************************************************** * SSN = 333221111 IS AN INDICATION TO RETURN A * SIMPLE REDEFINITION OF CHECKING ACCOUNTS ONLY ********************************************************** MOVE 'CHK4566112' TO ACCT-NUM OF ACCT-ARRAY(1) MOVE 'C' TO ACCT-TYPE OF ACCT-ARRAY(1) MOVE SPACES TO ACCT-INFO OF ACCT-ARRAY(1) MOVE 25.00 TO CHK-OD-CHG OF ACCT-ARRAY(1) MOVE 2000.00 TO CHK-OD-LIMIT OF ACCT-ARRAY(1) MOVE 'SAV1234567' TO CHK-OD-LINK-ACCT OF ACCT-ARRAY(1) MOVE '10/31/2005' TO CHK-LAST-STMT OF ACCT-ARRAY(1) MOVE 1 TO CHK-DETAIL-ITEMS OF ACCT-ARRAY(1) MOVE 41852.16 TO CHK-BAL OF ACCT-ARRAY(1) MOVE 'CHK7896112' TO ACCT-NUM OF ACCT-ARRAY(2) MOVE 'C' TO ACCT-TYPE OF ACCT-ARRAY(2) MOVE SPACES TO ACCT-INFO OF ACCT-ARRAY(2) MOVE 25.00 TO CHK-OD-CHG OF ACCT-ARRAY(2) MOVE 2000.00 TO CHK-OD-LIMIT OF ACCT-ARRAY(2) MOVE 'SAV7891234' TO CHK-OD-LINK-ACCT OF ACCT-ARRAY(2) MOVE '10/31/2005' TO CHK-LAST-STMT OF ACCT-ARRAY(2) MOVE 1 TO CHK-DETAIL-ITEMS OF ACCT-ARRAY(2) MOVE 41852.16 TO CHK-BAL OF ACCT-ARRAY(2) END-IF. EXEC CICS RETURN END-EXEC.
가져올 복사 문서를 검토합니다. 준비가 되면 다음을 선택합니다.
항목 옵션 상자가 열리고 아티팩트 이름과 프로그램 연결 이름 값으로 채워진 후 다음을 선택합니다.
디자이너는 COBOL 복사 문서에서 생성된 메타데이터 아티팩트입니다.
또한 디자이너는 copybook에 대한 호스트 정의를 생성합니다. 이 호스트 정의에는 제공된 전체 카피북이 포함되지 않지만 아티팩트가 메인프레임 프로그램과 상호 작용하는 데 필요한 필드 및 데이터 형식만 포함됩니다. 이전에 제공된 샘플은 전체 프로그램이지만 HIS Designer 선택한 프로그래밍 모델을 기반으로 필요한 정보만 추출합니다.
HIDX를 생성하려면 모두 저장을 선택합니다.
생성된 HIDX 파일을 찾으려면 호스트 애플리케이션의 폴더로 이동합니다.
COBOL 호스트 정의 가져오기(IMS)
CICS와 IMS는 모두 중요 업무용 프로그램을 호스트하지만 각각 요구 사항이 다릅니다. 다음 단계에서는 IMS 호스트 애플리케이션 프로젝트에 대한 COBOL 복사 문서를 LOGIC Apps용 HIS Designer 가져오는 방법을 보여 줍니다. 이 COBOL 프로그램은 IMS Connect 프로그래밍 모델을 따릅니다.
Visual Studio에서 IMS 호스트 애플리케이션 솔루션을 열고 Logic Apps에 대한 HIS Designer 자동으로 엽니다.
디자이너의 왼쪽 창에서 구성 요소 노드의 바로 가기 메뉴를 열고호스트 정의가져오기>를 선택합니다.
다음 예제에서 구성 요소 노드의 이름은 NetCInt1입니다.
시스템 가져오기 z COBOL 원본 파일 상자에서 찾아보기를 선택합니다.
가져올 복사 문서를 찾아 선택한 다음 열기를 선택합니다.
다음 예제에서는 가져올 COBOL 프로그램을 보여줍니다.
IDENTIFICATION DIVISION. PROGRAM-ID. GETBAL. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. ************************************************************** * USER DATA DEFINITIONS. * ************************************************************** 01 INPUT-AREA. 05 LLI PIC S9(4) COMP VALUE ZERO. 05 ZZI PIC S9(4) COMP VALUE ZERO. 05 TRAN PIC X(7) VALUE SPACES. 05 NAME PIC X(30). 05 ACCNUM PIC X(6). 01 OUTPUT-AREA. 05 LLO PIC S9(4) COMP VALUE ZERO. 05 ZZO PIC S9(4) COMP VALUE ZERO. 05 ACCBAL PIC S9(7)V9(2) COMP-3. 01 IMS-VALUES. 02 END-OF-MSG PIC X(2) VALUE 'QD'. 02 QUEUE-EMPTY PIC X(2) VALUE 'QC'. 02 GU PIC X(4) VALUE 'GU '. 02 ISRT PIC X(4) VALUE 'ISRT'. 02 CHNG PIC X(4) VALUE 'CHNG'. LINKAGE SECTION. 01 IOTP-PCB. 05 IOTP-LTERM PIC X(8). 05 FILLER PIC X(2). 05 IOTP-STATUS PIC X(2). 05 IOTP-PREFIX. 10 IOTP-DATE PIC S9(7) COMP-3. 10 IOTP-TIME PIC S9(7) COMP-3. 10 IOTP-MSG-NUMBER PIC S9(4) COMP. 10 FILLER PIC X(2). 05 IOTP-MOD-NAME PIC X(8). 05 IOTP-USER-ID PIC X(8). PROCEDURE DIVISION. ENTRY 'DLITCBL' USING IOTP-PCB. CALL 'CBLTDLI' USING GU IOTP-PCB INPUT-AREA. IF IOTP-STATUS = END-OF-MSG DISPLAY 'IOTP-STATUS = END-OF-MSG' END-IF. IF IOTP-STATUS = QUEUE-EMPTY DISPLAY 'IOTP-STATUS = QUEUE-EMPTY' END-IF. IF IOTP-STATUS NOT = ' ' DISPLAY 'CALL FAILED IOTP-STATUS = ' IOTP-STATUS END-IF. MOVE 777.12 TO ACCBAL OF OUTPUT-AREA. MOVE LENGTH OF OUTPUT-AREA TO LLO. CALL 'CBLTDLI' USING ISRT IOTP-PCB OUTPUT-AREA. IF IOTP-STATUS NOT = ' ' DISPLAY 'SEND FAILED IOTP-STATUS = ' IOTP-STATUS END-IF. GOBACK.
가져올 복사 문서를 검토합니다. 준비가 되면 다음을 선택합니다.
항목 옵션 상자가 열리고 아티팩트 이름과 트랜잭션 ID 값으로 채워진 후 다음을 선택합니다.
참고
다음 단계에서는 가져오기 기본값 사용 옵션이 선택되지 않았거나 사용할 수 있는지 확인합니다. 이는 IMS 호스트 애플리케이션으로 작업할 때 기본 동작이어야 합니다.
입력 영역 상자가 열리면 입력 영역 노드의 모든 항목을 선택한 다음, 다음을 선택합니다.
출력 영역 상자가 열리면 출력 영역 노드의 모든 항목을 선택한 다음, 다음을 선택합니다.
반환 값 상자가 열리면 출력 영역 노드에서 반환 값에 대한 항목을 선택한 다음, 다음을 선택합니다.
데이터 테이블, 구조체 및 공용 구조체 상자가 열리면 데이터 테이블 및 구조에 사용할 그룹을 선택한 다음, 다음을 선택합니다.
이 예제에서는 선택 항목이 필요하지 않으므로 항목을 선택하지 않습니다.
LL 필드 영역 상자가 열리면 트랜잭션에서 제외해야 하는 LL 필드를 선택합니다. 준비가 되면 다음을 선택합니다.
ZZ 필드 영역 상자가 열리면 트랜잭션에서 제외해야 하는 ZZ 필드를 선택합니다. 준비가 되면 다음을 선택합니다.
TRANCODE 필드 영역 상자가 열리면 트랜잭션에서 제외해야 하는 TRANCODE 필드를 선택합니다. 준비가 되면 마침을 선택합니다.
디자이너는 COBOL 복사 문서에서 생성된 메타데이터 아티팩트가 표시됩니다.
또한 디자이너는 copybook에 대한 호스트 정의를 생성합니다. 이 호스트 정의에는 제공된 전체 카피북이 포함되지 않지만 아티팩트가 메인프레임 프로그램과 상호 작용하는 데 필요한 필드 및 데이터 형식만 포함됩니다. 이전에 제공된 샘플은 전체 프로그램이지만 HIS Designer 선택한 프로그래밍 모델을 기반으로 필요한 정보만 추출합니다.
모두 저장을 선택하여 HIDX를 생성합니다.
생성된 HIDX 파일을 찾으려면 호스트 애플리케이션의 폴더로 이동합니다.
COBOL 호스트 파일 정의 가져오기(호스트 파일)
IBM 호스트 파일은 여러 형식을 가지며 메인프레임 또는 미드레인지 시스템에 존재할 수 있습니다. 각각에는 고유한 형식과 특성이 있습니다. 호스트 파일 데이터를 사용하는 메인프레임 및 미드레인지 애플리케이션을 현대화하거나 마이그레이션하기 위한 수요가 증가하고 있습니다. 한 가지 예는 VSAM(가상 스토리지 액세스 방법) 파일을 Azure로 마이그레이션하는 것입니다. 이러한 요구로 이러한 파일에 액세스하고 최신 솔루션에 통합하는 사용 사례가 점점 더 일반화되고 있습니다.
다음 단계에서는 호스트 파일 프로젝트에 대한 COBOL 복사 문서를 Logic Apps용 HIS Designer 가져오는 방법을 보여 줍니다. 이 COBOL 복사 문서는 간단한 VSAM 파일을 나타냅니다. 가져오기 마법사는 구조체와 공용 구조체를 만듭니다. copybook을 가져온 후 테이블을 만들고 올바른 스키마에 할당할 수 있습니다.
Visual Studio에서 호스트 파일 솔루션을 열고 Logic Apps용 HIS Designer 자동으로 엽니다.
디자이너의 왼쪽 창에서 구성 요소 노드의 바로 가기 메뉴를 열고호스트 정의가져오기>를 선택합니다.
다음 예제에서 구성 요소 노드의 이름은 HostFileDefinition1입니다.
시스템 가져오기 z COBOL 원본 파일 상자에서 찾아보기를 선택합니다.
가져올 복사 문서를 찾아 선택한 다음 열기를 선택합니다.
다음 예제에서는 가져올 COBOL 프로그램을 보여줍니다.
****************************************************************** *HIS TRANSACTION DESIGNER EXPORT, 9.0 *DATA DECLARATION GENERATED ON 9/23/2013 5:21:51 PM ****************************************************************** *LIBRARY NAME.............CustomerDatabaseZOS.HIDX *DESCRIPTION..............NONE AVAILABLE ****************************************************************** 01 CUSTOMER-RECORD. 05 CUSTOMER-NAME PIC X(30). 05 CUSTOMER-SSN PIC X(9). 05 CUSTOMER-ADDRESS. 10 CUSTOMER-STREET PIC X(20). 10 CUSTOMER-CITY PIC X(10). 10 CUSTOMER-STATE PIC X(4). 10 CUSTOMER-ZIP PIC 9(5). 05 CUSTOMER-PHONE PIC X(13). 05 CUSTOMER-ACCESS-PIN PIC X(4).
시스템 z COBOL 원본 파일 가져오기 상자에서 가져올 복사 문서를 검토합니다.
호스트 정의에 대한 선택 항목이 REDEFINE, Importer 기본값 사용 및 들여쓰기에서 구조 생성에 대해 선택되어 있음을 확인합니다. 준비가 되면 다음을 선택합니다.
디자이너는 COBOL 복사 문서에서 생성된 메타데이터 아티팩트가 표시됩니다. 이 아티팩트가 불완전하므로 호스트 파일을 반영하는 테이블을 하나 이상 만들어야 합니다.
구성 요소 노드 트리에서 테이블 바로 가기 메뉴를 열고 테이블 추가를 선택합니다.
새 테이블의 바로 가기 메뉴를 열고 속성을 선택합니다. 속성 창에서 다음 속성을 업데이트합니다.
속성 설명 별칭 테이블 이름(예: CUSTOMER) 호스트 파일 이름 호스트 파일의 메인프레임 또는 미드레인지 시스템 이름(예: HISDEMO)입니다. Nwind. 고객 스키마 이전에 가져온 스키마(예: CUSTOMER_RECORD 다음 예제에서는 업데이트된 테이블 속성을 보여줍니다.
다음 예제에서는 완료된 호스트 파일의 메타데이터 아티팩트입니다.
HIDX를 생성합니다. 파일에서 모두 저장을 선택합니다.
생성된 HIDX 파일을 찾으려면 호스트 애플리케이션의 폴더로 이동합니다.