2013-08-14 4 views
1

파일을 ftp로 매일 배달합니다. 이 파일은 매일 같은 이름이 아닙니다. 그것은 창조의 날짜와 시간을 가지고 있습니다. 예를 들어 오늘 파일의 이름은 20130814_XX_YY_20130814152345이고 15:23:45에 작성되었으며 내일 파일의 이름은 20130815_XX_YY_20130815152421입니다. _XX_YY_는 항상 같지만 시간은 매일 바뀝니다.ftp에서 파일을 언로드하고 호스트 이름을 바꿉니다.

이 파일을 변수 이름으로 가져 와서 호스트 파일로 이름을 바꾸는 호스트 jcl을 만들고 싶습니다. 어떻게해야합니까?

는 감사 Chuchito

+0

@ppeterka, 질문을 이해하는 데 문제가 없으므로 대부분의 메인 프레임 프로그래머가 생각할 것입니다. 메인 프레임 태그를 추가하면 더 좋을 것입니다. –

+0

@BruceMartin [SO]에 오신 것을 환영합니다. 또한 [FAQ]를 읽어야합니다.이 질문은 어떤 노력도 나타내지 않습니다. 필자는 메인 프레임 프로그래머가 아니더라도 질문을 이해할 수 있습니다. 그러나, 나는 문제를 해결하기 위해 노력하지 않는 사람들의 일을 좋아하지 않고 대신 "나는 유니콘을 날고 싶다. 최대한 빨리 제발 코드를 써라!"라고 적는다. OP가 "이 코드를 시험해 본 결과,이 오류가 발생했습니다"라는 질문을 게시했다면 질문에 대한 내 태도가 나아 졌을 것입니다. 또한 태그가 적절하다고 생각되면 게시물을 편집하여 추가 할 수 있습니다. 노력하지 않아도. 무례하다. – ppeterka

+1

@ppeterka, 나는 사람들이 시도해야한다는 것에 동의하며, 불쾌감을 나타내지는 않았다. 그러나이 경우에는 이미 해결책을 알지 못하면 무엇을 시도해야할지 모른다. 또한 메인 프레임 태그를 추가하기 위해 게시물을 편집했으나 받아 들여지지 않은 곳이 –

답변

1

가 배경 TSO 단계를 통해 REXX 단계를 실행 감사합니다

당신은 다음 listcat 모든 파일을 얻을 수 실행할 수 있습니다. listcat 출력을 파일에 쓰거나 읽어들이거나 주소 명령 또는 OutTrap function을 통해 출력을 트랩 할 수 있습니다.

그런 다음 표준 TSO 이름 바꾸기 명령을 사용하십시오.

또는 당신 ISPF 배경 REXX 프로그램을 실행하고

+0

이렇게 이름이 지정된 파일은 비 메인 프레임 (또는 최소한 비 z/Os) 서버에 있습니다. 너는 무엇을 개명 하겠느냐? 서버에서 파일 이름을 FTP 용 제어 카드로 가져 오는 것이 목표입니다. –

+0

내 독서가 메인 프레임에 FTP로 전송 된 파일이며 후자의 처리를 위해 표준 메인 프레임 파일로 이름을 바꾸려고합니다 (GDG로 복사하는 것이 대안이 될 수 있습니다). –

+0

예,하지만 "도착"할 수는 없습니다. 그 이름을 가진 메인 프레임. 따라서 서버에 이름에 대한 지식이 필요하므로 카드 생성이 필요한 GET에 새로운 이름을 지정하십시오. 내가 뭔가를 놓친 게 아니라면 ... –

0

(1) 이에 대한 실제 솔루션은 메인 프레임 작업을위한 스케줄링 도구를 통해해야합니다 파일 이름을 얻기 위해 ISPF 등가물을 사용할 수 있습니다. 이러한 도구는 설명 된 형식과 같은 형식을 처리하는 기능을 제공합니다.

(2) 대안 : REXX 및 COBOL

(3) REXX를 선호하지 않으려면, 여기 당신이 JCL 동적으로 사용하는 COBOL 만들 수있는 방법에 약간의 개요 :

  • 을 "템플릿"JCL을 읽는 COBOL 프로그램.
  • INSPECT/REPLACE를 사용하면 프로토 타입을 원하는 날짜로 채워진 문자열로 대체 할 수 있습니다 (날짜 선택에서 COBOL 코드를 유연하게 만들려면 간단한 SYSIN 매개 변수로도 사용할 수 있음).)
  • 지금 포맷 된 JCL을 사용할 수 있는지, 당신은 출력 스트림에 쓸 수

// OUTFILE DD SYSOUT = (INTRDR, ) 또는 // OUTFILE DD SYSOUT = (, INTRDR)

IN TRDR (내부 리더), 곧바로 JES로 가서 직업을 제출하십시오!

희망이 도움이됩니다.

+0

Control-M은 여러 스케줄링 패키지 중 하나입니다. 특정 제품 참조를 제거하거나 일정 패키지를 예제로 추가하여 답변을 수정하십시오. – zarchasmpgmr

+0

둘 이상의 스케줄러 패키지를 사용할 수있을뿐만 아니라 일부 사이트에서는 INTRDR의 사용을 허용하지 않습니다.어쨌든 "템플리트"접근 방식의 파일 이름은 어디에서 얻을 것입니까? –

+0

@zarchasmpgmr - 감사합니다. 참조를 삭제했습니다. 비록 유사한 예제가 주어 지더라도, 그것들은 Tivoli와 CSAR가 될 것입니다. –

3

STEP1 : FTP에서 LS를 사용하여 디스크에 쓸 수 있으므로 파일 이름이있는 파일을 가질 수 있습니다. 그런 다음 해당 파일을 가져옵니다.

2 단계 : FTP 컨트롤 카드를 생성하려면 파일 내용을 처리하십시오 (적어도 GET의 경우). 생성 된 GET은 GET 20130814_XX_YY_20130814152345 'HLQ.MAINFRAM.DATASET'형식입니다. 여기서 서버 이름은 STEP1에서 가져온 파일에서 왔으며 로컬 (메인 프레임) 파일은 하드 코딩되거나 유연성을 제공하는 경우 세대에 제공 될 수 있습니다 필요합니다.

STEP3 : 제어 카드가 생성 된 상태에서 FTP를 다시 실행하십시오.

사양에 아무 것도 없나요?

+1

나는 생성 된 ftp GET 명령이'GET 20130814_XX_YY_20130814152345 'HLQ.MAINFRAM.DATASET'과 같이 보이기 때문에 데이터 세트 이름 바꾸기는 tranfer의 일부로 발생합니다 (주어진 소스 데이터 세트 이름이 메인 프레임 명명 규칙을 따르지 않으므로). – NealB

+0

@NealB에 스팟이 업데이트되었습니다. –

2

우리는 때로는 "즉시 사용 가능한"솔루션으로 삶을 상당히 단순화하는 복잡성을 만들어냅니다.

게시물이 업데이트 된 후 이제는 문제가 좀 더 잘 이해됩니다.

이름이 너무 구체적이어야하는 경우 업로드 할 파일 이름 목록이 들어있는 서버에 고정 된 파일 이름을 사용하는 것이 좋습니다.

실제로 서버는 메인 프레임에서 실행되는 JCL이라는 고정 파일 이름을 만들 수 있습니다 !!! 이 파일에는 SYSIN DD * 및 GET 명령이 포함됩니다. 메인 프레임은이 파일을 업로드하고 그대로 메인 프레임에서 실행되는 작업 리더에게 제출합니다. 이 작업의 마지막 단계 (서버에 의해 생성되었지만 메인 프레임에서 실행)는 비어있는 JCL 파일을 서버로 다시 FTP로 보내는 것입니다.이 방법으로 서버는 메인 프레임에서 파일을 업로드했음을 "인식"합니다.

또는 왜 Zero가 아닌 시스템이 파일에 시간 정보를 지정해야합니까? 메인 프레임에서 파일을 매일 처리하는 경우 날짜가 충분해야합니다.

이 변경으로 메인 프레임은 당일의 파일 이름을 안정적으로 예측하고 적절한 GET 명령을 생성하여 실행할 수 있습니다.

작업 스케줄러를 사용하면 하루에 두 번 메인 프레임으로 업로드를 쉽게 실행할 수 있습니다. 이는 파일 이름에 시간을 포함시키려는 의도로 표현 된 모든 문제를 해결할 수 있습니다.

+0

@ NealB 님,이 질문을 다시 검토하고 답변을 조정했습니다. – JackCColeman

+0

@chuchi, 답변으로 업데이트했습니다. 도움이되기를 바랍니다. – JackCColeman

관련 문제