Salesforceの便利機能「画面フロー」
レコード作成を関連オブジェクトのレコードや活動まで一気に一画面で行えるように出来るなど、とても便利です。
で、レコードに写真や報告書などの添付ファイルを付けたい時があると思うんですが、
通常はレコードを一旦作成して、その後添付ファイルをアップします。
でも添付ファイルのアップがほぼ必須のような状況では、これもメンドクサイ!
画面フローで一気にできればラク!!
・・・なんですが、調べると意外とやり方が出て来なくてかなり苦労しました。
と言う事で、自分の備忘録としてQiita初投稿でこのやり方をアップしたいと思います。
全体像はこんな感じです。
添付ファイルは複数アップロードを許可するようにしているのでループ処理が入っています。
単一のみであればループ処理は必要ありません。
でも、このアップロードって一気にファイルをドラッグ&ドロップできるので、結構便利なんですよね。
で、画面要素にこのように「ファイルのアップロード」コンポーネントを設置します。
この次がポイントで、このように「ファイルのアップロード」→「詳細」→「手動で変数を割り当て」をチェック→「コンテンツドキュメントID」にテキストコレクション変数(今回は"TextCollectionContentsDocumentId")を割り当てます。
添付ファイルの処理の前に、先に添付される側のレコードを作成しておきます。
先ほどコンテンツドキュメントIDを割り当てたテキストコレクション変数でループ処理を行います。
ループの中で割り当て処理に使うレコード変数を作成しておきます。
レコード変数は「コンテンツドキュメントリンク」というオブジェクトで作成します。
単一変数とコレクション変数を作っておきます。
ループ内の割り当てで、
コンテンツドキュメントリンクの単一レコード変数の「コンテンツドキュメントID」にループの現在の値、「リンク済みエンティティID」に先ほど作成した添付される側のオブジェクトIDを割り当てます。
ここまでくれば後は簡単ですね。
今色んなIDの値を割り当てられた単一レコード変数をコレクション変数に追加します。
最後はループの外でレコードコレクション変数からレコードを作成すれば完成です。
出来てみるとなんてことはないのですが、
画面要素内のファイルのアップロードコンポーネントで、手動で変数を割り当てないといけないのにドはまりしました。
ていうか、なんで上にその項目あるねん!!
そこで変数割り当てたらイケると思うやんッ!!
あと、コンテンツドキュメントリンクっていうオブジェクトがある事にも中々気づかなくて困りました。
誰かのお役に立てば幸いです。