この記事はSalesforce 開発者向けブログ投稿キャンペーンへのエントリー記事です。
この前は、「取引先詳細画面でコピーボタンが追加できますでしょうかーカスタムボタンまたリンク」を投稿しました。
今回は、デフォルト項目値を含むレコードの作成ページへの移動機能で、各項目を取得とレコードタイプを設定する方法などえを紹介したいと考えております。
こういう機能があって、カスタムボタンを詳細画面に配置し、クリックすると、画面のいくつ項目の値を取得し、それ以外の項目を無視して(値を取得しないこと(nullような感じ、checkboxでしたら、falseになること))、上記でリンクを紹介したコピーという機能は取引先以外のオブジェクトはほとんどあり、取引先に対してURLに、/{!Account.Id}/e?clone=1で、簡単にレコードのコピーを実現できたということで。
項目のデータ型によって、取得する形も異なりますので、
以下の例は一行目で記入しなければなりません、改行しないように、以下は見た目にやすいために。
RecordTypeを動的に取得する
/lightning/o/customobject__c/new?RecordTypeId={customobject__c.recordtypeId}&defaultFieldValues=
Name={!URLENCODE(customobject__c.Name)},
Account__c={!customobject__c.AccountId__c},
checkbox__c={!IF(customobject__c.checkbox__c, true, false)},
Date__c={!TEXT(customobject__c.Date__c)},
DateTime__c={!TEXT( DATEVALUE(customobject__c.DateTime__c) )}T{!TEXT( TIMEVALUE(customobject__c.DateTime__c) )}Z,
OwnerId={!customobject__c.OwnerId},
RichTextArea__c={!URLENCODE(customobject__c.RichTextArea__c)}&
backgroundContext=%2Flightning%2Fr%customobject__c%2F{!customobject__c.Id}%2Fview
RecordTypeを自分選択する
/lightning/o/customobject__c/new?useRecordTypeCheck=1&defaultFieldValues=
Name={!URLENCODE(customobject__c.Name)},
Account__c={!customobject__c.AccountId__c},
checkbox__c={!IF(customobject__c.checkbox__c, true, false)},
Date__c={!TEXT(customobject__c.Date__c)},
DateTime__c={!TEXT( DATEVALUE(customobject__c.DateTime__c) )}T{!TEXT( TIMEVALUE(customobject__c.DateTime__c) )}Z,
OwnerId={!customobject__c.OwnerId},
RichTextArea__c={!URLENCODE(customobject__c.RichTextArea__c)}&
backgroundContext=%2Flightning%2Fr%customobject__c%2F{!customobject__c.Id}%2Fview
/lightning/o/customobject__c/new:標準Objectだたっら、/lightning/o/Account/newようにする、lightning URLに遷移して 新規画面を起動します。
RecordTypeId:オブジェクトにレコードタイプもある場合、動的に取得できること(RecordTypeId={customobject__c.RecordTypeId})、ハードコーディングも使えるけど、良く無いと思うですが、しょうがない場合、RecordTypeId=0127F000000SVnOQAWで使います。注意点:大文字と小文字が区別あります。RecordTypeIdはOK、recordTypeId、RecordtypeId、recordrypeIdはだめです。
useRecordTypeCheck:useRecordTypeCheckを利用して、レコード選択ページを表示されること。値はテストとしては1、2とか関係なし。
Name、Text and Other Field:RichTextArea(写真)などもURLENCODEを追加して利用できること。
Checkbox:checkbox項目は最善して、{!IF(customobject__c.checkbox__c, true, false)}ようなIFメソッドを利用します。
Date Field:日付項目には、TEXTメソッドを使用します。
DateTime Field:DateTimeを日付と時刻に別々になりますし、{!TEXT( DATEVALUE(customobject__c.DateTime__c) )}T{!TEXT( TIMEVALUE(customobject__c.DateTime__c) )}Z 、TおよびZ形式もハードコーディングしていただいております。
backgroundContext:開く画面をキャンセルする際、遷移します。それは追加しなくてもよいと思っています。
ある項目を取得したくない場合であれば、そのdefaultFieldValuesに追加しないで構いません。
そういうことですね。
以上のような機能は、
Salesforce のコーディング開発というより、管理者としても利用できると思っています。
近よく使いますので、みんなに共有したいと考えております。
ご参考になれば幸いです。
Latest posts by zchao (see all)
- Auraでアクションボタン作成して画面のチェックボックス項目一括処理 - 2021年4月12日
- デフォルト項目値を含むレコード作成実例説明(defaultFieldValues) - 2021年1月9日
- Salesforce のノーコード・ローコード開発 - 2020年12月31日