本記事はOPROARTS Connector v2をご利用のお客様向けです。OPROARTSアクションを設定する方法について説明します。
OPROARTS Connectorのバージョンが1.XXの方は以下の記事をご覧ください。
FAQ「OPROARTSアクションの設定方法(Salesforce連携)」
※本記事の機能は、ライセンスによって利用できない場合がございます。ご利用を希望する場合は、ご相談ください。
目次
・はじめに
・ユーザと権限
・OPROARTS認証情報
・共有設定
・アウトバウンドメッセージの設定
・ページレイアウトの割当ての設定
・ワークフロールールの設定
- ワークフロールールの有効化
・権限セットの割り当て
・レコードの作成
・出力ボタンによるレコードの作成
【詳細ページ用ボタン】
- Visualforceページサンプルの書き換え
- リモートサイトの設定
- Visualforceページの作成
- アクションの作成
- レイアウトへの配置
【リストビュー用ボタン】
- Visualforceページサンプルの書き換え
- Live for Force.com Bridge(OPROARTS Connector v2)の場合
- ViewFramer ZIPの場合
- ウェブブラウザーでのポップアップの許可
- Visualforceページの作成
- ボタンの作成
- リストビューへの配置
<はじめに>
SalesforceからOPROARTSのドキュメント出力を呼び出すとき、アウトバウンドメッセージを使用したい場合があると思います。例えば、ユーザの操作と非同期にリクエストしたい場合や、ユーザに直接OPROARTSへのリクエストを発行したくない場合等です。アウトバウンドメッセージは、決まった1つのオブジェクトのレコードしか送信できませんが、ドキュメントに出力したいデータのオブジェクトごとにアウトバウンドメッセージを作成するのは手間がかかります。また、送信先となるOPROARTSのサービスごとにアウトバウンドメッセージを作成する必要があると、それも手間がかかります。
そこで、OPROARTSのサービス名とそこに送信したいパラメーターを1つのオブジェクトにまとめたものとして、「OPROARTSアクション」オブジェクトを用意しました。アウトバウンドメッセージは、「OPROARTSアクション」オブジェクトのレコードを送信するもの1つだけが用意されています。現在のところ、「OPROARTSアクション」が対応しているOPROARTSのサービスは、Live for Force.com BrideやViewFramer ZIPです。
従来の、アウトバウンドメッセージを使用しない場合には、ボタンのスクリプトに送信先とリクエストパラメーターを記載していましたが、そのパラメーターが「OPROARTSアクション」オブジェクトの項目になっています。送信先のサービスとパラメーターの値を持つレコードを作成し、それをアウトバウンドメッセージで送信すると、受け取った中継アプリケーションが送信先のサービスにパラメーターの値を転送します。そしてリクエストを処理させることでドキュメント出力が実行されます。
アウトバウンドメッセージは、ユーザのウェブブラウザーがないところで実行されるため、ユーザに作成したドキュメントを直接ダウンロードさせることはできません。出力したドキュメントは、Salesforceのいずれかのレコードに添付ファイルとして保存するか、または、メールに添付して送信してください。それを満たさないパラメーターの場合はエラーとして処理されます。
なお、このオブジェクトの使用は、OPROARTS Connector v2やViewFramerの設定が、すでに従来の方法でドキュメント出力が可能な状態になっていることが前提になっています。前以て従来の同期的な方法で、テンプレートやマッピングが正しく設定されていることをご確認ください。
それでは、「OPROARTSアクション」の設定方法について紹介します。
<ユーザと権限>
アウトバウンドメッセージの送信ユーザのプロファイルには、以下の権限を与えてください。下記は最小限の権限になります。状況によって、付与する権限を追加しても問題ございません。
■[システム管理者権限]の[APIの有効化]権限
■「OPROARTS」オブジェクト、「OPROARTSユーザ」オブジェクトの[カスタムオブジェクト権限]:
・参照
■「OPROARTS」オブジェクト、「OPROARTSユーザ」オブジェクトの[項目レベルセキュリティ]:
・参照アクセス権: すべての項目
■「OPROARTSアクション」オブジェクトの[カスタムオブジェクト権限]:
・参照、編集、すべて表示、すべて変更
■「OPROARTSアクション」オブジェクトの[項目レベルセキュリティ]:
・参照アクセス権: すべての項目
・編集アクセス権: ステータス、通知ID、結果コード、結果、開始日時、終了日時
■[タブの設定]の「OPROARTSアクション」: 「デフォルトで表示」
■ドキュメントで使用するデータのオブジェクトの[カスタムオブジェクト権限]:
・参照、すべて表示
■ドキュメントで使用するデータのオブジェクトの[項目レベルセキュリティ]:
・参照アクセス権: テンプレートやマッピングで使用するすべての項目
アウトバウンドメッセージを使用する場合、ドキュメントで使用するデータの取得も、アウトバウンドメッセージの送信ユーザの権限で実行されます。そのため、アウトバウンドメッセージの送信ユーザには広範囲のデータの参照権限が必要になります。
従来の権限については、以下の記事をご参照ください。
FAQ「帳票出力に必要な権限設定(Connector for Salesforce)」
FAQ「帳票出力に必要な権限設定(Salesforce/ViewFramer)」
<OPROARTS認証情報>
アウトバウンドメッセージを使用する場合、ドキュメントの生成も、アウトバウンドメッセージの送信ユーザが実行しますので、OPROARTS認証情報が必要です。OPROARTS Connectorヘルプの「認証情報(出力)の設定」を参照して、LAレコードにアウトバウンドメッセージの送信ユーザを追加してください。
<共有設定>
多くの場合、アウトバウンドメッセージの送信ユーザ以外のユーザは、自身が実行するリクエストの内容のみが見られれば十分だと思います。他のユーザのリクエストの内容が見られないようにするには、ユーザに適切なロールの階層を設定した上で、以下の[組織の共有設定]を設定してください。
1.①[設定]から、②[クイック検索]ボックスに「共有設定」と入力し、③[共有設定]を選択します。
2.[共有設定を管理する対象]で「OPROARTSアクション」を選択します。
3.[組織の共有設定]セクションの[編集]をクリックします。
4.[OPROARTS Action]の[デフォルトの内部アクセス権]で「非公開」を選択します。
5.[保存]をクリックします。
<アウトバウンドメッセージの設定>
「OPROARTSアクション」のレコードが作成されたときに、正しくアウトバウンドメッセージが送信されるようにするため、以下を設定します。
1.[設定]から、[クイック検索]ボックスに①「アウトバウンド」と入力し、②[ワークフローアクション]の下の③「アウトバウンドメッセージ」を選択します。
2.[ワークフローの理解]ページが表示されたら、[次へ]をクリックします。(表示されない場合もあります。)
3.「OPROARTS Action Message V3」をクリックします。
4.[ワークフローアウトバウンドメッセージの詳細]の[編集]をクリックします。
5.[送信ユーザ]でアウトバウンドメッセージの送信ユーザを選択します。
6.[保存]をクリックします。
<ページレイアウトの割当ての設定>
「OPROARTS アクション」を利用する場合「ページレイアウトの割当て」を設定する必要があります。以下記事の「◆OPROARTSアクションをご利用の場合」をご参照ください。
帳票出力に必要な権限設定(Connector for Salesforce)
「ページレイアウトの割り当て」設定方法(Salesforce)
<ワークフロールールの設定>
アウトバウンドメッセージは、「OPROARTSアクション」オブジェクトに対して設定されたワークフロールールの条件に合致したときに送信されます。既定で用意されているワークフロールールは以下のものです。
・ルール名: UnprocessedActiveAction
・レコードが次の場合にルールを評価: 「作成されたとき、およびその後基準を満たすように編集されたとき」
・次の場合にこのルールを実行: 「条件が一致する」
「OPROARTSアクション: 有効」: 「次の文字列と一致する」: 「True」
「OPROARTSアクション: ステータス」: 「次の文字列と一致する」: 「Unprocessed」
■ワークフロールールの有効化
1.[設定]から、[クイック検索]ボックスに「ワークフロールール」と入力し、「ワークフロールール」を選択します。
2.[ワークフローの理解]ページが表示されたら、[次へ]をクリックします。(表示されない場合もあります。)
3.「UnprocessedActiveAction」をクリックします。
4.名前空間プレフィックスが「oproarts1」の「UnprocessedActiveAction」であることを確認して[有効化]をクリックします。
<権限セットの割り当て>
1.[設定]から、[クイック検索]ボックスに「権限セット」と入力し、「権限セット」を選択します。
2.「OPROARTS Connector Output」をクリックします。
3.名前空間プレフィックスが「oproarts1」の「OPROARTS Connector Output」であることを確認して[割り当ての管理]をクリックします。
4.[割り当てを追加]をクリックします。
5.送信ユーザと利用するユーザにチェックを入れて[割り当て]をクリックします。
例)送信ユーザにチェックを入れています。
6.[完了]をクリックします。
<レコードの作成>
ドキュメント出力は、「OPROARTSアクション」にパラメーターの値のレコードを作成することで実行されます。
送信先の各サービスで設定するパラメーターを説明します。
①「OPROARTSアクション」オブジェクトで、②[新規]ボタンをクリックします。
■ViewFramer ZIP(ViewFramer)
1.[新規OPROARTSアクション]の[レコードタイプを選択]で「ViewFramer」を選択します。
2.[次へ]をクリックします。
3.[サービス]で「viewframer」が選択されていることを確認します。
4.[OPROARTSキー]に「OPROARTS」オブジェクトのCIDを登録したレコードの名前「LA」を入力します。
5.ボタンのスクリプトに記載するパラメーターと同様に、以下の項目に値を入力します。
※[結果]セクション、[システム情報]セクションは編集しないでください。
任意でその他の追加設定を行います。「パラメーターの一覧.xlsx」の[ViewFramer]シートをご覧ください。ページレイアウト上にない項目についても紹介されていますので、必要に応じてページレイアウトに表示させてください。
今回は、追加でAttachmentの設定も行います。
6.[有効]のチェックボックスをオンします。
7.[保存]をクリックします。
上記を行うと、実行されます。
該当レコード「0062v00001J5Fp7AAF」を確認しますと、以下の通り、PDFが「ファイル」に添付されています。
※リストビューからの一括出力など複数のレコードでリクエストする場合は上記の設定に加え、以下のように設定をお願いいたします。
分割パラメータ:任意のパラメータ
分割パラメータの割当先:ViewFramerのパラメータ名
追加パラメータ:{"分割パラメータで指定したパラメータ名":"レコードID"}
<出力ボタンによるレコードの作成>
アウトバウンドメッセージの送信自体はユーザの操作とは非同期に実行されるものの、ユーザの操作でドキュメント出力を指示したい場合も多いと思います。そのような場合は、ユーザが出力ボタンをクリックしたときに、「OPROARTSアクション」のレコードを作成することで、疑似的な同期を実現し、処理を実行することができます。
【詳細ページ用ボタン】
■Visualforceページサンプルの書き換え
本記事の一番下にある添付ファイルを参考にして、Visualforceページを作成します。
・ViewFramer ZIPの場合:v2_Viewframer_action_button.page
マッピング名とパラメーター名等を書き換えます。以下は、ボタンをクリックした商談レコードに生成した帳票ファイルが添付される例になります。
・2行目
standardStylesheets="false" standardController="★★★★★★">
ボタンを置くオブジェクトが「商談」の場合、「商談」のAPI参照名は「Opportunity」なので、「★★★★★★」の部分を以下のように「Opportunity」に書き換えます。
<変更後>
standardStylesheets="false" standardController="Opportunity">
・38行目
☆☆☆: '{!JSENCODE(★★★★★★.Id)}'
「☆☆☆」の部分は、ViewFramerの①ビュー定義の②出力条件設定で指定した③パラメーター名を指定します。
例)shoudanID
例では商談IDを設定しているので「★★★★★★」の部分は、「商談」のAPI参照名である「Opportunity」に書き換えます。
<変更後>
shoudanID: '{!JSENCODE(Opportunity.Id)}'
・45行目
Operation: 'pdf',
以下の中から出力ファイルを指定します。
pdf・opr・odp・excelMerge・excelMergeDDO・wordMergeDDO
<例>Excel出力の場合
Operation: 'excelMerge',
・46行目
FileName: '★★★★★★',
「★★★★★★」の部分に任意のファイル名を指定します。
・47行目
Mapping: '★★★★★★',
「★★★★★★」の部分にViewFramerで作成したマッピング名を指定します。
・48行目
AttachmentParentId: '{!JSENCODE(★★★★★★.Id)}',
「AttachmentParentId」では、添付ファイルの参照先IDを設定します。例は商談オブジェクトに添付するので、「★★★★★★」の部分を「Opportunity」に書き換えます。
■リモートサイトの設定
1.①[設定]から②[リモートサイトの設定]を開きます。
2.[新規リモートサイト]をクリックします。
3.以下の通り設定します。
リモートサイト名:s_oproarts_com
リモートサイトの URL:https://s.oproarts.com
[有効]のチェックボックス:オン
4.[保存]をクリックする。
■Visualforceページの作成
1.[設定]から[Visualforceページ]を開きます。
2.[新規]をクリックします。
3.以下の通り設定します。
①[表示ラベル]、[名前]:任意の名前をつけます。
②[Lightning Experience、Lightning コミュニティ、およびモバイルアプリケーションで利用可能]:オン
③[Visualforce Markup]:最初に入っている以下の値をすべて削除してから、
<apex:page> <!-- Begin Default Content REMOVE THIS --> <h1>Congratulations</h1> This is your new Page <!-- End Default Content REMOVE THIS --> </apex:page>
Visualforceページのサンプル(「Connector_v2_action_button.page」や「v2_Viewframer_action_button.page」)を参考にして書き換えた内容を貼り付けます。
4.[保存]をクリックする。
■アクションの作成
1.[設定]から[オブジェクトマネージャ]を開きます。
例は「商談」オブジェクトにボタンを置くので「商談」オブジェクトを選択しています。
2.[ボタン、リンク、およびアクション]を開く。
3.[新規アクション]をクリックする。
4.以下の通り設定します。
①[アクション種別]:「カスタム Visualforce」を選択します。
②[Visualforce ページ]:作成したVisualforceページを選択します。
③[高さ]:「60」を入力します。
④[標準の表示ラベル種別]:「--なし--」の状態のままにします。
⑤[表示ラベル]、[名前]:任意の名前をつけます。
5.[保存]をクリックします。
■レイアウトへの配置
1.ボタンを置くオブジェクトに戻ります。
例)商談
2.[ページレイアウト]を開きます。
3.ボタンを置きたいレイアウトを選択します。
4.①[モバイルおよび Lightning のアクション]の中から作成したアクションを選び、②[Salesforce モバイルおよび Lightning Experience のアクション]にドラッグ&ドロップで配置します。
5.[保存]をクリックします。
【リストビュー用ボタン】
■Visualforceページサンプルの書き換え
本記事の一番下にある添付ファイルを参考にして、Visualforceページを作成します。
・Live for Force.com Bridge(OPROARTS Connector v2)の場合:
list_Connector_v2_action_button.page
テンプレート名とRecordIdsの値等を書き換えます。以下の書き換えは、リストビューページで選択したレコードそれぞれに生成した帳票ファイルが添付される例になります。リストビューページでA、B、Cのレコードを選択した場合、A帳票はAレコード、B帳票はBレコード、C帳票はCレコードに添付されるイメージです。
・2行目
standardStylesheets="false" standardController="★★★★★★" recordSetVar="displayed">
「★★★★★★」の部分は、ボタンを置くオブジェクトのAPI参照名に書き換えます。今回は商談オブジェクトに置くので、商談オブジェクトのAPI参照である「Opportunity」に書き換えます。
<変更後>
standardStylesheets="false" standardController="Opportunity" recordSetVar="displayed">
・62行目
Operation: 'pdf',
以下の中から出力ファイルを指定します。
pdf・opr・odp・excelMerge・excelMergeDDO・wordMergeDDO
<例>Excel出力の場合
Operation: 'excelMerge',
・63行目
FileName: '★★★★★★',
「★★★★★★」の部分に任意のファイル名を指定します。
・64行目
Template: '★★★★★★',
「★★★★★★」の部分にテンプレート名を指定します。
・ViewFramer ZIPの場合:list_v2_Viewframer_action_button.page
マッピング名とパラメーター名等を書き換えます。以下の書き換えは、リストビューページで選択したレコードそれぞれに生成した帳票ファイルが添付される例になります。リストビューページでA、B、Cのレコードを選択した場合、A帳票はAレコード、B帳票はBレコード、C帳票はCレコードに添付されるイメージです。
・2行目
standardStylesheets="false" standardController="★★★★★★" recordSetVar="displayed">
「★★★★★★」の部分は、ボタンを置くオブジェクトのAPI参照名に書き換えます。今回は商談オブジェクトに置くので、商談オブジェクトのAPI参照である「Opportunity」に書き換えます。
<変更後>
standardStylesheets="false" standardController="Opportunity" recordSetVar="displayed">
・57行目
☆☆☆: ids.join(',')
「☆☆☆」の部分は、ViewFramerの①ビュー定義の②出力条件設定で指定した③パラメーター名を指定します。
例)shoudanID
<変更後>
shoudanID: ids.join(',')
・64行目
Operation: 'pdf',
以下の中から出力ファイルを指定します。
pdf・opr・odp・excelMerge・excelMergeDDO・wordMergeDDO
<例>Excel出力の場合
Operation: 'excelMerge',
・65行目
FileName: '★★★★★★',
「★★★★★★」の部分に任意のファイル名を指定します。
・66行目
Mapping: '★★★★★★',
「★★★★★★」の部分にViewFramerで作成したマッピング名を指定します。
・67行目
ZipTarget: '☆☆☆',
「☆☆☆」の部分は、56行目でも設定した、ViewFramerのビュー定義の出力条件設定で指定したパラメーター名を指定します。
例)shoudanID
<変更後>
ZipTarget: 'shoudanID',
■ウェブブラウザーでのポップアップの許可
使用するウェブブラウザーでポップアップを許可してください。設定手順については以下の記事をご覧ください。
■Visualforceページの作成
1.[設定]から[Visualforceページ]を開きます。
2.[新規]をクリックします。
3.以下の通り設定します。
①[表示ラベル]、[名前]:任意の名前をつけます。
②[Lightning Experience、Lightning コミュニティ、およびモバイルアプリケーションで利用可能]:オン
③[Visualforce Markup]:最初に入っている以下の値をすべて削除してから、
<apex:page> <!-- Begin Default Content REMOVE THIS --> <h1>Congratulations</h1> This is your new Page <!-- End Default Content REMOVE THIS --> </apex:page>
Visualforceページのサンプル(「list_Connector_v2_action_button.page」や「list_v2_Viewframer_action_button.page」)を参考にして書き換えた内容を貼り付けます。
4.[保存]をクリックする。
■ボタンの作成
1.[設定]から[オブジェクトマネージャ]を開きます。
例は「商談」オブジェクトにボタンを置くので「商談」オブジェクトを選択しています。
2.[ボタン、リンク、およびアクション]を開く。
3.[新規ボタンまたはリンク]をクリックする。
4.以下の通り設定します。
①[表示ラベル]、[名前]:任意の名前をつけます。
②[表示の種類]:「リストボタン」を選択します。
③[チェックボックスの表示 (複数レコード選択用)]:オン
④[動作]:「現在のウィンドウにサイドバーおよびヘッダーなしで表示」を選択します。
⑤[内容のソース]:「Visualforce ページ」を選択します。
⑥[コンテンツ]:作成したVisualforceページを選択します。
5.[保存]をクリックします。
■リストビューへの配置
1.ボタンを置くオブジェクトに戻ります。
例)商談
2.[Salesforce Classic の検索レイアウト]を開きます。
3.「リストビュー」を[編集]します。
4.[選択したボタン]に作成したボタンを追加します。
5.[保存]をクリックする。
OPROARTSアクションの設定方法については以上になります。
ありがとうございました。