お客様から依頼があり、なるほどなぁ、と思いましたので記事にしてみました。
現在のオブジェクト構成
・商談オブジェクトの子オブジェクト(主従関係)として、費用オブジェクトを作成している。
・商談の子オブジェクト(参照関係)として、プロジェクト管理オブジェクトを作成している。
やりたいこと
①プロジェクトにも費用を登録する必要があるので、費用オブジェクトをプロジェクトの子オブジェクトにしたい。この時、費用レコードにおいてプロジェクトの有無は問わない=参照関係で設定する。
②プロジェクトレコードから子費用レコードを作成する際は、親商談の項目はあらかじめ登録されている形で設定してほしい。
課題
「まぁ、商談における費用として、プロジェクトが開始されてからの費用を出したいのかな?」
と思いながら、
「
アクションの定義済み項目値使えばいっか」
とか、
「そんな難しいことではないし……」
と考えながら設定し始めたのですが、
「
アクションが作成できない ?!」という問題に直面しました。
プロジェクト管理でレコード作成のアクションを作ろうとしたところ、対象オブジェクトで費用オブジェクトが選べません。
調べていくうちに、下記の公式ナレッジを見つけました。
◇ Salesforce>ヘルプ>ナレッジ:
「レコードを作成」グローバルアクションの対象として特定のカスタムオブジェクトを選択できない レコードを作成するためのグローバルアクション ( [設定] | [作成] | [グローバルアクション] ) を作成する際、[対象オブジェクト] 選択リストで特定のカスタムオブジェクトを選択できない場合があります。
主従関係の子であるカスタムオブジェクトのレコードを、グローバルアクションを使用して作成することはできません。子オブジェクトのレコードは親レコードを必要とするため、親レコードを特定できない場合では作成できません。
なるほど、グローバルアクションの場合でも、主従関係の子オブジェクトに当たるオブジェクトは作成できないのですね…。
実際にグローバルアクション側でも確認してみると「費用」オブジェクトは表示されませんでした。
「え、タブ作ったらレコード作成できるのに、なんで ?!
必須項目にしたらいいだけじゃないの ??」
とも思いつつも、アクションはあくまで作業を「簡略化」させる機能。
グローバルアクションで使えないのであれば、オブジェクト固有のアクションでも使えないのか…、しかたないか…と思い別の方法で設定することにしました。
意外と多いアクションの制限、覚えておこうと思います。
ちなみに今回は、プロジェクト管理オブジェクトでカスタムボタンを作成することで、回避しました。
このお客様はExperience Cloudの使用がないため、こちらのカスタムボタンで回避できましたが、将来的に導入されたらまた手間をかけなければいけないので、今から悩ましいですね。
{{i18n("articles.view.premium")}}