function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
光宏 城垣 5光宏 城垣 5 

新規注文オブジェクトを商談オブジェクトから生成する方法について

お世話になっております。
提題の件について質問させてください。

現在標準カスタマイズで社内用システムを構築しています。
商談オブジェクトと注文オブジェクトに参照関係を張り、既存商談から新規注文を生成したいと
考えたのですが、関連リスト「注文」に「新規注文」ボタンが生成されません。

商談オブジェクトから新規注文を生成するのは仕様上不可能なのでしょうか。
ご存じの方がいらっしゃいましたらご教示いただけますと幸いです。

よろしくお願いいたします。
Best Answer chosen by 光宏 城垣 5
Shingo YamazakiShingo Yamazaki
城垣さん

こんにちは。
山﨑と申します。

以下のような内容で間違いないでしょうか。
1)「注文」オブジェクトに新規項目を作成し、データ型を「参照関係」、関連オブジェクトを「商談」にする。
2)「商談」のページレイアウトを編集し、「注文」オブジェクトの関連リストを追加する。
3)「商談」の詳細レコード画面を開いても、関連リスト「注文」に「新規注文」ボタンが表示されない。

私も手元の環境で確認しましたところ、注文オブジェクトについてはボタンが表示されませんでいた。
(通常はデフォルトでボタンが表示されると思うのですが、これについては原因がわかりませんでした。。。)

解決策として、以下のようにカスタムボタンを作成するという方法はいかがでしょうか?
----------------------------
1)設定メニューより「カスタマイズ > 注文 > ボタンとリンク」を開く。
2)「新規ボタンまたはリンク」ボタンをクリックする。
3)各項目を以下のように入力する。
表示ラベル:新規注文 ※任意です
名前:New ※任意です
表示の種類:リストボタン(「チェックボックスの表示」はチェックを外す)
動作:Javascriptを実行
内容のソース:OnClick JavaScript

4)中央のテキストエリアに以下のコードを貼付ける

window.top.location = "{!URLFOR($Action.Order.New)}";

5)保存する
6)「商談」のページレイアウトの編集画面を開く
7)「注文」オブジェクトの関連リストの設定画面を開き、作成したボタンを追加する
8)レイアウトを保存する
---------------------------

7)については初めての場合は分かりづらいのですが、以下の画像を参考にしてください。
User-added image

また、このようにカスタムボタンを作成した場合、
新規作成画面を開いた時に、関連元の商談の情報がカスタム項目にセットされないという欠点があります。

これについては、かなり強引な手段ですが、「注文オブジェクトに作成したカスタム項目を開いた時のIdをコピーし、URLパラメータとして渡す」という方法があります。

コピーしたIdを使って、カスタムボタンのJavascriptを以下のように変更してください。
window.top.location = "{!URLFOR($Action.Order.New)}&CF***項目Id***={!Opportunity.Name}";
(***項目Id***の箇所をそのままIdで置き換えて下さい。半角スペースやシングルクォーテーションなどは不要です)

上記の場合、カスタム項目のIdは組織ごとに異なるため複数組織での使い回しができませんが、本番運用されている組織に適用するだけであれば問題ないと思います。


All Answers

Shingo YamazakiShingo Yamazaki
城垣さん

こんにちは。
山﨑と申します。

以下のような内容で間違いないでしょうか。
1)「注文」オブジェクトに新規項目を作成し、データ型を「参照関係」、関連オブジェクトを「商談」にする。
2)「商談」のページレイアウトを編集し、「注文」オブジェクトの関連リストを追加する。
3)「商談」の詳細レコード画面を開いても、関連リスト「注文」に「新規注文」ボタンが表示されない。

私も手元の環境で確認しましたところ、注文オブジェクトについてはボタンが表示されませんでいた。
(通常はデフォルトでボタンが表示されると思うのですが、これについては原因がわかりませんでした。。。)

解決策として、以下のようにカスタムボタンを作成するという方法はいかがでしょうか?
----------------------------
1)設定メニューより「カスタマイズ > 注文 > ボタンとリンク」を開く。
2)「新規ボタンまたはリンク」ボタンをクリックする。
3)各項目を以下のように入力する。
表示ラベル:新規注文 ※任意です
名前:New ※任意です
表示の種類:リストボタン(「チェックボックスの表示」はチェックを外す)
動作:Javascriptを実行
内容のソース:OnClick JavaScript

4)中央のテキストエリアに以下のコードを貼付ける

window.top.location = "{!URLFOR($Action.Order.New)}";

5)保存する
6)「商談」のページレイアウトの編集画面を開く
7)「注文」オブジェクトの関連リストの設定画面を開き、作成したボタンを追加する
8)レイアウトを保存する
---------------------------

7)については初めての場合は分かりづらいのですが、以下の画像を参考にしてください。
User-added image

また、このようにカスタムボタンを作成した場合、
新規作成画面を開いた時に、関連元の商談の情報がカスタム項目にセットされないという欠点があります。

これについては、かなり強引な手段ですが、「注文オブジェクトに作成したカスタム項目を開いた時のIdをコピーし、URLパラメータとして渡す」という方法があります。

コピーしたIdを使って、カスタムボタンのJavascriptを以下のように変更してください。
window.top.location = "{!URLFOR($Action.Order.New)}&CF***項目Id***={!Opportunity.Name}";
(***項目Id***の箇所をそのままIdで置き換えて下さい。半角スペースやシングルクォーテーションなどは不要です)

上記の場合、カスタム項目のIdは組織ごとに異なるため複数組織での使い回しができませんが、本番運用されている組織に適用するだけであれば問題ないと思います。


This was selected as the best answer
光宏 城垣 5光宏 城垣 5
山崎様

お世話になっております。
大変詳細な回答をいただきありがとうございます。

直面していた問題が解決いたしました。
ありがとうございました。