You need to sign in to do that
Don't have an account?
LiLi_Wu
にLiLi_Wuにより編集されたメッセージ
親ー複数の子 関係において、子から子への編集画面遷移
親オブジェクトに子オブジェクトが5つ主従関係で紐づけられております。
1.親オブジェクトのレコードを作成
2.子オブジェクト1~5を順番にレコード作成・入力・保存
を行いたいときに
標準では
1.親作成
2.新規 子1作成・保存
入力データの確認画面
→参照先の親レコードID(リンク)を押下し親レコード画面に戻る
3.新規 子2作成・保存
入力データの確認画面
→参照先の親レコードID(リンク)を押下し親レコード画面に戻る
・
・
・
・
6.新規 子5作成・保存
入力データの確認画面
→参照先の親レコードID(リンク)を押下し親レコード画面に戻る
というデータ登録の流れになると思うのですが
これを
1.親作成
2.新規 子1作成・保存→入力内容確認→ボタン押下で
子2の編集画面へ遷移
3.子2作成・保存→入力内容確認→ボタン押下で
子3の編集画面へ遷移
・
・
・
・
6.子5作成・保存→入力内容確認
のような動きをするカスタムボタンを作成したいのですが
どのように作成するのかご教示いただけますでしょうか。
※子→子の画面遷移時に共通の親のレコードIDは自動で入力されている必要があります。
以下の方法ではいかがでしょうか?
・子オブジェクトの編集画面のソースを表示する。
⇒その編集画面の項目IDを控えておく。
【例:項目API名は例ですので、それぞれ確認してください。】
・ブラウザで編集画面を表示し、右クリック⇒ソースの表示
・ソースで主従関係項目のラベル名を探し、項目IDを控える
※リレーション項目は、以下のように表示されます。
項目のIDと参照項目としての隠し項目であるlinkId(lkid)を控えておいてください。
<label for="CF00NA00000026ASH">親参照項目ラベル</label>
</td><td class="dataCol">
<input type="hidden"
name="CF00NA00000026ASH_lkid"
id="CF00NA00000026ASH_lkid" value="000000000000000"/>
・子オブジェクトに【カスタムボタン・リンク】を【onClickJavaScript】を作成する。
・スクリプト内に以下の内容を記載する。
・編集画面のURL生成(項目もURL経由で渡す)
・編集画面へのリロード
var uri = '{!URLFOR($Action.子オブジェクトAPI名.New)}';
url += '&CF00NA00000026ASH={!子オブジェクトAPI名.親オブジェクト参照項目API名.Name}' +
'&CF00NA00000026ASH_lkid={!子オブジェクトAPI名.親オブジェクト参照項目API名.Id}';
window.location.href = encodeURI(uri);
・作成したボタンを子オブジェクトの画面レイアウトに表示する。
上記内容は、SalesForce社さんでの開発に伴い、
項目名に対するIDの付与の仕方が変わるとメンテしなければならなくなり、
正規のサポートは受けられないようですが、参考までにUPしました。
All Answers
以下の方法ではいかがでしょうか?
・子オブジェクトの編集画面のソースを表示する。
⇒その編集画面の項目IDを控えておく。
【例:項目API名は例ですので、それぞれ確認してください。】
・ブラウザで編集画面を表示し、右クリック⇒ソースの表示
・ソースで主従関係項目のラベル名を探し、項目IDを控える
※リレーション項目は、以下のように表示されます。
項目のIDと参照項目としての隠し項目であるlinkId(lkid)を控えておいてください。
<label for="CF00NA00000026ASH">親参照項目ラベル</label>
</td><td class="dataCol">
<input type="hidden"
name="CF00NA00000026ASH_lkid"
id="CF00NA00000026ASH_lkid" value="000000000000000"/>
・子オブジェクトに【カスタムボタン・リンク】を【onClickJavaScript】を作成する。
・スクリプト内に以下の内容を記載する。
・編集画面のURL生成(項目もURL経由で渡す)
・編集画面へのリロード
var uri = '{!URLFOR($Action.子オブジェクトAPI名.New)}';
url += '&CF00NA00000026ASH={!子オブジェクトAPI名.親オブジェクト参照項目API名.Name}' +
'&CF00NA00000026ASH_lkid={!子オブジェクトAPI名.親オブジェクト参照項目API名.Id}';
window.location.href = encodeURI(uri);
・作成したボタンを子オブジェクトの画面レイアウトに表示する。
上記内容は、SalesForce社さんでの開発に伴い、
項目名に対するIDの付与の仕方が変わるとメンテしなければならなくなり、
正規のサポートは受けられないようですが、参考までにUPしました。
返事が遅くなりましてすみません。
nabemaruさん
ご回答ありがとうございました。
早速こちらの方法を試してみたいと思います。
また不明な箇所がございましたら質問させて頂ければ幸いです。
ありがとうございます。