バッチ・インターフェースの例

例 1FMN.XMLINP のすべての XML メンバーを FMN.IMPORT.TEMPLATE にインポートします。

//FMBAT EXEC PGM=FILEMGR
//STEPLIB  DD DISP=SHR,DSN=HLQ.SFMNMOD1
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
$$FILEM TPIMP DSNIN=FMN.XMLINP,
$$FILEM MEMBER=*,
$$FILEM DSNOUT=FMN.IMPORT.TEMPLATE,
$$FILEM REPLACE=YES
/*

例 2.例 1 と同様にインポートしますが、デフォルトの入力 DD 名および出力 DD 名を使用する点が異なります。キーワード INPUT および OUTPUT を使用すると、別々の DD 名を参照できることに注意してください。

//FMBAT EXEC PGM=FILEMGR
//STEPLIB  DD DISP=SHR,DSN=HLQ.SFMNMOD1
//DDIN  DD DISP=SHR,DSN=FMN.XMLINP
//DDOUT DD DISP=SHR,DSN=FMN.IMPORT.TEMPLATE
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
$$FILEM TPIMP MEMBER=*,REPLACE=YES
/*

例 3.ジョブ・ストリーム内でインライン化されている XML から 1 つのメンバーにインポートします。

//FMBAT EXEC PGM=FILEMGR
//STEPLIB  DD DISP=SHR,DSN=HLQ.SFMNMOD1
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
$$FILEM TPIMP DSNOUT=FMN.TEMPLATE(CBL1),INPUT=*
<template lang="COBOL" type="BASE">
 <copybooks>
  <library>FMN.COBOL</library>
  <member name="COPY01"/>
  <member name="COPY02"/>
 </copybooks>
 <layout copybook="COPY01">
  <criteria type="ID">
   <exp><![CDATA[#2 = '01']]></exp>
  </criteria>
 </layout>
 <layout copybook="COPY02">
  <criteria type="ID">
   <exp><![CDATA[#2 = '02']]></exp>
  </criteria>
 </layout>
</template>
/*

例 4.PDS 内のすべてのテンプレート・メンバーをエクスポートします。出力メンバー、ISPF 統計を置き換え、コピーブックおよび基準のみの XML を作成します。

//FMBAT EXEC PGM=FILEMGR
//STEPLIB  DD DISP=SHR,DSN=HLQ.SFMNMOD1
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
$$FILEM TPEXP DSNIN=FMN.IMPORT.TEMPLATE,
$$FILEM MEMBER=*,
$$FILEM DSNOUT=FMN.XMLOUT.NEW,
$$FILEM COPYCRIT=YES,
$$FILEM STATS=YES,
$$FILEM REPLACE=YES
/*

例 5.例 4 と同様にエクスポートしますが、入力および出力にデフォルトの DD 名を使用する点が異なります。キーワード INPUT および OUTPUT も使用できます。

//FMBAT EXEC PGM=FILEMGR
//STEPLIB  DD DISP=SHR,DSN=HLQ.SFMNMOD1
//SYSPRINT DD SYSOUT=*
//DDIN  DD DISP=SHR,DSN=FMN.IMPORT.TEMPLATE
//DDOUT DD DISP=SHR,DSN=FMN.XMLOUT.NEW
//SYSIN DD *
$$FILEM TPEXP MEMBER=*,
$$FILEM COPYCRIT=YES,
$$FILEM STATS=YES,
$$FILEM REPLACE=YES
/*

例 6.単一のメンバーを、SYSOUT で作成する XML 出力へエクスポートします。

//FMBAT EXEC PGM=FILEMGR
//STEPLIB  DD DISP=SHR,DSN=HLQ.SFMNMOD1
//SYSPRINT DD SYSOUT=*
//XMLDD    DD SYSOUT=*
//SYSIN DD *
$$FILEM TPEXP DSNIN=FMN.TEMPLATE,MEMBER=COPY0102,COPYCRIT=YES,
$$FILEM OUTPUT=XMLDD
/*

例 7.JCL に指定された XML 動的テンプレートを使用して比較ジョブを実行し、列比較を実行します。これにより、入力ファイルの列 1 から 5 が、出力ファイルの列 8 から 12 と比較され、入力ファイルの列 6 から 10 が、出力ファイルの列 13 から 17 と比較されます。

//FMBAT EXEC PGM=FILEMGR
//SYSPRINT DD SYSOUT=*
//DDOLD DD DISP=SHR,DSN=FMN.DATA(COMP1OLD)
//DDNEW DD DISP=SHR,DSN=FMN.DATA(COMP1NEW)
//TDOLD DD DATA
<template type="DYNAMIC">
 <layout>
  <symbol name="comp1" start="1" length="5" type="AN"/>
  <symbol name="comp2" start="6" length="5" type="AN"/>
 </layout>
</template>
/*
//TDNEW DD DATA
<template type="DYNAMIC">
 <layout>
  <symbol name="comp1" start="8"  length="5" type="AN"/>
  <symbol name="comp2" start="13" length="5" type="AN"/>
 </layout>
</template>
/*
//SYSIN DD *
$$FILEM DSM TYPE=FORMATTED,LIST=DELTA
/*

例 8.XML 動的テンプレート (複数のレイアウトおよび ID 基準) を使用してサンプル・ファイルを印刷します。

//FMBAT EXEC PGM=FILEMGR
//SYSPRINT DD SYSOUT=*
//DDIN  DD DISP=SHR,DSN=hlq.SFMNSAM1(FMNCDATA)
//TDDIN DD DATA
<template type="DYNAMIC">
 <layout name="rec-type01">
  <symbol name="type" start="1" length="2" type="AN"/>
  <symbol name="name" start="3" length="20" type="AN"/>
  <symbol name="empno" start="23" length="2" type="BI"/>
  <symbol name="age"   start="25" length="2" type="BI"/>
  <symbol name="salary"  start="27" length="4" type="PD"/>
  <criteria type="ID">
    <exp><![CDATA[#type = '01']]></exp>
  </criteria>
 </layout>
 <layout name="rec-type02">
  <symbol name="type" start="1" length="2" type="AN"/>
  <symbol name="name" start="3" length="20" type="AN"/>
  <symbol name="title" start="23" length="14" type="AN"/>
  <symbol name="addr1" start="37" length="20" type="AN"/>
  <symbol name="addr2" start="57" length="20" type="AN"/>
  <symbol name="postcode" start="77" length="4" type="AN"/>
  <criteria type="ID">
    <exp><![CDATA[#type = '02']]></exp>
  </criteria>
 </layout>
</template>
/*
//SYSIN DD *
$$FILEM DSP FORMAT=SNGL
/*

例 9.フィールドに新しい見出しを指定して、Db2® テンプレートを作成または更新する Db2® インポート・ジョブを実行します。XML インラインがあること、つまり入力がメンバーから行われる可能性があることに注意してください。

//FMNDB2   EXEC PGM=FMNDB2,PARM=('SSID=ssss,SQID=userid')
//SYSPRINT DD SYSOUT=*
//SYSTERM  DD SYSOUT=*
$$FILEM TPIMP DSNOUT=hlq.TEMPLATE(EMPHD),
$$FILEM REPLACE=YES,
$$FILEM INPUT=*
<template type="DB2">
 <db2object>DSN8810.EMP</db2object>
 <layout>
  <symbol name="empno">
   <heading>Employee</heading>
  </symbol>
  <symbol name="FIRSTNME">
   <heading>First Name</heading>
  </symbol>
  <symbol name="MIDINIT">
   <heading>Middle</heading>
  </symbol>
  <symbol name="LASTNAME">
   <heading>Last Name</heading>
  </symbol>
  <symbol name="BIRTHDATE">
   <heading>Birth Date</heading>
  </symbol>
 </layout>
</template>