IBM Enterprise Records, Версия 5.1.2    

Устранение неисправностей инструмента экспорта и импорта планов размещения

Вы должны знать информацию об общих причинах ошибок, которые могут произойти при использовании инструмента экспорта и импорта планов размещения IBM® Enterprise Records. Нужно также знать способы уменьшения вероятности ошибок.

Общие причины ошибок

При импорте плана размещения может произойти ошибка. В большинстве случаев после ошибки процесс импорта останавливается, и никакого сообщения не выводится. Причиной ошибки может стать любой из следующих факторов: Инструмент экспорта и импорта планов размещения выключает в себя опции, помогающие устранять возможные ошибки. Узнать подробнее об этих ошибках можно в следующих разделах.

Создание файла XML вручную

Создание файла XML вручную означает создание файла XML без помощи инструмента экспорта и импорта планов размещения. Например, можно создать файл XML при помощи макрокоманд или других возможностей программирования. Для возможности импорта плана размещения сначала следует создать файл XML, соответствующий стандарту XML и совместимый со схемой XML.

Если файл XML для использования при импорте плана размещения создается вручную, за основу нужно взять файл для схемы XML, предоставляемой IBM.

Важное замечание: Большинство ошибок при импорте плана размещения происходят из-за несовместимых или несоответствующих файлов XML. Поэтому, создавая файл XML вручную, будьте внимательны.

Создав файл XML, запустите инструмент экспорта и импорта планов размещения в режиме проверки. В режиме проверки этот инструмент читает файл XML и проверяет, не содержит ли он каких-либо ошибок или несовместимых факторов. Подробности о режиме проверки смотрите в теме по использованию инструмента планов размещения.

Некоторые из опций, доступных при создании файла XML вручную, включены в разделы Наследование расписания подкатегории и Свойство ConditionXML этой темы справки.

Определение функций инструмента экспорта и импорта планов размещения

Создавая вручную файл XML для импорта большого плана размещения с пользовательскими классами объектов, создайте сначала небольшой план размещения и связанные метаданные. Затем запустите инструмент в режиме экспорта. Такое упражнение полезно перед созданием файла XML вручную для планов размещения с объектами условных удержаний, триггеров внутренних событий и альтернативного хранения. Все приведенные здесь действия содержат сложное свойство Свойство ConditionXML. Даже если файл создан в правильном формате XML, он может содержать неправильные значения свойств или синтаксис. Эта неверная информация может привести к ошибкам при импорте. Можно просмотреть файл XML, создаваемый описываемым инструментом при экспорте небольшого плана размещения. Проверьте в этом файле XML синтаксис и значения свойств.

Использование опции scope metadata

Если план размещения содержит пользовательские классы или свойства, в процессе экспорта нужно использовать опцию scope metadata. Опция scope metadata создает для пользовательских классов и свойств отдельный файл XML. Поэтому, если план размещения содержит пользовательские классы или свойства, каждый из процессов экспорта и импорта состоит из двух шагов: одного шага для пользовательских классов и свойств и другого шага для остальной части плана. Информацию о процедурах по использованию опции scope metadata смотрите в теме по использованию инструмента планов размещения.

Использование опции reimport

Опция reimport используется для задания поведения действия добавления в файле XML. У опции reimport есть три параметра: При начальном импорте большого плана размещения можно использовать опцию Пропустить. При второй попытке импортировать тот же план размещения с помощью опции Пропустить можно избежать повторного импорта уже успешно импортированных объектов. Однако если при второй попытке импорта потребуются незначительные изменения объектов, успешно импортированных в первый раз, следует использовать опцию Заменить.

При последующих операциях импорта незначительных изменений для новых объектов задайте в файле XML для этих объектов опцию Action="Modify" вместо того, чтобы изменять исходный файл XML. Кроме того, использование режима Обновить упрощает последующие обновления объектов после начального полного импорта.

Наследование расписания подкатегории

При создании подкатегории с помощью пользовательского интерфейса IBM Enterprise Records можно указать, что подкатегория наследует родительское расписание утилизации. При создании вручную файла XML для импорта плана размещения, в котором содержится данная подкатегория, укажите, что подкатегория не наследует расписание родительского объекта. Укажите, что подкатегория предусматривает другое расписание.

В создаваемом вами файле XML при помощи свойства DisposalScheduleInheritedFrom надо указать, наследует ли категория записей расписание утилизации от родительского объекта. Например:

<RecordCategory Name="myCat2" Level="2" ParentPath="/myCat1">
    <Свойства>
        <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:
<Property Name="DisposalScheduleInheritedFrom" Value="/myCat1" />

Свойство ConditionXML

При создании вручную файла XML для импорта плана размещения предусмотрена опция задания значений для свойства ConditionXML. Инструмент импорта планов размещения использует это свойство для импорта следующих элементов: Для объектов Альтернативные хранения, Триггеры внутренних событий и Динамические (условные) удержания в свойстве ConditionXML хранятся условия поиска в формате XML. В теге properties в свойстве ConditionXML хранится имя свойства/значение/оператор для пользовательского интерфейса IBM Enterprise Records. В теге sql в ConditionXML хранится оператор SQL. При вводе значения свойства ConditionXML для импорта плана размещения специальные символы (< > & " ') необходимо преобразовать в их стандартное представление. Стандартное представление - это &lt;, &gt;, &amp;, &quot; и &apos;. Примеры файлов XML объектов, содержащих свойство ConditionXML для инструмента экспорта и импорта планов размещения смотрите в следующих разделах.

Пример ConditionXML для альтернативного хранения

<Phases>
  <RMEntity Type="Phase" Name="myPhase1">
    <Свойства>
        <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">
            <Свойства>
              <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">
            <Свойства>
              <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>

Пример триггера утилизации с использованием ConditionXML

<DisposalTriggers>
  <RMEntity Type="DisposalTrigger" Name="Date Created">
   <Свойства>
     <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>

Sample of Dynamic Hold with ConditionXML:

<Holds>
  <RMEntity Type="RecordHold" Name="dynamic Hold">
   <Свойства>
     <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>

Изменение периода хранения

Чтобы изменить значение периода хранения существующей фазы на пустое (NULL), свойства периода хранения (RetentionPeriodYears, RetentionPeriodMonths и RetentionPeriodDays) нужно включить в файл XML без значений. Следующий пример - это XML объекта фазы для инструмента экспорта и импорта планов размещения:
<RMEntity Type="Phase" Name="phase 1">
          <Свойства>
             <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">
                   <Свойства>
                      <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>


Отзыв

Последнее обновление: Ноябрь 2013 г.
file_plan_import_export_tips.htm

© Copyright IBM Corp. 2013