Tambahkan tindakan cepat LWC ke aplikasi seluler Salesforce Field Service

 – Beragampengetahuan
2 mins read

Tambahkan tindakan cepat LWC ke aplikasi seluler Salesforce Field Service – Beragampengetahuan

Apakah Anda ingin menyempurnakan aplikasi seluler Salesforce Field Service dengan fungsi khusus?

Dalam panduan ini, kami akan memandu Anda dalam menambahkan Tindakan Cepat Komponen Web Lightning (LWC). ke aplikasi seluler layanan lapangan.

Dengan menggunakan Tindakan Cepat Komponen Web Lightning, Anda dapat memperkenalkan fungsionalitas khusus di luar kemampuan standar aplikasi seluler Field Service, sehingga menghasilkan pengalaman pengguna yang lebih disesuaikan.

Jelajahi lebih banyak solusi dari beragampengetahuan.

Contents

Prasyarat: Aktifkan Lightning SDK di aplikasi seluler Field Service

Sebelum melanjutkan, pastikan Anda telah menyelesaikan hal berikut:

  1. Navigasi ke Izin sistem Kumpulan izin yang ditetapkan ke sumber daya layanan Anda.
  2. Aktifkan kotak centang “Aktifkan Lightning SDK untuk penggunaan online dan offline di aplikasi seluler Field Service.”
    • CATATAN: Jika Pengaturan organisasi Lightning SDK untuk Field Service Mobile Jika diaktifkan, izin ini akan diabaikan.

Tanpa pengaturan kunci ini, Tindakan Cepat Komponen Web Lightning Tidak muncul di aplikasi seluler Field Service.

Mengapa menggunakan aplikasi seluler Salesforce Field Service?

Aplikasi seluler Field Service untuk Android dan iOS menyediakan alat komprehensif untuk tenaga kerja lapangan saat ini.

Itu dibangun dengan pendekatan offline-first sehingga Anda dapat bekerja dan menyimpan perubahan bahkan tanpa akses internet. Anda juga dapat menyesuaikan aplikasi untuk memenuhi kebutuhan spesifik bisnis Anda.

Apa itu Tindakan Cepat Komponen Web Lightning?

Tindakan Cepat Lightning Web Components (LWC) memungkinkan pengguna melakukan tugas dengan mudah di Salesforce dengan memanggil Komponen Web Lightning khusus langsung di halaman rekaman.

Dengan menyesuaikan tindakan cepat, Anda dapat menyederhanakan navigasi dan alur kerja, memberikan pengguna akses cepat ke informasi paling penting.

Tombol UI intuitif ini meningkatkan produktivitas dengan menyediakan alat dan data di ujung jari Anda.

Bagaimana cara menyiapkan komponen web Lightning untuk merekam tindakan cepat pada halaman?

Siapkan Lightning Web Components (LWC) sebagai tindakan cepat dengan menentukan metadata pada halaman rekaman <component>.js-meta.xml dokumen.

tentukan a lightning__RecordAction tujuan dan pengaturan isExposed tiba true Jadikan komponen dapat diakses dengan cepat.

<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="
    <apiVersion>62.0</apiVersion>
    <isExposed>true</isExposed>
    <targets>
        <target>lightning__RecordAction</target>
    </targets>
</LightningComponentBundle>

Ikuti langkah-langkah sederhana ini untuk membuatnya Tindakan Cepat Komponen Web Lightning (LWC). Di Salesforce dan tambahkan ini ke tata letak halaman:

  1. Navigasi ke mendirikan.
  2. Pergi ke manajer objek dan pilih objek tempat Anda ingin membuat tindakan cepat.
  3. Klik Tombol, tautan, dan tindakan lalu pilih tindakan baru.
  4. memilih tipe tindakan sebagai Komponen Jaringan Petir.
  5. Pilih komponen yang diperlukan, tentukan nama dan label, lalu klik menyimpan.
  6. Tambahkan tindakan cepat yang baru dibuat ke Tata letak halaman obyek.

Kasus Penggunaan: Tingkatkan Manajemen Perintah Kerja dengan Tindakan Cepat LWC

Bayangkan menggunakan a LWC Bertindak Cepat Hal ini memungkinkan Sumber daya layananUnggah dan lihat gambar yang terkait dengan perintah kerja dengan mudah.

Fitur ini menyederhanakan manajemen perintah kerja dan memungkinkan teknisi lapangan mencatat dan mengakses informasi visual langsung di lapangan Aplikasi Seluler Layanan Lapangan Salesforce.

Tindakan cepat atas perintah kerja

Kelas Apex berikut akan digunakan sebagai pengontrol untuk tindakan cepat komponen web Lightning

public with sharing class FileClass {
    /**
    * @description Method to retrieve the related images
    * @param linkedEntityId the Salesforce recordId
    * @return  `List<ContentVersion>` List of related images
    */
    @AuraEnabled
    public static List<ContentVersion> wkGetFiles(String linkedEntityId){
        List<String> fileTypes=new List<String>{'JPEG','JPG','PNG'};
        Set<Id> contentDocumentIds = new Set<Id>();
        for (ContentDocumentLink link : [
            SELECT ContentDocumentId
            FROM ContentDocumentLink
            WHERE LinkedEntityId =:linkedEntityId
        ]) {
            contentDocumentIds.add(link.ContentDocumentId);
        }
        return [
            SELECT Id, Title, ContentDocumentId, FileType, VersionData
            FROM ContentVersion
            WHERE ContentDocumentId IN :contentDocumentIds
            AND IsLatest = true AND FileType IN:fileTypes ORDER BY CreatedDate Asc
        ];
    }
    /**
     * @description Method to create ContentVersion records
     * @param fileName Name of the file
     * @param base64Data the image converted to base64 
     * @param parentId RecordId of the related record
     * @return  `String` record Id of the inserted
     * @exception 
     */
    @AuraEnabled
    public static String createContentVersion(String fileName, String base64Data, String parentId) {
        try {
            // Decode the base64 string
            Blob fileBody = EncodingUtil.base64Decode(base64Data);
            // Create the ContentVersion record
            ContentVersion contentVersion = new ContentVersion();
            contentVersion.Title = fileName;
            contentVersion.PathOnClient = fileName;
            contentVersion.VersionData = fileBody;
            if (String.isNotBlank(parentId)) {
                contentVersion.FirstPublishLocationId = parentId; // Link to a record (optional)
            }
            insert contentVersion;
            // Return the Id of the created ContentDocument
            return contentVersion.Id;
        } catch (Exception e) {
            throw new AuraHandledException('Error uploading file: ' + e.getMessage());
        }
    }
}

Komponen Web Lightning akan diimplementasikan seperti ini

berkas HTML

<template>
    <template if:true={showSpinner}>
        <lightning-spinner alternative-text="Uploading..." size="small"></lightning-spinner>
    </template>
    <div class="container">
        <template lwc:if={showFile}>
            <div class="slds-text-heading_medium">
                Attachments
            </div>
            <div class="slds-grid slds-wrap">
                <template for:each={files} for:item="file">
                    <div class="slds-col slds-m-around_small slds-align_absolute-center" key={file.Id}>
                        <img src={file.source} alt="" style="max-width: 140px;">
                    </div>
                </template>
            </div>
        </template>
        <template lwc:else>
            <h1>No Attachments</h1>
        </template>      
        <div class="slds-grid slds-grid_vertical">
            <div class="slds-col slds-m-around_small slds-align_absolute-center">
                <strong>{fileName}</strong>
                <lightning-input type="file" accept=".png, .jpg, .jpeg," onchange={handleFileChange}></lightning-input>
            </div>
            <div class="slds-col slds-m-around_small slds-align_absolute-center">
                <lightning-button label="Upload" onclick={uploadFile} variant="brand" class="s-margin-top" disabled={isUploadDisabled}></lightning-button>
                <lightning-button label="Refresh View" onclick={refreshView} class="slds-m-left_small"></lightning-button>
            </div>
        </div>
    </div>
</template>

file JavaScript

import { LightningElement,api,track } from 'lwc';
import wkGetFiles from "@salesforce/apex/FileClass.wkGetFiles";
import createContentVersion from "@salesforce/apex/FileClass.createContentVersion"

export default class wkWorkOrderAttachments extends LightningElement {
    @api recordId;
    @track files=[];
    imgList=[];
    showFile=false;
    showSpinner=false;
    fileName;
    fileContent;
    isUploadDisabled=true;
    connectedCallback(){
        this.getRelatedImages();
    }
    getRelatedImages(){
        this.showSpinner=true;
        wkGetFiles({linkedEntityId:this.recordId}).then(response=>{
            if(response!=null){
                this.imgList=response;
                for(let i=0;i<this.imgList.length;i++){
                    let image = {
                        Id: this.imgList[i].Id,
                        Title: this.imgList[i].Title,
                        source:window.location.origin + "/sfc/servlet.shepherd/version/renditionDownload?rendition=THUMB720BY480&versionId=" +this.imgList[i].Id +"&operationContext=CHATTER&contentId=" +this.imgList[i].ContentDocumentId
                      };
                      this.files.push(image);
                }
            }
            this.showFile=true;
            this.showSpinner=false;
        })
    }
    handleFileChange(event){
        const file = event.target.files[0];
        if (file) {
            this.fileName = file.name;
            const reader = new FileReader();
            reader.onload = () => {
                const base64 = reader.result.split(',')[1];
                this.fileContent = base64;
                this.isUploadDisabled = false;
            };
            reader.readAsDataURL(file);
        }
    }
    async uploadFile() {
        if (this.fileContent && this.fileName) {
            this.showSpinner = true;
            try {
                const result = await createContentVersion({
                    fileName: this.fileName,
                    base64Data: this.fileContent,
                    parentId: this.recordId,
                });
                this.uploadedFileId = result;
                this.showSpinner = false;
                this.isUploadDisabled = true;
                this.files=new Array();
                this.fileContent=null;
                this.fileName=null;
                this.connectedCallback();
            } catch (error) {
                this.showSpinner = false;
            }
        }
    }
    refreshView(){
        this.isUploadDisabled = true;
        this.files=new Array();
        this.fileContent=null;
        this.fileName=null;
        this.connectedCallback();
    }
}

contoh

sebagai kesimpulan

ini Aplikasi Seluler Layanan Lapangan adalah alat canggih yang dirancang bagi teknisi lapangan untuk mengelola tugas seluler secara efisien.

Ini memberikan kemampuan yang dapat disesuaikan dan terintegrasi secara mulus dengan Salesforce Field Service, memungkinkan bisnis untuk menyederhanakan operasi dan meningkatkan kepuasan pelanggan.

Selain itu, tindakan cepat Lightning Web Component memungkinkan pengguna menambahkan fungsionalitas khusus untuk memperluas kemampuan aplikasi seluler Field Service.

Jika Anda memiliki pertanyaan tentang Field Service Lightning atau solusi yang dipersonalisasi, silakan hubungi konsultan ahli Salesforce kami: [email protected] Atau melalui obrolan langsung.

Tim kami tersedia sepanjang tahun untuk memberikan solusi khusus berdasarkan kebutuhan bisnis Anda.

rencana pengembangan website



metode pengembangan website

jelaskan beberapa rencana untuk pengembangan website, proses pengembangan website, kekuatan dan kelemahan bisnis pengembangan website
, jasa pengembangan website, tahap pengembangan website, biaya pengembangan website

#Tambahkan #tindakan #cepat #LWC #aplikasi #seluler #Salesforce #Field #Service

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *