Metodi dei componenti di servizio orderExtensionUtils
Per accedere ai dati degli ordini di vendita al dettaglio, sono disponibili alcune API pronte all'uso nel componente di servizio orderExtensionUtils. Esempio: Accede ai dati degli ordini quando l'API getorderdata viene invocata dal componente LWC personalizzato.
Versioni (Edition) richieste
Disponibile nelle versioni: Lightning Experience Disponibile in: Enterprise Edition e Unlimited Edition con Consumer Goods Cloud abilitato |
Di seguito sono riportati i metodi disponibili nel componente di servizio orderExtensionUtils:
Nota La versione API per tutti i metodi è 59.
| Metodo | Descrizione | Sintassi | Comando importazione | Codice di esempio |
|---|---|---|---|---|
| getOrderData | Restituisce dati dai campi dell'ordine. | getOrderData(recordId) | import { getOrderData } from 'cgcloud/orderExtensionUtils'; | { @api recordId; initialOrderData = {}; connectedCallback() { getOrderData(this.recordId).then((data) => { this.initialOrderData = data; }); }} |
| updateOrderData | Aggiorna i campi dell'ordine. | updateOrderData(recordId, srcThisRef, fieldApiName, value) | import { getOrderData, updateOrderData } from 'cgcloud/orderExtensionUtils'; | { @api recordId; initialOrderData = {}; connectedCallback() { getOrderData(this.recordId).then((data) => {this.initialOrderData = data;});} // È possibile invocare questo metodo con un clic di buttonupdateOrderFieldValue() { const fieldName = 'cgcloud__Delivery_Note__c'; const newValue = 'test-note'; updateOrderData(this.recordId, this, fieldName, newValue);}} |
| getOrderItemData | Restituisce i dati delle voci ordine. | getOrderItemData(recordId) | import { getOrderItemData } from 'cgcloud/orderExtensionUtils'; | { @api recordId; initialOrderItemsData = []; connectedCallback() { getOrderItemData(this.recordId).then((data) => {this.initialOrderItemsData = data;});}} |
| updateOrderItemData | Aggiorna i dati delle voci ordine. | updateOrderItemData(recordId, srcThisRef, itemId, fieldApiName, value) | import { getOrderItemData, updateOrderItemData } from 'cgcloud/orderExtensionUtils'; | { @api recordId; initialOrderItemsData = []; connectedCallback() { getOrderItemData(this.recordId).then(data) => {this.initialOrderItemsData = data;}); } updateOrderItemFieldData() { const orderItemId = this.initialOrderItemsData[0].Id; const fieldName = 'cgcloud__Discount__c'; const value = 9; updateOrderItemData(this.recordId, this, orderItemId, fieldName, value);}} |
| setCustomState | Imposta dati aggiuntivi da archiviare insieme ai dati dell'ordine. Ad esempio, creazione di un nuovo record in un oggetto personalizzato. L'impostazione aggiuntiva dei dati che utilizza il metodo setCustomState può essere inviata alla classe Apex personalizzata che gestisce le personalizzazioni di salvataggio. | setCustomState(recordId, customState) | import { setCustomState } from 'cgcloud/orderExtensionUtils'; | { @api recordId; connectedCallback() {} setOrderCustomState() { setCustomState(this.recordId, { customProp: 'Test' }); }} |
| getIsOrderInEditMode | Indica se l'ordine è in modalità di modifica durante il caricamento iniziale della pagina. È possibile utilizzare queste informazioni per visualizzare i componenti LWC personalizzati solo in modalità di sola lettura durante il caricamento iniziale della pagina. | getIsOrderInEditMode() | import { getIsOrderInEditMode } from 'cgcloud/orderExtensionUtils'; | { @api recordId; @track isOrderInEditMode = false; connectedCallback() { this.isOrderInEditMode = getIsOrderInEditMode();}} |
| registerListenerForOrderDataUpdates | Registra un metodo di richiamata invocato quando un qualsiasi campo ordine viene modificato. | registerListenerForOrderDataUpdates(recordId, thisRef, callback) | import { getOrderData, registerListenerForOrderDataUpdates} from 'cgcloud/orderExtensionUtils'; | { @api recordId;initialOrderData = {};orderDataUpdates = {};connectedCallback() {getOrderData(this.recordId).then(data) => {this.initialOrderData = data;});registerListenerForOrderDataUpdates(this.recordId,this,this.handleOrderDataUpdates);}handleOrderDataUpdates(fieldApiName, value) {this.orderDataUpdates[fieldApiName] = value;} |
| registerOrderDataInlineValidator | Registra un metodo di richiamata invocato quando un campo ordine cambia ed esegue una convalida sul campo ordine. | registerOrderDataInlineValidator(recordId, thisRef, callback) | import { getOrderData, registerOrderDataInlineValidator} from 'cgcloud/orderExtensionUtils'; | { @api recordId; initialOrderData = {}; connectedCallback() { getOrderData(this.recordId).then(data) => {this.initialOrderData = data;}); registerOrderDataInlineValidator( this.recordId, this.validateOrderDataChanges ); } validateOrderDataChanges(fieldName, value) { switch (fieldName) { case 'cgcloud__Invoice_Note__c': case 'cgcloud__Delivery__Note__c': return this.validateNoteFields(value); default: return ''; } } validateNoteFields(value) { if (value & value.length > 100) { return 'Questo testo deve avere meno di 100 caratteri'; } } |
| registerListenerForOrderItemDataUpdates | Registra un metodo di richiamata invocato quando viene modificato un campo voce ordine. | registerListenerForOrderItemDataUpdates(recordId, thisRef, callback) | import { getOrderItemData, registerListenerForOrderItemDataUpdates} from 'cgcloud/orderExtensionUtils'; | { @api recordId; initialOrderItemsData = []; connectedCallback() { getOrderItemData(this.recordId).then(data) => {this.initialOrderItemsData = data;}); registerListenerForOrderItemDataUpdates( this.recordId, this.handleOrderItemDataUpdates(itemId, fieldApiName, value) { const orderItem = this.initialOrderItemsData.find(_orderItem) => _orderItem.Id === itemId ); orderItem[fieldApiName] = value; }} |
| registerOrderItemDataInlineValidator | Registra un metodo di richiamata invocato quando un campo voce ordine cambia ed esegue una convalida sul campo voce ordine. | registerOrderItemDataInlineValidator(recordId, thisRef, callback) | import { getOrderItemData, registerOrderItemDataInlineValidator} from 'cgcloud/orderExtensionUtils'; | { @api recordId; initialOrderItemsData = []; connectedCallback() { getOrderItemData(this.recordId).then(data) => {this.initialOrderItemsData = data; }); registerOrderItemDataInlineValidator( this.recordId, this.validateOrderItemDataChanges ); } validateOrderItemDataChanges(itemId, fieldName, value) { switch (fieldName) { case 'Discount__c': return this.validateDiscount(value); default: return ''; } validateDiscount(value) { if (value > 10) { return 'Lo sconto articolo non deve essere maggiore del 10%'; } return ''; } |
| registerBeforeAddItemActionHandler | Registra un metodo di richiamata prima di aggiungere voci in un ordine. | registerBeforeAddItemActionHandler(recordId, thisRef, callback) | import { getOrderData, registerListenerForOrderDataUpdates, registerBeforeAddItemActionHandler} from 'cgcloud/orderExtensionUtils'; | { @api recordId; initialOrderData = {}; orderDataUpdates = {}; connectedCallback() { getOrderData(this.recordId).then(data) => { this.initialOrderData = data; }); registerListenerForOrderDataUpdates( this.recordId, this, this.handleOrderDataUpdates ); registerBeforeAddItemActionHandler( this.recordId, this, this.handleBeforeAddItemCB ); } handleOrderDataUpdates(fieldApiName, value) { this.orderDataUpdates[fieldApiName] = value; } handleBeforeAddItemCB(newOrderItems) { const orderData = { ...this.initialOrderData, ...this.orderDataUpdates }; newOrderItems = newOrderItems.map((orderItem) => { if ( orderData.cgcloud_Order_Account__r.Name === '*NTO Store #201' & orderItem['Product__r.Description_1__c'] == 'BBQ' ) { throw new Error("You can't add BBQ product"); } orderItem.Quantity_c = 2; orderItem.Number_c = 10; return orderItem; } |
| registerBeforeSaveActionHandler | Registra un metodo di richiamata prima di salvare un ordine. | registerBeforeSaveActionHandler(recordId, thisRef, callback) | import { getOrderData, registerBeforeSaveActionHandler} from 'cgcloud/orderExtensionUtils'; | { @api recordId; initialOrderData = {}; connectedCallback() { getOrderData(this.recordId).then(data) => { this.initialOrderData = data; }); registerBeforeSaveActionHandler( this.recordId, this, this.handleBeforeSaveCB ); } handleBeforeSaveCB(savePayload) { const { orderItemsToBeUpserted: orderItems, updatedOrder: orderData } = savePayload; for (let i = 0; i < orderItems.length; i++) { const orderItem = orderItems[i]; if (orderItem.cgcloud__Quantity__c > 90) { throw new Error("Order Item Quantity shouldn't be more than 90"); } } let headerDiscount = orderData.cgcloud__Discount_Percentage__c; headerDiscount = headerDiscount & Number(headerDiscount); if (headerDiscount & headerDiscount > 15) { throw new Error("Header discount can't be greater than 15"); } let deliveryDate = orderData.cgcloud__Delivery_Date_c; if (deliveryDate) { deliveryDate = new Date(deliveryDate.setDate() + 1); order.ccloud__Delivery_Date = deliveryDate; } } } |
| registerListenerForEnablingOrDisablingEditMode | Indica se l'ordine è in modalità di modifica durante il processo di acquisizione dell'ordine. È possibile utilizzare queste informazioni per visualizzare i componenti LWC personalizzati solo in modalità di sola lettura. | registerListenerForEnablingOrDisablingEditMode(recordId, thisRef, callback) | import { getOrderData, registerListenerForEnablingOrDisablingEditMode} from 'cgcloud/orderExtensionUtils'; | { @api recordId; initialOrderData = {}; connectedCallback() { getOrderData(this.recordId).then(data) => { this.initialOrderData = data; }); registerBeforeSaveActionHandler( this.recordId, this, this.handleBeforeSaveCB ); } handleBeforeSaveCB(savePayload) { const { orderItemsToBeUpserted: orderItems, updatedOrder: orderData } = savePayload; for (let i = 0; i < orderItems.length; i++) { const orderItem = orderItems[i]; if (orderItem.cgcloud__Quantity__c > 90) { throw new Error("Order Item Quantity shouldn't be more than 90"); } } let headerDiscount = orderData.cgcloud__Discount_Percentage__c; headerDiscount = headerDiscount & Number(headerDiscount); if (headerDiscount & headerDiscount > 15) { throw new Error("Header discount can't be greater than 15"); } let deliveryDate = orderData.cgcloud__Delivery_Date_c; if (deliveryDate) { deliveryDate = new Date(deliveryDate.setDate() + 1); order.ccloud__Delivery_Date = deliveryDate; } } } |
Questo articolo ha risolto il problema?
Facci sapere, così possiamo migliorare!

