カスタムアクションを追加する

ビュー固有のカスタムアクションを追加する方法を説明します。カスタムアクションでは複数の選択したレコードをパラメータとしてURLに渡して開くことができます。URLとして指定できるVisualforceページ、フローおよび外部サイトとの連携を行うことができます。

カスタムアクションの設定

カスタムアクションは「高度なデザイン」画面の「アクション」タブから追加することができ、「+アクション」をクリックすることでカスタムアクションを追加できます。「+アクション」をクリックして表示された「アクションの追加」画面で設定を行います。

「アクションの追加」画面 > 「一般設定」タブ:

設定項目 詳細
ラベル カスタムアクションの表示名です。
URL 開くURLです。絶対パスおよび相対パスのどちらも指定可能です。
URLリクエストメソッド URLにアクセスする際のHTTPメソッドです。「GET」と「POST」を指定できます。
配列値のシリアライズ方法 複数レコードが選択されている場合のパラメータの渡し方です。「カンマ区切り」と「パラメータを多重化」、「配列インデックスを付与」を指定できます。

カンマ区切り - 値をカンマ区切りで連結してパラメータを渡します。例えば、パラメータ名が「id」で、値が「111」「222」「333」の場合は「id=111,222,333」となります。
パラメータを多重化 - 同じパラメータ名で複数のパラメータを渡します。例えば、パラメータ名が「id」で、値が「111」「222」「333」の場合は「id=111&id=222&id=333」となります。
配列インデックスを付与 - パラメータ名に配列のインデックスをつけてパラメータを渡します。例えば、パラメータ名が「id」で、値が「111」「222」「333」の場合は「id[0]=111&id[1]=222&id[2]=333」となります。

「アクションの追加」画面 > 「パラメータ」タブ:

カスタムアクションのパラメータにはRaySheetの列の値とRaySheetを埋め込んだレコードページのIDをパラメータとして使用することが出来ます。

①列の値をパラメータに設定:

設定項目 詳細
パラメータ名 URLに渡すパラメータの名前です。
パラメータ値 URLに渡すパラメータの値です。値として設定するレコードの項目を指定します。必要に応じてURLエンコードやExcel関数を使用できます。「fx」をクリックするとExcel数式などを指定する画面が開きます。

パラメータは複数設定できます。「+パラメータ」と「×」で追加と削除ができます。
パラメータ値に設定する項目はRaySheetのビューに列として追加が必要です。

②レコードページのIDをパラメータに設定:

設定項目 詳細
レコードページのIdをパラメータに含める チェックを付けるとレコードページのIDを使用できます。このカスタムアクションのビューがレコードページに埋め込まれていない場合はNULLになります。
パラメータ名 URLに渡すレコードページのIDのパラメータの名前です。

相対パス指定時の注意点

URLには絶対パスおよび相対パスのどちらも指定できます。ただし、Visualforceページ及びフローの相対パス指定時には注意が必要です。名前空間のある場合とない場合、VisualforceページとフローのどちらかによりURLの指定方法が異なります。

種類 フロー、Visualforceページの名前例 名前空間例 相対パスの指定例
Visualforcreページ vf1 ns1 apex/ns1__vf1
Visualforcreページ vf1 なし apex/c__vf1
フロー flow1 ns1 flow/ns1/flow1
フロー flow1 なし flow/flow1

カスタムアクションの実行方法

カスタムアクションは「ツールバー」の「アクション」または行の「コンテキストメニュー」から実行できます。

「ツールバー」 > 「アクション」:

行の「コンテキストニュー」:

Visualforceページの実行例

Visualforceページの実行例として、取引先レコードから取引先名をVisualforce画面に表示します。

Visualforceページの実行例:

次のように設定します。

  1. Visualforceを作成する。Visualforceページの表示名と名前を「WelcomeToRaySheet」とし、以下のコードを記述する。

    <apex:page standardController="Account"> 
        Welcome to RaySheet world, {!$CurrentPage.parameters.name}!
    </apex:page>
    
  2. 取引先のビューを開き、「高度なデザイン」画面の「アクション」タブを表示する。

  3. 「+アクション」をクリックして「アクションの追加」画面を表示する。

  4. 「一般設定」タブに以下の画面のように入力する。

    設定項目 設定値
    ラベル 取引先の表示
    URL apex/c__WelcomeToRaySheet
    URLリクエストメソッド GET
    配列値のシリアライズ方法 カンマ区切り
  5. 「パラメータ」タブに以下の画面のように入力する。

    設定項目 設定値
    パラメータ名 name
    パラメータ値 ENCODEURL([取引先名])
  6. 「アクションの追加」画面の「OK」をクリックし設定を保存する。

  7. 実行結果を確認する。取引先レコードを選択し「取引先名の表示」をクリックすることで、選択した取引先レコードの取引先名がVisualforce画面に表示されます。

フローの実行例

フローの実行例として、選択した商談レコードの完了予定日を翌月末に更新します。

  1. 完了予定日を翌月末に更新するフローを作成します。作成手順はこちら
  2. 商談のビューを開き、「高度なデザイン」画面の「アクション」タブを表示する。
  3. 「+アクション」をクリックして「アクションの追加」画面を表示する。
  4. 「一般設定」タブに以下の画面のように入力する。

    設定項目 設定値
    ラベル 完了予定日の設定
    URL flow/SetCloseDate_flow
    URLリクエストメソッド GET
    配列値のシリアライズ方法 パラメータを多重化
  5. 「パラメータ」タブに以下の画面のように入力する。

    設定項目 設定値
    パラメータ名 OpportunityIDs
    パラメータ値 [商談 ID]
  6. 「アクションの追加」画面の「OK」をクリックし設定を保存する。

  7. 実行結果を確認する。商談レコードを選択し「完了予定日の設定」をクリックすることで、選択した商談レコードの完了予定日が翌月末に更新されます。

外部サイトの実行例

外部サイトの実行例として、選択した取引先レコードの取引先名で検索します。

  1. 取引先のビューを開き、「高度なデザイン」画面の「アクション」タブを表示する。
  2. 「+アクション」をクリックして「アクションの追加」画面を表示する。
  3. 「一般設定」タブに以下の画面のように入力する。

    設定項目 設定値
    ラベル WEBサイトの検索
    URL https://www.google.com/search?
    URLリクエストメソッド GET
    配列値のシリアライズ方法 カンマ区切り
  4. 「パラメータ」タブに以下の画面のように入力する。

    設定項目 設定値
    パラメータ名 q
    パラメータ値 ENCODEURL([取引先名])
  5. 「アクションの追加」画面の「OK」をクリックし設定を保存する。

  6. 実行結果を確認する。取引先レコードを選択し「WEBサイトの検索」をクリックすることで、選択した取引先レコードの取引先名で検索が行われます。

補足 - サンプルフローの作成手順

RaySheetのカスタムアクションはSalesforceのフローと連携することができます。「フローの実行例」で使用したサンプルフローの作成手順は以下の通りです。

このフローは商談IDのコレクションを入力として、コレクション内の商談IDと一致する商談レコードの完了予定日を翌月末に更新するフローです。

  1. Salesforceの設定画面から「プロセスの自動化」 > 「フロー」をクリックする。
  2. 「新規フロー」ボタンをクリックし、Flow Builderを起動する。
  3. フローで使用する新規リソースを3つ作成する。

    商談IDのコレクション:

    設定項目 設定値
    リソース種別 変数
    API 参照名 OpportunityIDs
    データ型 テキスト
    複数の値を許可(コレクション) ON
    入力で使用可能 ON

    商談ID:

    設定項目 設定値
    リソース種別 変数
    API 参照名 OpportunityID
    データ型 テキスト
    複数の値を許可(コレクション) OFF
    入力で使用可能 OFF

    完了予定日:

    設定項目 設定値
    リソース種別 数式
    API 参照名 CloseDate
    データ型 日付
    数式 IF( MONTH( TODAY() ) <= 10, DATE( YEAR( TODAY() ), MONTH( TODAY() ) + 2,1) -1, DATE( YEAR( TODAY() ) +1,MONTH( TODAY() )-10, 1) -1)

  4. 「ループ」をドラッグアンドドロップして以下のように設定する。

    設定項目 設定値
    表示ラベル opp_loop
    API 参照名 opp_loop
    コレクション変数 {!OpportunityIDs}
    方向 最初の項目から最後の項目へ
    ループ変数 {!OpportunityID}

  5. 「レコードを更新」をドラッグアンドドロップして以下のように設定する。

    設定項目 設定値
    表示ラベル SetCloseDate
    API 参照名 SetCloseDate
    更新するレコードを検索してその値を設定する方法 レコードを識別する条件を指定し、項目を個別に設定
    オブジェクト 商談
    条件の要件 条件を満たしている
    項目(絞り込み) Id
    演算子(絞り込み) 次の文字列と一致する
    値(絞り込み) {!OpportunityID}
    項目(項目値) CloseDate
    値(項目値) {!CloseDate}

  6. 「開始」と「ループ」をつなぐ。

  7. 「ループ」と「レコードを更新」つなぐ。「ループコネクタ」は「コレクション内の項目ごと」を選択する。

  8. 「レコードを更新」と「ループ」をつなぐ

  9. 保存をクリックして以下のように設定する。

    設定項目 設定値
    フローの表示ラベル SetCloseDate_flow
    フローのAPI 参照名 SetCloseDate_flow
    種別 自動起動フロー
Copyright © 2024 MESCIUS inc. All rights reserved.