Podczas przetwarzania danych przychodzących struktura transformacji danych przekształca dane zdarzenia w obiekt biznesowy
produktu WebSphere Adapter. Jest to konieczne, ponieważ
komponenty serwera WebSphere Process Server używają tylko
obiektów biznesowych produktu
WebSphere Adapter.
W poniższych krokach opisano transformację danych wykonywaną podczas przetwarzania danych przychodzących:
- Każdy obiekt biznesowy jest wybierany z pliku zdarzeń na podstawie właściwości SplitCriteria,
która zawiera separator używany do oddzielania obiektów biznesowych znajdujących się w pliku zdarzeń.
- Właściwości DefaultObjectName i EventContentType specyfikacji aktywowania ActivationSpec są ustawiane zgodnie z odpowiednimi wartościami
objectName i contentType w obiekcie biznesowym.
Nazwą obiektu biznesowego
może być nazwa ogólnego opakowującego wykresu biznesowego (na przykład FTPFileBG) lub nazwa opakowującego wykresu biznesowego specyficznego dla
treści (na przykład SalesOrderWrapperBG). Właściwość
EventContentType musi mieć ustawioną poprawną wartość.
- Informacje specyficzne dla protokołu, takie jak nazwa pliku zdarzeń i nazwa katalogu, są ustawiane w obiekcie biznesowym.
- Obiekt biznesowy jest wysyłany do selektora funkcji, który wywołuje określone wiązanie danych.
- Obiekt biznesowy specyficzny dla treści jest ustawiany na opakowujący obiekt biznesowy. Informacje
specyficzne dla protokołu, takie jak nazwa katalogu i nazwa pliku, są ustawiane w opakowaniu. Opakowanie
jest ustawiane w wykresie biznesowym i wysyłane do punktu końcowego. Przykład adnotacji dla obiektów biznesowych
SalesorderWrapper i SalesOrder znajduje się poniżej.
<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>
Diagram
przetwarzania transformacji danych przychodzących
Przetwarzanie tranzytowe
Przetwarzanie tranzytowe ma miejsce wtedy,
gdy nie jest wykonywana transformacja danych.
W poniższych krokach opisano tranzyt danych wykonywany podczas przetwarzania danych przychodzących:
- Każdy obiekt biznesowy jest pobierany z pliku zdarzeń na podstawie określonych kryteriów podziału. Właściwości
DefaultObjectName i EventContentType zawarte w specyfikacji aktywowania ActivationSpec są ustawiane zgodnie z odpowiednią
nazwą rekordu i typem treści zawartymi w nieustrukturyzowanym obiekcie biznesowym. Domyślna nazwa obiektu musi być ustawiona
na nazwę ogólnego opakowującego wykresu biznesowego (na przykład: FTPFileBG).
- Informacje specyficzne dla protokołu, takie jak nazwa pliku zdarzeń i nazwa katalogu,
są ustawiane w nieustrukturyzowanym obiekcie biznesowym. Jest także wskazane,
czy funkcja tranzytu dzieli plik na porcje, przekazuje plik przez referencję (ma ustawiony atrybut FilePassByReference) lub ma ustawioną domyślną
wartość 1.
- W przypadku przetwarzania z przekazywaniem pliku przez referencję (atrybut FilePassByReference) nazwa katalogu jest zgodna z nazwą
lokalnego katalogu archiwum, a do nazwy pliku zdarzeń jest dodawany znacznik czasu.
- W przypadku przetwarzania z dzieleniem pliku na porcje nazwa katalogu jest zgodna z nazwą
lokalnego katalogu archiwum, a nazwa pliku reprezentuje plik zdarzeń. Właściwość ChunkInfo
reprezentuje szczegóły dotyczące porcji.
- W przypadku normalnego przetwarzania tranzytowego nazwa katalogu jest zgodna z nazwą
lokalnego katalogu archiwum, a nazwa pliku reprezentuje plik zdarzeń.
- Jeśli właściwość EventContentType jest ustawiona na wartość NULL
lub jest niepoprawna albo nie zawiera zgodnego wpisu w adnotacji odwzorowania
wiązania danych opakowania, to dane przychodzące są przetwarzane przy użyciu funkcji tranzytu. W podobnym przypadku właściwość DefaultObjectName jest ustawiana na
nazwę ogólnego opakowującego wykresu biznesowego (na przykład FTPFileBG).
- Obiekt biznesowy FTPFileUnstructuredRecord jest wysyłany do selektora funkcji,
który tworzy instancję opakowania i sprawdza adnotację odwzorowania wiązania danych
dla kombinacji właściwości contentType i DataBinding. Dzięki temu w selektorze funkcji może zostać wykonana wstępna analiza na podstawie typu treści
przychodzącego obiektu biznesowego FTPFileUnstructuredRecord. Jeśli nie jest zdefiniowane żadne zgodne
wiązanie danych (na przykład właściwość contentType ma wartość NULL, ma wartość niepoprawną
lub nie zawiera wpisu w odwzorowaniu wiązania danych) albo nie można przetłumaczyć
wywołanego wiązania danych na obiekt biznesowy, to nie jest wywoływane żadne specyficzne dla treści
wiązanie danych i jest tworzona instancja nieustrukturyzowanego obiektu biznesowego treści.
- W opakowującym obiekcie biznesowym FTPFile są ustawiane informacje specyficzne dla protokołu,
a obiekt biznesowy UnstructuredContent jest ustawiany w obiekcie biznesowym FTPFile.
- Opakowujący obiekt biznesowy FTPFile jest ustawiany w obiekcie biznesowym FTPFileBG,
a następnie jest wysyłany do punktu końcowego.
Diagram tranzytowego przetwarzania danych przychodzących