20231003_2

Lightning Web コンポーネント内で Lightning アクションを呼び出すサンプルコードの全体を以下に示します。この例では、ボタンをクリックすると指定した Lightning アクションが呼び出され、その結果を処理する Lightning Web コンポーネントを示します。 Lightning Web コンポーネント(myLWC.html): html Copy code Lightning Web コンポーネント JavaScript(myLWC.js): javascript Copy code


import { LightningElement, api, wire } from 'lwc';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { invoke } from '@salesforce/apex/MyController.callLightningAction'; // Apex メソッドの呼び出し

export default class MyLWC extends LightningElement {
    // コンポーネントの初期化処理などを追加する場合はここに記述

    callLightningAction() {
        // Apex メソッドを呼び出して Lightning アクションを実行
        invoke({ actionName: 'Your_Lightning_Action_Name' })
            .then(result => {
                // アクションが成功した場合の処理
                this.showToast('Success', 'Lightning Action was called successfully.', 'success');
            })
            .catch(error => {
                // アクションが失敗した場合の処理
                this.showToast('Error', 'An error occurred while calling Lightning Action: ' + error.body.message, 'error');
            });
    }

    showToast(title, message, variant) {
        const event = new ShowToastEvent({
            title: title,
            message: message,
            variant: variant,
        });
        this.dispatchEvent(event);
    }
}



Apex メソッド(MyController.cls): apex Copy code


public with sharing class MyController {
    @AuraEnabled(cacheable=true)
    public static String callLightningAction(String actionName) {
        // Lightning アクションを呼び出すロジックを実装
        // 成功または失敗時の結果を返す

        // 例: 何らかの処理を実行し、成功した場合は結果を返す
        try {
            // 何らかの処理
            return 'Success';
        } catch (Exception e) {
            // エラー時の処理
            return 'Error: ' + e.getMessage();
        }
    }
}



Lightning アクションの設定: Salesforceの設定で Lightning アクションを作成し、そのアクション名(Your_Lightning_Action_Name)を Lightning Web コンポーネントの JavaScriptコードで指定します。 このサンプルコードを使用すると、Lightning Web コンポーネント内に表示されるボタンをクリックすると指定した Lightning アクションが呼び出され、アクションの実行結果に応じてメッセージが表示されます。


public PageReference callLightningAction() {
    PageReference action = Page.Your_Lightning_Action_Name; // Lightningアクションの名前を指定
    action.getParameters().put('param1', 'value1'); // アクションに渡すパラメータを設定
    action.getParameters().put('param2', 'value2');
    return action;
}

// navigateToAction.js
import { LightningElement } from 'lwc';
import { NavigationMixin } from 'lightning/navigation';

export default class NavigateToAction extends NavigationMixin(LightningElement) {
    navigateToAction() {
        // Lightning アクションへの遷移設定を作成
        const actionName = 'standard__recordPage'; // レコードページへの遷移
        const attributes = {
            recordId: 'レコードのID', // 遷移先レコードのIDを指定
            objectApiName: 'オブジェクトのAPI名', // 遷移先オブジェクトのAPI名を指定
            actionName: 'アクションの名前' // 遷移先の Lightning アクションの名前を指定
        };

        // 遷移を実行
        this[NavigationMixin.Navigate]({
            type: actionName,
            attributes
        });
    }
}

シェアする

  • このエントリーをはてなブックマークに追加

フォローする