機械翻訳について

統合設計時間のトラブルシューティング

統合設計時間のトラブルシューティングについては、Oracle Integrationを参照してください。

統合にプライマリ・ビジネス識別子がありません

統合をアクティブ化できるように、少なくとも1つのビジネス識別子トラッキング・フィールドを構成する必要があります。 これは、プライマリ・ビジネス識別子と呼ばれます。 ビジネス識別子を使用すると、実行時にメッセージ内のペイロード・フィールドを追跡できます。 少なくとも1つのビジネス識別子をまだ構成していない場合は、統合の設計キャンバスの「統合エラー」アイコンにカーソルを置くと、次のエラー・メッセージが表示されます。

左側に次のエラー・メッセージが表示されます: トラッキングのプライマリ・ビジネス識別子がありません。 メニューのトラッキング・オプションを使用してプライマリ識別子を定義してください。 右側には、統合エラー・アイコンがあります。

このエラー・メッセージを削除するには、少なくとも1つのビジネス識別子を構成します。 「ビジネス識別子の割当て」を参照してください。

replaceAll JavaScript関数を呼び出すことができません

Oracle IntegrationreplaceAll JavaScript関数をコールしようとすると、次のエラーが表示されます:

ode=<code>JavaScript execution error</code>\n,detail=<detail>Review
JavaScript error(s) and fix them:\nerror: null@3 -> TypeError: Cannot find
function replaceAll in object 

replaceAllは、Oracle IntegrationのJavaScriptエンジンではサポートされていません。

replaceAllの機能を実現するには、次の代替方法のいずれかを使用します:

  • 次のように、replace関数をグローバル・オプションとともに使用します:
    function myFunction(Input) {
      var res = Input.replace(/<\/>/g,'');
     return res;
    }
  • replaceAllのかわりにsplitおよびjoin関数を使用します。

文字列データ型の変数の使用と算術比較式の適用の競合

Oracle Integrationで作成されたすべての変数は、現在文字列データ型のみです。 これらの変数を直接使用して算術コンパレータ式を適用すると、通常とは異なる動作になります。

たとえば、割当てアクションでは、var1var2の2つの変数がそれぞれ110の値を使用して作成されます。 Whileアクションでは、次に条件を$var1 < $var2として設定すると、ループは2回の反復後に終了します。 正しい使用方法は、number XPath機能で変数をラップして、条件を設定することです: number($var1) < number($var2) このループは、終了する前に10回繰り返します。

レコードの書込みによって発生する停止プロセスが遅いネットワーク・コールを減らします

FTPアダプタのアダプタ・エンドポイント構成ウィザードの操作ページで「既存のファイルに追加」オプションを使用してレコードごとにレコードを書き込むと、作成されるネットワーク・コールが多すぎて最終的にはプロセスが遅くなります。 かわりに、ステージング・ファイル・アクションを使用し、レコードをステージング・ディレクトリに書き込みます。 すべてのレコードが書き込まれたら、ステージング・ファイル・アクションとFTPアダプタの「ファイルの書込み」オプションで「ファイルのリスト」オプションを使用して、ファイルをFTPのロケーションに転送します。 このアプローチでは、処理時間が短縮され、FTPサーバーへのコールが多すぎないようになります。

単一のREST API接続を使用したサブプロセス統合の起動

特定のタスクを実行するために、別々の統合(サブプロセスとみなす)を作成するモジュラ設計アプローチに従うとします。 たとえば:

  • ファイル - ステージング

  • 翻訳

  • ステージ - コア

  • ジョブ・プロセスをトリガー

これらの各サブプロセスは、WSDLコネクタとして作成されます。 しかし、複数のコネクタを維持する必要があるため、状況が複雑になります。 理想的には、単一のREST APIを作成し、API呼び出しを使用してサブプロセスを起動する方が簡単にメンテナンスすることができます。 次の詳細に注意してください。
  • 単一のREST API接続を使用してサブプロセスを起動することができます。

  • 「今すぐスケジュール」APIを使用して、必要な統合をトリガーすることができます。 ただし、これは、オーケストレート統合がスケジュールされた統合として作成された場合にのみ可能です。 さらに、「今すぐスケジュールする」APIは指定された統合を直ちに実行し、このタイプの統合は入力パラメータを受け取るように構成することはできません。

または、入力パラメータを取るように構成できるトリガーとして使用されるREST接続を使用して、スケジュールされていない統合を作成することもできます。 その統合は、「今すぐスケジュールする」APIを起動する必要なく、REST API自体として起動することができます。 REST APIのバージョン2バージョンの「今すぐスケジュールする」APIのURLは次のとおりです:
http://host:port/icsapis/v2/integrations/SAYHELLO%7c01.00.0000/schedule/jobs

つまり、URLには、実行する統合を指定するCODE|VERSIONが含まれています。

サブプロセスを呼び出すことができるのは、SOAPコネクタだけです。

トリガー接続は、対応するJSONが空のJSONを受信した場合、JSONでは空の配列を受信できません

要素が空の配列の場合、アダプタはマッパーから要素を受け取りません。 空の配列の場合にマッパーから要素を取得するには、XSLファイルを手動で変更します。

  1. 統合をエクスポートします。
  2. XSLファイルのマッピングを手動で変更し、ソース要素が存在しないか空であってもターゲットにデフォルト要素が生成されるようにします。 たとえば:

    XSLファイルを編集する前に:
    <xsl:for-each
    select="$Cheers_API/nsmpr0:executeResponse/nsmpr1:response-wrapper/nsmpr1:
    employeeEarnedDetails/nsmpr1:earnedBadges" xml:id="id_24">
    <nstrgdfl:earnedBadges xml:id="id_23">
    <xsl:value-of select="." xml:id="id_25" />
    </nstrgdfl:earnedBadges>
    </xsl:for-each>
    XSLファイルを編集した後:
    <nstrgdfl:earnedBadges xml:id="id_23">
    <xsl:for-each
    select="$Cheers_API/nsmpr0:executeResponse/nsmpr1:response-wrapper/nsmpr1: 
    employeeEarnedDetails/nsmpr1:earnedBadges" xml:id="id_24">
    <xsl:value-of select="." xml:id="id_25" />
    </xsl:for-each>
    </nstrgdfl:earnedBadges>
  3. 統合をインポートします。