REXX/CLIST 일괄 프로그램(ISPF 없음)을 사용하여 구성원을 어떻게 복사합니까?

StackOverflow https://stackoverflow.com/questions/1671578

  •  13-09-2019
  •  | 
  •  

문제

z/OS에서는 REXX 또는 CLIST 스크립트를 작성하여 하나의 순차 데이터 세트를 다른 순차 데이터 세트에 복사한 다음 다른 스크립트(REXX)를 실행하려고 합니다.다른 스크립트는 특정 SDS가 존재할 것으로 예상하며 두 번째 스크립트를 실행하기 전에 많은 옵션 중 하나를 해당 멤버에 복사할 수 있기를 원합니다.이것은 TSO에서 온 것이므로 멋진 ISPF 자료에 접근할 수 없습니다.

그래서 기본적으로:

Copy 'level1.level2.name.type1' to 'level1.level2.name'
runother p1 p2 p3

그만큼 runother Rexx 스크립트는 'level1.level2.name'을 사용하여 자체 마법을 수행합니다. 저는 각 가능성에 대해 서로 다른 이름을 제공할 뿐입니다.

따라서 'level1.level2.name.42'를 복사하는 'xx42'라는 스크립트가 필요하며 42 이외의 값에 대해 이를 수정할 수 있습니다.더 나은 방법은 해당 스크립트를 매개변수화하여 사용할 수 있도록 하는 것입니다.

xx 42 p1 p2 p3

또는

xx 27 p1 p2 p3

각 값에 대한 스크립트를 사용하는 대신.이는 지정된 SDS를 복사한 다음 매개변수를 전달합니다. p1, p2 그리고 p3 에 이르기까지 runother.

도움이 되었습니까?

해결책 2

약간의 충격을받은 후에는 필요한 데이터 세트를 수동으로 할당하고 실행할 수 있다고 생각합니다. IEBGENER 사본을 수행하려면 :

/* REXX */

"ALLOC FI(SYSPRINT) DUMMY REUSE"
"ALLOC FI(SYSIN) DUMMY REUSE"
"ALLOC FI(SYSUT1) DA('LEVEL1.LEVEL2.NAME.42') SHR REUSE"
"ALLOC FI(SYSUT2) DA('LEVEL1.LEVEL2.NAME') SHR REUSE"
"IEBGENER"
RC2 = RC
"FREE FI(SYSUT1)"
"FREE FI(SYSUT2)"
"FREE FI(SYSPRINT)"
"FREE FI(SYSIN)"
IF RC2 ^= 0 THEN DO
  SAY "IEBGENER FAILED."
  END
ELSE DO
  RUNOTHER P1 P2 P3
  END

다른 팁

다른 내용을 검색하다가 이런 글을 발견했습니다.(즉.이 답변을 공식화하는 데 2년이 걸리지 않았으며 미래의 메인프레임 사용자(우리가 아직 존재합니까?)가 이것이 유용할 것이라고 생각했습니다.

SMCOPY를 수행할 수도 있습니다.

address TSO "SMCOPY FDS('LEVEL1.LEVEL2.NAME.42') TDS('LEVEL2.LEVEL2.NAME')"

FDS - 데이터세트에서, TDS - 데이터세트로.TDS가 없으면 반환 코드 4가 표시되지만 복사본은 실행됩니다.SMCOPY를 사용하여 라이브러리 구성원을 복사할 수도 있습니다.

정렬을 사용하여 Sortin에서 Sortout으로 사본을 수행 할 수도 있습니다. 매개 변수가있는 Proc에 JCL을 랩핑하거나 설정 명세서 등을 사용 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top