ファイリング計画のインポート/エクスポートに関するトラブルシューティングとヒント

このトピックでは、ファイリング計画インポート/エクスポート・ツールの使用時に発生する可能性のある、一般的なエラーの原因について説明します。 また、このトピックでは、エラーが発生する可能性を減らす方法についても説明します。

一般的なエラーの原因

ファイリング計画のインポート時には、エラーが発生する可能性があります。ほとんどの場合、インポート処理はエラー発生後に停止しますが、メッセージは表示されません。エラーの原因としては、以下のことが考えられます。

ファイリング計画インポート/エクスポート・ツールに組み込まれているオプションを使用すると、潜在的なエラーに対処することができます。以降の各セクションで、これらのオプションについて説明します。

手動による XML ファイルの作成

このセクションの説明において、「XML ファイルを手動で作成する」とは、ファイリング計画インポート/エクスポート・ツール以外の手段で XML ファイルを作成する (例えば、マクロなどのプログラム手段を使用して XML ファイルを作成する) ことを指します。 ファイリング計画をインポートする前に、XML 標準に準拠し、なおかつ FileNet ソフトウェアの XML スキーマと互換性のある XML ファイルを作成する必要があります。

ファイリング計画のインポートに使用する XML ファイルを手動で作成する場合は、IBM 提供の XML スキーマに基づいてファイルを作成する必要があります。XML スキーマの詳細については、『Developer Roadmap』の「File Plan XML Schema」ヘルプ・トピックを参照してください。

注  ファイリング計画のインポート時に発生するエラーのほとんどは、XML ファイルの非準拠または非互換が原因です。このため、XML ファイルを手動で作成する際には十分な注意が必要です。

XML ファイルを手動で作成したら、ファイリング計画インポート/エクスポート・ツールを検証モードで実行することを強くお勧めします。検証モードのツールでは、XML ファイルが読み取られ、ファイル内にエラーや非準拠問題が含まれていないかどうかが検証されます。(検証モードの詳細については、「 ファイリング計画の検証」を参照してください。)

サブカテゴリー・スケジュールの継承」および「ConditionXML プロパティー」の各セクションには、XML ファイルを手動で作成する際に使用可能なオプションがいくつか含まれています。

ファイリング計画インポート/エクスポート・ツール機能の確認

XML ファイルを手動で作成して、カスタム・クラスやオブジェクトを含む大きなファイリング計画をインポートする場合は、最初に小さいファイリング計画と関連メタデータを作成し、エクスポート・モードでツールを実行することをお勧めします。 条件付き保留、内部イベント・トリガー、および代替保存オブジェクトには複雑な conditionXML プロパティーが含まれているため、これらを使用したファイリング計画用の XML ファイルを手動で作成する前には、このようにすると特に便利です。正しい XML フォーマットでファイルを作成しても、XML ファイルにプロパティー値や構文の間違いがあり、それが原因でインポート時にエラーが発生する可能性があります。 小さいファイリング計画をエクスポートすると、ツールによって作成された XML ファイルを表示して、XML ファイルに含まれる構文やプロパティー値を確認することができます。

スコープ・メタデータ・オプションの使用

ファイリング計画にカスタム・クラスやプロパティーが含まれる場合は、エクスポート処理でスコープ・メタデータ・オプションを使用する必要があります。スコープ・メタデータ・ オプションでは、カスタム・クラスおよびプロパティー用の XML ファイルが別途作成されます。したがって、ファイリング計画に カスタム・クラスまたはプロパティーが含まれる場合、エクスポート/インポート処理はそれぞれ 2 つのステップ (カスタム・クラスおよびプロパティー用のステップと、ファイリング計画の残り部分用のステップ) から構成されます。スコープ・メタデータ・オプションの使用手順については、「ファイリング計画インポート/エクスポート・ツールの使用 」ヘルプ・トピックを参照してください。

再インポート・オプションの使用

XML ファイルで追加アクションの動作を指定するには、再インポート・オプションを使用します。 再インポート・オプションには、以下の 3 種類のパラメーターがあります。

大きいファイリング計画を初めてインポートする際には、Skip オプションを使用できます。Skip オプションを使用すると、初回のインポート時にエラーが発生したために、同じファイリング計画のインポートを再試行する場合に、正常にインポートされたエンティティーを再度インポートせずに済みます。ただし、2 回目のインポート時に、初回で正常にインポートされたエンティティーに若干の変更を加える必要がある場合は、Replace オプションを使用します。

2 回目以降のインポートで少数のエンティティーに若干の変更を加える場合は、元の XML ファイルを 変更するのではなく、それらのエンティティーに対し XML ファイルで Action="Modify" を指定することをお勧めします。また、Update モードを使用すると、最初のフル・インポート以降の更新内容をより簡単に識別できます。

サブカテゴリー・スケジュールの継承

サブカテゴリーを作成する際には、Record Manager の UI を使用して、そのサブカテゴリーが親の廃棄スケジュールを継承するよう指定できます。 XML ファイルを手動で作成して、サブカテゴリーが含まれるファイリング計画をインポートする場合は、そのサブカテゴリーが親のスケジュールを継承せずに、別のスケジュールを提供するよう指定することもできます。

レコード・カテゴリーが親の廃棄スケジュールを継承するかどうかを指定するには、作成する XML ファイルで DisposalScheduleInheritedFrom プロパティーを使用します。次に例を示します。

<RecordCategory Name="myCat2" Level="2" ParentPath="/myCat1">
    <Properties>
        <Property Name="AGGREGATION" Value="RecordCategory" />
        <Property Name="IsPermanentRecord" Value="false" />
        <Property Name="IsVitalRecord" Value="false" />
        <Property Name="CurrentPhaseExportFormat"></Property>
        <Property Name="IsDeleted" Value="false" />
        <Property Name="HomeLocation"></Property>
        <Property Name="VitalRecordReviewAction"></Property>
        <Property Name="IncrementedBy" Value="1" />
        <Property Name="RecordCategoryName" Value="myCat2" />
        <Property Name="DisposalScheduleInheritedFrom" Value="/myCat1" />
        <Property Name="Reviewer" Value="ylin" />
        <Property Name="RecordCategoryIdentifier" Value="myCat2" />
        <Property Name="VitalRecordDisposalTrigger"></Property>
        <Property Name="Inactive" Value="false" />
        <Property Name="Location"></Property>
        <Property Name="DateOpened" Value="2006-03-07T14:16:00-08:00" />
        <Property Name="DisposalSchedule">
                <ObjectRef ClassId="DisposalSchedule" ObjectId="myDispSchedule" />
        </Property>
    </Properties>
</RecordCategory>

以下に、DisposalScheduleInheritedFrom プロパティーを使用できる 4 つのシナリオを示します。

<Property Name="DisposalScheduleInheritedFrom" Value="/myCat1" />

ConditionXML プロパティー

XML ファイルを手動で作成してファイリング計画をインポートする場合は、オプションで ConditionXML プロパティーの値を指定できます。ファイリング計画インポート・ツールは、以下のインポート時にこのプロパティー値を使用します。

代替保存、内部イベント・トリガー、動的 (条件付き) 保留の各エンティティーの場合、 ConditionXML プロパティーには XML フォーマットの検索条件が格納されます。ConditionXML の properties タグには、IBM InfoSphere Enterprise Records ユーザー・インターフェースに対するプロパティー名/値/演算子が格納されます。ConditionXML の sql タグには、SQL ステートメントが格納されます。ファイリング計画のインポートで ConditionXML のプロパティー値を入力する場合は、特殊文字 (< > & " ') を標準表現 (&lt; &gt; &amp; &quot; &apos;) に変換する必要があります。

以下に、ファイリング計画のインポート/エクスポート用の ConditionXML プロパティーを含むエンティティーの XML 例を示します。

代替保存用の ConditionXML の例

<Phases>
  <RMEntity Type="Phase" Name="myPhase1">
    <Properties>
      <Property Name="PhaseAction"></Property>
      <Property Name="RetentionPeriodDays" Value="0" />
      <Property Name="RetentionPeriodYears" Value="10" />
      <Property Name="RMEntityDescription" Value="my phase 1" />
      <Property Name="RetentionPeriodMonths" Value="0" />
      <Property Name="PhaseNumber" Value="1" />
      <Property Name="ExportFormat"></Property>
      <Property Name="IsScreeningRequired" Value="true" />
      <Property Name="DisposalSchedulePtr">
        <ObjectRef ClassId="DisposalSchedule" ObjectId="myDispSchedule" />
      </Property>
      <Property Name="PhaseName" Value="myPhase1" />
      <Property Name="AlternateRetentions">
        <ObjectValue Type="AlternateRetention">
          <Properties>
            <Property Name="RetentionBase" Value="CutoffDate" />
            <Property Name="ConditionXML" Value="&lt;response xmlns=&quot;http://filenet.com/namespaces/wcm/apps/1.0&quot;&gt;&lt;objectset&gt;&lt;count&gt;1&lt;/count&gt;&lt;customobject&gt;&lt;properties&gt;&lt;property&gt;&lt;symname&gt;ClosedBy&lt;/symname&gt;&lt;operator&gt;IS EQUAL&lt;/operator&gt;&lt;value&gt;Administrator&lt;/value&gt;&lt;/property&gt;&lt;/properties&gt;&lt;aggregation&gt;&lt;/aggregation&gt;&lt;sql&gt; AND ([ClosedBy] = &apos;Administrator&apos;)&lt;/sql&gt; &lt;/customobject&gt;&lt;/objectset&gt;&lt;/response&gt;" />
            <Property Name="RetentionPeriodMonths" Value="0" />
            <Property Name="RetentionPeriodYears" Value="5" />
            <Property Name="RetentionPeriodDays" Value="0" />
          </Properties>
        </ObjectValue>
        <ObjectValue Type="AlternateRetention">
          <Properties>
            <Property Name="RetentionBase" Value="DateClosed" />
            <Property Name="ConditionXML" Value="&lt;response xmlns=&quot;http://filenet.com/namespaces/wcm/apps/1.0&quot;&gt;&lt;objectset&gt;&lt;count&gt;1&lt;/count&gt;&lt;customobject&gt;&lt;properties&gt;&lt;property&gt;&lt;symname&gt;RMEntityDescription&lt;/symname&gt;&lt;operator&gt;LIKE&lt;/operator&gt;&lt;value&gt;something&lt;/value&gt;&lt;/property&gt;&lt;/properties&gt;&lt;aggregation&gt;&lt;/aggregation&gt;&lt;sql&gt; AND ([RMEntityDescription] LIKE &apos;%something%&apos;)&lt;/sql&gt; &lt;/customobject&gt;&lt;/objectset&gt;&lt;/response&gt;" />
            <Property Name="RetentionPeriodMonths" Value="0" />
            <Property Name="RetentionPeriodYears" Value="5" />
            <Property Name="RetentionPeriodDays" Value="0" />
          </Properties>
        </ObjectValue>
      </Property>
    </Properties>
  </RMEntity>
</Phases>


ConditionXML を使用した廃棄トリガーの例

<DisposalTriggers>
    <RMEntity Type="DisposalTrigger" Name="Date Created">
       <Properties>
           <Property Name="DisposalTriggerName" Value="Date Created" />
           <Property Name="EventType" Value="3" />
           <Property Name="CycleYears" Value="0" />
           <Property Name="CycleDays" Value="0" />
           <Property Name="AGGREGATION" Value="RecordInfo" />
           <Property Name="ConditionXML" Value="&lt;response xmlns=&quot;http://filenet.com/namespaces/wcm/apps/1.0&quot;&gt;&lt;objectset&gt;&lt;count&gt;1&lt;/count&gt;&lt;customobject&gt;&lt;properties&gt;&lt;property&gt;&lt;symname&gt;DateCreated&lt;/symname&gt;&lt;displayname&gt;Date Created&lt;/displayname&gt;&lt;propertytype&gt;3&lt;/propertytype&gt;&lt;value/&gt;&lt;operator&gt;IS NOT NULL&lt;/operator&gt;&lt;jointype&gt;AND&lt;/jointype&gt;&lt;/property&gt;&lt;/properties&gt;&lt;aggregation&gt;RecordInfo&lt;/aggregation&gt;&lt;sql&gt; SELECT OIID , ID , RMENTITYTYPE FROM RecordInfo WHERE ( DateCreated IS NOT NULL )&lt;/sql&gt;&lt;/customobject&gt;&lt;/objectset&gt;&lt;/response&gt;" />
           <Property Name="CycleMonths" Value="0" />
       </Properties>
    </RMEntity>
</DisposalTriggers>

ConditionXML を使用した動的保留の例

<Holds>
    <RMEntity Type="RecordHold" Name="dynamic Hold">
       <Properties>
           <Property Name="Active" Value="true" />
           <Property Name="HoldName" Value="dynamic Hold" />
           <Property Name="HoldReason" Value="dynamic Hold" />
           <Property Name="ConditionXML " Value="&lt;response xmlns=&quot;http://filenet.com/namespaces/wcm/apps/1.0&quot;&gt;&lt;objectset&gt;&lt;count&gt;2&lt;/count&gt;&lt;customobject&gt;&lt;properties&gt;&lt;property&gt;&lt;symname&gt;RecordCategoryName&lt;/symname&gt;&lt;displayname&gt;Record Category Name&lt;/displayname&gt;&lt;propertytype&gt;8&lt;/propertytype&gt;&lt;selectable&gt;true&lt;/selectable&gt;&lt;value&gt;dynamic&lt;/value&gt;&lt;operator&gt;like&lt;/operator&gt;&lt;jointype&gt;AND&lt;/jointype&gt;&lt;/property&gt;&lt;/properties&gt;&lt;aggregation&gt;RecordCategory&lt;/aggregation&gt;&lt;sql&gt; SELECT ro.[RecordCategoryName] , ro.[RecordCategoryName] FROM RecordCategory ro Where ro.[RecordCategoryName] like &apos;%dynamic%&apos; &lt;/sql&gt;&lt;/customobject&gt;&lt;customobject&gt;&lt;properties&gt;&lt;property&gt;&lt;symname&gt;RecordFolderName&lt;/symname&gt;&lt;displayname&gt;Record Folder Name&lt;/displayname&gt;&lt;propertytype&gt;8&lt;/propertytype&gt;&lt;selectable&gt;true&lt;/selectable&gt;&lt;value&gt;dynamic&lt;/value&gt;&lt;operator&gt;like&lt;/operator&gt;&lt;jointype&gt;AND&lt;/jointype&gt;&lt;/property&gt;&lt;/properties&gt;&lt;aggregation&gt;RecordFolder&lt;/aggregation&gt;&lt;sql&gt; SELECT ro.[RecordFolderName] , ro.[RecordFolderName] FROM RecordFolder ro Where ro.[RecordFolderName] like &apos;%dynamic%&apos; &lt;/sql&gt;&lt;/customobject&gt;&lt;/objectset&gt;&lt;/response&gt;" />
           <Property Name="HoldType" Value="Audit" />
       </Properties>
    </RMEntity>
</Holds>

保存期間の更新

既存のフェーズの保存期間を NULL で更新するには、保存期間のプロパティー (RetentionPeriodYears、RetentionPeriodMonths、RetentionPeriodDays) を値なしで XML ファイルに含める必要があります。

以下に、ファイリング計画インポート/エクスポート・ツール用のフェーズ・エンティティーの XML 例を示します。

<RMEntity Type="Phase" Name="phase 1">
                  <Properties>
                        <Property Name="PhaseAction"></Property>
                        <Property Name="PhaseNumber" Value="1" />
                        <Property Name="ExportFormat"></Property>
                        <Property Name="IsScreeningRequired" Value="false" />
                        <Property Name="DisposalSchedulePtr">
                              <ObjectRef ClassId="DisposalSchedule" ObjectId="mySchedule" />
                        </Property>
                        <Property Name="PhaseName" Value="phase 1" />
                        <Property Name="RMEntityDescription" />
                        <Property Name="RetentionPeriodMonths" />
                        <Property Name="RetentionPeriodYears"  />
                        <Property Name="RetentionPeriodDays"  />
                        <Property Name="AlternateRetentions">
                              <ObjectValue Type="AlternateRetention">
                                    <Properties>
                                          <Property Name="RetentionBase" Value="CutoffDate" />
                                          <Property Name="ConditionXML" Value="&lt;response xmlns=&quot;http://filenet.com/namespaces/wcm/apps/1.0&quot;&gt;&lt;objectset&gt;&lt;count&gt;1&lt;/count&gt;&lt;customobject&gt;&lt;properties&gt;&lt;property&gt;&lt;symname&gt;CurrentActionType&lt;/symname&gt;&lt;operator&gt;IS EQUAL&lt;/operator&gt;&lt;value&gt;6&lt;/value&gt;&lt;/property&gt;&lt;/properties&gt;&lt;aggregation&gt;&lt;/aggregation&gt;&lt;sql&gt; AND ([CurrentActionType] = 6)&lt;/sql&gt; &lt;/customobject&gt;&lt;/objectset&gt;&lt;/response&gt;" />
                                          <Property Name="RetentionPeriodMonths" Value="0" />
                                          <Property Name="RetentionPeriodYears" Value="2" />
                                          <Property Name="RetentionPeriodDays" Value="0" />
                                    </Properties>
                              </ObjectValue>
                        </Property>
                  </Properties>
            </RMEntity>