Friday, June 7, 2019

lightning/uiObjectInfoApi Example (getPicklistValuesByRecordType)

getPicklistValuesByRecordType will fetch all picklist for a specific object.

getPicklistValuesByRecordType.js-meta.xml
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="getPicklistValues">
    <apiVersion>45.0</apiVersion>
    <isExposed>true</isExposed>
    
    <targets>
        <target>lightning__AppPage</target>
        <target>lightning__RecordPage</target>
        <target>lightning__HomePage</target>   
    </targets>
</LightningComponentBundle>


getPicklistValuesByRecordType.html
<template>
    <lightning-card title="Get All Picklist Values.">
        <lightning-combobox name="accountSource"
                            label="Account Source"
                            value={selectedValue}
                            placeholder="Select"
                            options={accountSourceLOV}
                            onchange={performBusinessLogic} >
        </lightning-combobox>
        
        <lightning-combobox name="active"
                            label="Active"
                            value={selectedValue}
                            placeholder="Select"
                            options={activeLOV}
                            onchange={performBusinessLogic} >
        </lightning-combobox>
    </lightning-card>
</template>


getPicklistValuesByRecordType.js
import { LightningElement, track, wire} from 'lwc';
import { getPicklistValuesByRecordType } from 'lightning/uiObjectInfoApi';
import { getObjectInfo } from 'lightning/uiObjectInfoApi';
import ACCOUNT_OBJECT from '@salesforce/schema/Account';

export default class PicklistValuesDemo extends LightningElement {
    @track selectedValue;
    @track accountSourceLOV;
    @track activeLOV;

    @wire(getObjectInfo, { objectApiName: ACCOUNT_OBJECT })
    objectInfo;

    @wire(getPicklistValuesByRecordType, { recordTypeId: '$objectInfo.data.defaultRecordTypeId', objectApiName: ACCOUNT_OBJECT})
    allPicklistValues({data, error}){
        if(data){
            //Standard picklist field.
            this.accountSourceLOV = data.picklistFieldValues.AccountSource.values;
            //Custom picklist field.
            this.activeLOV = data.picklistFieldValues.Active__c.values;
        } else if(error){
            console.log("error === "+error);
        }
    }

    
    performBusinessLogic(event){
        this.selectedValue = event.detail.value;
        console.log("selectedValue === "+this.selectedValue);
    }
}


Output ==>


Data Cloud Part 6: Practical (Ingest Physical Store's Customer details and Sales details)

Hope you have already created your Data Cloud Org and also downloaded the Customer's details and Sales details from previous posts.  Now...