

AWS Mainframe Modernization Service (マネージドランタイム環境エクスペリエンス) は、新規のお客様に公開されなくなりました。 AWS Mainframe Modernization Service (マネージドランタイム環境エクスペリエンス) と同様の機能については、 AWS Mainframe Modernization Service (セルフマネージドエクスペリエンス) をご覧ください。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、[AWS 「 Mainframe Modernization の可用性の変更](https://docs.aws.amazon.com/m2/latest/userguide/mainframe-modernization-availability-change.html)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# データセットユーティリティ
<a name="system-datasets-utilities"></a>

## BLUESAMCOPY/BLUESAMCREATE/BLUESAMDELETE/BLUESAMCLEAR
<a name="bluesam-utilities"></a>

これらのユーティリティプログラムは、[Blusam データセットに不可欠なデータセット](https://docs.aws.amazon.com/m2/latest/userguide/ba-shared-blusam.html)操作機能を提供します。

`bypassBluesamStatus` フラグ (JobContext に保存) は、オンラインプロセスとバッチプロセス間の同時アクセスの競合を防ぐ通常のデータセットステータス検証をバイパスするかどうかを決定します。

`bypassBluesamStatus` が true の場合:
+ オペレーション中に通常のデータセットステータスチェックをスキップする
+ 通常ブロックされる可能性のあるデータセットへのアクセスを許可する

### ブルーサムコピー
<a name="bluesamcopy"></a>

BlueSAMCOPY プログラムは、1 つの Bluesam データセットから別の Bluesam データセットにデータとメタデータ構造をコピーします。

#### パラメータ
<a name="bluesamcopy-parameters"></a>

BlueSAMCOPY プログラムには 2 つのパラメータがあります。
+ `FROM=<source dataset name>` - コピー元のソースデータセット
+ `TO=<target dataset name>` - コピー先のターゲットデータセット

#### 行動
<a name="bluesamcopy-behavior"></a>
+ ターゲットデータセットが存在しない場合、 はソースのメタデータ構造を使用してデータセットを作成します。
+ ターゲットが存在する場合、コピーする前にターゲットをクリアします (既存のデータを上書きします)
+ データセットがオンラインプロセスで使用されていない場合、または が true に設定されている場合、オペレーション`bypassBluesamStatus`は続行されます。
+ キー、圧縮、レコード長、およびその他のメタデータプロパティを保持します

#### エラー処理
<a name="bluesamcopy-error"></a>

ソースデータセットが存在しない場合、またはいずれかのデータセットがオンラインプロセスで使用されている場合は、コード 1 を返します。

#### サンプルの使用
<a name="bluesamcopy-sample"></a>

```
import ...

mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class)

// copy bluesam dataset
res = mpr.withArguments("FROM=MYBLUESAMTABLE","TO=MYBLUESAMTABLE2").runProgram("BLUESAMCOPY")
```

### BlueSAMCREATE
<a name="bluesamcreate"></a>

BlueSAMCREATE プログラムは、指定されたパラメータを使用して Bluesam データセットを作成します。

#### パラメータ
<a name="bluesamcreate-parameters"></a>

BlueSAMCREATE プログラムには 7 つのパラメータがあります。
+ `name=<dataset name>` - 作成するデータセット (必須)
+ `compress=<true/false>` - 圧縮を有効にする (オプション、デフォルト: false)
+ `fixedLength=<true/false>` - 固定長レコードのステータス (オプション、デフォルト: false)
+ `recordLength=<integer>` - バイト単位のレコード長 (オプション、デフォルト: -1)
+ `primaryKey=<key id>,duplicates=<true/false>,fields=<offset,length,...>` - プライマリキー仕様 (オプション)
+ `key=<altkey id>,duplicates=<true/false>,fields=<offset,length,...>` - 代替キー (複数または 0 を指定できます)
+ `clearExisting=true/false` - 既存のデータセットをクリアする (オプションのデフォルト: true)

 特定のキーパラメータの説明:
+ `duplicates`: 指定されたキーに対して重複する値を許可するかどうか。
+ `fields`: キーを定義するフィールド位置 (1 ベース) と長さ。

#### 行動
<a name="bluesamcreate-behavior"></a>
+ データセットが存在しない場合、 は指定されたパラメータを使用してデータセットを作成します。
+ データセットが存在する場合、 `clearExisting=true`
+ オペレーションは、データセットがオンラインプロセスで使用されていない場合、または `bypassBluesamStatus`が に設定されている場合に続行されます。 `true`

#### エラー条件
<a name="bluesamcreate-error"></a>

いずれの場合もコード 0 を返します。

#### サンプルの使用
<a name="bluesamcreate-sample"></a>

```
import ...

mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class)

// create bluesam dataset
mpr.withArguments(
      "name=MYBLUESAMTABLE",
      "compress=FALSE", 
      "fixedLength=true", 
      "recordLength=54",
      "primaryKey=MYKEY_PK,duplicates=FALSE,fields=0,6")
    .runProgram("BLUESAMCREATE")
```

### BlueSAMDELETE
<a name="bluesamdelete"></a>

BlueSAMDELETE プログラムは Bluesam データセットを削除します。

#### パラメータ
<a name="bluesamdelete-parameters"></a>

BlueSAMDELETE プログラムには 1 つ以上のパラメータがあります。
+ `<dataset name>` - 削除するデータセット (複数の を持つことができます)

#### 行動
<a name="bluesamdelete-behavior"></a>
+ オペレーションは、データセットがオンラインプロセスで使用されていない場合、または `bypassBluesamStatus`が に設定されている場合に続行されます。 `true`
+ データセットが存在する場合は、削除します。

#### エラー条件
<a name="bluesamdelete-error"></a>

いずれの場合もコード 0 を返します。

#### サンプルの使用
<a name="bluesamdelete-sample"></a>

```
import ...

mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class)

// delete bluesam datasets
res = mpr.withArguments("MYBLUESAMTABLE","MYBLUESAMTABLE2","MYBLUESAMTABLE3").runProgram("BLUESAMDELETE")
```

### ブルーサムクリア
<a name="bluesamclear"></a>

BlueSAMCLEAR プログラムは、構造とメタデータを保持しながら、既存のデータセットからすべてのデータを削除します。

#### パラメータ
<a name="bluesamclear-parameters"></a>

BlueSAMCLEAR プログラムには 1 つ以上のパラメータがあります。
+ `<dataset name>` - クリアするデータセット (複数の を持つことができます)

#### 行動
<a name="bluesamclear-behavior"></a>
+ オペレーションは、データセットがオンラインプロセスで使用されていない場合、または `bypassBluesamStatus`が に設定されている場合に続行されます。 `true`
+ データセットが存在する場合は、クリアします。

#### エラー条件
<a name="bluesamclear-error"></a>

いずれの場合もコード 0 を返します。

#### サンプルの使用
<a name="bluesamclear-sample"></a>

```
import ...

mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class)

// clear bluesam datasets
res = mpr.withArguments("MYBLUESAMTABLE","MYBLUESAMTABLE2").runProgram("BLUESAMCLEAR")
```

## BPXWDYN
<a name="bpxwdyn"></a>

このユーティリティプログラムは、動的データセットの割り当てと割り当て解除のために z/OS BPXWDYN サービスをシミュレートします。最新のアプリケーションでは、ファイルの割り当ては `FileConfigurationUtils` Builder API を介して Groovy スクリプトで行われます。このプログラムにより、Groovy を使用せずにこれらの割り当てを動的に管理できます。これは、モダナイズされたアプリケーションのインタラクティブまたは条件付きファイル処理に不可欠です。

### パラメータ
<a name="bpxwdyn-parameters"></a>

レガシー引数の形式は保持されます。2 バイトサイズのヘッダーとコマンド文字列を含む 1 つの引数が必要です。

割り当てのコマンド文字列形式: `ALLOC DD(<name>) DSN('<dsn>') SHR?`

割り当て解除のコマンド文字列形式: `FREE DD(<name>)`

### エラー処理
<a name="bpxwdyn-error"></a>
+ 成功の場合はエラーコード 0、失敗の場合は 1 を設定します。
+ 無効なコマンドまたはパラメータに対して RuntimeException をスローします

### サンプルの使用
<a name="bpxwdyn-sample"></a>

以下に示しているのは、AWS 変換による COBOL モダナイゼーションによる BPXWDYN プログラムの使用例です。

COBOL コード:

```
   01  WK-AREA.
       03  DS-ALLOC-STRING.
           05  DS-LENGTH          PIC S9(004) COMP VALUE 100.
           05  DS-TEXT            PIC  X(100) VALUE
            "ALLOC DD(INFILE) DSN('A.B.JCLLIB(XYZ470)') SHR".
...
           01  RC-RETURN-CODE-AREA.
       03  RC-RETURN-CODE         PIC S9(008) COMP.
...
     CALL  'BPXWDYN'  USING  DS-ALLOC-STRING RETURNING RC-RETURN-CODE.
```

および一致する Java モダナイゼーション:

```
private final Group dsAllocString = new Group(root).named("DS-ALLOC-STRING");
private final Elementary dsLength = new Elementary(dsAllocString,new BinaryType(4, 0, "STD", false, false, true),Short.valueOf("100")).named("DS-LENGTH");
private final Elementary dsText = new Elementary(dsAllocString,new AlphanumericType(100),"ALLOC DD(INFILE) DSN('A.B.JCLLIB(XYZ470)') SHR").named("DS-TEXT");
...
private final Group root = new Group(getData()).named("RC-RETURN-CODE-AREA"); 
private final Elementary rcReturnCode = new Elementary(root,new BinaryType(8, 0, "STD", false, false, true)).named("RC-RETURN-CODE");
...
    // Call to utility program  BPXWDYN
ctrl.callSubProgram(
       "BPXWDYN", 
        CallBuilder.newInstance().byReference(ctx.getWkArea().getDsAllocStringReference()).getArguments(), ctx);
 
ctx.getRcReturnCodeArea().setRcReturnCode(NumberUtils.convert(ctx.getProgramReturned()).intValue());
```

## GDGUTILS
<a name="gdgutils"></a>

GDGs (生成データグループ) を使用すると、アプリケーションはバージョン管理されたデータセットを操作できます。各実行では、以前の世代へのアクセスを維持しながら、新しい世代が作成されます。このユーティリティは、これらのデータセット生成を作成および管理します。このユーティリティは、groovy スクリプトで呼び出されることを目的としています。

### パラメータ
<a name="gdgutils-parameters"></a>

パラメータの順序は関係ありません
+ `action=<create|refreshevents>` - 実行するオペレーション (必須)
+ `gdgname=<name>` - GDG ベースの名前 (必須)
+ `storageProvider=<filesystem|bluesam>` - ストレージバックエンド
+ `relativeGeneration=<+integer>` - 相対生成数 (次は \$11 など)
+ `absoluteGeneration=integer` - 絶対生成数
+ `recordLength=<integer>` - データセット内のレコードサイズ
+ `fixedLength=<true/false>` - データセット内のレコードの長さが固定であることを指定します。
+ `ownerPath=<File system path>` - データセットを保存するパス (ファイルシステム固有、その場合は必須)
+ `compress=<true/false>` - データストアでデータが圧縮された場合 (bluesam 固有）、データがメモリに圧縮されたままであることを示します (オプション、false はデフォルト値です)
+ `catalog` - データセットをカタログ化することを指定します (オプション)
+ `warmUp` - 開いたときにデータセットをメモリにロードする必要があることを示します (bluesam 固有) (オプション)

relativeGeneration または absoluteGeneration: これらのプロパティのいずれかを設定する必要があります。

### オペレーション
<a name="gdgutils-operations"></a>
+ create: GDG メタデータに従って新しい GDG データセット生成を作成します (ファイルシステムと Bluesam ストレージの両方を処理します)
+ refreshevents: 新しいデータセットを作成せずに生成番号 (Gdg メタデータ) を調整します (既にデータセットを作成している失敗したジョブを再起動する場合に使用されます)

### エラー処理
<a name="gdgutils-error"></a>
+ 成功の場合はエラーコード 0、失敗の場合は 1 を設定します。
+ 無効なコマンドまたはパラメータに対して RuntimeException をスローします

### サンプルの使用
<a name="gdgutils-sample"></a>

Gdg 作成オペレーション: 次のコードはデータセットの Bluesam 生成 (43) を作成します。 `IC.PLI.GDGTEST`

```
import ...

mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class)

Map params = new Hashtable()
params.put("jobContext", jobContext)
Object[] args =["action=create","gdgname=IC.PLI.GDGTEST","absoluteGeneration=43","storageProvider=bluesam","recordLength=80"]
mpr.withParameters(params).withArguments(args).runProgram("GDGUTILS")
```

Gdg refreshevents オペレーション: relativeGeneration のみがこのオペレーションに関連しています。次のコードは、`IC.PLI.GDGTEST`データセットの生成番号 (現行世代と比較して\$11) を更新します。

```
import ...

mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class)

Map params = new Hashtable()
params.put("jobContext", jobContext)
Object[] args =["action=refreshevents","gdgname=IC.PLI.GDGTEST","relativeGeneration=1","storageProvider=bluesam"]
mpr.withParameters(params).withArguments(args).runProgram("GDGUTILS")
```

## ICEGENER/SYNCGENR
<a name="icegener"></a>

このユーティリティプログラムは、z/OS システムユーティリティ ICEGENER の動作を模倣し、データセットを入力 (SYSUT1 データセット) から出力 (SYSUT2 データセット) にコピーします。この Java 実装は、ファイルシステムと Bluesam ストレージの両方をサポートする同等の機能を提供します。

### パラメータ
<a name="icegener-parameters"></a>

引数なし

### 必要なデータセット
<a name="icegener-datasets"></a>
+ SYSUT1: 入力データセット/ファイル
+ SYSUT2: データセット/ファイルを出力する

### SYSUT2 データセットの処理
<a name="icegener-disposition"></a>
+ NEW: 新しいデータセット/ファイルを作成する
+ OLD/SHR: 既存のデータセット/ファイルを使用する (存在している必要があります)
+ MOD: 変更、欠落している場合は作成、存在する場合は追加

### エラー処理
<a name="icegener-error"></a>
+ コピーが成功した場合はエラーコード 0、失敗した場合は 1 を設定します
+ BluSeam データセットの無効な使用`IllegalStateException`のためにスロー

### サンプルの使用
<a name="icegener-sample"></a>

以下は、AWS 変換による JCL モダナイゼーションに起因する ICEGENER プログラムの使用例です。

JCL コード:

```
//STEP01    EXEC PGM=ICEGENER
//SYSUT1   DD DSN=POI.INPUT,DISP=SHR
//SYSUT2   DD DSN=POI.OUTPU,
//            DISP=(,CATLG,DELETE),
//            UNIT=3490,
//            DCB=(RECFM=FB,LRECL=100)
/*
```

および一致する Groovy モダナイゼーション:

```
mpr
    .withFileConfigurations(new FileConfigurationUtils()
        .withJobContext(jobContext)
        .bluesam("SYSUT1")
        .dataset("POI.INPUT")
        .disposition("SHR")
        .build()
        .bluesam("SYSUT2")
        .dataset("POI.OUTPU")
        .normalTermination("CATLG")
        .abnormalTermination("DELETE")
        .build()
        .getFileConfigurations())
    .withParameters(params)
    .runProgram("ICEGENER")
```

## IDCAMS/KQCAMS
<a name="idcams"></a>

このユーティリティプログラムは、レガシープログラム IDCAMS の動作を模倣しています。これは、VSAM (仮想ストレージアクセス方法) ファイルオペレーションに使用されるメインフレームデータ管理ツールです。レガシー IDCAMS コマンドを処理し、元の SYSIN 入力と同じ構文を維持します。

### Context
<a name="idcams-context"></a>

プログラムの動作は、 で定義されている 2 つのパラメータで設定できます`application-utility-pgm.yml`。
+ jclType: JCL タイプ識別子 (vse または mvs)。ファイルが vse 以外の jcl に対して空の場合、IDCAMS ユーティリティ PRINT/REPRO コマンドは 4 を返します。
+ forcedCharsetIdcams: IDCAMS 処理用のオプションの文字セットオーバーライド

### パラメータ
<a name="idcams-parameters"></a>

引数がありません。オペレーションは SYSIN データセットを介して渡されます。

### 必要なデータセット
<a name="idcams-datasets"></a>
+ SYSIN - IDCAMS コマンドステートメントが含まれます
+ 入出力データセット - IDCAMS コマンドで参照されるとおり (IDCAMS ステートメントによって異なります)

### 主な機能/サポートされているコマンド
<a name="idcams-commands"></a>

SYSIN コントロールカードにある IDCAMS コマンドの詳細はここには記載されていませんが、既存の関連するレガシープラットフォームのドキュメントから取得する必要があります。
+ DEFINE - VSAM クラスターとデータセットを作成します
+ DELETE - データセットを削除します (ワイルドカードをサポート)
+ REPRO - データセット間でデータをコピーします
+ PRINT - データセットの内容を表示します
+ VERIFY - データセットの存在と整合性を検証します
+ ALTER - データセット属性を変更する (名前を変更する)
+ ALLOC - データセットを動的に割り当てます
+ SET - 条件コードを管理します (LASTCC/MAXCC)
+ IF-THEN-ELSE - 条件付きコマンドの実行
+ CANCEL - ジョブ実行を終了します

### エラー処理
<a name="idcams-error"></a>
+ 最後のコマンドが成功した場合はエラーコード 0 を設定し、失敗した場合は -1 を設定します。
+ SET (LASTCC) コマンドを使用して、エラーコードを上書きできます。例: `SET LASTCC = 0`

### サンプルの使用
<a name="idcams-sample"></a>

以下は、AWS 変換による JCL モダナイゼーションによる IDCAMS プログラムの使用例です。

JCL コード:

```
//STEP15 EXEC PGM=IDCAMS
//SYSPRINT DD   SYSOUT=*
//ACCTDATA DD DISP=SHR,
//         DSN=AWS.M2.CARDDEMO.ACCTDATA.PS
//ACCTVSAM DD DISP=SHR,
//         DSN=AWS.M2.CARDDEMO.ACCTDATA.VSAM.KSDS
//SYSIN    DD   *
  REPRO INFILE(ACCTDATA) OUTFILE(ACCTVSAM)
/*
```

および一致する Groovy モダナイゼーション:

```
mpr.withFileConfigurations(new FileConfigurationUtils()
    .withJobContext(jobContext)
    .systemOut("SYSPRINT")
    .output("*")
    .build()
    .bluesam("ACCTDATA")
    .dataset("AWS.M2.CARDDEMO.ACCTDATA.PS")
    .disposition("SHR")
    .build()
    .bluesam("ACCTVSAM")
    .dataset("AWS.M2.CARDDEMO.ACCTDATA.VSAM.KSDS")
    .disposition("SHR")
    .build()
    .fileSystem("SYSIN")
    .stream("REPRO INFILE(ACCTDATA) OUTFILE(ACCTVSAM)", getEncoding())
    .build()
    .getFileConfigurations())
.withParameters(params)
.runProgram("IDCAMS")
```

## IEBGENER/JSDGENER
<a name="iebgener"></a>

このプログラムは IEBGENER ユーティリティをレプリケートします。これは、シーケンシャルデータセットのコピーと操作に使用されます。この実装は、高度なデータ処理オペレーションの IEBGENER コントロールステートメントをサポートすることで、基本的なコピー機能を拡張します。

### パラメータ
<a name="iebgener-parameters"></a>

引数がありません。オペレーションは SYSIN データセットを介して渡されます。

### 必要なデータセット
<a name="iebgener-datasets"></a>
+ SYSIN: コントロールステートメントが含まれます (定義されていない場合、オプションで IEBGENER プログラムは ICEGENER と同じです)
+ SYSUT1: 入力データセット/ファイル
+ SYSUT2: データセット/ファイルを出力する

### 主な機能/サポートされている IEBGENER コントロールステートメント
<a name="iebgener-commands"></a>

SYSIN コントロールカードにある IEBGENER コントロールステートメントの詳細はここには記載されていませんが、既存の関連するレガシープラットフォームのドキュメントから取得する必要があります。
+ GENERATE - 処理するレコードタイプ (MAXNAME) とフィールド (MAXFLDS) の最大数を指定して、データ操作プロセスの全体的な構造を定義します。
+ RECORD - 入力データセットからコピーされるか、特定の値で生成される個々のフィールドの位置、長さ、形式を指定して、各レコードタイプの実際のレイアウトとコンテンツを定義します。
+ LABEL/MEMBER/EXIT はサポートされていません

例:

```
GENERATE MAXNAME=3,MAXFLDS=5
RECORD TYPE=1,
       FIELD=(1,1,CH,VALUE='H'),
       FIELD=(2,30,CH,VALUE='EMPLOYEE REPORT 2024         ')
RECORD TYPE=2,
       FIELD=(1,1,CH,VALUE='D'),
       FIELD=(2,10,CH),              /* Name */
       FIELD=(12,8,CH),             /* Birth date */
       FIELD=(20,8,CH,VALUE='ACTIVE')
RECORD TYPE=3,
       FIELD=(1,1,CH,VALUE='F'),
       FIELD=(2,30,CH,VALUE='END OF REPORT              ')
```

### エラー処理
<a name="iebgener-error"></a>

コピーが成功した場合はエラーコードを 0、失敗した場合は 1 に設定します。

### サンプルの使用
<a name="iebgener-sample"></a>

以下は、AWS 変換による JCL モダナイゼーションの結果として発生した IEBGENER プログラムの使用例です。

JCL コード:

```
//GENDATA  EXEC PGM=IEBGENER
//SYSUT1   DD DSN=INPUT.EMPLOYEE.DATA,
//            DISP=SHR
//SYSUT2   DD DSN=OUTPUT.EMPLOYEE.FILE,
//            DISP=(NEW,CATLG,DELETE),
//            SPACE=(TRK,(1,1)),
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=27920)
//SYSIN    DD *
  GENERATE MAXNAME=2,MAXFLDS=5
  RECORD TYPE=1,
         FIELD=(1,1,CH,VALUE='H'),
         FIELD=(2,30,CH,VALUE='EMPLOYEE SALARY REPORT 2024    ')
  RECORD TYPE=2,
         FIELD=(1,1,CH,VALUE='D'),
         FIELD=(2,10,CH),              /* Name from input */
         FIELD=(12,8,CH),             /* Birth date from input */
         FIELD=(20,8,CH),             /* Dept from input */
         FIELD=(28,8,CH)              /* Salary from input */
/*
```

および一致する Groovy モダナイゼーション:

```
mpr
    .withFileConfigurations(new FileConfigurationUtils()
        .withJobContext(jobContext)
        .systemOut("SYSPRINT")
        .output("*")
        .build()
        .bluesam("SYSUT1")
        .dataset("INPUT.EMPLOYEE.DATA")
        .disposition("SHR")
        .build()
        .bluesam("SYSUT2")
        .dataset("OUTPUT.EMPLOYEE.FILE")
        .disposition("NEW")
        .normalTermination("CATLG")
        .abnormalTermination("DELETE")
        .build()
        .fileSystem("SYSIN")
        .stream( """GENERATE MAXNAME=2,MAXFLDS=5
  RECORD TYPE=1,
         FIELD=(1,1,CH,VALUE='H'),
         FIELD=(2,30,CH,VALUE='EMPLOYEE SALARY REPORT 2024    ')
  RECORD TYPE=2,
         FIELD=(1,1,CH,VALUE='D'),
         FIELD=(2,10,CH),              /* Name from input */
         FIELD=(12,8,CH),             /* Birth date from input */
         FIELD=(20,8,CH),             /* Dept from input */
         FIELD=(28,8,CH)              /* Salary from input */""", getEncoding())
        .build()
        .getFileConfigurations())
    .withParameters(params)
    .runProgram("IEBGENER")
```

## IEFBR14
<a name="iefbr14"></a>

IEFBR14 は、リターンコード 0 (ゼロ) で単に を返す「何もしない」プログラムです。主な用途は、実際のデータ処理を実行せずに、DD ステートメントによるデータセットの割り当て、削除、カタログメンテナンスを行うことです。

### パラメータ
<a name="iefbr14-parameters"></a>

引数なし

### エラー処理
<a name="iefbr14-error"></a>

常にエラーコード 0 を設定します。

### サンプルの使用
<a name="iefbr14-sample"></a>

以下は、AWS 変換による JCL モダナイゼーションから生じる IEFBR14 プログラムの使用例です。

新しいシーケンシャルデータセットを作成する JCL コード:

```
//STEP1    EXEC PGM=IEFBR14
//NEWSEQ   DD DSN=USER.NEW.SEQ.DATA,
//            DISP=(NEW,CATLG,DELETE),
//            SPACE=(TRK,(10,5)),
//            DCB=(RECFM=FB,LRECL=80,BLKSIZE=27920)
```

および一致する Groovy モダナイゼーション:

```
mpr
    .withFileConfigurations(new FileConfigurationUtils()
        .withJobContext(jobContext)
        .bluesam("NEWSEQ")
        .dataset("USER.NEW.SEQ.DATA")
        .disposition("NEW")
        .normalTermination("CATLG")
        .abnormalTermination("DELETE")
        .build()
        .getFileConfigurations())
    .withParameters(params)
    .runProgram("IEFBR14")
```

既存のデータセットを削除する JCL コード:

```
//STEP3    EXEC PGM=IEFBR14
//DELDD    DD DSN=USER.OLD.DATASET,
//            DISP=(OLD,DELETE,DELETE)
```

および一致する Groovy モダナイゼーション:

```
mpr
    .withFileConfigurations(new FileConfigurationUtils()
        .withJobContext(jobContext)
        .bluesam("DELDD")
        .dataset("USER.OLD.DATASET")
        .disposition("OLD")
        .normalTermination("DELETE")
        .abnormalTermination("DELETE")
        .build()
        .getFileConfigurations())
    .withParameters(params)
    .runProgram("IEFBR14")
```

## JCLBCICS
<a name="jclbcics-utility"></a>

このプログラムはデータセットのステータスを管理し、設定に基づいてデータセットを有効または無効にし、個々のファイルとワイルドカードパターンの両方をサポートします。JICS テーブル file\$1table の STATUS フィールドを変更します。

### パラメータ
<a name="jclbcics-parameters"></a>

引数がありません。オペレーションは `DatasetsConfiguration` オブジェクトを介して渡されます。例:

```
mpr.withDatasetsConfiguration(new DatasetsConfiguration().close(<Dataset Name>)
```

### Context
<a name="jclbcics-context"></a>

プログラムの動作は、次の 2 つのパラメータで設定できます。

`application-utility-pgm.yml` に作成
+ `jclbcics.ddname.size` (デフォルトは 8): データセット名のサイズをグローバルに設定します。この値が設定されていて、データセット名の長さがこの値より小さい場合、データセット名は切り捨てられます。

プログラムを呼び出す Groovy ファイルの個々のステップ
+ `JCLBCICS_OVERRIDDEN_SIZE`: グローバルデータセット名のサイズを上書きします。

```
TreeMap stepMapTransfo = [:]
Map stepParams = ["MapTransfo":stepMapTransfo]
stepParams["MapTransfo"]["JCLBCICS_OVERRIDDEN_SIZE"] = '6'
```

調整された dd 名サイズ (切り捨て後) が 8 未満の場合、dd 名はワイルドカードと見なされ、関数はこの dd 名で始まるすべてのデータセットに対して動作します。

### 主な機能
<a name="jclbcics-features"></a>

サポートされているオペレーションは次のとおりです。
+ OPEN: データセットを ENABLED ステータスに設定します
+ CLOSE: データセットを DISABLED ステータスに設定します

これらのオペレーションは、`DatasetsConfiguration`ビルダークラスを通じて宣言されます。

```
new DatasetsConfiguration().close(<DD name>).open(<DD name>)
```

DD 名: データセットの名前。dd 名サイズが最大 dd 名サイズ (8) より小さい場合、ワイルドカード \$1 を使用できます。

### エラー処理
<a name="jclbcics-error"></a>

エラーコード 0 を設定する

### サンプルの使用
<a name="jclbcics-sample"></a>

JCLBCICS プログラムの使用例を以下に示します。

データセット を無効にし`UFOLJ3P`、AX で始まるすべてのデータセットを有効にし、DX で始まるすべてのデータセットを有効にします。

```
import com.netfective.bluage.gapwalk.rt.call.MainProgramRunner
import com.netfective.bluage.gapwalk.rt.call.ProgramExecutionResult
import com.netfective.bluage.gapwalk.rt.io.support.DatasetsConfiguration

MainProgramRunner mpr = applicationContext.getBean("com.netfective.bluage.gapwalk.rt.call.ExecutionController",MainProgramRunner.class)
def TreeMap stepMapTransfo = [:]
def Map stepParams = ['MapTransfo':stepMapTransfo]
stepParams['MapTransfo']['JCLBCICS_OVERRIDDEN_SIZE'] = '7'

ProgramExecutionResult res = mpr
.withDatasetsConfiguration(new DatasetsConfiguration().close("UFOLJ3P").open("AX*").open("DX"))
.withParameters(stepParams)
.runProgram("JCLBCICS")
```