В ходе обработки входящих событий среда преобразования
данных преобразует информацию из событий в бизнес-объекты
WebSphere Adapter. Такое преобразование необходимо, поскольку
компоненты сервера
WebSphere
Process Server поддерживают только бизнес-объекты
WebSphere Adapter.
В следующей процедуре показано, каким образом выполняется
преобразование данных в ходе обработки входящих событий.
- Из файла событий последовательно выбираются все бизнес-объекты в соответствии
со свойством SplitCriteria, которое содержит ограничитель, применяемый для
разделения бизнес-объектов в файле.
- В свойствах DefaultObjectName и EventContentType из ActivationSpec
указываются значения свойств objectName и contentType бизнес-объекта.
Имя
бизнес-объекта может совпадать с именем шаблона оболочки
бизнес-графика (например, FTPFileBG) или именем оболочки бизнес-графика
содержимого (например, SalesOrderWrapperBG). Для свойства EventContentType
должно быть указано допустимое значение.
- Информация о протоколе, такая как имя файла событий и имя
каталога, задается в бизнес-объекте.
- Бизнес-объект отправляется селектору функций, который вызывает
указанное связывание данных.
- Бизнес-объект содержимого задается в оболочке бизнес-объекта.
Информация о протоколе, такая как имя каталога и имя файла,
задается в оболочке. Оболочка задается в бизнес-графике и отправляется в
конечную точку. Ниже приведен пример аннотации для бизнес-объектов SalesorderWrapper
и SalesOrder.
<complexType name=" SalesorderWrapper ">
<annotation>
<appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/
datatransformation/databindingmapping">
<dtm:DataBindingMapping xsi:type="dtm:DataBindingMapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dtm="http://www.ibm.com/xmlns/prod/websphere/j2ca/
datatransformation/databindingmapping">
<DataBindingConfig xsi:type="dtm:XMLBOSerializerDataBindingMetadata">
<ContentType>text/xml</ContentType>
<DataBindingClass>com.ibm.j2ca.extension.emd.runtime.
WBIXMLDataBinding</DataBindingClass>
</DataBindingConfig>
</dtm:DataBindingMapping>
</appinfo>
</annotation>
...
<complexType name="FTPFile">
<annotation>
<appinfo source="http://www.ibm.com/xmlns/prod/websphere/
j2ca/datatransformation/
databindingmapping">
<dtm:DataBindingMapping xsi:type="dtm:DataBindingMapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dtm="http://www.ibm.com/xmlns/prod/websphere/j2ca/
datatransformation/databindingmapping">
<DataBindingConfig xsi:type="dtm:XMLBOSerializerDataBindingMetadata">
<ContentType>text/xml</ContentType>
<DataBindingClass>com.ibm.j2ca.extension.emd.runtime.WBIXMLDataBinding</
DataBindingClass>
</DataBindingConfig>
</dtm:DataBindingMapping>
</appinfo>
</annotation>
...
<complexType name=" SalesOrder ">
<annotation>
<appinfo source="http://www.ibm.com/xmlns/prod/websphere/j2ca/
datatransformation/databindingmapping">
<dtm:DataTransformationMetadata xmlns:dtm="http://www.ibm.com/
xmlns/prod/websphere/j2ca/datatransformation/databindingmapping">
<ContentType>text/xml</ContentType>
<Charset></Charset>
<WrapperName>http://www.ibm.com/xmlns/prod/websphere/j2ca/ftp/
salesorderwrapperbg/SalesOrderWrapperBG</WrapperName>
</dtm:DataTransformationMetadata>
</appinfo>
</annotation>
<xs:complexContent>
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="Id" type="xs:integer"/>
<xs:element name="Priority" type="xs:integer" default="3"/>
<xs:element name="Item"
xmlns:child="http://... "
type="child:OrderLineItem" minOccurs="0"/>
</xs:sequence>
</xs:complexContent>
</xs:complexType>
Диаграмма преобразования данных для
входящих событий
Сквозная обработка
Сквозная обработка выполняется в
том случае, если преобразование данных не требуется.
В следующей процедуре
показано, каким образом выполняется сквозная обработка данных для входящих
событий.
- Из файла событий последовательно выбираются все бизнес-объекты в соответствии
с указанным свойством разбиения. В свойствах DefaultObjectName и
EventContentType из ActivationSpec указываются имя записи и тип
содержимого из бизнес-объекта без структуры. В качестве имени объекта
по умолчанию должно быть указано имя шаблона оболочки бизнес-графика, например,
FTPFileBG.
- Информация о протоколе, такая как имя файла событий и имя каталога,
задается в бизнес-объекте без структуры. Кроме того, указывается способ
обработки и наличие
файла фрагментации в случае сквозной обработки.
- В случае обработки FilePassByReference в качестве имени каталога
указывается локальный каталог архива, а к имени файла событий добавляется
системное время.
- В случае обработки с фрагментацией в качестве имени каталога указывается
локальный каталог архива, а имя файла представляет файл событий. В свойстве ChunkInfo
содержится информация о фрагментах.
- В случае обычной сквозной обработки в качестве имени каталога
указывается локальный каталог архива, а имя файла представляет файл событий.
- Если свойство EventContentType недопустимо, содержит значение
null или не содержит соответствующую запись в аннотации
к преобразованию связывания данных оболочки, то для входящего сценария применяется
сквозная обработка.
Если свойство DefaultObjectName не задано, в нем указывается имя
шаблона оболочки бизнес-графика, например, FTPFileBG.
- Бизнес-объект FTPFileUnstructuredRecord отправляется селектору
функций, который создает экземпляр оболочки и проверяет аннотацию
к преобразованию связывания данных для комбинаций свойств contentType и
DataBinding.
Такой подход позволяет селектору функций выполнить предварительный анализ в
соответствии с типом содержимого входящего бизнес-объекта
FTPFileUnstructuredRecord. Если подходящее связывание данных отсутствует
(например, свойство contentType недопустимо, содержит значение
null, не содержит запись в преобразовании связывания
данных или вызванному связыванию данных не удалось найти бизнес-объект),
создается экземпляр
бизнес-объекта без структуры содержимого без вызова связывания данных для
содержимого.
- Оболочка бизнес-объекта FTPFile задается в соответствии с информацией о
протоколе, а бизнес-объект UnstructuredContent задается в бизнес-объекте
FTPFile.
- Оболочка бизнес-объекта FTPFile задается в бизнес-объекте и
отправляется в конечную точку.
Диаграмма сквозной обработки входящих
событий