LoginSignup
0
0

More than 1 year has passed since last update.

Salesforce URL Hack in Lightning 4

Last updated at Posted at 2021-05-07

まとめページに戻る

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")},

とすると
image.png
何故か。日付だけしか入力できてません。
ここで強引に保存すると次のエラーになります。フォーマットが違う?

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

しかし、グローバルアクションの設定自体では開いている画面からの情報を参照することはできないようです。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0