IBM Enterprise Records, wersja 5.1.2    

Rozwiązywanie problemów z narzędziem importowania i eksportowania kartoteki akt

W niniejszej sekcji przedstawiono informacje o najczęstszych przyczynach błędów, jakie mogą występować podczas korzystania z narzędzia importowania i eksportowania kartoteki akt w produkcie IBM® Enterprise Records. Konieczne jest również uzyskanie informacji o sposobach zmniejszania prawdopodobieństwa występowania tych błędów.

Najczęstsze przyczyny błędów

Podczas importowania kartoteki akt mogą występować błędy. W większości przypadków proces importowania zatrzymuje się po napotkaniu błędu i nie jest wówczas wyświetlany żaden komunikat. Poniżej przedstawiono możliwe przyczyny błędów: Narzędzie importowania i eksportowania kartoteki akt zawiera opcje, które można wykorzystać w celu rozwiązania potencjalnych błędów. Kolejne sekcje zawierają więcej informacji na temat tych opcji.

Ręczne tworzenie pliku XML

Ręczne tworzenie pliku XML oznacza tworzenie pliku XML bez korzystania z narzędzia importowania i eksportowania kartoteki akt. Na przykład utworzenie pliku XML za pomocą makr i innych metod programistycznych. Zanim możliwe będzie zaimportowanie kartoteki akt należy utworzyć plik XML zgodny ze standardem XML i zgodny ze schematem XML.

W przypadku ręcznego tworzenia pliku w celu użycia podczas importowania kartoteki akt należy utworzyć plik w oparciu o schemat XML udostępniony przez IBM.

Ważne: Większość błędów, jakie występują podczas importowania kartoteki akt, jest spowodowanych przez niezgodne pliki XML. Dlatego w przypadku ręcznego tworzenia pliku XML należy zachować ostrożność.

Po ręcznym utworzeniu pliku XML należy uruchomić narzędzie do importowania i eksportowania kartoteki akt w trybie sprawdzania poprawności. Narzędzie w trybie sprawdzania poprawności odczytuje plik XML i sprawdza, czy plik nie zawiera żadnych błędów ani problemów z brakiem zgodności. Szczegółowe informacje o trybie sprawdzania poprawności zawiera temat dotyczący korzystania z narzędzia kartoteki akt.

Niektóre opcje dostępne w przypadku ręcznego tworzenia pliku XML są zawarte w sekcjach Dziedziczenie harmonogramu podkategorii i Właściwość ConditionXML.

Zapoznanie z funkcjami narzędzia do eksportowania i importowania kartoteki akt

Aby ręcznie utworzyć plik XML w celu zaimportowania dużej kartoteki akt z niestandardowymi klasami i obiektami, najpierw należy utworzyć małą kartotekę akt i powiązane metadane. Następnie należy uruchomić narzędzie w trybie eksportu. Takie ćwiczenie jest użyteczne przed ręcznym utworzeniem pliku XML dla kartoteki akt ze wstrzymaniami warunkowymi, wewnętrznymi wyzwalaczami zdarzeń i alternatywnymi czasami przechowywania. Wszystkie te czynności zawierają złożoną Właściwość ConditionXML. Nawet po utworzeniu pliku XML o poprawnym formacie ten plik XML może mieć niepoprawne wartości właściwości lub niepoprawną składnię. Takie nieprawidłowe informacje mogą spowodować błąd podczas importowania. Wyeksportowanie małego pliku umożliwia sprawdzenie pliku XML utworzonego przez narzędzie. Można także sprawdzić wartości składni i właściwości w pliku XML.

Korzystanie z opcji metadanych zasięgu

Jeśli kartoteka akt zawiera niestandardowe klasy lub właściwości, wówczas należy użyć opcji metadanych zasięgu podczas procesu eksportu. Opcja metadanych zasięgu tworzy osobny plik XML dla niestandardowych klas i właściwości. Dlatego jeśli kartoteka akt zawiera niestandardowe klasy lub właściwości, wówczas procesy importowania i eksportowania zawierają po dwa kroki: jeden krok dla niestandardowych klas i właściwości, a drugi dla pozostałej części kartoteki akt. Informacje o procedurach korzystania z opcji metadanych zasięgu zawiera temat dotyczący korzystania z narzędzia kartoteki akt.

Korzystanie z opcji ponownego importu

Opcja ponownego importu jest używana w celu określania działania czynności dodawania w pliku XML. Opcja ponownego importu ma trzy parametry: Podczas początkowego importowania dużej kartoteki akt można użyć opcji Pomiń. Podczas drugiej próby zaimportowania tej samej kartoteki akt opcja Pomiń nie dopuszcza do ponownego importowania obiektów, które zostały już pomyślnie zaimportowane. Jeśli jednak w przypadku drugiej próby wymagane są niewielkie modyfikacje obiektów, które zostały pomyślnie zaimportowane za pierwszym razem, wówczas konieczne może być użycie opcji Zastąp.

W przypadku kolejnych operacji importu modyfikacji do niewielkiej liczby obiektów należy określić wartości Action="Modify" w pliku XML dla obiektów zamiast wprowadzania zmian do pierwotnego pliku XML. Ponadto tryb Aktualizuj umożliwia łatwiejsze identyfikowanie aktualizacji z początkowych raportów pełnych.

Dziedziczenie harmonogramu podkategorii

W przypadku tworzenia podkategorii można użyć interfejsu użytkownika IBM Enterprise Records w celu określenia, że podkategoria dziedziczy nadrzędny harmonogram rozporządzenia. W przypadku ręcznego tworzenia pliku XML w celu zaimportowania kartoteki akt, która zawiera podkategorię, należy określić, że podkategoria nie dziedziczy harmonogramu obiektu nadrzędnego. Należy określić, że podkategoria udostępnia inny harmonogram.

W tworzonym pliku XML użyj właściwości DisposalScheduleInheritedFrom w celu wskazania, czy kategoria akt dziedziczy harmonogram rozporządzania z obiektu nadrzędnego. Na przykład:

<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>
Istnieją cztery scenariusze, w których można wykorzystać właściwość DisposalScheduleInheritedFrom:
<Property Name="DisposalScheduleInheritedFrom" Value="/myCat1" />

Właściwość ConditionXML

W przypadku ręcznego tworzenia pliku XML w celu zaimportowania kartoteki akt istnieje możliwość określania wartości dla właściwości ConditionXML. Narzędzie kartoteki akt korzysta z tej właściwości do importowania następujących elementów: W przypadku obiektów, takich jak Alternatywne czasy przechowywania, Wyzwalacze zdarzenia wewnętrznego i Wstrzymania dynamiczne (warunkowe) właściwość ConditionXML zapisuje warunki wyszukiwania w formacie XML. Znacznik właściwości w ConditionXML zawiera nazwę/wartość/operatora właściwości dla interfejsu użytkownika IBM Enterprise Records. Znacznik sql w ConditionXML zawiera instrukcję SQL. W przypadku wprowadzenia wartości właściwości ConditionXML w celu zaimportowania kartoteki akt znaki specjalne (< > & " ') należy przekształcić na standardową reprezentację. Reprezentacja standardowa jest następująca: &lt;, &gt;, &amp;, &quot;, and &apos;. Należy zapoznać się z przykładowym kodem XML obiektów zawierających właściwość ConditionXML dla importu i eksportu kartoteki akt w kolejnych sekcjach.

Przykład ConditionXML dla alternatywnego czasu przechowywania

<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" />
          <ObjectValue Type="AlternateRetention">
            <Properties>
              <Property Name="RetentionBase" Value="CutoffDate" />
              <Property Name="ConditionXML" Value="&lt;response xmlns=&quot;http://www.ibm.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">
            <Properties>
              <Property Name="RetentionBase" Value="DateClosed" />
              <Property Name="ConditionXML" Value="&lt;response xmlns=&quot;http://www.ibm.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>

Przykład wyzwalacza rozporządzania z właściwością 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://www.ibm.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>

Przykład wstrzymania dynamicznego z właściwością 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://www.ibm.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>

Aktualizacja okresu przechowywania

W celu zaktualizowania okresu przechowywania istniejącej fazy na null do pliku XML należy wprowadzić właściwości okresu przechowywania (RetentionPeriodYears, RetentionPeriodMonths i RetentionPeriodDays) w pliku XML bez wartości. Należy zapoznać się z przykładowym kodem XML obiektu fazy dla narzędzia importowania i eksportowania kartoteki akt w następującym przykładzie:
<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://www.ibm.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>


Opinia

Ostatnia aktualizacja: Listopad 2013
file_plan_import_export_tips.htm

© Copyright IBM Corp. 2013