BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA
 ドキュメントのダウンロード   サイト マップ   用語集 
検索

B2B Integration RosettaNet の実装

 前 次 目次 索引 PDFで表示  

RosettaNet でのワークフローの使用

以下の節では、RosettaNet Partner Interface Process (PIP) を実装するワークフローの開発方法について説明します。

この章の手順説明では、WebLogic Integration Studio で表示されるワークフロー図に説明しています。ワークフロー ダイアグラムにアクセスするには、『WebLogic Integration の起動、停止およびカスタマイズ』の「WebLogic Integration 管理ツールと設計ツール」にある「Studio の起動」の説明に従って Studio を起動します。B2B アプリケーションで使用する協調的ワークフローの定義の詳細については、『WebLogic Integration の起動、停止およびカスタマイズ』を参照してください。

 


RosettaNet の理解

次の RosettaNet マニュアルは、WebLogic Integration で提供される RosettaNet のサポートを使用して独自の PIP を実装する場合には、必読です。また、RosettaNet PIP 実装サンプルを完全に理解したい場合にも、一読をお勧めします。

 


PIP ワークフロー インスタンスの理解

WebLogic Integration は、標準の RosettaNet PIP をパブリック ワークフロー(協調的ワークフローとも言う)によって実装します。プライベート ワークフローがメッセージの生成や、メッセージへの応答のためのバックエンド システムへのインタフェースに使用されるのに対し、パブリック ワークフローは他のトレーディング パートナにインタフェースを提供します。

次の図は、PIP ワークフローがトレーディング パートナ間でメッセージを渡すプロセスを示します。

図2-1 メッセージ ワークフロー


 

一般に、RosettaNet 指向のワークフローは、次のようにメッセージを処理します。

  1. 顧客のプライベート ワークフローが、RosettaNet メッセージを開始します。データが取得されて RosettaNet メッセージ構造にフォーマットされ、適切な PIP が決定され、メッセージが PIP 内の顧客のロールを実装するパブリック ワークフローに転送されます。

  2. パブリック ワークフローのプロセスにより、適切な RosettaNet メッセージが作成されます。メッセージは B2B エンジンを通じて PIP 内の製品サプライヤのロールを実装しているパブリック ワークフローに送信されます。

  3. 製品サプライヤのパブリック ワークフローはメッセージを受信し、ヘッダ情報を処理し、次に検証済みの顧客情報とメッセージ コンテンツを適切なプライベート ワークフロー プロセスに渡します。

  4. 製品サプライヤのプライベート プロセスが、メッセージ コンテンツを解決し、応答を生成します。応答は RosettaNet メッセージ構造になるように処理され、製品サプライヤのパブリック プロセスに戻されます。

  5. 製品サプライヤのパブリック プロセスは RosettaNet 応答メッセージを作成し、B2B エンジンを介して顧客のパブリック プロセスに送信します。

  6. 顧客のパブリック プロセスは応答メッセージを受信し、ヘッダ情報を処理し、次に検証済みの製品サプライヤ情報およびメッセージ コンテンツを適切なプライベート プロセスに渡します。

  7. プライベート プロセスが応答メッセージのコンテンツを解決します。

 


はじめに

RosettaNet ワークフローの開発に必要なタスクは、他のワークフローの開発に使用されるものとほぼ同じですが、一部で異なっています。標準的な手順は、『WebLogic Integration の起動、停止およびカスタマイズ』に記載されています。RosettaNet ワークフローを作成する前に参照してください。

WebLogic Integration には、RosettaNet 1.1 および 2.0 用の PIP0A1 と PIP3A2 がフルに実装されています。これらのテンプレートは、追加で PIP ワークフローを作成する場合のテンプレート ベースとして役に立ちます。

この節のこれ以降では、RosettaNet 固有のワークフローの作成に関する問題について説明します。

 


パブリック ワークフローとプライベート ワークフローの調整

WebLogic Integration では、RosettaNet PIP は B2B エンジンを介してのメッセージ交換でトレーディング パートナのロールを実装するパブリック ワークフローです。これらのワークフローは、次の処理を行うプライベート ワークフローと協調して動作するように設計されています。

パブリック ワークフローを開始するためのプライベート ワークフロー、またはプライベート ワークフローを開始するためのパブリック ワークフローのコンフィグレーションに必要な手順は、『WebLogic Integration の起動、停止およびカスタマイズ』の「協調的ワークフローの開始」で説明しています。

 


RosettaNet ワークフロー変数

WebLogic Integration Studio で実装される RosettaNet ワークフローが動作するには、いくつかのワークフロー変数が必要です。これらの変数の使われ方は、次の 3 通りです。

実装されている PIP ロールとは関係なく、RosettaNet ワークフローはすべて、システム変数、入力変数、および出力変数からなる同じ基本セットを含んでいる必要があります。以下の節で、必要な変数を RNIF のバージョン別に表にまとめています。

ワークフロー変数表の使用

各ワークフロー変数について、名前と型(boolean、string、integer、xml、または object)が識別されます。加えて、以下の節に示されるように、変数の使い方と説明が記載されています。

使い方

ワークフロー変数は、次のように使い方別に分類されます。

これらのワークフロー変数の使用時に注意すべき重要な点は、パブリック ワークフローを開始するときには、すべての入力変数が初期化されなくてはならないということです。入力変数の初期化に使用される値は、公開や送信の必要はありません。

必須ワークフロー変数には、NOF パーティの指定が含まれます。これらのパーティが、PIP 例外を処理するトレーディング パートナです。NOF パーティは、元の PIP の参加者であっても、第三者であってもかまいません。

説明

変数について簡単に説明します。関連のある場合、変数の説明には変数のマップ先となる RosettaNet オブジェクト(RNIF 1.1)または RosettaNet ビジネス メッセージ(RNIF 2.0)の要素が含まれます。たとえば、入力変数 GlobalUsageCode のマップ先は、次のとおりです。

ServiceHeader/ProcessControl/GlobalUsageCode

この場合、スラッシュは次のように階層的な要素構造における位置を示します。

<ServiceHeader>
<ProcessControl>
<GlobalUsageCode>Value</GlobalUsageCode>
. . .
</ProcessControl>
. . .
</ServiceHeader>

RNIF 2.0 のワークフロー変数

表 2-1 では、RNIF 2.0 PIP ワークフローで必要とされるテンプレート変数について説明しています。付加的な PIP 固有の入力変数および出力変数も必要な場合があります。特定の PIP については、メッセージ ガイドラインと XML 文書型定義(DTD)を参照してください。

表2-1 RNIF 2.0 のテンプレート変数

名前

使い方と説明

actionCode

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/ActivityControl/MessageControl
/Manifest/ServiceContentControl
/ActionIdentity/GlobalBusinessActionCode

actionCodeVersion

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/ActivityControl/MessageControl
/Manifest/ServiceContentControl
/ActionIdentity/VersionIdentifier

attachmentDescriptorInput

xml

入力−値は省略可能

添付ファイルとして使用されるファイルの記述子を含む。

attachmentDescriptorOutput

xml

出力−値は省略可能

添付ファイルとして受信された可能性のあるファイルの記述子を含む。

businessActivityID

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/ActivityControl
/BusinessActivityIdentifier

DOC_TYPE

string

システム−値は省略可能

XML メッセージの doctype 文字列を含む。この文字列は、サービス コンテンツに doctype 文字列が含まれていなかった場合に、そのコンテンツに挿入される。

exceptionError

boolean

システム−値は省略可能

例外エラーが発生したかどうかを示す。

fromDUNS

string

入力−値は必須

送信者の DUNS。トレーディング パートナのリポジトリ内で定義されたビジネス ID と一致している必要がある。

マップ先 :

DeliveryHeader
/messageSenderIdentification
/PartnerIdentification
/GlobalBusinessIdentifier

ServiceHeader/ProcessControl
/KnownInitiatingPartner
/PartnerIdentification
/GlobalBusinessIdentifier

fromLocation

string

システム−値は必須

マップ先 :

DeliveryHeader
/messageSenderIdentification
/PartnerIdentification
/locationID/FreeFormText

fromRole

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/MessageControl/fromRole
/GlobalPartnerRoleClassificationCode

fromService

string

システム−値は必須

マップ先 :

ServiceHeader
/ProcessControl/MessageControl
/fromService/GlobalBusinessServiceCode

globalUsageCode

string

入力−値は必須

Test または Production のいずれかに設定される。

マップ先 :

ServiceHeader/ProcessControl
/GlobalUsageCode

gotMessage

string

システム−値は必須

RosettaNet メッセージが受信されたかどうかを示す。
メッセージが受信された場合は True。
タイムアウトが発生した場合は False。

isSignal

boolean

システム−値は省略可能

信号が受信されたかどうかを示す。

messageCode

integer

システム−値は省略可能

メッセージ送信によって返されたコードを含む。

messageTrackingId

string

システム−値は省略可能

PIP0A1 通知のためのメッセージ コンテンツにデータを入れるために使用されるメッセージ ID。

NOFParty1

string

入力−値は必須

PIP Failure Notifier ロールのパーティ名。Notification of Failure Error プロセス(PIP0A1)を開始するために使用される。

NOFParty2

string

入力−値は必須

PIP Failure Report Administrator ロールのパーティ名。Notification of Failure Error プロセス(PIP0A1)を開始するために使用される。

PIP

string

システム−値は必須

対話名に一致している必要がある。

マップ先 :

ServiceHeader/ProcessControl
/pipCode/GlobalProcessCode

PIPInput

xml

入力−値は必須

メッセージのサービス コンテンツ。

PIPOutput

xml

出力−値は省略可能

受信したメッセージのサービス コンテンツ。

PIPVersion

string

システム−値は必須

対話のバージョンに一致している必要がある。

マップ先 :

ServiceHeader/ProcessControl
/pipVersion/VersionIdentifier

reason

string

システム−値は省略可能

ワークフローの終了理由を含む。

retryCount

integer

システム−値は必須

再試行回数を保存するカウンタ。

rnProcessInstanceId

string

システム−値は省略可能

PIP インスタンスのプロセス ID。0A1 通知のためのメッセージ コンテンツにデータを入れるために使用される。

rnSystem

object

システム−値は省略可能

アプリケーションのデータ状態を保持するために内部で使用されるオブジェクト。統合された rnSystem 変数を参照。

SERVICE_CONTENT_SCHEMA

string

システム−値は必須

照らし合わせてサービス コンテンツを検証するための XSD スキーマの名前を含む。

timeStamp

string

システム−値は省略可能

再試行のカウントが 1 であった場合(すなわち、初めて行われた再試行の場合)、タイムスタンプは内部で生成される。

マップ先 :

DeliveryHeader/messageDateTime
/DateTimeStamp

toDUNS

string

入力−値は必須

受信者の DUNS。トレーディング パートナのリポジトリ内で定義されたビジネス ID と一致している必要がある。

マップ先 :

DeliveryHeader
/messageReceiverIdentification
/PartnerIdentification
/GlobalBusinessIdentifier

toLocation

string

入力−値は必須

マップ先 :

DeliveryHeader
/messageReceiverIdentification
/PartnerIdentification
/locationID/FreeFormText

toRole

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/MessageControl/toRole
/GlobalPartnerRoleClassificationCode

toService

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/MessageControl/toService
/GlobalBusinessServiceCode

useDTDValidation

boolean

システム−値は省略可能

True に設定した場合、XSD ではなく DTD 検証が使用される。False に設定した場合または変数が存在しない場合、検証には XSD スキーマが使用される。そもそも検証を実行するかどうかは、validateServiceContent および validateServiceHeader の値に応じて決定される。

validateServiceContent

boolean

入力−値は必須

サービス コンテンツをスキーマに照らし合わせて検証する必要があるかどうかを示すフラグ。

True −検証は必要

False −検証は不要

validateServiceHeader

boolean

入力−値は必須

サービス ヘッダをスキーマに照らし合わせて検証する必要があるかどうかを示すフラグ。

True −検証は必要

False −検証は不要

validationError

boolean

システム−値は省略可能

検証結果を示す。


 

RNIF 1.1 のワークフロー変数

表 2-2 では、RNIF 1.1 PIP ワークフローのテンプレート変数について説明しています。付加的な PIP 固有の入力変数および出力変数も必要な場合があります。特定の PIP については、メッセージ ガイドラインと XML 文書型定義(DTD)を参照してください。

表2-2 RNIF 1.1 のテンプレート変数

名前

使い方と説明

actionCode

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/TransactionControl/ActionControl
/ActionIdentity/GlobalBusinessActionCode

actionCodeVersion

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/TransactionControl
/ActionControl/ActionIdentity
/VersionIdentifier

attachmentDescriptorInput

xml

入力−値は省略可能

添付ファイルとして使用されるファイルの記述子。

attachmentDescriptorOutput

xml

出力−値は省略可能

添付ファイルとして受信された可能性のあるファイルの記述子を含む。

businessActivityID

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/ProcessIdentity
/GlobalProcessCode

DOC_TYPE

string

システム−値は省略可能

XML メッセージの doctype 文字列を含む。この文字列は、サービス コンテンツに doctype 文字列が含まれていなかった場合に、そのコンテンツに挿入される。

docId

string

システム−値は省略可能

確認応答メッセージの作成に使用される。

マップ先 :

ReceiptAcknowledgement/
receivedDocumentIdentifier
/ProprietaryDocumentIdentifierReceiptAcknowledgmentException
/theOffendingDocumentIdentifier
/ProprietaryDocumentIdentifierException
/theOffendingDocumentIdentifier
/ProprietaryDocumentIdentifier

exceptionError

boolean

システム−値は省略可能

例外エラーが発生したかどうかを示す。

fromClass

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/TransactionControl/ActionControl
/PartnerRoute/fromPartner/PartnerDescription
/GlobalPartnerClassificationCode

ServiceHeader/ProcessControl
/TransactionControl/SignalControl
/PartnerRoute/fromPartner/PartnerDescription
/GlobalPartnerClassificationCode

fromContactName

string

入力−値は必須

「Notification of Error」メッセージのための XML コンテンツを構成するために使用される。

fromDUNS

string

入力−値は必須

送信者の DUNS。トレーディング パートナのリポジトリ内で定義されたビジネス ID と一致している必要がある。

マップ先 :

ServiceHeader/ProcessControl
/TransactionControl/ActionControl
/PartnerRoute/fromPartner
/PartnerDescription/BusinessDescription
/GlobalBusinessIdentifierServiceHeader
/ProcessControl/TransactionControl
/SignalControl/PartnerRoute
/fromPartner/PartnerDescription
/BusinessDescription/GlobalBusinessIdentifier

fromEmailAddress

string

入力−値は必須

「Notification of Error」メッセージのための XML コンテンツを構成するために使用される。送信者の電子メール アドレス。

fromPhone

string

入力−値は必須

「Notification of Error」メッセージのための XML コンテンツを構成するために使用される。送信者の電話番号。

fromRole

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/TransactionControl/PartnerRoleRoute
/fromRole/PartnerRoleDescription
/GlobalPartnerRoleClassificationCode

fromService

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/ServiceRoute/fromService
/BusinessServiceDescription
/GlobalBusinessServiceCode

fromSupplychain

string

入力−値は必須

メッセージ確認応答の作成に使用される。

マップ先 :

ReceiptAcknowledgement
/fromRole/PartnerRoleDescription
/PartnerDescription/BusinessDescription
/GlobalSupplyChainCode

ReceiptAcknowledgmentException
/fromRole/PartnerRoleDescription
/PartnerDescription/BusinessDescription
/GlobalSupplyChainCode

Exception/fromRole
/PartnerRoleDescription/PartnerDescription
/BusinessDescription/GlobalSupplyChainCode

functionCode

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/TransactionControl/ActionControl
/GlobalDocumentFunctionCode

globalUsageCode

string

入力−値は必須

Test または Production のいずれかに設定される。

マップ先 :

Preamble/GlobalUsageCode

gotMessage

string

システム−値は必須

RosettaNet メッセージが受信されたかどうかを示す。
True −メッセージは受信された。
False −タイムアウトが発生した。

isSignal

boolean

システム−値は省略可能

信号が受信されたかどうかを示す。

messageCode

integer

システム−値は省略可能

メッセージ送信によって返されたコードを含む。

messageTrackingId

string

システム−値は省略可能

PIP0A1 通知のためのメッセージ コンテンツにデータを入れるために使用されるメッセージ ID。

NOFParty1

string

入力−値は必須

PIP Failure Notifier ロールのパーティ名。Notification of Failure Error (PIP0A1) を開始するために使用される。

NOFParty2

string

入力−値は必須

PIP Failure Report Administrator ロールのパーティ名。Notification of Failure Error (PIP0A1) を開始するために使用される。

PIP

string

システム−値は必須

対話名に一致している必要がある。

マップ先 :

ServiceHeader/ProcessControl
/ProcessIdentity/GlobalProcessIndicatorCode

PIPInput

xml

入力−値は必須

メッセージのサービス コンテンツ。

PIPOutput

xml

出力−値は省略可能

受信したメッセージのサービス コンテンツ。

PIPVersion

string

システム−値は必須

対話のバージョンに一致している必要がある。

マップ先 :

ServiceHeader/ProcessControl
/ProcessIdentity/VersionIdentifier

reason

string

システム−値は省略可能

ワークフローの終了理由を含む。

retryCount

integer

システム−値は必須

再試行回数を保存するカウンタ。

rnProcessInstanceId

string

システム−値は省略可能

PIP インスタンスのプロセス ID。0A1 通知のためのメッセージ コンテンツにデータを入れるために使用される。

rnSystem

object

システム−値は省略可能

アプリケーションのデータ状態を保持するために内部で使用されるオブジェクト。「統合された rnSystem 変数」を参照。

SERVICE_CONTENT_SCHEMA

string

システム−値は必須

照らし合わせてサービス コンテンツを検証するための XSD スキーマの名前を含む。

timeStamp

string

システム−値は省略可能

マップ先 :

ReceiptAcknowledgement
/receivedDocumentDateTime/DateTimeStamp

ReceiptAcknowledgmentException
/theOffendingDocumentDateTime
/DateTimeStamp

Exception/theOffendingDocumentDateTime
/DateTimeStamp

toClass

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/TransactionControl/ActionControl
/PartnerRoute/toPartner/PartnerDescription
/GlobalPartnerClassificationCode

ServiceHeader/ProcessControl
/TransactionControl/SignalControl
/PartnerRoute/toPartner/PartnerDescription
/GlobalPartnerClassificationCode

toDUNS

string

入力−値は必須

受信者の DUNS。トレーディング パートナのリポジトリ内で定義されたビジネス ID と一致している必要がある。

マップ先 :

ServiceHeader/ProcessControl
/TransactionControl/ActionControl
/PartnerRoute/toPartner/PartnerDescription
/BusinessDescription
/GlobalBusinessIdentifier


ServiceHeader/ProcessControl
/TransactionControl/SignalControl
/PartnerRoute/toPartner
/PartnerDescription/BusinessDescription
/GlobalBusinessIdentifier

toRole

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/TransactionControl/PartnerRoleRoute
/toRole/PartnerRoleDescription
/GlobalPartnerRoleClassificationCode

toService

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/ServiceRoute/toService
/BusinessServiceDescription
/GlobalBusinessServiceCode

toSupplyChain

string

入力−値は必須

メッセージ確認応答の作成に使用される。

マップ先 :

ReceiptAcknowledgement/toRole
/PartnerRoleDescription/PartnerDescription
/BusinessDescription/GlobalSupplyChainCode

ReceiptAcknowledgmentException/toRole
/PartnerRoleDescription
/PartnerDescription/BusinessDescription
/GlobalSupplyChainCode

Exception/toRole/PartnerRoleDescription
/PartnerDescription
/BusinessDescription/GlobalSupplyChainCode

transactionCode

string

システム−値は必須

マップ先 :

ServiceHeader/ProcessControl
/TransactionControl/TransactionIdentity
/GlobalTransactionCode

useDTDValidation

boolean

システム−値は省略可能

True に設定した場合、XSD ではなく DTD 検証が使用される。False に設定した場合または変数が存在しない場合、検証には XSD スキーマが使用される。そもそも検証を実行するかどうかは、validateServiceContent および validateServiceHeader の値に応じて決定される。

validateServiceContent

boolean

入力−値は必須

サービス コンテンツをスキーマに照らし合わせて検証する必要があるかどうかを示すフラグ。

True −検証は必要

False −検証は不要

validateServiceHeader

boolean

入力−値は必須

サービス ヘッダをスキーマに照らし合わせて検証する必要があるかどうかを示すフラグ。

True −検証は必要

False −検証は不要

validationError

boolean

システム−値は省略可能

検証結果を示す。


 

 


統合された rnSystem 変数

WebLogic Integration 2.0 では、次の変数も必要とされていました。

signalCode
signalCodeVersion
inReplyToActionCode
inReplyToMessageId
initiatingPartnerDUNS
inReplyToActionCodeVersion(RNIF 2.0 のみ)

以降のリリースでは、これらの変数は、ワークフロー テンプレート内で公開されているシステム変数の数を低減するために、rnSystem という変数(ワークフロー変数型 : Java Object)に統合されて置き換えられます。

WebLogic Integration 2.0 用に開発された PIP ワークフローがあれば、既存のワークフロー テンプレートからこれらの変数の呼び出しまたは定義を削除して、rnSystem に置き換えることができます。

 


RosettaNet メッセージの受信

WebLogic Integration がサポートする RosettaNet メッセージの受信方法には、開始ノードによるものと、イベント ノードによるものの、2 通りがあります。どちらを使用するかは、メッセージが受信される状況によります。

開始ノード

WebLogic Collaborate が PIP インスタンスに対するメッセージを初めて受信したときに、WebLogic Collaborate が自動的にワークフローを開始するように、ワークフローをコンフィグレーションできます。このアクションをコンフィグレーションするには、受信した PIP を開始ノードのイベントとして宣言します。受信するワークフローが、受信される PIP を開始して、処理します。例としては、『WebLogic Integration の起動、停止およびカスタマイズ』の「協調的ワークフローの開始」にある参加者ワークフローの説明を参照してください。

PIP3A2 サプライヤ ワークフロー テンプレートは、受信されるメッセージによって開始されるワークフロー テンプレート定義のコンフィグレーション方法の一例です。この例では、開始イベントは Business Message Event として設定されています。RosettaNet メッセージが受信されると、ワークフローが自動的に開始され、出力変数とシステム変数が設定されます。

イベント ノード

ワークフローには、ワークフローと関連付けられた PIP インスタンスに対するメッセージが受信されるとトリガされるイベントを入れることができます。例としては、『WebLogic Integration の起動、停止およびカスタマイズ』の「協調的ワークフローの開始」にある開始者ワークフローの説明を参照してください。

タイムアウトの実装

ワークフローでは、受信される RosettaNet メッセージを待機するオプションのタイムアウト パスを使用できます。ワークフローが送信されたメッセージ(たとえば 3A2 カスタマ ワークフロー)に対する応答を待機する場合は、応答を待機するための別個のタイムアウト パスを作成する必要があります。3A2 カスタマ ワークフロー テンプレートに示されるこのパスは、適切なタイムアウト期間に合わせて設定されたタイマと、停止ノードで構成されます。

順不同の信号受信

RNIF 1.1 と RNIF 2.0 では、信号受信と応答について、異なった標準を定義しています。これらの異なった標準は、PIP ワークフローによるメッセージの解決方法に影響を与えます。

RNIF 1.1 では、応答が常に信号の後に来るように指定しています。したがって、信号/応答パターンは、次のようになります。

  1. 開始者→(要求)→受信者

  2. 受信者→(受信応答確認)→開始者

  3. 受信者→(応答)→開始者

  4. 開始者→(応答確認処理)→受信者

RNIF 2.0 により、順不同の信号受信が可能になります。たとえば、ワークフローが、受信応答確認より前に応答を受信する場合もあります。したがって、RNIF 2.0 では、次のような信号/応答パターンが可能です。

  1. 開始者→(要求)→受信者

  2. 受信者→(応答)→開始者

  3. 受信者→(受信応答確認)→開始者

  4. 開始者→(受信応答確認)→受信者

このパターンは、ワークフロー設計の中で正確に処理される必要があります。PIP3A2 顧客ワークフロー テンプレートは、これを処理する方法の一例として有用です。PIP テンプレートの RNIF 1.1 バージョンは、信号と、それに続く応答を処理します。RNIF 2.0 バージョンは、信号と応答を個別に処理するロジックを提供します。

 


RosettaNet メッセージの送信

ワークフロー タスクは次のノードを使用して RosettaNet メッセージを送信します。

PIP3A2_Customer_RN2 ワークフローの一部を次の図に示します。

図2-2 RosettaNet メッセージの送信に使用されるワークフロー ノード


 

RosettaNet メッセージの伝送は、Send Business Message タスクがメッセージを送信すると開始されます。イベント ノード(RosettaNet Status Event)はメッセージの http ステータス通知を待機します。この種のステータス通知を受信すると、イベント ノードは Wait for HTTP Status タスク ノードに「完了」マークを付け、ワークフローは次のノードへと進みます。

Send Business Message タスクは同期で実行され、http ステータス応答を待ってからワークフローの次のノードへ進むということをしません。

RosettaNet メッセージは次の方法で送信します。

  1. Send Message タスクを右クリックし、次にショートカット メニューから [プロパティ] を選択します。

    [タスクのプロパティ] ダイアログ ボックスが表示されます。

  2. [追加] ボタンをクリックして [アクションを追加] ダイアログ ボックスを表示します。

  3. 次の図のように、[統合アクション|B2B Integration|Send Business Message] を選択します。

    図2-3 B2B Integration アクション


     

  4. [OK] をクリックして、次の図に示す [Send Business Message] ダイアログ ボックスを表示します。

    図2-4 RosettaNet 2.0 の [Send Business Message] ダイアログ ボックス


     

    要求される情報は、選択したメッセージ タイプ([アクション]、[例外]、または [受信確認])によって異なります。次の表で、入力を求められる情報をメッセージ タイプ別にまとめます。


     

  5. Status Event ノードを右クリックし、次にショートカット メニューから [プロパティ] を選択します。

    次の図に示す [イベントのプロパティ] ダイアログ ボックスが表示されます。

    図2-5 RosettaNet Status Event の [イベントのプロパティ] ダイアログ ボックス


     

    必要な情報の種類は、ユーザが選択した Event Type によって異なります。次の表は、RosettaNet ステータス イベントを定義するときに通知される情報をまとめたものです。

  6. [アクション] タブを選択し、[追加] ボタンをクリックして [アクションを追加] ダイアログ ボックスを表示します。

  7. [タスク アクション|タスクに完了マークを付ける] を選択します。次に、[OK] をクリックして [タスクに完了マークを付ける] ダイアログ ボックスを表示します。

  8. [Wait for Http Status] タスクを選択して完了マークを付け、[OK] をクリックします。

  9. [Wait for Http Status]タスクを右クリックし、次にショートカット メニューから [プロパティ] を選択します。

    [タスクのプロパティ] ダイアログ ボックスが表示されます。

  10. [追加] ボタンをクリックして [アクションを追加] ダイアログ ボックスを表示します。

  11. [タスク アクション|タスク期日を設定] を選択します。次の図に示すように、[タスク期日を設定] ダイアログ ボックスが表示されます。

    図2-6 [タスク期日を設定] ダイアログ ボックス


     

  12. [式に設定] フィールドに、タイムアウトまでにアプリケーションを待機させる時間数を定義する式を入力します。次に [ビジネス カレンダー] メニューから適切なビジネス カレンダーを選択します。[OK] をクリックします。[タスクのプロパティ] ダイアログ ボックスが表示されます。

  13. [タスクのプロパティ] ダイアログ ボックスで [OK] をクリックます。ワークフローの中で RosettaNet メッセージの送信に使用される部分はこれで完了です。

 


メッセージの検証

メッセージ検証プロセスは、XML スキーマ仕様のアルファ版実装をサポートする Xerces 1.3 DOM パーサを使用します。Xerces 1.3 DOM パーサは、WebLogic Server 6.1 ソフトウェアに同梱されています。

以下の節では、WebLogic Collaborate がどのように RosettaNet メッセージを検証するかを説明し、メッセージ検証に関するさらなる参考文献を提示します。

RosettaNet メッセージ検証

WebLogic Integration は、RNIF 1.1 のメッセージと RNIF 2.0 メッセージの両方に対して、メッセージ検証サービスを提供します。実行される検証はvalidateServiceContentvalidateServiceHeader、および useDTDValidation の各ワークフロー変数に指定された値によって異なります。検証オプションは、以下のとおりです。

例外処理プロセスの説明については、次の URL にある RNIF 仕様を参照してください。

http://www.rosettanet.org 

サンプルの XML スキーマ ファイルおよび文書型定義(DTD)ファイルは、WebLogic Integration のインストール先の、次の場所に格納されています。

WLI_HOME/lib/xmlschema/rosettanet

メッセージ検証に関する推奨参考文献

以下は、XML スキーマ例を十分に理解するために推奨される参考文献の情報です。独自の XML スキーマを実装する場合は、必ずお読みください。

パフォーマンス チューニングとメッセージ検証

メッセージ検証は、主にシステムをパートナと共に設定およびコンフィグレーションしているときに使用されます。無効なメッセージ生成に関する問題をシステムから取り除いたと確信している場合は、オプションとしてメッセージ検証をオフにし、パフォーマンスを向上させることができます。前の節で述べたように、メッセージ処理中にメッセージ検証の実行が要求されることはありません。

 


メッセージ添付ファイル

RNIF 1.1 と RNIF 2.0 は双方とも、RosettaNet アクション メッセージ内のオプションのメッセージ添付ファイルをサポートしています。添付ファイルは、ファイル タイプを限定しておらず、バイナリ データを含んでいてもかまいません。添付できるファイルの例としては、Word 文書、GIF 画像、PDF ファイルなどがあります。各添付ファイルの情報は、メッセージのサービス ヘッダに含まれます。

WebLogic Integration は、ユーザ アプリケーション(たとえばプライベート ワークフロー)が、BEA 固有の構造化された XML ファイルに含まれる添付ファイルの説明を PIP ワークフローへの入力として提供できるようにすることにより、添付ファイルをサポートしています。XML ファイルは、添付ファイルの説明です。実際の添付ファイルではありません。WebLogic Integration によって添付されるべきファイルを指定するだけのものです。

以下は、添付ファイルを説明する DTD 情報です。

コード リスト 2-1 RosettaNet 用 WebLogic Integration 添付ファイル DTD 情報

<!ELEMENT WLCRosettaNet ( Attachment+ )>
<!ELEMENT Attachment (
description?,
Type,
Id,
LocalLocation
)>
<!ELEMENT description ( FreeFormText ) >
<!ELEMENT FreeFormText ( #PCDATA ) >
<!ATTLIST FreeFormText xml:lang CDATA #IMPLIED >
<!ELEMENT Type ( #PCDATA ) >
<!ELEMENT Id ( #PCDATA ) >
<!ELEMENT LocalLocation ( #PCDATA ) >

次の表で、DTD において使用される要素について説明します。

表2-5 RosettaNet 添付ファイル要素

要素

説明

説明

添付ファイルの説明(省略可能)。

Type

添付ファイルの MIME 型修飾子コード。

ID

添付ファイルの Universal Resource Identifier。

LocalLocation

送信時 :

添付ファイルとして送信するファイルの(ローカル システムにおける)絶対パスを格納する。

受信時 :

受信した添付ファイルの(ローカル システムにおける)絶対パスを格納する。


 

メッセージが受信されると、添付ファイルはすべてローカルの WLI_HOME/config/domain_name/rnattachments ディレクトリに保存されます。保存された添付ファイルには、先頭がタイムスタンプになったファイル名が付きます。たとえば、添付ファイルに次の XML 記述を使用したとします。

コード リスト 2-2 サンプル XML 添付ファイル

<?xml version ="1.0"?>
<!DOCTYPE WLCRosettaNet SYSTEM "WLCRosettaNet.dtd">
<WLCRosettaNet>
<Attachment>
<description>
<FreeFormText>
Product user guide in PDF
</FreeFormText>
</description>
<Type>application/pdf</Type>
<Id>"001801236324xyz@xyz.test.com"</Id>
<LocalLocation>c:\pdf\myfile.pdf</LocalLocation>
</Attachment>
<Attachment>
...
</Attachment>
</WLCRosettaNet>

このサンプルは、サービス ヘッダおよび MIME ヘッダ内に次のデータを生成します。

コード リスト 2-3 サンプル サービス出力

<Attachment>
<description>
<FreeFormText>
Product user guide in PDF
</FreeFormText>
</description>
<GlobalMimeTypeQualifierCode>
PDF
</GlobalMimeTypeQualifierCode>
<UniversalResourceIdentifier>
cid:Attachment.001801236324xyz@xyz.test.com
</UniversalResourceIdentifier>
</Attachment>

コード リスト 2-4 サンプル MIME ヘッダ

Content-Type: application/pdf; name="myfile.pdf"
Content-ID: <Attachment.001801236324xyz@xyz.test.com>
Content-Description: Product user guide in PDF

 

ページの先頭 前 次