Salesforce ããŒã¿ã®æäœ
åŠç¿ã®ç®ç
ãã®åå ãå®äºãããšã次ã®ããšãã§ããããã«ãªããŸãã
- åºæ¬ã³ã³ããŒãã³ãã䜿çšããŠã1 ã€ã®ã¬ã³ãŒããåŠçãããã©ãŒã ãäœæããã
- ã¯ã€ã€ãŒãµãŒãã¹ã䜿çšããŠããŒã¿ãååŸããã
- ããŒã¿ãäœæããŠæŽæ°ããã
- Apex ã¡ãœãããã³ãŒã«ããã
ããŒã¿ã®ãªãã³ã³ããŒãã³ãã¯èŠãç®ããã£ããããŠãããããããŸãããã空ã£ãœã«æããããŸãããã®åå ã§ã¯ããããã空èæãåããAura ã³ã³ããŒãã³ããš Lightning ã³ã³ããŒãã³ãã® Salesforce ããŒã¿ã®èªã¿åãæ¹æ³ãšæžãèŸŒã¿æ¹æ³ãæ¯èŒããŸãã
Aura ã³ã³ããŒãã³ãã® Apex ã¯ã©ã¹ãéçºããŠããå Žåã¯ãLightning Web ã³ã³ããŒãã³ãã§ã Apex ãåå©çšã§ããŸãããã ããLightning Web ã³ã³ããŒãã³ãã«ã¯ããŒã¿ãåŠçããå¥ã®ææ®µãçšæãããŠãããããéçºãã Apex ãäžèŠã«ãªãå ŽåããããŸãã
1 ã€ã®ã¬ã³ãŒããåŠçãããã©ãŒã ã®äœæ
ãŠãŒã¶ãŒã Salesforce ã¬ã³ãŒãã衚瀺ãç·šéãäœæã§ãããã©ãŒã ãäœæããå ŽåãAura ã³ã³ããŒãã³ããš Lightning Web ã³ã³ããŒãã³ãã®ã©ã¡ãã lightning åå空éã§åºæ¬ã³ã³ããŒãã³ãã䜿çšããŸãã
ãããã®ã³ã³ããŒãã³ãã«ã¯ãã©ãŒã ã¬ã€ã¢ãŠãããããã¬ã³ãŒãã® CRUD 倿ŽãåŠçããããããApex ã³ãŒããèšè¿°ããå¿ èŠããããŸãããLightning ããŒã¿ãµãŒãã¹ã䜿çšããŠãã¬ã³ãŒãã®æŽæ°ããã£ãã·ã¥ããã³ã³ããŒãã³ãéã§å ±æããŸãã
Lightning ããŒã¿ãµãŒãã¹ã¯å ¬éãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ API äžã«æ§ç¯ãããŠããŸãããAPI ã®ãµãã»ãããããµããŒãããŠããŸããããã®ãµãã»ããããããŒã¿ãåŠçããäžè¬çãªãŠãŒã¹ã±ãŒã¹ã®å€ãã«å¯ŸåŠããŸãã
Aura ã³ã³ããŒãã³ããš Lightning Web ã³ã³ããŒãã³ãã§ã¯ãåäœã¯åãã§ãããåè¿°ã®ãšããåœåèŠåãç°ãªããŸãã
Form 颿° |
Aura ã³ã³ããŒãã³ã |
Lightning Web ã³ã³ããŒãã³ã |
|---|---|---|
ç·šéã衚瀺ãåç §ã®ã¿ã¢ãŒãããµããŒã |
lightning:recordForm |
lightning-record-form |
åç §ã®ã¿ã®ãã©ãŒã |
lightning:recordViewForm |
lightning-record-view-form |
ç·šéå¯èœãªãã©ãŒã |
lightning:recordEditForm |
lightning-record-edit-form |
倧åã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãlightning-record-form ããå§ãããšããã§ãããããã®ã³ã³ããŒãã³ãã«ã¯ lightning-record-view-form ãš lightning-record-edit-form ã®æ©èœãçµåãããç°¡åã«äœ¿ããããã«ãªã£ãŠããŸãã
ã«ã¹ã¿ã é ç®ã¬ã€ã¢ãŠããã¬ã³ãŒãããŒã¿ã®ã«ã¹ã¿ã 衚瀺ãèŠããé«åºŠãªãŠãŒã¹ã±ãŒã¹ã§ã¯ lightning-record-view-form ãš lightning-record-edit-form ã䜿çšããŸãã
以äžã¯ãBrokerDetails Aura ã³ã³ããŒãã³ãã®äŸã§ãã
<lightning:recordForm
objectApiName="Broker__c"
recordId="{!v.property.Broker__c}"
fields="{!v.brokerFields}"
columns="2"/>以äžã¯ã察å¿ãã brokerCard Lightning ã³ã³ããŒãã³ãã® HTML ã§ãã
<lightning-record-form
object-api-name="Broker__c"
record-id={brokerId}
fields={brokerFields}
columns="2">
</lightning-record-form>
1 ã€ã®ã¬ã³ãŒããåŠçããã«ã¹ã¿ã UI
Aura ã³ã³ããŒãã³ãã§ lightning:recordForm ãåæ§ã®é¢æ°ããã UI ã«å¯Ÿãã管çã匷åããå¿ èŠãããå Žåã¯ãããŒã¯ã¢ããã®ç¬èªã®ã«ã¹ã¿ã UI ã« <force:recordData> ã¿ã°ã䜿çšã§ããŸãã
PropertySummary Aura ã³ã³ããŒãã³ãã§ã¯ãããŒã¯ã¢ããã« <force:recordData> ã䜿çšããŠããŸãã
<force:recordData aura:id="service"
recordId="{!v.recordId}"
targetFields="{!v.property}"
fields="['Id',
'Thumbnail__c',
'Address__c',
'City__c',
'State__c',
'Zip__c',
'Price__c',
'Beds__c',
'Baths__c',
'Broker__r.Id',
'Broker__r.Name',
'Broker__r.Title__c',
'Broker__r.Mobile_Phone__c',
'Broker__r.Email__c',
'Broker__r.Picture__c']" />Lightning Web ã³ã³ããŒãã³ãã«ã€ããŠã¯ã<force:recordData> ã®ä»£ããã«ãLightning ããŒã¿ãµãŒãã¹ã䜿çšããããã€ãã®ææ³ãçšæãããŠããŸãããããŒã¿ãèªã¿èŸŒãã§ããã®ãæžã蟌ãã§ããã®ãã«ãã£ãŠäœ¿çšããææ³ãç°ãªããŸããã¯ã€ã€ãŒãµãŒãã¹ã JavaScript API ã®ã¡ãœããã¯ãlightning-record-*-form ã³ã³ããŒãã³ããåèªã®èŠä»¶ãæºãããªãå Žåã«ã®ã¿äœ¿çšãæ€èšããŸãã
ã¯ã€ã€ãŒãµãŒãã¹ã䜿çšããããŒã¿ã®ååŸ
Lightning Web ã³ã³ããŒãã³ãã§ã¯ãSalesforce ããŒã¿ãèªã¿åãããã«ãLightning ããŒã¿ãµãŒãã¹äžã«æ§ç¯ããããªã¢ã¯ãã£ããªã¯ã€ã€ãŒãµãŒãã¹ã䜿çšããŸããã³ã³ããŒãã³ã㯠JavaScript ã¯ã©ã¹ã® @wire ã䜿çšããŠãlightning/ui*Api åå空éã®ããããã®ã¯ã€ã€ãŒã¢ããã¿ãŒããããŒã¿ãèªã¿åããŸããSalesforce ãæäŸããã¯ã€ã€ãŒã¢ããã¿ãŒã®ãªã¹ãã«ã€ããŠã¯ããã®åå ã®ããªãœãŒã¹ãã»ã¯ã·ã§ã³ãåç §ããŠãã ãããç¬èªã®ã«ã¹ã¿ã ã¯ã€ã€ãŒã¢ããã¿ãŒãèšè¿°ããããšã¯ã§ããŸããã
ãã®ã¯ã€ã€ãŒãµãŒãã¹ããªã¢ã¯ãã£ããšåŒã¶çç±ã® 1 ã€ã¯ã$ ãšãããã¬ãã£ãã¯ã¹ãä»ãããªã¢ã¯ãã£ã倿°ããµããŒãããŠããããã§ãããªã¢ã¯ãã£ã倿°ã倿Žããããšãã¯ã€ã€ãŒãµãŒãã¹ãæ°ããããŒã¿ãããããžã§ãã³ã°ããŸãããèŠæ±ãããååŸãã§ã¯ãªããããããžã§ãã³ã°ããšèšãã®ã¯ãããŒã¿ãæäŸããããšãã«ããã®ããŒã¿ãã³ã³ããŒãã³ãã§ã¯ãªããã¯ã€ã€ãŒã¢ããã¿ãŒã管çããããã§ãã
以äžã¯ã@wire ã䜿çšããŠã¬ã³ãŒããååŸãã propertySummary.js ã®äŸã§ãã
import { LightningElement, api, wire } from 'lwc';
import { getRecord, getFieldValue } from 'lightning/uiRecordApi';
import NAME_FIELD from '@salesforce/schema/Property__c.Name';
import PICTURE_FIELD from '@salesforce/schema/Property__c.Picture__c';
export default class PropertySummary extends LightningElement {
@api recordId;
propertyName;
pictureURL;
@wire(getRecord, { recordId: '$recordId', fields: [NAME_FIELD, PICTURE_FIELD] })
wiredRecord({ error, data }) {
if (data) {
this.propertyName = getFieldValue(data, NAME_FIELD);
this.pictureURL = getFieldValue(data, PICTURE_FIELD);
} else if (error) {
// Handle error. Details in error.message.
}
}
}ãã®ã³ãŒã㯠lightning/uiRecordApi ãã getRecord ã¯ã€ã€ãŒã¢ããã¿ãŒãã€ã³ããŒãããŸãã
ui*Api ã¯ã€ã€ãŒã¢ããã¿ãŒã䜿çšããå Žåã¯ããªããžã§ã¯ããé ç®ãžã®åç §ãã€ã³ããŒãããããšã匷ããå§ãããŸãããªããžã§ã¯ããé ç®ãžã®åç §ãã€ã³ããŒããããšããªããžã§ã¯ããé ç®ãååšããããšã Salesforce ãæ€èšŒãããããã³ãŒãã確å®ã«æ©èœããŸããæ¬¡ã®ã³ãŒãã®è¡ã¯ãProperty ã«ã¹ã¿ã ãªããžã§ã¯ãã® Name é ç®ãžã®åç §ãã€ã³ããŒãããŸãã
import NAME_FIELD from '@salesforce/schema/Property__c.Name';
@api ãã³ã¬ãŒã¿ãŒã¯ recordId ããããã£ãå ¬éããŸããpropertySummary ãå«ã芪ã³ã³ããŒãã³ãã¯ããã® HTML ãã¡ã€ã«ã® record-id 屿§ã®å€ãèšå®ããŸãã
$recordId ã¯å é ã« $ ãä»ããŠããããããã®å€ã倿Žããããšãã¯ã€ã€ãŒãµãŒãã¹ãæ°ããããŒã¿ãååŸããŠã³ã³ããŒãã³ãã«ããããžã§ãã³ã°ããŸããæ°ããããŒã¿ãæäŸããããšãçµã³ä»ããããŠãã颿°ãåŒã³åºãããŸãããã®ããã»ã¹ãããããã£ãæŽæ°ããããã«ãã£ãŠå衚瀺ãè¡ãããŸãã
wiredRecord 颿°ãããã®ã¯ã€ã€ãŒãµãŒãã¹ããããŒã¿ã®ã¹ããªãŒã ãåä¿¡ããŸãããããŠã¬ã³ãŒãããŒã¿ã data åŒæ°ã«è¿ãããŸãããšã©ãŒãããå Žå㯠error åŒæ°ã«è¿ãããŸãã
JavaScript API ã¡ãœããã䜿çšããããŒã¿ã®æžã蟌ã¿
createRecord JavaScript API ã¯ã¬ã³ãŒããäœæããŸãããŸããupdateRecord ã deleteRecord ã䜿çšããããšãã§ããŸããç§ãã¡ã¯ä»ãªãå éšã§ Lightning ããŒã¿ãµãŒãã¹ã䜿çšããŠãããããApex ã¯å¿ èŠãããŸããã

éèŠ
ã¬ã³ãŒãã®äœæãæŽæ°ãåé€ã« @wire ã䜿çšããªãã§ãã ãããã¯ã€ã€ãŒãµãŒãã¹ã¯ãããŒã®ç®¡çã Lightning Web ã³ã³ããŒãã³ããšã³ãžã³ã«å§ä»»ããŸãã管çã®å§ä»»ã¯èªã¿åãæäœã§ã¯æçã§ãããäœæãæŽæ°ãå逿äœã§ã¯ãã»ã©åœ¹ã«ç«ã¡ãŸãããéçºè ã§ããã°ãããŒã¿ã倿Žããæäœã¯ãã¹ãŠèªåã§ç®¡çããããšæãã§ããããäœæãæŽæ°ãå逿äœããã¯ã€ã€ãŒãµãŒãã¹ã§ã¯ãªããJavaScript API ã§è¡ãã®ã¯ãã®ããã§ãã
以äžã¯ãcreateRecord ã䜿çšããŠååŒå ãäœæãã ldsCreateRecord Lightning Web ã³ã³ããŒãã³ãã§ãã
import { LightningElement } from 'lwc';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { createRecord } from 'lightning/uiRecordApi';
import ACCOUNT_OBJECT from '@salesforce/schema/Account';
import NAME_FIELD from '@salesforce/schema/Account.Name';
export default class LdsCreateRecord extends LightningElement {
accountId;
name;
onNameChange(event) {
this.name = event.target.value;
}
createAccount() {
const recordInput = {
apiName: ACCOUNT_OBJECT.objectApiName,
fields: {
[NAME_FIELD.fieldApiName]: this.name,
}
};
createRecord(recordInput)
.then(account => {
this.accountId = account.id;
this.dispatchEvent(
new ShowToastEvent({
title: 'Success',
message: 'Account created',
variant: 'success',
}),
);
})
.catch(error => {
// Handle error. Details in error.message.
});
}
}createRecord ããã¬ã³ãŒããæ£åžžã«äœæããããšè§£æ±ºãã Promise ãªããžã§ã¯ããè¿ããŸããJavaScript API ã«ã€ããŠã®è©³çްã¯ããã®åå ã®æ«å°Ÿã®ããªãœãŒã¹ããåç §ããŠãã ããã
ldsCreateRecord ã® HTML ãã¡ã€ã«ã«ãJavaScript ãã¡ã€ã«ã® createAccount() ãåŒã³åºããã¿ã³ãå«ãŸããŸããååŒå åã lightning-input ã³ã³ããŒãã³ãã«èšå®ãããŸãã
<template>
<lightning-card title="LdsCreateRecord" icon-name="standard:record">
<div class="slds-m-around_medium">
<lightning-input label="Id" disabled value={accountId}></lightning-input>
<lightning-input label="Name" onchange={onNameChange} class="slds-m-bottom_x-small"></lightning-input>
<lightning-button label="Create Account" variant="brand" onclick={createAccount}></lightning-button>
</div>
</lightning-card>
</template>
ã«ã¹ã¿ã ããŒã¿ãžã®ã¢ã¯ã»ã¹ã§ã® Apex ã®äœ¿çš
Lightning ããŒã¿ãµãŒãã¹ã䜿çšããŠããŒã¿ãåŠçããææ³ãããã€ãèŠãŠããŸããããããã®ææ³ã¯ Apex ãå¿ èŠãšããªããããéåžžã¯ã³ãŒããå°ãªããŠãã¿ãŸããããã©ãããã§ã« Aura ã³ã³ããŒãã³ãçšã«éçºãã Apex ã³ãŒããããå Žåã¯ããã®ã³ãŒãã Lightning Web ã³ã³ããŒãã³ãã§ãåå©çšã§ããŸãããŸããã«ã¹ã¿ã ããŒã¿ã«ã¢ã¯ã»ã¹ããããã« SOQL ã¯ãšãªãå¿ èŠãªå Žåã¯ãApex ã¡ãœããã䜿çšããå¿ èŠããããŸãã
Aura ã³ã³ããŒãã³ããã Apex ã³ã³ãããŒã©ãŒã«ã¢ã¯ã»ã¹ããã«ã¯ãJavaScript ã³ã³ãããŒã©ãŒãŸãã¯ãã«ããŒããã³ãŒã«ãå®è¡ããŸãã以äžã¯ãgetPictures() Apex ã¡ãœãããã³ãŒã«ãã PropertyCarousel Aura ã³ã³ããŒãã³ãã®ãã«ããŒã§ãã
({
loadPictures : function(component) {
var propertyId = component.get("v.recordId");
component.set("v.files", []);
if (!propertyId) {
return;
}
var action = component.get("c.getPictures");
action.setParams({
"propertyId": propertyId,
});
action.setCallback(this, function (response) {
var state = response.getState();
if (state === "SUCCESS") {
var files = response.getReturnValue();
component.set("v.files", files);
}
else if (state === "INCOMPLETE") {
// handle incomplete state
}
else if (state === "ERROR") {
// handle error state
}
});
$A.enqueueAction(action);
}
})Salesforce ããŒã¿ã«ã¢ã¯ã»ã¹ããã©ã® Aura ã³ã³ããŒãã³ãã«ãåæ§ã®å®åã³ãŒãããããŸããApex ã¡ãœããã«ã¢ã¯ã»ã¹ããæ§æã¯ãLightning Web ã³ã³ããŒãã³ãã®å Žåãšã¯ç°ãªããŸãã
Lightning Web ã³ã³ããŒãã³ã㯠Apex ã¯ã©ã¹ããã¡ãœãããã€ã³ããŒãã§ããŸããã€ã³ããŒããããã¡ãœããã¯ãã³ã³ããŒãã³ãã @wire ã䜿çšããŠå®£èšçã«ããããã¯ã³ãŒãã§çŽæ¥ã³ãŒã«ã§ãã颿°ã§ãã
Apex ã¡ãœããã® Lightning Web ã³ã³ããŒãã³ããžã®å ¬é
Apex ã¡ãœããã Lightning Web ã³ã³ããŒãã³ãã«å ¬éããã«ã¯ãã¡ãœããã static ã§ãã〠global ãŸã㯠public ã®ããããã§ããå¿ èŠããããŸããã¡ãœããã« @AuraEnabled ã¢ãããŒã·ã§ã³ãä»å ããŸããããããèŠä»¶ã¯ãAura ã³ã³ããŒãã³ãã§ Apex ã¡ãœããã䜿çšããå Žåãšåãã§ãã@AuraEnabled ã¢ãããŒã·ã§ã³ã¯ãAura ã³ã³ããŒãã³ããŸã㯠Lightning Web ã³ã³ããŒãã³ãããã¡ãœãããã³ãŒã«ã§ããããšãæå³ããŸããLightning Web ã³ã³ããŒãã³ãã§ã® @AuraEnabled ã®äœ¿çšã¯æå€ãªããã«æãããããããŸãããããã®ã¢ãããŒã·ã§ã³ã䜿çšããããšã§ãåã Apex ã³ãŒããäž¡æ¹ã®ããã°ã©ãã³ã°ã¢ãã«ã§äœ¿çšã§ããããã«ãªããŸãã
ã¯ã€ã€ãŒãµãŒãã¹ã䜿çšãã Apex ã¡ãœããã®ã³ãŒã«
Apex ã¡ãœããããã£ãã·ã¥å¯èœã§ (ããŒã¿ã倿Žããªã) å Žåã¯ãã¯ã€ã€ãŒãµãŒãã¹ã䜿çšããŠã³ã³ããŒãã³ãããåŒã³åºãããšãã§ããŸãããã®ã¡ãœããã«ã¯ @AuraEnabled(cacheable=true) ã¢ãããŒã·ã§ã³ãä»å ããå¿ èŠããããŸãã
getAccounts() ã¡ãœãããæå®ãã MyAccountController Apex ã³ã³ãããŒã©ãŒãèŠãŠã¿ãŸãããã
// MyAccountController.cls
public with sharing class MyAccountController {
@AuraEnabled(cacheable=true)
public static List<Account> getAccounts() {
return [SELECT Id, Name FROM Account
WHERE AnnualRevenue > 1000000];
}
}ãã® JavaScript ã³ãŒãã¯ãã¯ã€ã€ãŒãµãŒãã¹ã䜿çšã㊠Apex getAccounts() ã¡ãœãããã³ãŒã«ããŸãã
import { LightningElement, wire } from 'lwc';
import getAccounts from '@salesforce/apex/MyAccountController.getAccounts';
export default class HelloApexAccounts extends LightningElement {
accounts=[];
@wire(getAccounts, {})
wiredAccounts({ error, data }) {
if (error) {
this.error = error;
} else if (data) {
this.accounts = data;
}
}
}getAccounts ãã€ã³ããŒãããã¹ããŒãã¡ã³ãã®æ§æã«æ³šæããŸãã
import getAccounts from '@salesforce/apex/MyAccountController.getAccounts';
- MyAccountController 㯠Apex ã¯ã©ã¹ã®ååã§ãã
- getAccounts ã¯ã€ã³ããŒããã @AuraEnabled ã¡ãœããã§ãã
Apex ã¡ãœããã®çŽæ¥çãªã³ãŒã«
Apex ã¡ãœãããããŒã¿ãå€æŽ (äœæãæŽæ°ãåé€) ããããããã£ãã·ã¥å¯èœã§ãªãå Žåã¯ãã¡ãœãããçŽæ¥ã³ãŒãã§ã³ãŒã«ããå¿ èŠããããŸãã
以äžã¯ãApex getContactList() ã¡ãœãããã³ãŒã«ãã Lightning Web ã³ã³ããŒãã³ãã§ãã
import { LightningElement } from 'lwc';
import getContactList from '@salesforce/apex/ContactController.getContactList';
export default class ApexContactList extends LightningElement {
contacts;
getContacts() {
getContactList()
.then(result => {
this.contacts = result;
})
.catch(error => {
// Handle error. Details in error.message.
});
}
}import ã¹ããŒãã¡ã³ãã¯ãã¯ã€ã€ãŒãµãŒãã¹ã®äŸãšåãããã«èŠããŸããããã©ããã¡ãœãããã³ãŒã«ããæ§æã« @wire ã¢ãããŒã·ã§ã³ããããŸããã代ããã« getContactList() ããååŒå 責任è ã®ãªã¹ããæ£åžžã«äœæããããšè§£æ±ºãã Promise ãªããžã§ã¯ããè¿ããŸãã
å€éš API ã®äœ¿çš
Lightning Web ã³ã³ããŒãã³ãã§ã®å€éš API ã®äœ¿çšã¯ãAura ã³ã³ããŒãã³ããšåæ§ã§ããããã©ã«ãã§ã¯ãLightning Web ã³ã³ããŒãã³ãã® JavaScript ã³ãŒããããµãŒãããŒãã£ã® API ã«ã³ãŒã«ãå®è¡ããããšã¯ã§ããŸããããªã¢ãŒããµã€ãã CSP ä¿¡é Œæžã¿ãµã€ããšããŠè¿œå ããJavaScript ã³ã³ããŒãã³ãã®ã³ãŒããã¢ã»ãããèªã¿èŸŒã¿ããã®ãµã€ãã®ãã¡ã€ã³ã« API èŠæ±ãå®è¡ã§ããããã«ããŸãã
ãµãŒãããŒãã£ã®ãµã€ãããã® JavaScript ã³ãŒãã®å®è¡ã«ã€ããŠã¯ãAura ã³ã³ããŒãã³ãã Lightning Web ã³ã³ããŒãã³ããå¶éã¯åãã§ãããµãŒãããŒãã£ã®ã©ã€ãã©ãªã䜿çšããã«ã¯ããã®ã©ã€ãã©ãªãéçãªãœãŒã¹ãšããŠã¢ããããŒãããå¿ èŠããããŸãã
ãªãœãŒã¹
- Lightning Aura Components Developer Guide (Lightning Aura ã³ã³ããŒãã³ãéçºè ã¬ã€ã): Calling a Server-Side Action (ãµãŒããŒåŽã®ã¢ã¯ã·ã§ã³ã®ã³ãŒã«)
- Lightning Aura Components Developer Guide (Lightning Aura ã³ã³ããŒãã³ãéçºè ã¬ã€ã): Manage Trusted URLs (ä¿¡é Œæžã¿ URL ã®ç®¡ç)
- Lightning Aura ã³ã³ããŒãã³ãéçºè ã¬ã€ã: å€éš JavaScript ã©ã€ãã©ãªã®äœ¿çš
- Lightning Web ã³ã³ããŒãã³ãéçºè ã¬ã€ã: Salesforce ããŒã¿ã®æäœ
- Lightning Web ã³ã³ããŒãã³ãéçºè ã¬ã€ã: Create a Form To Work with Records (ã¬ã³ãŒããåŠçãããã©ãŒã ã®äœæ)
- Lightning Web ã³ã³ããŒãã³ãéçºè ã¬ã€ã: lightning/ui*Api ã¯ã€ã€ãŒã¢ããã¿ãŒãšé¢æ°
- Lightning Web ã³ã³ããŒãã³ãéçºè ã¬ã€ã: createRecord(recordInput)
