皆さん、こんにちは。
あっという間に桜は散ってしまいましたが、暖かい季節が近づいてきましたね。
さて本日は、「セッションIDによるSalesforce連携」というテーマで進めていきたいと思います。
SkyOnDemandでSalesforceと連携する際、ログインIDとPWによる認証を行うケースが一般的でして、
SkyOnDemand側には、「すべてのデータの参照」や「すべてのデータの編集」権限を持つユーザーを「連携ユーザー」として接続設定を行います。そのため、一連の処理は、この「連携ユーザ」により実行されることになります。
しかし、連携要件によっては、連携処理を実行するユーザの権限で処理を実行させたい・・といったケースもあるかと思います。
例えば、以下のようなケースです。
<連携ケース>
・営業マンAがSalesforceからExcel形式の請求書を一括発行する。
・ただし、営業マンAは自分が所有する東京エリアのレコードだけを抽出し請求書を発行したい。
・発行した請求書は該当のレコードに紐づけて添付したい。
・添付ファイルの作成者は、営業マンAとして作成したい。
冒頭に記載した「連携ユーザ」のまま処理を実行すると、
・権限のないレコードに対し処理を実行することが出来てしまう。
・添付された請求書の作成者が、「連携ユーザ」になってしまう。
といった挙動となってしまいます。
このような際には、セッションIDとサーバURLによる接続を行うことで、ケースにあげた要件を満たして連携を行うことが可能です。
SkyOnDemandでは以下の機能を組み合わせて使用することで処理を作成することが可能です。
①グローバルリソースの設定
Salesforceにアクセスをするための接続設定を「グローバルリソースの設定」で行いますが、ここで、オプション「実行時の接続方式」を、「外部からセッションを引き継ぐ」とします。
②Salesforceアイコン「ログイン(セッションIDによる)処理」
スクリプト作成時に、①の設定とあわせて本アイコンを利用し、セッション情報(セッションIDとサーバURL)にスクリプト変数(入力変数)を定義して、入力パラメータを受け取れるように設定しておきます。
そして、作成した「セッション情報の取得」アイコンの後ろに後続の処理を繋いでいきます。
以下のような感じです。
あとは、Salesforce側からSkyOnDemandのHTTPトリガーを呼び出す際に、セッション情報(セッションIDとサーバURL)をパラメータとして受け渡すことで、ケースにあげたような「ユーザ権限を引き継いだ連携要件」を実現することができます。
是非このようなご要件がありましたら、お試し頂ければと思います。Salesforceの活用用途もさらに広がると思います。
それでは皆さん、楽しいゴールデンウィークを!