1

毎日 1 つのファイルを ftp で配信しています。このファイルは毎日同じ名前ではありません。作成の日付と時刻があります。たとえば、今日のファイルの名前は 20130814_XX_YY_20130814152345 で、15:23:45 に作成され、明日のファイルの名前は 20130815_XX_YY_20130815152421 になります。_XX_YY_ は常に同じですが、時間は毎日変わります。

このファイルを変数名で取得し、ホスト ファイルに名前を変更するホスト jcl を作成したいと考えています。これどうやってするの ?

よろしくお願いしますちゅちと

4

4 に答える 4

3

STEP1: FTP で LS を使用してディスクに書き込むことができるため、ファイル名を含むファイルを作成できます。次に、そのファイルを取得します。

STEP2: ファイルの内容を処理して FTP コントロール カードを生成します (少なくとも GET の場合)。生成される GET は、GET 20130814_XX_YY_20130814152345 'HLQ.MAINFRAM.DATASET' の形式になります。ここで、サーバー名は STEP1 で GETted されたファイルに由来し、ローカル (メインフレーム) ファイルはハードコーディングするか、柔軟性があれば生成に提供できます。必要とされている。

STEP3: 生成されたコントロール カードで FTP を再度実行します。

仕様に何もありませんか?

于 2013-08-15T23:02:24.587 に答える
2

「すぐに使える」ソリューションが生活を大幅に簡素化する複雑さを生み出すことがあります。

投稿が更新された後、私は問題を少しよく理解できるようになりました。

名前が非常に具体的である必要がある場合、他の提案された解決策 (私が理解している場合) は、アップロードするファイル名のリストを含む固定ファイル名をサーバーに設定することです。

実際、サーバーは、メインフレームで実行する JCL である固定ファイル名を作成できます!!! このファイルには //SYSIN DD * および GET コマンドが含まれます。メインフレームはこのファイルをアップロードし、そのままジョブ リーダーに送信します。ジョブ リーダーはメインフレームで実行されます。このジョブ (サーバーによって作成され、メインフレーム上で実行される) の最後のステップは、空の JCL ファイルをサーバーに FTP 送信することです。これにより、サーバーはメインフレームがファイルをアップロードしたことを「認識」します。

あるいは、Z\os 以外のシステムが時間情報を含むファイルに名前を付ける必要があるのはなぜですか? メインフレームがファイルを毎日処理する場合は、日付で十分です。

この変更により、メインフレームはその日のファイル名を確実に予測し、適切な GET コマンドを生成して実行できます。

ジョブ スケジューラを使用すると、メインフレームへのアップロードを 1 日に 2 回簡単に実行できます。これは、ファイル名に時刻を含めたいという要望で表明された懸念に対処する可能性があります。

于 2013-08-26T18:48:07.697 に答える
0

(1) これに対する実際の解決策は、メインフレーム ジョブのスケジューリング ツールを使用することです。これらのツールは、あなたが説明したような書式設定を処理する機能を提供します。

(2) 代替手段: REXX および COBOL

(3) REXX を好まない場合は、COBOL を使用して JCL を動的に作成する方法を簡単に説明します。

  • 「テンプレート」JCL を読み取る COBOL プログラム。
  • INSPECT / REPLACE を使用すると、プロトタイプを、選択した日付が入力された文字列に置き換えることができます (COBOL コードで日付の選択を柔軟にしたい場合は、これを単純な SYSIN パラメーターとして指定することもできます)。
  • フォーマットされた JCL の準備ができたので、それを出力ストリームに書き込むことができます。

//OUTFILE DD SYSOUT=(INTRDR, ) または //OUTFILE DD SYSOUT=( ,INTRDR)

INTRDR (Internal Reader) に書き込まれたものはすべて、直接 JES に送られ、ジョブがサブミットされます。

お役に立てれば。

于 2013-08-15T09:39:46.993 に答える