URL HACKでクローンを作成する時に レコードタイプを指定する方法。
/lightning/r/Opportunity/{!Opportunity.Id}/clone?recordTypeId={Insert Record Type Id here without the braces}&count=1
私が無理ですって回答したら、気合で質問者さんが探した(たぶん試行錯誤した)結果です。
すばらしいねぇ。忘れちゃいかん。
Opportunity clone URL Hack - Set Record type
レコードタイプの選択画面を表示する方法
/lightning/o/Account/new?useRecordTypeCheck=1
URLボタンを使用してレコードを作成するときにデフォルトのレコードタイプが選択されないようにするにはどうすればよいですか?
続けてデフォルト値を設定する場合は & で続けるといいようです。
Dateフィールドに値を設定する
How to set value in Date and DateTime fields when using ‘defaultFieldValues’ Spring 20 feature?
一旦Text型に変換すれば機能するみたい。
/lightning/o/Opportunity/new?defaultFieldValues=
Name=Test Opp,
CloseDate={!TEXT(TODAY() + 3)}
Time型のフィールドに値をセットする。
残念ながらDateみたいにTextだけではできないです。数式フィールドを別途作成してその数式フィールドを使います。
DateTime型
Textで変換すればいいかと思ってましたがちょっと違うみたいですね。
{!SUBSTITUTE(TEXT(NOW()), "Z",".000")},
とすると
何故か。日付だけしか入力できてません。
ここで強引に保存すると次のエラーになります。フォーマットが違う?
Value for field 'Field3__c' is not in ISO 8601 format, Value: 2022-06-02 02:52:10.000, Runtime class: java.lang.String
調べてみると以下がそのフォーマットみたいです。
2022-06-02T19:30+02:00
2022-06-02T19:30+02:00
2022-06-02T19:30+02:00
2022-06-02T19:30Z
一番簡単に変換できる 2022-06-02T19:30Z に変換します。
この式でうまく機能しました。またTEXT関数を使うとGMTになると思っていましたが、ちゃんと日本時間で入力できています。
Field3__c={!SUBSTITUTE(TEXT(NOW()), " ","T")},
アドレスや名前などの復号フィールドでの回避策
Prepopulate field values using defaultFieldValues
回答例
URL Hackをauraコンポーネントから呼び出す。
おお、出来ますね。
カスタムボタンが使えるならこの方法で参照フィールドのIdも直接セットできると思います。
数式フィールドは不要になりますね。しかし、クイックアクションから呼ぶにはどうしたものか...
やっぱり一瞬コンポーネントが出るんですよねぇ。いい方法がない。
url_hack : function (component, event, helper) {
var urlEvent = $A.get("e.force:navigateToURL");
var myUrl = "/lightning/o/JucyuMeisai__c/new?defaultFieldValues=Account__c=0016D00000O9czcQAB";
urlEvent.setParams({
"url": myUrl
});
urlEvent.fire();
},
新しい方法?グローバルアクションを利用する
カスタムボタンから新規レコードを作成し、保存後、ページ遷移しないようにしたい
グローバルアクションとしてもURLとして使えます。
本物の新規商談ボタンはIdを18桁でハードコーディングしていますが、CASESAFEIDを使って18桁のIdにすれば変数でも対応できます。
/lightning/action/quick/Global.NewTask?objectApiName=Task&context=RECORD_DETAIL&recordId={!CASESAFEID(CustomObject1__c.Id)}&backgroundContext=%2Flightning%2Fr%2FCustomObject1__c%2F{!CASESAFEID(CustomObject1__c.Id)}%2Fview
しかし、グローバルアクションの設定自体では開いている画面からの情報を参照することはできないようです。