Web サービスインポートセットモード

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:6分
  • SOAP メッセージによってインポートセットテーブルにレコードが挿入され、そのテーブルに [ロード中] ステータスのインポートセットがない場合は、[モード][同期] に設定された新しいインポートセットが作成されます。

    [モード][同期] に設定されたインポートは、挿入されるとすぐにデータを変換します (変換マップが既に存在する場合)。このインポートセットのデフォルト [ステータス][ロード中] です。デフォルトでは、すべての [同期] インポートセットは午前 0 時に自動的に [処理済み] に変更されます。その結果、同じテーブルに対して新しい挿入が行われると、新しい [同期] インポートセットが作成されます。

    図 : 1. 同期インポートセット
    このインポートセットを [非同期][モード][ロード中][ステータス] に変更すると、挿入時に受信データを変換せずに、インポートセットを「ロード」し、後で手動またはスケジュール設定済みスクリプトジョブを使用してデータ変換を保留する効果があります。
    表 : 1. インポートセットモード
    モード 状況 関数
    非同期 ロード中 データ変換が自動的かつ即座に行われません。インポートセット行に追加されたデータのステータスが「処理待ち」です。ステータスが [ロード完了] に変更されたときに、変換をスケジュール設定するか、手動で実行できます。
    非同期 ロード完了 データのロードが完了したことを示します。データ変換は、スケジュールされた方法または手動で実行できるようになりました。
    同期 ロード中 データ変換は、関連付けられたインポートセット行にデータが挿入されるたびに自動的に実行されます。
    同期 ロード完了 この関連付けられたインポートセットに新しいデータが挿入されると、モードが [同期] でステータスが [ロード中] の新しいインポートセットが作成されます。ステータスを [ロード完了] に変更すると、次のインポートセット行の挿入のために新しい [同期] インポートセットを作成する必要があることを示すことができます

    挿入動作のコントロール

    1 つ以上の結合フィールドを指定するインポートセットでは、重複を防ぐために、一致する結合値を持つレコードがソーステーブルからターゲットテーブルに順次変換されます。

    結合フィールドが指定されていないインポートセットでは、レコードが同時に変換されます。この動作は glide.import_set_insert_serialized_when_no_coalesce プロパティを使用してコントロールできます。

    glide.import_set_insert_serialized.<table name> システムプロパティは、インスタンスが Web サービス呼び出しから特定のインポートセットテーブルにレコードを挿入する方法をコントロールします。true の場合、このプロパティは、データベースの挿入操作をシリアル化することによって、同一の同時挿入によって重複レコードが作成されるのを防ぎます。ターゲットテーブルの変換マップで結合フィールドが定義されていない場合は、このプロパティを [false] に設定すると、Web サービスインポートセットのパフォーマンスが向上します。

    注:
    このプロパティを [false] に設定すると、重複レコードが作成される可能性があります。
    注:
    glide.soap.import_set_insert_serialized.<table name> システムプロパティは glide.import_set_insert_serialized.<table name> と同等の機能を提供しますが、両方のプロパティが定義されている場合は glide.import_set_insert_serialized.<table name>glide.soap.import_set_insert_serialized.<table name> よりも優先されます。

    標準 SOAP 応答

    Web サービスインポートセット挿入呼び出しからの SOAP 応答は、次の標準値を返します。
    <SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><insertResponse><sys_id>fa648f5f0a0a0b2b0048e7012448b8f1</sys_id><table>incident</table><display_name>number</display_name><display_value>INC10014</display_value><status>inserted</status></insertResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
    表 : 2. 標準 SOAP 応答
    フィールド 説明
    sys_id 作成または変更された結果レコードの sys_id
    table 影響を受けたテーブルのテーブル名。[非同期] 呼び出しの場合、テーブル名はインポートセットテーブルになります (例:通知 Web サービスインポートセットテーブルの imp_notification)。
    display_name 作成または変更されたレコードの表示フィールドとして設定されているフィールドの名前
    display_value 表示フィールドとして指定されたフィールドの値。たとえば、[インシデント] テーブルの表示フィールドは [番号] フィールドで、値の例は INC10001 です。
    status sys_idtable フィールド値によって定義されたレコードに関連する、Web サービスの発動の結果として発生したアクションを示す文字列値
    • 挿入済み - レコードが挿入されました
    • 更新済み - レコードが更新されました
    • 無視 - 入力は無視され、レコードは更新されず、新しいレコードは作成されませんでした
    • スキップ - 結合値がないため、入力データがスキップされました (無視と同様)
    • エラー - 入力の処理中にエラーが発生しました
    status_message この値は、インポートセット行の [コメント] フィールドにある値に変換され、通常は [ステータス] 値に関連する情報が含まれています。例:ステータスが [無視] の場合は「変更されたフィールド値はありません」この値をカスタマイズされた文字列値に設定すると、返されるオプションの status_message フィールドが SOAP 応答に含まれます。
    error_message [エラー] のステータスに関連するメッセージ。エラーが発生した場合、この値をカスタマイズされた文字列値に設定すると、返されるオプションの error_message フィールドが SOAP 応答に含まれます。

    SOAP 応答のカスタマイズ

    変換スクリプトを使用して status_message の内容を上書きすることで、WSDL で指定された情報以外の情報を含めることができます。