このレシピについて
このレシピでは、サプライヤ・データをOracle ERP CloudからOracle Autonomous Transaction Processingデータベースに非同期にインポートする方法を示します。 これを実現するために、DBMS_SCHEDULER.CREATE_JOBを使用してメイン・パッケージを非同期的に起動するラッパーPL/SQLプロシージャがデータベースに作成されます。
データの同期のためにPL/SQLパッケージを起動する必要がある場合があります。 ロジックの複雑さが原因で、これらのPL/SQLプロシージャの実行に20分以上かかる場合があります。 Oracle Integrationのタイムアウト制限はオンプレミス・データベースでは4分、パブリック・データベースでは5分であるため、PL/SQLプロシージャがこれらの時間制限を超えた場合、統合は失敗します。 このレシピでは、タイミングの問題を回避し、データ同期を成功させるための戦略を示します。
レシピを使用するには、レシピをインストールし、レシピ内の接続およびその他のリソースを構成する必要があります。
単一のデータベース・パッケージXX_WRAPPER_SUPPLIERS_PKGでは、次の2つのPL/SQLプロシージャが記述されます。
RUN_SCHEDULER_JOB: 表タイプの入力パラメータのデータを受け入れ、すべてのデータを表に挿入し、DBMS_SCHEDULER.CREATE_JOBを使用して2番目のパッケージをコールします。 このプロシージャは、Oracle Integrationからコールされ、すべてのデータを一括で受け入れます。PROCESS_SUPPLIERS:RUN_SCHEDULER_JOBプロシージャからコールされます。 これは、最初のパッケージによって挿入されるデータに対してすべての複雑なロジックを実行し、最後にVALID/INVALIDステータスでデータを更新する、PL/SQLのメイン・プロシージャです。
スケジュール済統合は、Oracle ERP Cloudアダプタを使用してサプライヤ・レコードをチャンクでフェッチし、RUN_SCHEDULER_JOB PL/SQLプロシージャをコールします。 起動は応答を待機せず、次の反復に進み、サプライヤ・レコードの別のチャンクを取得します。 これは、すべてのサプライヤ・レコードがデータベースに非同期で挿入されるまで機能します。