Skip to main content

テーブルとカラム

高度な設定タブの設定

The following settings appear on the Advanced tab:

SettingDescription
Send AsSends the email as another user or shared mailbox. Under AzureAD, this requires the delegated Mail.Send.Shared permission. Under the app-only schemes, it requires the Mail.Send application permission plus Send As rights granted on the target mailbox by an Exchange administrator.
Send On Behalf OfSends the email on behalf of another user. Recipients see both the sender and the mailbox the message was sent from.

UPSERT クエリの動作

UPSERT 設定は、Table Structure モードとMapping モードの両方でカラムごとに設定します。カラムを右クリックし、コンテキストメニューからUPSERT Settings を選択します。

UPSERT Settings ダイアログが開きます。デフォルトではEnable UPSERT settings トグルはON になっており、コネクタはINSERT かUPDATE かを決定する前に、宛先にレコードがすでに存在するかどうかを確認します。

レコードが存在するかどうかを判定するために使用されるクエリは、以下のセクションで説明するロジックによって制御されます。

UPSERT 設定を有効化

Enable UPSERT settings がON の場合、クエリの動作はUPSERT Settings リストで選択したオプションによって決まります:UPSERT by(単一カラムでの一致)またはQuery to select UPSERT key(カスタムルックアップクエリの使用)。

Id によるUPSERT

UPSERT Settings リストでUPSERT by を選択し、テーブルのキーカラムを選択すると、コネクタは一致するキー値を持つレコードが存在するかどうかを判定するためにクエリを発行します:
一致した場合は更新が行われ、一致しない場合は挿入が行われます。 入力XML にキーカラムが存在しない場合、レコードは常に挿入されます。

非キーカラムによるUPSERT

UPSERT Settings リストでUPSERT by を選択し、非キーカラムを選択すると、コネクタはそのカラムに一致する値を含むレコードが存在するかどうかを、SELECT で主キーを対象として判定するためにクエリを発行します(以下の例はOrders テーブルへのUPSERT を示しています):
SELECT クエリは、SELECT ステートメントにおいて常にテーブルのキーカラムを対象とします。一致が成功した場合、入力XML のデータがデータソースに更新されます。一致しない場合は、代わりにレコードが挿入されます。
選択したUPSERT by カラムが入力で指定されていない場合、次のクエリに示すように、NULL 値でルックアップが使用されます。

カスタムクエリの使用

UPSERT Settings リストでQuery to select UPSERT key を選択すると、UPSERT キーを判定するためのカスタムクエリを記述できます。これにより、単一のカラムの一致だけでなく、より複雑なロジックを使用してルックアップを実行できます。次のクエリを考えてみましょう:
この例では、UPDATE に適切な条件を提供するために、テーブルのキーカラムを選択する必要があります。@OrderID 構文は、一致する入力XML から値を参照するために使用されます。静的な値を使用することもできます。'Active' を囲む引用符は、この句が静的な値を使用していることを示します。 ここでも、キーカラムの一致が成功すると、更新リクエストの形成に使用されます。一致しない場合は、レコードが挿入されます。
データベースへの挿入の動作について疑問がある場合は、UPSERT 試行の.log ファイルを確認してください。動作を導くために使用されたロジックの完全な内訳がログファイルに送信されます。

UPSERT 設定を無効化

カラムのUPSERT 動作を無効にするには、UPSERT Settings ダイアログを開き(宛先カラムを右クリックしてUPSERT Settings を選択します)、Enable UPSERT settings をOFF に切り替えて、Apply をクリックします。 UPSERT 設定が無効の場合、コネクタはINSERT クエリのみを発行します。入力マッピングのコードビューを確認すると、テーブルのaction 属性がinsert になっていることがわかります:
主キーが存在するかどうかにかかわらず、テーブルに発行されるすべてのクエリは挿入として扱われます。受信したすべてのレコードをテーブルに対して更新するには、次のスニペットに示すように、このアクションキーワードをupdate に設定できます。
アクションがupdate として定義されている場合、アプリケーションはテーブルのキーカラム(例えばId)が存在することを期待します。キーカラムが提供されていない場合、UPDATE コマンドの効果は対象のデータベースタイプによって異なる可能性があるため、予想より多くの行が変更されたり、まったく変更されなかったりする場合があります。

Arc フローの例