ACSAPI

ACSAPI는 ACS(Application Control Support system) 응용 프로그램에서 메시지를 처리하기 위한 기능이다. 본 부록에서는 현재 OpenFrame AIM에서 지원하고 있는 ACSAPI의 각 커멘드와 사용법에 대해서 설명한다.

1. MSGGET

MSGGET 커맨드는 워크스테이션에서 입력된 메시지를 수신하는 커맨드로 수신 메시지가 응용 프로그램의 입력 메시지 영역에 통지된다.

다음은 ACSAPI 커맨드의 사용 예제이다.

WORKING-STORAGE SECTION.
01 SYNC-DCOM.
   COPY COBSDCOM.

01 IN-DATA.
   02 FILLER         PIC S9(5) COMP VALUE 128.
   02 FILLER         PIC S9(5) COMP VALUE 0.
   02 DATA           PIC X(128).

   COPY CBACSAPI.

01 ACSSPA            PIC X(128).
...
PROCEDURE DIVISION.
CALL 'ACSAPI' USING MSGGET SYNC-DCOM IN-DATA ACSSPA.
  • 호출 형식

    CALL 'ACSAPI' MSGGET, DCOM, 입력 메시지 영역[, ACSSPA].
  • 파라미터

    다음은 MSGGET 커맨드를 사용하는 경우 설정하는 각 항목에 대한 설명이다.

    파라미터 설명

    MSGGET

    MSGGET 커맨드의 매크로 값인 "MSGGET"을 지정한다.

    DCOM

    응용 프로그램의 API 통신영역으로 SYNC-DCOM과 ASYNC-DCOM 중 하나를 지정한다.

    • SYNC-DCOM : 제어권이 있는 통신일 경우 지정하며 응용 프로그램 안에 반드시 1개가 필요하다.

    • ASYNC-DCOM : 제어권이 없는 통신일 경우 지정하며 임의로 필요한 만큼 기술한다.

    입력 메시지 영역

    AIM으로부터 수신한 데이터를 저장할 메시지 영역 이름을 지정한다.

    SPA

    SYNC-DCOM을 사용할 경우 SPA 데이터를 저장할 영역의 이름을 지정한다.

    • SYNC-DCOM 일 때, SPA 영역은 생략 가능하다.

    • ASYNC-DCOM일 때, SPA 영역을 지정할 수 없다.

2. MSGPUT

MSGPUT 커맨드는 응용 프로그램에서 송신한 메시지를 워크스테이션에 출력하는 커맨드로, 응용 프로그램의 출력 메시지 영역에 저장한 내용이 워크스테이션에 출력된다.

다음은 MSGPUT 커맨드의 사용 예제이다.

WORKING-STORAGE SECTION.
01 SYNC-DCOM.
   COPY COBSDCOM.

01 OUT-DATA.
   02 FILLER         PIC S9(5) COMP VALUE 128.
   02 FILLER         PIC S9(5) COMP VALUE 0.
   02 DATA           PIC X(128).

   COPY CBACSAPI.

01 ACSSPA            PIC X(128).
...
PROCEDURE DIVISION.
    MOVE     SPACE   TO    SMODE  OF SYNC-DCOM.
    MOVE     SPACE   TO    OPTC   OF SYNC-DCOM.
    MOVE    'FMT001' TO    FMID   OF SYNC-DCOM.
CALL 'ACSAPI' USING MSGPUT SYNC-DCOM OUT-DATA ACSSPA.
  • 호출 형식

    CALL 'ACSAPI' MSGPUT, DCOM, 출력 메시지 영역[, ACSSPA].
  • 파라미터

    다음은 MSGPUT 커맨드를 사용하는 경우 설정하는 각 항목에 대한 설명이다.

    파라미터 설명

    MSGPUT

    MSGPUT 커맨드의 매크로 값인 "MSGPUT"을 지정한다.

    DCOM

    응용 프로그램의 API 통신영역으로 SYNC-DCOM을 지정한다.

    • SYNC-DCOM : 제어권이 있는 통신 일 경우 지정한다.

    • ASYNC-DCOM : 제어권이 없는 통신에 지정하기 때문에 사용해서는 안된다.

    출력 메시지 영역

    발신할 데이터가 저장된 메시지 영역 이름을 지정한다.

    SPA

    SYNC-DCOM을 사용할 경우 워크스테이션으로 전송할 SPA 데이터 영역의 이름을 지정한다.

    • SPA 영역은 생략 가능하다.

    • 세션 종료 시, DCOM의 SPAL에 -1을 설정한다.

3. SWITCH

SWITCH 커맨드는 응용 프로그램 간 통신을 수행하는 커맨드로, 응용 프로그램의 출력 메시지 영역의 내용이 다른 응용 프로그램의 입력 메시지 영역에 전송된다.

다음은 SWITCH 커맨드의 사용 예제이다.

WORKING-STORAGE SECTION.
01 SYNC-DCOM.
   COPY COBSDCOM.

01 OUT-DATA.
   02 FILLER         PIC S9(5) COMP VALUE 128.
   02 FILLER         PIC S9(5) COMP VALUE 0.
   02 DATA           PIC X(128).

   COPY CBACSAPI.

01 ACSSPA            PIC X(128).
...
PROCEDURE DIVISION.
    MOVE    'APL001'  TO    NAME  OF  SYNC-DCOM.
    MOVE     24       TO    MSGL  OF  SYNC-DCOM.
    MOVE    SPACE     TO    OPTC  OF  SYNC-DCOM.
CALL 'ACSAPI' USING SWITCH SYNC-DCOM OUT-DATA ACSSPA.
  • 호출 형식

    CALL 'ACSAPI' SWITCH, DCOM, 출력 메시지 영역[, ACSSPA].
  • 파라미터

    다음은 SWITCH 커맨드를 사용하는 경우 설정하는 각 항목에 대한 설명이다.

    파라미터 설명

    SWITCH

    SWITCH 커맨드의 매크로 값인 "SWITCH"를 지정한다.

    DCOM

    응용 프로그램의 API 통신영역으로 SYNC-DCOM과 ASYNC-DCOM 중 하나를 지정한다.

    • SYNC-DCOM : 제어권이 있는 통신 일 경우 지정한다.

    • ASYNC-DCOM : 제어권이 없는 통신일 경우 지정한다.

    출력 메시지 영역

    발신할 데이터가 저장된 메시지 영역 이름을 지정한다.

    SPA

    SYNC-DCOM을 사용할 경우 SPA 데이터를 저장할 영역의 이름을 지정한다.

    • SYNC-DCOM 일 때, SPA 영역은 생략 가능하다.

    • ASYNC-DCOM일 때, SPA 영역을 지정할 수 없다.

4. VGET

VGET 커맨드는 응용 프로그램에서 VSAM 데이터셋 레코드를 입력하는 커맨드로, 현재는 KSDS 형식의 데이터셋만 지원한다.

다음은 VGET 커맨드의 사용 예제이다.

WORKING-STORAGE SECTION.
01 VCOM.
   COPY COBVCOM.

01 DD-NAME           PIC X(8) VALUE 'VSAMDAT '.
01 INPUT-DATA.
   02 IN-KEY.
   02 IN-DATA           PIC X(128).

   COPY CBACSAPI.
...
PROCEDURE DIVISION.
    MOVE    'DIR'    TO    VOPTCD02.
    MOVE    'KEQ'    TO    VOPTCD05.
    MOVE    'FWD'    TO    VOPTCD09 .
    MOVE     200     TO    VAREALEN.
    MOVE     9       TO    VKEYLEN.
CALL 'ACSAPI' USING VGET DD-NAME VCOM INPUT-DATA IN-KEY.
  • 호출 형식

    CALL 'ACSAPI' VGET, DD 이름, VCOM, 입력 레코드 이름[, 엑세스 키].
  • 파라미터

    다음은 VGET 커맨드를 사용하는 경우 설정하는 각 항목에 대한 설명이다.

    파라미터 설명

    VGET

    VGET 커맨드의 매크로 값인 "VGET"를 지정한다.

    DD 이름

    엑세스하려는 데이터셋의 이름을 지정한다. 8바이트 문자열로 공백이 포함된다.

    VCOM

    VCOM(VSAM-Communication Area) 영역의 이름을 지정한다.

    입력 레코드 이름

    VSAM 데이터셋에서 읽어온 데이터를 저장할 입력 레코드 영역의 이름을 지정한다.

    엑세스 키

    엑세스 키가 저장된 영역의 이름을 지정한다.

5. VPUT

VPUT 커맨드는 응용 프로그램에서 VSAM 데이터셋 레코드를 출력하는 커맨드이다.

다음은 VPUT 커맨드의 사용 예제이다.

WORKING-STORAGE SECTION.
01 VCOM.
   COPY COBVCOM.

01 DD-NAME           PIC X(8) VALUE 'VSAMDAT '.
01 OUTPUT-DATA.
   02 OUT-KEY.
   02 OUT-DATA       PIC X(128).

   COPY CBACSAPI.
...
PROCEDURE DIVISION.
CALL 'ACSAPI' USING VPUT DD-NAME VCOM OUTPUT-DATA OUT-KEY.
  • 호출 형식

    CALL 'ACSAPI' VPUT DD 이름, VCOM, 출력 레코드 이름[, 엑세스 키].
  • 파라미터

    다음은 VPUT 커맨드를 사용하는 경우 설정하는 각 항목에 대한 설명이다.

    파라미터 설명

    VPUT

    VPUT 커맨드의 매크로 값인 "VPUT"를 지정한다.

    DD 이름

    엑세스하려는 데이터셋의 이름을 지정한다. 8바이트 문자열로 공백이 포함된다.

    VCOM

    VCOM(VSAM-Communication Area) 영역의 이름을 지정한다.

    출력 레코드 이름

    VSAM 데이터셋에 저장할 출력레코드 영역의 이름을 지정한다.

    ACCESS-KEY

    엑세스 키가 저장된 영역의 이름을 지정한다.

6. DSREAD

DSREAD 커맨드는 응용 프로그램에서 BDAM 데이터셋 레코드를 입력하는 커맨드이다.

다음은 DSREAD 커맨드의 사용 예제이다.

WORKING-STORAGE SECTION.
01 DD-NAME           PIC X(8) VALUE 'BDAMDAT '.
01 IN-DATA.
   02 DATA-F           PIC X(128).
01 DD-ADDR             PIC 9(8) COMP.

   COPY CBACSAPI.
...
PROCEDURE DIVISION.
CALL 'ACSAPI' USING DSREAD DD-NAME IN-DATA DD-ADDR.
  • 호출 형식

    CALL 'ACSAPI' DSREAD, DD-NAME, 입력 데이터 영역 이름, RBN.
  • 파라미터

    다음은 DSREAD 커맨드를 사용하는 경우 설정하는 각 항목에 대한 설명이다.

    파라미터 설명

    DSREAD

    DSREAD 커맨드의 매크로 값인 "DSREAD"를 지정한다.

    DD-NAME

    처리할 BDAM 데이터셋의 이름을 지정한다.

    입력 데이터 영역 이름

    BDAM 데이터셋에서 읽어온 데이터를 저장할 입력데이터 영역 이름을 지정한다.

    RBN

    RBN(Related Block Number) 값을 지정한다.

7. DSWRITE

DSWRITE 커맨드는 응용 프로그램에서 BDAM 데이터셋 레코드를 출력하는 커맨드이다.

다음은 DSWRITE 커맨드의 사용 예제이다.

WORKING-STORAGE SECTION.
01 DD-NAME           PIC X(8) VALUE 'BDAMDAT '.
01 OUT-DATA.
   02 DATA-F           PIC X(128).
01 DD-ADDR             PIC 9(8) COMP.

   COPY CBACSAPI.
...
PROCEDURE DIVISION.
CALL 'ACSAPI' USING DSWRITE DD-NAME OUT-DATA DD-ADDR.
  • 호출 형식

    CALL 'ACSAPI' DSWRITE, DD-NAME, 출력 데이터 영역 이름, RBN.
  • 파라미터

    다음은 DSWRITE 커맨드를 사용하는 경우 설정하는 각 항목에 대한 설명이다.

    파라미터 설명

    DSWRITE

    DSWRITE 커맨드의 매크로 값인 "DSWRITE"를 지정한다.

    DD-NAME

    처리할 BDAM 데이터셋의 이름을 지정한다.

    출력 데이터 영역 이름

    BDAM 데이터셋에 저장할 출력데이터 영역의 이름을 지정한다.

    RBN

    RBN(Related Block Number) 값을 지정한다.

8. URGPUT

URGPUT 커맨드는 워크스테이션에 긴급 메시지 출력을 수행하는 커맨드로, 응용 프로그램의 출력 메시지 영역의 내용이 워크스테이션으로 송신된다.

다음은 URGPUT 커맨드의 사용 예제이다.

WORKING-STORAGE SECTION.
01 ASYNC-DCOM.
   COPY COBSDCOM.

01 OUT-DATA.
   02 PUT-MSG           PIC X(128).

   COPY CBACSAPI.
...
PROCEDURE DIVISION.
    MOVE    SPACE      TO  OPTC OF ASYNC-DCOM.
    MOVE    'FMT001'   TO  FMID OF ASYNC-DCOM.
    MOVE    'WS0001'   TO  NAME OF ASYNC-DCOM.
CALL 'ACSAPI' USING URGPUT ASYNC-DCOM PUT-MSG.
  • 호출 형식

    CALL 'ACSAPI' URGPUT, DCOM, 출력 메시지 영역 이름.
  • 파라미터

    다음은 URGPUT 커맨드를 사용하는 경우 설정하는 각 항목에 대한 설명이다.

    파라미터 설명

    URGPUT

    URGPUT 커맨드의 매크로 값인 "URGPUT"를 지정한다.

    DCOM

    응용 프로그램의 API 통신영역으로 ASYNC-DCOM을 지정한다. SYNC-DCOM은 사용할 수 없다.

    출력 메시지 영역 이름

    긴급 메시지가 저장된 출력 메시지 영역 이름을 지정한다.

9. ACSEXT

ACSEXT(또는 XTRNAL) 커맨드는 다른 ACS 또는 AIM 시스템의 응용 프로그램에 메시지를 보내기 위한 커맨드이다.

다음은 ACSEXT 커맨드의 사용 예제이다.

WORKING-STORAGE SECTION.
01 ASYNC-DCOM.
   COPY COBSDCOM.

01 OUT-DATA.
   02 FILLER         PIC S9(5) COMP VALUE 128.
   02 FILLER         PIC S9(5) COMP VALUE 0.
   02 DATA           PIC X(128).

   COPY CBACSAPI.
...
PROCEDURE DIVISION.
    MOVE    SPACE    TO  NAME  OF ASYNC-DCOM.
    MOVE   'APL001'  TO  SNAME OF ASYNC-DCOM.
    MOVE    128      TO  MSGL  OF ASYNC-DCOM.
    MOVE    SPACE    TO  OPTC  OF ASYNC-DCOM.
CALL 'ACSAPI' USING ACSEXT ASYNC-DCOM OUT-DATA.
  • 호출 형식

    CALL 'ACSAPI' ACSEXT(또는 XTRNAL), DCOM, 출력메시지.
  • 파라미터

    다음은 ACSEXT(또는 XTRNAL) 커맨드를 사용하는 경우 설정하는 각 항목에 대한 설명이다.

    파라미터 설명

    ACSEXT(또는 XTRNAL)

    ACSEXT 커맨드의 매크로 값인 "ACSEXT" 또는 XTRNAL 커맨드의 매크로 값인 "XTRNAL"을 지정한다.

    DCOM

    응용 프로그램의 API 통신 영역으로 ASYNC-DCOM을 지정한다. SYNC-DCOM은 사용할 수 없다.

    출력메시지

    다른 시스템에 전달할 메시지가 저장된 출력 메시지 영역 이름을 지정한다.

10. ACSNOTE

ACSNOTE 커맨드는 응용 프로그램에서 비정상 종료 출구 루틴에서 사용되며 비정상 출구 루틴은 비정상 원인을 분석하기 위한 정보를 통지한다.

다음은 ACSNOTE 커맨드의 사용 예제이다.

WORKING-STORAGE SECTION.
01 ABEND-DATA.
   02 APLNAME          PIC X(8).
   02 FILLER           PIC X(4).
   02 ABEND-LIMIT      PIC 9(02) COMP.
   02 ABEND-COUNT      PIC 9(02) COMP.

   COPY CBACSAPI.
...
PROCEDURE DIVISION.
CALL 'ACSAPI' USING ACSNOTE ABEND-DATA.
  • 호출 형식

    CALL 'ACSAPI' ACSNOTE, ABEND 알림 영역.
  • 파라미터

    다음은 ACSNOTE 커맨드를 사용하는 경우 설정하는 각 항목에 대한 설명이다.

    파라미터 설명

    ACSNOTE

    ACSNOTE 커맨드의 매크로 값인 "ACSNOTE"를 지정한다.

    ABEND 알람 영역

    ACS 정보의 통지 영역을 지정하며 통지 영역에는 애플리케이션 이름, ABEND LIMIT 값 및 ABEND 횟수를 포함한다.

11. APABEND

APABEND 커맨드는 응용 프로그램을 비정상적으로 종료하는 커맨드이다.

다음은 APABNED 커맨드의 사용 예제이다.

WORKING-STORAGE SECTION.
   COPY CBACSAPI.
...
PROCEDURE DIVISION.
CALL 'ACSAPI' USING APABEND.
  • 호출 형식

    CALL 'ACSAPI' APABEND.
  • 파라미터

    다음은 APABEND 커맨드를 사용하는 경우 설정하는 각 항목에 대한 설명이다.

    파라미터 설명

    APABEND

    APABEND 커맨드의 매크로 값인 "APABEND"를 지정한다.