Importieren und Exportieren von Aktenplänen - Fehlerbehebung und Tipps

Dieses Thema enthält Informationen zu den häufigen Fehlerursachen, die auftreten können, wenn Sie das Tool zum Import und Export des Aktenplans verwenden. In diesem Thema wird auch beschrieben, wie Sie die Wahrscheinlichkeit des Auftretens von Fehlern reduzieren können.

Häufige Fehlerursachen

Wenn Sie einen Aktenplan importieren, kann ein Fehler auftreten. In den meisten Fällen hält der Importvorgang nach Entdecken eines Fehlers an, ohne eine Fehlernachricht anzuzeigen. Der Fehler kann die folgenden Ursachen haben:

Das Tool für den Import und Export des Aktenplans enthält Optionen, mit denen Sie auf potenzielle Fehler reagieren können. Diese Optionen werden in den folgenden Abschnitten beschrieben.

Manuelles Erstellen einer XML-Datei

In dieser Beschreibung bezieht sich die manuelle Erstellung einer XML-Datei auf das Erstellen einer XML-Datei auf andere Weise als mit dem Tool zum Import und Export des Aktenplans (z. B. über Makros oder andere Programmfunktionen zum Erstellen einer XML-Datei). Bevor Sie einen Aktenplan importieren können, müssen Sie eine XML-Datei erstellen, die den XML-Standard beachtet und mit dem XML-Schema der FileNet-Software kompatibel ist.

Wenn Sie manuell eine XML-Datei erstellen, die beim Importieren eines Aktenplans verwendet werden soll, müssen Sie die Datei auf dem von IBM bereitgestellten XML-Schema basieren. Details zum XML-Schema stehen im Hilfethema File Plan XML Schema in der Developer-Roadmap zur Verfügung.

HINWEIS  Die meisten Fehler, die beim Importieren eines Aktenplan auftreten, werden durch inkompatible oder nicht konforme XML-Dateien verursacht. Daher sollten Sie beim manuellen Erstellen einer XML-Datei besonders sorgfältig sein.

Nachdem Sie manuell eine XML-Datei erstellt haben, wird empfohlen, dass Sie das Tool zum Import und Export des Aktenplans im Prüfmodus ausführen. Das Tool liest im Prüfmodus eine XML-Datei und überprüft, ob die Datei Fehler enthält oder Probleme aufgrund von Nichteinhaltung hat. (Details zum Prüfmodus finden Sie unter Validieren eines Aktenplans.)

Einige Optionen, die verfügbar sind, wenn Sie manuell eine XML-Datei erstellen, werden in den Abschnitten Zeitplanvererbung an Unterkategorie und ConditionXML (Eigenschaft) beschrieben.

Überwachen der Funktionalität des Tools für den Import und Export des Aktenplans

Wenn Sie manuell eine XML-Datei erstellen wollen, um einen großen Aktenplan mit benutzerdefinierten Klassen und Objekten zu importieren, wird empfohlen, dass Sie zuerst einen kleinen Aktenplan und zugehörige Metadaten erstellen und das Tool im Exportmodus ausführen. Diese Vorgehensweise ist besonders nützlich, bevor Sie manuell eine XML-Datei für Aktenpläne mit bedingten Rückstellungen, Auslösern für interne Ereignisse und alternativen Aufbewahrungsobjekten erstellen, die alle die komplexe Eigenschaft conditionXML enthalten. Auch wenn Sie eine Datei im richtigen XML-Format erstellen, kann die XML-Datei falsche Eigenschaftswerte oder eine falsche Syntax enthalten, wodurch möglicherweise ein Fehler beim Import verursacht wird. Wenn Sie einen kleinen Aktenplan exportieren, können Sie die vom Tool erstellte XML-Datei prüfen und die Syntax und die Eigenschaftswerte in der XML-Datei überwachen.

Verwenden der Metadatenoption "scope"

Wenn Ihr Aktenplan benutzerdefinierte Klassen oder Eigenschaften enthält, müssen Sie während des Exportprozesses die Metadatenoption "scope" verwenden. Mit der Metadatenoption "scope" wird eine separate XML-Datei für benutzerdefinierte Klassen und Eigenschaften erstellt. Wenn also ein Aktenplan benutzerdefinierte Klassen oder Eigenschaften enthält, bestehen die Export- und Importprozesse aus je zwei Schritten: ein Schritt für die benutzerdefinierten Klassen und Eigenschaften und ein weiterer Schritt für den Rest des Aktenplans. Das Hilfethema Aktenplan-Import-/Export-Tool umfasst Vorgehensweisen zur Verwendung der Metadatenoption "scope".

Verwenden der Option "reimport"

Die Option "reimport" wird verwendet, um das Verhalten der Hinzufügeaktion in der XML-Datei anzugeben. Die Option "reimport" hat drei Parameter:

Während des ursprünglichen Imports eines großen Aktenplans sollten Sie die Skip-Option verwenden. Falls ein Fehler auftritt, verwenden Sie während des zweiten Versuchs zum Importieren desselben Aktenplans die Skip-Option, um zu vermeiden, dass Entitäten erneut importiert werden, die bereits erfolgreich importiert wurden. Wenn jedoch der zweite Importversuch kleinere Änderungen an Entitäten erfordert, die schon beim ersten Mal erfolgreich importiert wurden, sollte die Option "Replace" verwendet werden.

Bei nachträglichen Importen von kleineren Änderungen an einer kleinen Anzahl Entitäten wird empfohlen, dass Sie Action="Modify" in der XML-Datei für die Entitäten angeben. Diese Methode ist besser als das Vornehmen von Änderungen an der ursprünglichen XML-Datei. Wenn Sie den Aktualisierungsmodus verwenden, können Sie nachträgliche Aktualisierungen leichter von ursprünglichen vollständigen Importen unterscheiden.

Zeitplanvererbung an Unterkategorie

Wenn Sie eine Unterkategorie erstellen, können Sie die Record Manager-Benutzerschnittstelle verwenden, um anzugeben, dass die Unterkategorie den Aussonderungszeitplan des übergeordnetes Elements übernimmt. Wenn Sie die XML-Datei zum Importieren des Aktenplans, in dem die Unterkategorie enthalten ist, manuell erstellen, können Sie angeben, dass die Unterkategorie nicht den Zeitplan des übergeordneten Elements übernimmt, und einen anderen Zeitplan bereitstellen.

Verwenden Sie die Eigenschaft "DisposalScheduleInheritedFrom" in der erstellten XML-Datei, um anzugeben, ob die Schriftstückkategorie den Aussonderungszeitplan vom übergeordneten Element übernimmt. Beispiel:

<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>

Es gibt die folgenden vier Szenarios, in denen Sie die Eigenschaft "DisposalScheduleInheritedFrom" verwenden können:

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

ConditionXML (Eigenschaft)

Wenn Sie manuell eine XML-Datei erstellen, um einen Aktenplan zu importieren, können Sie Werte für die Eigenschaft "ConditionXML" angeben, die das Tool zum Import des Aktenplans verwendet, um Folgendes zu importieren:

Für Entitäten mit alternativen Aufbewahrungen, Auslösern für interne Ereignisse und dynamischen (bedingten) Rückstellungen speichert die Eigenschaft "ConditionXML" Suchbedingungen im XML-Format. Im Tag properties in ConditionXML wird der Name/Wert/Operator der Eigenschaft für die IBM InfoSphere Enterprise Records-Benutzerschnittstelle gespeichert. Im Tag sql in ConditionXML wird die SQL-Anweisung gespeichert. Wenn Sie den Eigenschaftswert von ConditionXML für den Aktenplanimport eingeben, müssen die Sonderzeichen (< > & " ') in die Standarddarstellung (&lt; &gt; &amp; &quot; &apos;) konvertiert werden.

Es folgen Beispiel-XMLs von Entitäten, die die Eigenschaft "ConditionXML" für den Import und Export des Aktenplans enthalten.

Beispiel von ConditionXML für die alternative Aufbewahrung

<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>


Beispiel eines Aussonderungsauslösers mit 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>

Beispiel einer dynamischen Rückstellung mit 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>

Update des Aufbewahrungszeitraums

Wenn Sie den Aufbewahrungszeitraum einer vorhandenen Phase auf null aktualisieren wollen, müssen die Eigenschaften des Aufbewahrungszeitraums (RetentionPeriodYears, RetentionPeriodMonths und RetentionPeriodDays) ohne Wert in der XML-Datei enthalten sein.

Es folgt eine Beispiel-XML einer Phasenentität für das Tool zum Import und Export des Aktenplans:

<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>