高度なカスタマイズ > Windchill ESI のカスタマイズ > Windchill ESI のカスタマイズ - SAP > TIBCO 標準チェックポイントアクティビティの回避
TIBCO 標準チェックポイントアクティビティの回避
この付録は、新規オブジェクトの処理用にカスタムチェックポイントビジネスロジックを実装するカスタマイズ担当者に役立つ内容となっています。
今日、チェックポイントアクティビティは高くつくと思われていますが、ジョブの保存を維持するために必要な不可避のタスクです。しかし、チェックポイントの最終的な目標は、データの破損を回避することです。つまり、SAP にパブリッシングされたビジネスオブジェクトを TIBCO ジョブの再開時に再度パブリッシングしてはなりません。同じビジネスオブジェクトを再びパブリッシングすると、データが破損したり、間違った Windchill ステータスが表示されたりする可能性があります。TIBCO では、ERP へのビジネスオブジェクトのパブリッシングアクティビティが実行されるすべての場所で、標準チェックポイントアクティビティが戦略的に使用されます。しかし、これによって大量のメモリが消費されます。このような大量のメモリ消費を克服するために、カスタムチェックポイントメカニズムが開発されました。カスタムチェックポイントアプローチでは、メモリフットプリントが削減されるとともに、チェックポイント時間も短縮されます。いくつかのシナリオでは、40 % から 60 % の改善が見られました。
「データの破損を回避するという目標」について考えた場合、ジョブデータ全体 (すべてのプロセスのすべての入出力、プロセススタック、サブルーチン、プロセスデータなど) を実際に永続化する必要はありません。代わりに、再開したジョブに、何が残り、何がこれまでにパブリッシングされたかを知らせるために必要なデータのみを永続化する必要があります。
既成では、標準チェックポイントアクティビティはさまざまな場所から除去されています。代わりに、カスタムチェックポイントメカニズムが適用されて、処理されたオブジェクトとオブジェクトの数に関する情報が保存されます。
以下の各項目で、Windchill ESI -SAP 用にカスタマイズされた TIBCO プロジェクトにおけるカスタムチェックポイントメカニズムを理解して実装する際に役立つ設計の概要について詳しく説明します。
1) カスタム - チェックポイントスキーマ:
スキーマ名: CheckPointSchema
場所: SharedConfigurations\ESISchemas\EAIMiddlewareSchemas
エレメントの詳細: このスキーマには、すべてのオブジェクトのメタデータが含まれています。各オブジェクトの子エレメントには以下が含まれています。
Position - 次に処理されるノードの位置。
Count - ノード内のエレメントの総数。
Action - 部品、BOM などの作成/変更操作。
Result - このエレメントには、部品/材料のリビジョン処理の結果が保存される子エレメントが含まれています。子エレメントは、結果メッセージの保存に使用される SharedConfigurations\ESISchemas\EAIMiddlewareSchemas\ESIObjectResult スキーマと同じです。
Method - チェックポイントメソッド (GetParts、GetBOM、SetPosition など)。メソッド名に従って、Java コードアクティビティが適切なデータを返します。
TransactionNumber - Windchill ESI トランザクションの番号
2) CBO をメモリに保持する代わりに CBO 構造をファイルに書き込む
カスタムチェックポイントを使用することに加えて、これには追加の利点があります。CBO でより多くのメモリが消費される可能性があります。ビジネスロジックは特定のビジネスオブジェクトを SAP にパブリッシングする際に CBO 全体を必要としません。CBO は XML 構造であり、ビジネスロジックは必要なときに必要なビジネスオブジェクトだけをフェッチします。
プロセス: Start_ESIResponse_Map_CBO_PD
場所: ProcessDefinitions\DataProcessing
3) カスタムチェックポイントプロセス
カスタムチェックポイントプロセスはコアプロセスであり、制御データスキーマおよびカスタムチェックポイントスキーマに従って入力パラメータをとります。
プロセス名: CustomCheckpoint.process
場所: ProcessDefinitions\Services
ReadCheckpointDetails - CheckPoint_<トランザクション番号>.xml ファイルを読み取ります。
GetCheckpointAsXML - Read File アクティビティからのデータを解析し、xml データに変換します。
GetCBOString - xPathExpression に基づいて CBO_<トランザクション番号>.xml ファイルから目的のオブジェクトをフェッチします。
GetCBO - GetCBOString アクティビティからの出力データを解析し、xml データ (CBO) に変換します。
RenderCheckpointDetailsAsXML - XML データを解析し、WriteFile アクティビティによって CheckPoint_<トランザクション番号>.xml に書き込む xml 文字列をレンダリングします。
WriteCheckpointDetailsToFile - 現在のチェックポイントデータをファイル CheckPoint_<トランザクション番号>.xml に書き込みます。
xPathExpression: 以下に例を示します。
部品: /CBO/ControlData[1] |/CBO/Part[ObjectHeader/ActionFlag='Create'] [position() >=1 and position() <100]
この定義式は、Action フラグ 'Create' を持つ最初の 100 個の部品をフェッチします。
BOM: /CBO/ControlData[1] |/CBO/BOM[ObjectHeader/ActionFlag='Create'] [2]
この定義式は、Action フラグ 'Create' を持つ 2 つ目の BOM をフェッチします。
4) GetCBO アクティビティの Java コード:
5) プロセス ProcessDefinitions\DataProcessing\Start_CBO_ObjectProcess_PD で CBO を渡す必要はありません。
BOM 処理の例を以下に示します。
BOM 処理用のカスタムチェックポイントビジネスロジックを組み込むために修正する必要があるプロセス定義: カスタムチェックポイントを組み込むプロセス ProcessDefinitions\ERPCommunication\SAP\BOM\Start_CBOBOM_SAPCreateChange_PD:
BOM データを CBO からフェッチし、各繰り返し処理で次の位置を CheckPoint_<トランザクション番号>.xml に設定する手順を示す BOM 全体のプロセス定義を以下に示します。以降の繰り返し処理では、SAP にパブリッシングされる次の BOM がフェッチされます。
パブリッシングする必要がある BOM データをフェッチし、そのオブジェクトの BOM データパブリッシング後に位置 (xml エレメントの位置) を設定するように、プロセス Start_CBOBOM_SAPCreateChange_PD が修正されています。
CallProcess_CustomCheckpoint_GetBOM - 作成する BOM をフェッチします。次の CallProcess_CustomCheckpoint_SetPosition - CheckPoint_<トランザクション番号>.xml 内の BOM の位置を増分します。
Iterate_BOM_AllCreateBOMs および Iterate_BOM_AllChangeBOMs は、GetBOM アクティビティによってフェッチされた BOM の宛先に対して繰り返し処理を行います。
CallProcess_StartCBOBOMSAPCreate および CallProcess_StartCBOBOMSAPChange の入力データがこれに従って変更されます。宛先に従った子と代用部品のフィルタがここで適用されます。
結果メッセージの永続化 (必要な場合):
次のプロセスでは、以前の実行の結果についてビジネスロジックで要求された結果メッセージを保存する必要があります。
プロセス名: Start_CBOPart_CreateRevisionLevel_PD
場所: ProcessDefinitions\ERPCommunication\SAP\Part
カスタムチェックポイントビジネスロジックを実装しているその他のオブジェクト:
前述の BOM 処理およびリビジョン作成処理とは別に、部品、ルーティング、ドキュメント、ECN リソースなどのその他すべてのオブジェクトの処理が、カスタムチェックポイントメカニズムを使用して実装されています。カスタマイズ担当者は既成のプロジェクトをガイドラインとして使用して、新規オブジェクトのカスタムチェックポイントビジネスロジックを実装することもできます。
これは役に立ちましたか?