IBM Enterprise Records, Version 5.1.+            

Felsöka verktyget för import/export av arkiveringsplaner

Du behöver känna till vanliga orsaker till fel som kan uppstå när du använder IBM® Enterprise Records verktyget för att importera eller exportera arkiveringsplaner.

Vanliga felorsaker

När du importerar en arkiveringsplan kan du råka ut för fel. I det flesta fall stoppar importprocessen när ett fel påträffas utan att något felmeddelande visas. Felorsaken kan vara något av följande: I verktyget för import/export av arkiveringsplaner finns alternativ som du kan använda till att rätta potentiella fel. Dessa alternativ diskuteras i följande avsnitt.

Skapa en XML-fil manuellt

I följande diskussion betyder hänvisningar till att skapa XML-filer manuellt att skapa en XML-fil manuellt med andra medel än verktyget för import/export av arkiveringsplaner (t.ex. att skapa en XML-fil genom att använda makron eller någon annan programbaserad metod). Innan du kan importera en arkiveringsplan måste du först skapa en XML-fil som överensstämmer med XML-standarden och är kompatibel med XML-schemat för FileNet-programmet.

Om du skapar en XML-fil manuellt för att använda den för import av arkiveringsplaner måste du basera filen på XML-schemat från IBM.

Viktigt: De flesta fel som inträffar under importen av en arkiveringsplan orsakas av XML-filer som inte följer standarden eller är inkompatibla. Du bör därför vara extra noga när du skapar XML-filer manuellt.

Vi rekommendera starkt att du kör verktyget för import/export av arkiveringsplaner i valideringsläge när du har skapat en XML-fil manuellt. När verktyget är i valideringsläge läser det XML-filen och kontrollerar att filen inte innehåller några fel eller inkompatibiliter. (I Använda verktyget för import/export av arkiveringsplaner finns mer information om valideringsläget.)

Vissa av de alternativ som är tillgängliga när du skapar en XML-fil ingår i avsnitten Hur ärver underkategorier scheman och Egenskapen ConditionXML.

Granska hur verktyget för import/export av arkiveringsplaner fungerar

Om du tänker skapa en XML-fil manuellt för att importera en stor arkiveringsplan med anpassade klasser och objekt, rekommenderar vi att du först skapar en liten arkiveringsplan med tillhörande metadata och sedan kör verktyget i exportläge. Det är en särskilt bra praxis innan du skapar en XML-fil för arkiveringsplaner med villkorliga spärrar, interna händelseutlösare och alternativa kvarhållningsobjekt, som innehåller den komplexa Egenskapen ConditionXML. Även om du skapar en fil med korrekt XML-format, kan XML-filen ha felaktiga egenskapsvärden eller ogiltig syntax, som kan orsaka fel under importen. Genom att exportera en liten arkiveringsplan kan du granska den XML-fil som verktyget skapar och undersöka syntaxen och egenskapsvärdena i XML-filen.

Använda alternativet scope metadata

Om arkiveringsplanen innehåller anpassade klasser eller egenskaper måste du använda alternativet scope metadata under exporten. Alternativet scope metadata skapar en separat XML-fil för anpassade klasser och egenskaper. Om en arkiveringsplan innehåller anpassade klasser eller egenskaper består export- och importprocesserna därför av två steg vardera: ett steg för de anpassade klasserna och egenskaperna och ett annat steg för resten av arkiveringsplanen. I hjälpavsnittet Använda verktyget för import/export av arkiveringsplaner beskrivs procedurerna för att använda alternativet scope metadata.

Använda alternativet reimport

Med alternativet reimport styr du hur tilläggsåtgärden fungerar i XML-filen. Alternativet reimport har tre parametrar: Under den första importen av en stor arkiveringsplan kan du använda alternativet Hoppa över. Om det blir fel under det andra försöket att importera samma arkiveringsplan bör du använda Hoppa över för att undvika att importera entiteter på nytt som redan har importerats. Om det andra försöket att importera kräver smärre ändringar av entiteter som gör att de entiteter som du lyckades importera vid första försöket måste importeras på nytt kanske du vill använda alternativet Ersätt i stället.

Under följande importer av smärre ändringar av ett litet antal entiteter rekommenderar vi att du anger Action="Modify" XML-filen för entiteterna, i stället för att ändra den ursprungliga XML-filen. I uppdateringsläget kan du enklare identifiera senare uppdateringar av ursprungliga fullständiga importer.

Hur ärver underkategorier scheman

När du skapar en underkategori kan du genom att använda användargränssnittet i IBM Enterprise Records ange att underkategorin ärver det överordnade avvecklingsschemat. Om du manuellt skapar den XML-fil som ska användas för import av arkiveringsplanen som innehåller underkategorin, kan du ange att den underkategorin inte ska ärva den överordnade kategorins schema och i stället tillhandahålla ett annat schema.

I den XML-fil som du skapar använder du egenskapen DisposalScheduleInheritedFrom till att ange om postkategorin ärver avvecklingsschemat från sin överordnade. Exempel:

<RecordCategory Name="myCat2" Level="2" ParentPath="/myCat1">
    < Egenskaper>
        <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>
Det finns fyra scenarier där du kan använda egenskapen DisposalScheduleInheritedFrom:
<Property Name="DisposalScheduleInheritedFrom" Value="/myCat1" />

Egenskapen ConditionXML

När du manuellt skapar en XML-filen för att importera en arkiveringsplan kan du välja värden för egenskapen ConditionXML i verktyget för att importera arkiveringsplanen: För alternativa kvarhållningar, interna händelseutlösare och dynamiska (villkorliga) spärrar lagrar egenskapen ConditionXML sökvillkoren i XML-format. Egenskapsmärkordet i ConditionXML lagrar egenskapen name/value/operator för användargränsnittet för IBM Enterprise Records. Märkordet sql i ConditionXML lagrar SQL-satsen. När du anger egenskapsvärdet ConditionXML för importen av arkiveringsplanen behöver specialtecknen (< > & " ') konverteras till standardåtergivningen (&lt; &gt; &amp; &quot; &apos;). Nedan följer ett exempel på XML av entiteter som innehåller egenskapen ConditionXML för export/import av arkiveringsplaner.

Exempel på ConditionXML för alternativ kvarhållning

<Phases>
  <RMEntity Type="Phase" Name="myPhase1">
    < Egenskaper>
        <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" />
          <ObjectValue Type="AlternateRetention">
            < Egenskaper>
              <Property Name="RetentionBase" Value="CutoffDate" />
              <Property Name="ConditionXML" Value="&lt;response xmlns=&quot;http://filenet.com/namespaces/wcm/apps/1.0&quot;&gt;&ltobjectset&gt;&ltcount&gt;1&lt/count&gt;&ltcustomobject&gt;&ltproperties&gt;&ltproperty&gt;&ltsymname&gt;ClosedBy&lt/symname&gt;&ltoperator&gt;IEQUAL&lt;/perator&gt;&ltvalue&gt;Administrator&lt/value></property></properties><aggregation></aggregation><sql> AND ([ClosedBy] = 'Administrator')</sql> </customobject></objectset></response>" />
              <Property Name="RetentionPeriodMonths" Value="0" />
              <Property Name="RetentionPeriodYears" Value="5" />
              <Property Name="RetentionPeriodDays" Value="0" />
            </Property>
          </ObjectValue>
          <ObjectValue Type="AlternateRetention">
            < Egenskaper>
              <Property Name="RetentionBase" Value="DateClosed" />
              <Property Name="ConditionXML" Value="&lt;response xmlns=&quot;http://filenet.com/namespaces/wcm/apps/1.0&quot;&gt;&ltobjectset&gt;&ltcount&gt;1&lt/count&gt;&ltcustomobject&gt;&ltproperties&gt;&ltproperty&gt;&ltsymname&gt;RMEntityDescription&lt/symname&gt;&ltoperator&gt;LKE&lt;/perator&gt;&ltvalue&gt;something&lt/value></property></properties><aggregation></aggregation><sql> AND ([RMEntityDescription] LIKE '%something%')</sql> </customobject></objectset></response>" />
              <Property Name="RetentionPeriodMonths" Value="0" />
              <Property Name="RetentionPeriodYears" Value="5" />
              <Property Name="RetentionPeriodDays" Value="0" />
            </Properties>
          </ObjectValue>
        </Property
      </Properties>
     <RMEntity>
</Phases>

Exempel på avvecklingsutlösare med 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>

Sample of Dynamic Hold with 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>

Uppdatering av kvarhållningsperioder

Om du ska uppdatera kvarhållningsperioden för en befintlig fas till null, måste du ta med (RetentionPeriodYears, RetentionPeriodMonths and RetentionPeriodDays) i XML-filen utan värde. Här följer ett exempel på XML av en fasentitet för verktyget för import/export av arkiveringsplaner:
<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>


Feedback

Senast uppdaterat: Augusti 2011


© Copyright IBM Corp 2011.
Detta Informationscenter bygger på Eclipse-teknik. (http://www.eclipse.org)