やりたいこと
Salesforceのケース登録をスムーズに行いたい。
多くのフィールドがある中で、7割ほどはいつも決まっている項目を選択・入力するため、入力コスト削減のためURLHackを利用する。
構文
/lightning/o/オブジェクト名/new?defaultFieldValues=フィールド名=入力文字列
テキストフィールド(1行)
/lightning/o/オブジェクト名/new?defaultFieldValues=フィールド名=入力文字列
テキストフィールド(複数行)
/lightning/o/オブジェクト名/new?defaultFieldValues=フィールド名=入力文字列
プルダウンフィールド
/lightning/o/オブジェクト名/new?defaultFieldValues=フィールド名=選択値
ルックアップフィールド
/lightning/o/オブジェクト名/new?defaultFieldValues=ルックアップフィールド名=オブジェクトの18桁ID
オブジェクト名の確認方法
各フィールド名はすべて、records-record-layout-item > divのdata-target-selection-nameに定義されている。
テキストフィールド(1行)
<!-- TalkDetail__c -->
<records-record-layout-item class="slds-form__item slds-no-space slds-size_1-of-2 item-left" field-label="顧客名" lwc-2qpe2t0sbck-host="">
<div lwc-2qpe2t0sbck="" class="slds-grid slds-size_1-of-1 label-stacked" data-target-selection-name="sfdc:RecordField.TalkHistory__c.CustomerName__c" role="listitem">
<!-- 中略 -->
</div>
</records-record-layout-item>
テキストフィールド(複数行)
<!-- TalkDetail__c -->
<records-record-layout-item class="slds-form__item slds-no-space slds-size_1-of-2 item-left" field-label="会話内容" lwc-2qpe2t0sbck-host="">
<div lwc-2qpe2t0sbck="" class="slds-grid slds-size_1-of-1 label-stacked" data-target-selection-name="sfdc:RecordField.TalkHistory__c.TalkDetail__c" role="listitem">
<!-- 中略 -->
</div>
</records-record-layout-item>
プルダウンフィールド
<!-- SelectItem1__c -->
<records-record-layout-item class="slds-form__item slds-no-space slds-size_1-of-2 item-left" field-label="選択リスト" lwc-2qpe2t0sbck-host="">
<div lwc-2qpe2t0sbck="" class="slds-grid slds-size_1-of-1 label-stacked" data-target-selection-name="sfdc:RecordField.TalkHistory__c.SelectItem1__c" role="listitem">
<!-- 中略 -->
</div>
</records-record-layout-item>
ルックアップフィールド
<!-- ContactA_c -->
<records-record-layout-item class="slds-form__item slds-no-space slds-size_1-of-2 item-left" field-label="商談A" lwc-2qpe2t0sbck-host="">
<div lwc-2qpe2t0sbck="" class="slds-grid slds-size_1-of-1 label-stacked" data-target-selection-name="sfdc:RecordField.TalkHistory__c.ContactA_c" role="listitem">
<!-- 中略 -->
</div>
</records-record-layout-item>
エンコード処理は不要?
ほかの方の記事を見ると、フィールド名={!URLENCODE(‘文字列’)}で、エンコードしましょうという記載を見かけるのだが、
そうすると、{!URLENCODE(‘文字列’)}のままテキストフィールドに設定されてしまった。
逆に、フィールド名=’文字列’とすると、特に文字化けずに設定できた。