ã±ãŒã¹çšã® ã«ã¹ã¿ã Lightning Web ã³ã³ããŒãã³ããäœæãã
åŠç¿ã®ç®ç
ãã®åå ãå®äºãããšã次ã®ããšãã§ããããã«ãªããŸãã
- äºåå
¥åã䜿çšããŠã芪 Omniscript ããå Omniscript ã«æ
å ±ãæž¡ãã
- HTML ã®ã¹ãããã䜿çšããŠãæšæºã³ã³ããŒãã³ãã®æ©èœãæ¡åŒµããæ¹æ³ã説æããã
- Flexcard ãš Omniscript ãã«ã¹ã¿ã Lightning Web ã³ã³ããŒãã³ãã«çµã¿èŸŒãã
- å
±éã¢ã¯ã·ã§ã³ãŠãŒãã£ãªãã£ãšã³ãŒã«ããã¯é¢æ°ã®ç®çã説æããã
- pubsub ã«ç»é²/ç»é²è§£é€ããæ¹æ³ã説æããã
ã±ãŒã¹ã®äœæãšè¡šç€º
Vijay ã¯ç¶ããŠãæ°ããã«ã¹ã¿ã Lightning Web ã³ã³ããŒãã³ããäœæããCreate Case (ã±ãŒã¹äœæ) Omniscript ãš Selectable Item (éžæå¯èœã¢ã€ãã ) Flexcard ããã®ã³ã³ããŒãã³ãã«çµã¿èŸŒã¿ãŸãããŸããHTML ãã¡ã€ã«ã§äœæ¥ããŸãããã®æé ãèŠãŠãããŸãããã
Selectable Item (éžæå¯èœã¢ã€ãã ) HTML
Selectable Item (éžæå¯èœã¢ã€ãã ) ã«ã¹ã¿ã Lightning Web ã³ã³ããŒãã³ãã® HTML ã«ã¯ã次ã®ãã®ãèšå®ãããŠããŸãã
- Selectable Item (éžæå¯èœã¢ã€ãã ) Flexcard
- ååŒå
ãéžæãããŠãŒã¶ãŒãæ°èŠã±ãŒã¹ãäœæããããã®ãã¿ã³
- æ°èŠã±ãŒã¹ãäœæããããã®ã¢ãŒãã«
- Create Case (ã±ãŒã¹äœæ) Omniscript ãå«ãã¹ããã
ãã¬ãã£ã«
ãã¬ãã£ã«ã¯ã芪ããå Omniscript ã«æž¡ãæ å ±ãæå®ããããã«äœ¿çšããã³ã³ããŒãã³ãã®å±æ§ã§ãã
ã³ã³ããŒãã³ãã¿ã°ã䜿çšããŠãå Lightning Web ã³ã³ããŒãã³ããä»»æã®èŠª Lightning Web ã³ã³ããŒãã³ãã«çµã¿èŸŒã¿ãŸããOmniscript ãš Flexcard ãæå¹ã«ããçµã¿èŸŒã Lightning Web ã³ã³ããŒãã³ãã®ã³ã³ããŒãã³ãã¿ã°ãåéãããããã¬ãã£ã«ã䜿çšã§ããããã«ãªããŸããÂ
以äžã¯ãSelectable Item (éžæå¯èœã¢ã€ãã ) HTML ãã¡ã€ã«ã§ããäžè¡šã«ã³ãŒãã®äž»èŠãªéšåã«é¢ããç°¡åãªèª¬æã瀺ãããŠããŸããÂ
<template>
<!-- Button to create new case once account Id is selected -->
<div class="slds-m-top_large">
<Omnistudio-button
lwc:if={accountId}
variant="brand"
label="Create New Case"
onclick={openNewCaseModal}>
</Omnistudio-button>
</div>
<c-cf-sample-selectable-item lwc:if={accountId} record-id={accountId}></c-cf-sample-selectable-item>
<!-- Modal to create new case -->
<Omnistudio-modal lwc:if={prefill} title="Create New Case" size="large">
<div slot="content">
<c-sample-create-case-english lwc:if={showOS} layout="lightning" prefill={prefill}></c-sample-create-case-english>
</div>
</Omnistudio-modal>
</template>ãã®è¡šã«ãã³ãŒãã®äž»èŠãªéšåã®èª¬æã瀺ãããŠããŸãã
è¡ |
説æ |
|---|---|
3 ïœ 10 |
|
11 |
[Create New Case (ã±ãŒã¹ãæ°èŠäœæ)] ã¢ãŒãã«ãéã [Create New Case (ã±ãŒã¹ãæ°èŠäœæ)] ãã¿ã³ã®äžã« Selectable Item (éžæå¯èœã¢ã€ãã ) Flexcard ãçµã¿èŸŒã |
13 ïœ 17 |
ã¢ãŒãã«ã³ã³ããŒãã³ãã§ã±ãŒã¹ãæ°èŠäœæãã |
14 |
屿§ãæã€ div ã¹ãããã䜿çšããŠãCreate Case (ã±ãŒã¹äœæ) Omniscript ãçµã¿èŸŒã |
15 |
ãã¬ãã£ã«ã䜿çšããŠãæ å ±ã Case Management (ã±ãŒã¹ç®¡ç) Omniscript (芪) ãã Create Case (ã±ãŒã¹äœæ) Omniscript (å) ã«æž¡ã |
ã¹ãããÂ
ã¹ããããšã¯ãæšæº Lightning Web ã³ã³ããŒãã³ãã®ããŒã¯ã¢ãããçµã¿èŸŒãã ããæ¡åŒµãããããç®çã§ãç¬èªã®ããŒã¯ã¢ãããå ¥åãããã¬ãŒã¹ãã«ããŒã§ããã¹ãããã䜿çšããã°ãã³ã³ããŒãã³ããäžæžãããªããŠããã®ã«ãã¯ã¢ã³ããã£ãŒã«ã匷åããããšãã§ããŸããÂ
ã¹ãããã®åŒã³åºãã«ã¯ 2 çš®é¡ããããã®ãããããéžæããŸãã
- ååãªãã¹ãããã¯ã芪ã³ã³ããŒãã³ãã®æ¡åŒµããŒã¯ã¢ãããä¿æããŸããããšãã°ãOmniscriptStep ãæ¡åŒµããŠã¹ãããããªãŒããŒã©ã€ãããŠã
<slot></slot>ãã¬ãŒã¹ãã«ããŒã䜿çšããŠåã³ã³ããŒãã³ãã®èŠçŽ ãçµã¿èŸŒã¿ãŸãã
- ååä»ãã¹ãããã¯ã芪ã³ã³ããŒãã³ãã®ç¹å®ã®ã»ã¯ã·ã§ã³å
ã«ããŒã¯ã¢ããã远å ããŸã (äŸ:
<div slot=âheaderâ>My Custom Header</div>)ã
äºçްãªå€æŽã§ãã£ãŠãå¯èœãªéãã¹ãããã䜿çšããŠãã ãããã¹ãããã«ãã£ãŠãã³ã³ããŒãã³ãã®æ§é ãæ©èœããã«ã¹ã¿ã ã³ã³ãã³ããéé¢ãããŸãããã®ãããä»åŸã³ã³ããŒãã³ãã倿Žããããšãã«ã³ã³ãã³ããä¿è·ãããã¡ã³ããã³ã¹ã容æã«ãªããŸããããã«ãHTML ãã¡ã€ã«ã«ã¹ãããã远å ãããšãã¯ãJS ãã¡ã€ã«ã® render 颿°ããªãŒããŒã©ã€ãããŠãHTML ãã¡ã€ã«ãåç §ããŸããåç §ãèšå®ãããŠããªãå Žåã¯ã¹ããããæ©èœããŸãããÂ
å ±éã¢ã¯ã·ã§ã³ãŠãŒãã£ãªãã£
Omniscript ã¯ãJavaScript ã¯ã©ã¹ã䜿çšããŠæ§ç¯ããã Omniscript ã¢ã¯ã·ã§ã³ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠãªã¢ãŒãã³ãŒã«ãå®è¡ããŸãããã®æ©èœãæå¹ã«ããããã«ãå ±éã¢ã¯ã·ã§ã³ãŠãŒãã£ãªãã£ã¯ã©ã¹ã Lightning Web ã³ã³ããŒãã³ãã«ã€ã³ããŒãããŸããOmniscriptActionCommonUtil ã¡ãœããã䜿çšããŠããµãŒããŒãžã®ãªã¢ãŒãã³ãŒã«ãå®è¡ããŸããÂ
æãäžè¬çãªã¢ãããŒãã¯ããªã¢ãŒãã³ãŒã«ãããŒãéå§ãã executeAction ã¡ãœããã䜿çšããããšã§ãããã®ã¡ãœããã䜿çšããŠããŠãŒã¶ãŒãååŒå
ãéžæãããšãã«é¢é£ããã±ãŒã¹ãååŸããŸããOmniScriptActionCommonUtil JavaScript ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããã«ã¯ãthis._actionUtilClass = new OmniscriptActionCommonUtil(); ã䜿çšããŸããJS ã³ãŒãããŒã¹ã§ãã®åäœã確èªã§ããŸãã
Selectable Item (éžæå¯èœã¢ã€ãã ) JavaScript
Selectable Item (éžæå¯èœã¢ã€ãã ) ã«ã¹ã¿ã Lightning Web ã³ã³ããŒãã³ãã® JavaScript ã®åäœãçè§£ããããã«ãcaseSelectableItemLWC ã³ã³ããŒãã³ãã®ã³ãŒãã 3 ã€ã«åå²ããŠã¿ãŸãããã
æåã®éšå:
- OmniscriptBaseMixin ãã€ã³ããŒãããŠæ¡åŒµãã
- å
±éã¢ã¯ã·ã§ã³ãŠãŒãã£ãªãã£ã¯ã©ã¹ãã€ã³ããŒãããŠãã«ã¹ã¿ã Lightning Web ã³ã³ããŒãã³ããããªã¢ãŒãã³ãŒã«ãå®è¡ãã
2 çªç®ã®éšå:
- Lookup ã³ã³ããŒãã³ãããã®ã€ãã³ãããªã¹ã³ããŠããŠãŒã¶ãŒãæ°ããååŒå
ãéžæãããšãã«ã±ãŒã¹ãååŸãã pubsub ãç»é²ãã
- Flex Card ã³ã³ããŒãã³ãããã®ã€ãã³ãããªã¹ã³ããŠãã±ãŒã¹ãéžæãããŠãŒã¶ãŒãæ°èŠã±ãŒã¹ãéžæãããšãã«æ¬¡ã®ã¹ãããã«ããã²ãŒããã pubsub ãç»é²ãã
- Create Case (ã±ãŒã¹äœæ) Omniscript ããã®ã€ãã³ãããªã¹ã³ããŠãã¢ãŒãã«ãéããã±ãŒã¹ãªã¹ããæŽæ°ãã pubsub ãç»é²ãã
3 çªç®ã®éšå:
- Case Management (ã±ãŒã¹ç®¡ç) Omniscript ã®ããŒã¿ JSON ã§ AccountId ãããã©ã«ãå€ãšããŠäœ¿çšãã
- æ°èŠã±ãŒã¹ã¬ã³ãŒããæã€ååŒå
ããã±ãŒã¹ãååŸãã
- åææã« pubsub ã€ãã³ããžã®ç»é²ãè§£é€ãã
ã³ãŒãã®æåã®éšåã§ã¯ãpubsub ã OmniscriptBaseMixin ãªã©ãã³ã³ããŒãã³ãã Omnistudio ãšé£åããããã«å¿ èŠãªã€ã³ããŒããå®è¡ããŸããããã«ãå ±éã¢ã¯ã·ã§ã³ãŠãŒãã£ãªãã£ãå®è£ ããŸãã
import { LightningElement, track } from 'lwc';
import pubsub from 'Omnistudio/pubsub';
import { OmniscriptBaseMixin } from 'Omnistudio/omniscriptBaseMixin';
import { OmniscriptActionCommonUtil } from 'Omnistudio/omniscriptActionUtils';
export default class CaseSelectableItemLWC extends OmniscriptBaseMixin(LightningElement) {
accountId;
caseList;
model;
omniJsonData;
showOS;
connectedCallback() {
// Create instance of OmniscriptActionCommonUtil utility class for use in this class
this._actionUtilClass = new OmniscriptActionCommonUtil();
}ãã®è¡šã«ãã³ãŒãã®äž»èŠãªéšåã®èª¬æã瀺ãããŠããŸãã
è¡ |
説æ |
|---|---|
1 |
ãã¹ãŠã®ã³ã³ããŒãã³ããèªã¿åãæšæºã® Salesforce Lightning èŠçŽ ã§ãã Omniscript ã§äœ¿çšããæ°ããã³ã³ããŒãã³ããäœæãããã³ã«ããã®ã€ã³ããŒãã远å ããŠãã ããã |
2 |
|
3 |
|
4 |
ãã®ã¯ã©ã¹ã§äœ¿çšãã 管çããã±ãŒãžå
ã® Apex ã¯ã©ã¹ã«ãªã¢ãŒãã³ãŒã«ãå®è¡ããå ŽåãsClassName ãã©ã¡ãŒã¿ãŒã«åå空é (ãã®å Žå㯠|
5 |
ãã®åŠçã«ãã£ãŠ |
11 |
Lightning Web ã³ã³ããŒãã³ãã DOM ã«æ¥ç¶ãããšãã«ã |
ã³ãŒãã® 2 çªç®ã®éšåã«ã¯ãç¹å®ã®ã€ãã³ãããªã¹ã³ãã pubsub register ã¹ããŒãã¡ã³ããå«ãŸããŸããããã«ããã¬ãã£ã«ã䜿çšã㊠AccountId ã Create Case (ã±ãŒã¹äœæ) Omniscript ã«æž¡ããŸããÂ
connectedCallback() {
// Register pubsub to listen to event from lookup component to fetch cases when a new account is selected
this._fetchCasesFromAccount = {
data: this.fetchCasesFromAccount.bind(this)
};
pubsub.register("newAccountSelected", this._fetchCasesFromAccount);
// Register pubsub to listen to event from the Flexcard component to select a case and navigate to the next step when a new case is selected
this._selectCase = {
data: this.selectCase.bind(this)
};
pubsub.register("newCaseSelected", this._selectCase);
// Register pubsub to listen to event from create case child OS to close the modal and refresh case list
this._createCaseCallback = {
data: this.createCaseCallback.bind(this)
};
pubsub.register("omniscript_action", this._createCaseCallback);
}ãã®è¡šã«ãã³ãŒãã®äž»èŠãªéšåã®èª¬æã瀺ãããŠããŸãã
è¡ |
説æ |
|---|---|
3 ïœ 4 |
ã€ãã³ããããªã¬ãŒããããšãã«ãååŒå ãããã¹ãŠã®ã±ãŒã¹ãååŸãã |
6 |
pubsub register ã¹ããŒãã¡ã³ãã |
7 ïœ 9 |
Flexcard ã³ã³ããŒãã³ãããã®ã€ãã³ãããªã¹ã³ããŠãã±ãŒã¹ãéžæãããŠãŒã¶ãŒãæ°èŠã±ãŒã¹ãéžæãããšãã«æ¬¡ã®ã¹ãããã«ããã²ãŒããã pubsub ãç»é²ãã |
12 ïœ 16 |
Create Case (ã±ãŒã¹äœæ) å Omniscript ããã®ã€ãã³ãããªã¹ã³ããŠãã¢ãŒãã«ãéããã±ãŒã¹ãªã¹ããæŽæ°ãã pubsub ã«ç»é²ãã |
pubsub ãèšå®ããéã®ãã¹ããã©ã¯ãã£ã¹ã¯ãããŒã«ã«å€æ°ã€ã³ã¹ã¿ã³ã¹ã確ç«ããŠé¢æ°ã«èšå®ãããªã¹ã³ãã pubsub ã€ãã³ãã«ãã€ã³ãããããšã§ãã
ã³ãŒãã® 3 çªç®ã®éšåã¯ãã«ã¹ã¿ã Lightning Web ã³ã³ããŒãã³ãã«æ¬¡ã®ãšããæç€ºããŸãã
- Case Management (ã±ãŒã¹ç®¡ç) Omniscript ã®ããŒã¿ JSON ã§ãAccountId ã pubsub result ã®ããã©ã«ãå€ãšããŠäœ¿çšããŸãã
- 次ã®ã¹ãããã«èªåçã«é²ã¿ãŸãã
- ãŠã£ã³ããŠãéããŸã/éããŸãã
- åææã« pubsub ã€ãã³ããžã®ç»é²ãè§£é€ããŸãã
ãµã³ãã«ã³ãŒããæ¬¡ã«ç€ºããŸãã
fetchCasesFromAccount(pubsubResult) {
// If pubsub result is not defined, default to the accountId in the data JSON
this.accountId = pubsubResult? pubsubResult.AccountId : this.omniJsonData["SelectAccountAndCase"]["SelectAccount"];
this.prefill = { "AccountId": this.accountId };
}
selectCase(evt) {
if (evt && evt.CaseId) {
this.omniApplyCallResp({"SelectedCaseId": evt.CaseId});
this.omniNextStep();
}
}
// Open Create Case Modal
openNewCaseModal() {
// this.prefill = { "AccountId": this.accountId };
this.showOS = true;
let modal = this.template.querySelector("Omnistudio-modal");
modal.openModal();
}
// Close Create Case Modal
closeNewCaseModal() {
let modal = this.template.querySelector("Omnistudio-modal");
modal.closeModal();
this.showOS = false;
}
createCaseCallback() {
// Fetch cases from account with the newly created case record
// Close Modal
this.closeNewCaseModal();
}
disconnectedCallback() {
// Unregister pubsub event on disconnect
pubsub.unregister("newAccountSelected", this._fetchCasesFromAccount);
pubsub.unregister("omniscript_action", this._createCaseCallback);
pubsub.unregister("newCaseSelected", this._createCaseCallback);
}
}ãã®è¡šã«ãã³ãŒãã®äž»èŠãªéšåã®èª¬æã瀺ãããŠããŸãã
è¡ |
説æ |
|---|---|
1 ïœ 3 |
Case Management (ã±ãŒã¹ç®¡ç) Omniscript ã®ããŒã¿ JSON ã§ãAccountId ãããã©ã«ãå€ãšããŠäœ¿çšãã |
5 ïœ 8 |
ã«ã¹ã¿ã ã³ã³ããŒãã³ãã該åœããã±ãŒã¹ã«ããã¯ãããŠãŒã¶ãŒãã±ãŒã¹ãéžæããããOmniscript ã®æ¬¡ã®ã¹ãããã«èªåçã«ããã²ãŒããã |
12 ïœ 17 |
[Create New Case (ã±ãŒã¹ãæ°èŠäœæ)] ãŠã£ã³ããŠãéã |
19 ïœ 23 |
[Create New Case (ã±ãŒã¹ãæ°èŠäœæ)] ãŠã£ã³ããŠãéãã |
25 ïœ 26 |
ååŒå ããæ°èŠã±ãŒã¹ã¬ã³ãŒããå«ãã±ãŒã¹ãååŸãã |
31 ïœ 35 |
åææã« pubsub ã€ãã³ããžã®ç»é²ããã¹ãŠè§£é€ãã disconnectedCallback ã远å ããŠãpubsub ã€ãã³ããžã®ç»é²ãè§£é€ããŸãã |
ã«ã¹ã¿ã Lightning Web ã³ã³ããŒãã³ãã®ããããã£
Omniscript ãã¶ã€ããŒã§ãç¬èªã®ã«ã¹ã¿ã Lightning Web ã³ã³ããŒãã³ããèšè¿°ã㊠Omniscript ã«çµã¿èŸŒããšãã¯ãCustom Lightning Web Component èŠçŽ ã䜿çšããŸãããã®å ¥åèŠçŽ ãèšèšãŠã£ã³ããŠã«ãã©ãã°ãããšãããããã£ãæ§æã§ããŸãã

- [Name (åå)] (1) ãš [Field Label (é
ç®è¡šç€ºã©ãã«)] (2) ã«ãCustom Lightning Web Component èŠçŽ ã®ååãšè¡šç€ºåãå
¥åããŸãã
- [Lightning Web Component Name (Lightning Web ã³ã³ããŒãã³ãå)] (3) é
ç®ã«ãã«ã¹ã¿ã Lightning Web ã³ã³ããŒãã³ãã®ååãå
¥åããŸãããã®äŸã§ã¯ãåå㯠caseSelectableItemLWC ã§ãã
- ã«ã¹ã¿ã ã³ã³ããŒãã³ãã§ OmniscriptBaseMixin ãæ¡åŒµããªãå Žåã®ã¿ã[Standalone LWC (ã¹ã¿ã³ãã¢ãã³ LWC)] ãã§ãã¯ããã¯ã¹ (4) ããªã³ã«ããŸããã¹ã¿ã³ãã¢ãã³ã® Lightning Web ã³ã³ããŒãã³ã㯠Omniscript ãšã¯ç¬ç«ããŠåäœããŸãããã®ã¢ãžã¥ãŒã«ã®äŸã¯è©²åœããªãããããã§ãã¯ããã¯ã¹ããªãã®ãŸãŸã«ããŸãã
Vijay 㯠Case Management (ã±ãŒã¹ç®¡ç) Omniscript ã®ã¹ããã 1 ã®æ§æã宿ãããŸãããæ¬¡ã¯ãã¹ããã 2 Manage Case Comments (ã±ãŒã¹ã³ã¡ã³ãã管ç) ã«åãçµã¿ãŸãã
ãªãœãŒã¹
- Salesforce ãã«ã: Common Action Utility for Remote Calls (ãªã¢ãŒãã³ãŒã«ã®å ±éã¢ã¯ã·ã§ã³ãŠãŒãã£ãªãã£) (管çããã±ãŒãžçš Omnistudio)
- Salesforce ãã«ã: Pubsub Component (Pubsub ã³ã³ããŒãã³ã) (管çããã±ãŒãžçš Omnistudio)
- Salesforce ãã«ã: Extend the OmniscriptBaseMixin Component (OmniscriptBaseMixin ã³ã³ããŒãã³ãã®æ¡åŒµ) (管çããã±ãŒãžçš Omnistudio)
- Salesforce ãã«ã: Custom Lightning Web Component Properties (ã«ã¹ã¿ã Lightning Web ã³ã³ããŒãã³ãã®ããããã£) (管çããã±ãŒãžçš Omnistudio)