call 또는 transfer 문의 특수 매개변수에 대한 참조 정보

다음과 같은 작업을 수행할 수 있습니다.
  • call 문을 통해 텍스트 또는 인쇄 양식 전달
  • call 또는 transfer 문을 통해 시스템 변수 dliLib.psbData 전달
  • call 문을 통해 PCB 레코드 전달

세부사항은 다음 절에 제공되어 있습니다.

call에서 전달되는 텍스트 또는 인쇄 양식의 형식

call을 통해 전달하는 텍스트 또는 인쇄 양식은 각 필드 데이터 컨텐츠 영역에 선행하는 8바이트의 부속 필드로 정의됩니다. 부속 필드의 처음 6바이트는 공백으로 설정됩니다. 부속 필드의 마지막 2바이트는 데이터의 길이를 포함합니다. 필드 길이는 양식에 정의된 필드의 길이로 설정됩니다. 이는 8바이트 접두부를 포함하지 않습니다. 호출 대상 프로그램의 수신 구조가 양식이 아닌 경우, 이 구조에는 각 데이터 항목 앞에 8바이트의 공간이 있어야 합니다. 호출 대상 프로그램은 전달된 양식의 변수 필드에 있는 데이터만 변경할 수 있습니다. 예를 들어, 호출 대상 프로그램은 양식 변수의 속성을 변경할 수 없습니다.

그림 1. call 문을 사용하여 전달되는 양식 영역의 형식
부속 필드에는 6바이트의 공백과 양식 필드의 길이를 포함하는 2바이트가 있습니다.

양식을 AIX® 시스템에서 비AIX 시스템으로 매개변수로서 전달하는 경우 2바이트 2진 필드는 8바이트 필드의 세 번째 바이트부터 시작되는 2바이트 경계에 맞춰져야 합니다(전달 방향이 반대인 경우도 마찬가지).

dliLib.psbData 구조의 형식

EGL로 생성된 COBOL 프로그램은 프로그램 간에 PSB 정보를 전달하는 데 dliLib.psbData 구조를 사용합니다. dliLib.psbData에 대한 추가 정보는 온라인 도움말 시스템을 참조하십시오. dliLib.psbData는 8바이트의 PSB 이름과 이를 따르는 4바이트의 주소로 구성되는 12바이트 구조입니다.

CICS®에서 주소는 사용자 인터페이스 블록(UIB)을 가리킵니다. UIB의 길이는 6바이트입니다. 처음 4바이트는 PSB에 대한 PCB 주소 목록의 주소를 포함합니다. 마지막 2바이트는 상태 정보(예: PSB의 상태 정보 포함 여부에 대한 표시)를 포함합니다.

비CICS 시스템에서 주소는 시뮬레이션된 UIB를 가리킵니다. 시뮬레이션된 UIB의 길이는 6바이트입니다. 처음 4바이트는 PSB에 대한 PCB 주소 목록의 주소를 포함합니다. 마지막 2바이트는 2진 0을 포함해야 합니다. PCB 주소 목록은 IMS™ 또는 DL/I 리젼 제어기가 DL/I 실행 단위의 첫 번째 프로그램을 호출할 때 레지스터 1이 가리킨 목록이어야 합니다.

아래 그림은 dliLib.psbData의 형식을 보여줍니다.

그림 2. dliLib.psbData의 형식
dliLib.psbData의 형식

PCBRecord의 형식

호출 대상 프로그램은 DL/I 호출의 실제 DL/I PCB를 가리켜야 하므로 PCB 레코드 매개변수는 항상 4바이트 포인터를 사용하여 전달됩니다. 호출 대상 프로그램은 PCB 사본을 사용할 수 없습니다. COMMDATA가 지정되면 이 4바이트 포인터는 COMMAREA에서 PCB 레코드 인수가 점유할 위치로 이동됩니다.

위 고려사항은 AIBTDLI 및 CBLTDLI 인터페이스에 모두 적용됩니다. @DLI 시스템 특성에 대응하는 callInterface 필드에 AIBTDLI 인터페이스(기본값)를 지정한 경우 EGL은 AIB 제어 블록을 사용하여 AIB PCB 이름에 해당하는 PCB 주소를 검색한 후 이 주소에 대해 CBLTDLI 호출을 실행합니다.