バッチ・インターフェースの例
例 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>