ユーザが更新しても良い項目だけ表示して編集できるようにする機能を作りたいんだけど…
レコードの一部の項目だけを編集する画面フローを作成する手順を説明します。
レコードを自由に編集したいのであれば、レコードページの「編集」アクションを使えば良いのですが、よりユーザにわかりやすく、対象の項目だけをピックアップして画面に表示したいのであれば、画面フローが有効です。
[Salesforceフロー] レコードを編集する画面フローを作成するには?
例として取引先オブジェクトの「固定電話番号」「FAX番号」を編集する画面フローを作成します。
(各フロー要素の下記に記載していないプロパティはデフォルト値のままです。)
Flow Builderの表示
1.管理者アカウントでログイン
2.設定>フロー>新規フロー>画面フロー
3.「作成」をクリックすると Flow Builder が表示されます。
入力変数の作成
編集対象のレコードIDを格納するための変数を定義します。
1.ツールボックス>新規リソース
2.リソース種別「変数」を選択し、以下のとおり入力します。
API参照名:recordId
データ型:テキスト
「入力で使用可能」にチェックを入れる
「recordId」は特殊なAPI参照名で、表示しているレコード詳細画面のキーであるレコードIDがこの変数に格納されます。
必ず「recordId」という名前にし、入力パラメータにチェックを入れる必要があります。
[要素:レコードを取得] の作成
1.要素を追加をクリック
2.「レコードを取得」を選択し、以下のとおり入力します。
表示ラベル:(例として)取引先レコードの取得
API参照名:(例として)GetAccountRecord
オブジェクト:取引先
取引先レコードを絞り込み:
条件の要件:すべての条件に一致(AND)
┌項目:Id
│演算子:次の文字列と一致する
└値:recordId
[要素:画面] の作成
1.要素を追加で「画面」を選択し、右側の画面のプロパティに以下のとおり入力します。
表示ラベル:(例として)電話番号の入力
API参照名:(例として)pageTelNoInput
2.左のコンポーネントから「表示テキスト」をクリックし、右側のパラメータに以下のとおり入力します。
API参照名:(例として)labelAccountName
テキスト:取引先名:{!GetAccountRecord.Name}
(「取引先名:」と入力してから、リソースを挿入をクリックし、GetAccountRecord 取引先>取引先名 を追加)
3.左のコンポーネントから「表示テキスト」をクリックし、右側のパラメータに以下のとおり入力します。
API参照名:(例として)labelPrompt
テキスト:(例として)の電話番号を入力してください。
4.左のコンポーネントから「電話」をクリックし、右側のパラメータに以下のとおり入力します。
API参照名:(例として)phoneNo
表示ラベル:(例として)固定電話番号
値:GetAccountRecord 取引先>取引先 電話
5.もう一度、左のコンポーネントから「電話」をクリックし、右側のパラメータに以下のとおり入力します。
API参照名:(例として)phoneFaxNo
表示ラベル:(例として)FAX番号
値:GetAccountRecord 取引先>取引先 Fax
6.右下の「完了」をクリック
画面の表示イメージは以下のとおりです。
[要素:割り当て] の作成
要素を追加で「割り当て」を選択し、以下のとおり入力します。
表示ラベル:(例として)入力値をレコードにセットする
API参照名:(例として)setInputValuesToRecord
変数値を設定:
┌変数:GetAccountRecord 取引先>取引先 電話
│演算子:次の文字列と一致する
└値:phoneNo>値
割り当てを追加:
┌変数:GetAccountRecord 取引先>取引先 Fax
│演算子:次の文字列と一致する
└値:phoneFaxNo>値
[要素:レコードを更新] の作成
要素を追加で「レコードを更新」を選択し、以下のとおり入力します。
表示ラベル:(例として)取引先レコードの更新
API参照名:(例として)updateAccountRecord
更新するレコードを選択
レコードまたはレコードコレクション:GetAccountRecord(取引先)
フローのプロパティを設定
1.「保存」をクリック
2.フローを保存に以下のとおり入力します。
フローの表示ラベル:(例として)電話番号とFAX番号の編集
フローの API 参照名:(例として)editPhoneNumberAndFaxNumber
フローのテスト
それでは作成したフローの動作確認をしてみましょう。
1.任意の取引先レコードのレコードIDをメモします。レコードIDはレコード詳細ページのURLのhttps://…/Account/レコードID/…の部分になります。
2.Flow Builderの「デバッグ」をクリックし、入力変数 recordId に上記でメモしたレコードID 18桁を入力し、「実行」をクリックします。
3.固定電話番号とFAX番号の現在の値が表示されるはずです。値を変更して「次へ」をクリック
4.画面は1つなので以上で画面フローの実行は終了するはずです。
5.この取引先の固定電話番号とFAX番号が更新されているはずです。
まとめ
この画面フローの完成形は以下のとおりです。
1.開始
2.取引先レコードの取得(レコードを取得)
取得したレコードを GetAccountRecord変数 に格納
3.電話番号の入力(画面)
GetAccountRecord>取引先 電話 の値を入力フィールドにセット
GetAccountRecord>取引先 Fax の値を入力フィールドにセット
↓
入力された固定電話番号を phoneNo変数 に格納
入力されたFAX番号を phoneFaxNo変数 に格納
4.入力値をレコードにセットする(割り当て)
phoneNo変数 の値をGetAccountRecord>取引先 電話 にセット
phoneFaxNo変数 の値をGetAccountRecord>取引先 Fax にセット
5.取引先レコードの更新(レコードを更新)
GetAccountRecord変数 の値でレコードを更新
6.終了
以上です!