2016-06-19 2 views
0

JCL에서 DD 이름과 함께 지정된 실제 DSN 이름이 ZOS에서 파일을 처리하는 일반적인 방법입니다.JCL에서 환경 변수 지정

그러나 FILE CONTROL에 변수 DD 이름을 지정하고 SETENV를 사용하여 프로그램에서 DSN을 설정할 수도 있습니다. 예 : How to set environment variables and dynamic file declaration

JCL을 사용하여 환경 변수를 설정하고 GETENV를 사용하여 프로그램에서 외부 변수에 액세스하는 방법이 있습니까? (Linux의 경우 EXPORT 또는 Windows의 SET과 유사)?

+0

내가 묻고있는 내용을 묻는다면, 아니오. 질문하는 내용을 묻지 않는다면, 질문을 명확히하십시오. 기억하십시오, 당신이 의미하는 바를 알고 있습니다, 우리는 당신이 그것을 정확하게 설명 할 수 있는지를 안다. 당신이 묻는 질문은 "SETENV (또는 다른 것)를 사용하여 JCL 심볼을 변경할 수 있습니까 ** 그 질문이 **라면 대답은 아니오입니다. 전체 JCL 스트림은"변환/해석 "(CI) 처리를위한 준비의 일부로서 처리의 일부가 아닌 JCL이 시작될 때 JCL은 더 이상 존재하지 않으므로 아무 것도 변경할 수 없습니다. –

+0

이것은 오타였습니다. 프로그램에서 GETENV 사용을 의미했습니다. , – cobp

+2

아, 질문 : GETENV를 사용하여 이미 논의 된 PARM 대신 JCL 기호의 해결 된 값을 내 프로그램으로 가져올 수 있습니까? GETENV 사용에 대한 자세한 내용을 포함 할 수 있습니까? –

답변

1

환경 변수를 설정하기 위해 _CEE_ENVFILE 환경 변수를 사용하여 DD 또는 데이터 세트 이름을 지정할 수 있습니다. 나는 CET 런타임 함수 인 GETENV를 사용하는 것이 SETENV를 사용하는 것만 큼 간단하다고 가정합니다.

PARM=('ENVAR("_CEE_ENVFILE=DD:STDENV")/') 
+0

하지만 GETENV가 COBOL 프로그램에서 제대로 작동하는지 의심 스럽습니다. 문자 래치 포인터를 반환해야하므로 C 래퍼가 필요합니까? – cobp

+0

CEEENV는 COBOL https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.ceea300/clcenv.htm에서 환경 변수를 가져 오거나 설정하는 데 더 좋은 인터페이스입니다. –

+0

우리 사이트의 Zos 버전이 훨씬 오래되었으므로 CEEENV를 사용할 수 없습니다. 하지만 GETENV에 대한 C 래퍼 (2 개 매개 변수 사용)는 올바르게 작동합니다. – cobp

1

당신은 EXPORT 에드 JCL 기호의 값을 검색 할 CEEGTJS 언어 환경 (LE) 호출 가능 서비스를 사용할 수 있습니다.

z/OS에서 프로그래밍하는 사람이라면 누구나 Language Environment (LE) Callable Services에 익숙해 지길 권한다. LE 호출 가능 서비스는 z/OS의 일부이며 C, C++, COBOL, PL/I 및 어셈블러로 작성된 모든 응용 프로그램에서 사용할 수 있으며 documented restrictions입니다.

+0

내가 사용하는 Zos 버전이 너무 오래되었습니다. 따라서이 솔루션은 저에게 적합하지 않습니다. 감사. – cobp