0

ガバナーの制限により、ユーザーが一度に複数のレコードを処理する必要があるという要件があります。

着信する複数のレコードについて、各レコードが取得され、apex が呼び出されます。応答が成功した後、同じ要求を再度行う必要があります。同様に、すべてのレコードを処理します。

誰かがこれを達成する方法を教えてくれますか?

import { LightningElement, api, wire, track } from 'lwc';
import createRecord from '@salesforce/apex/OpportunityLoadController.createRecord';
export default class OpportunityLoadLWC extends LightningElement {  
@api error;
@api resultLst = [];
@api message; 
//
//Other logic
// 
handleClick(e) {
        var oneRecord = resultLst.pop();
        createRecord({
           data : oneRecord
        })
        .then((result) => {
            //call createRecord again
        })
        .catch((error) => {
            this.message = 'Error received: code' + error.errorCode + ', ' +
                'message ' + error.body.message;
        });
    }

}

4

1 に答える 1

0

1 つのレコードごとに apex を呼び出すと、最適化されません。

ただし、何千ものレコードを挿入する必要がある場合や、上記のユース ケースが発生する可能性があります。

これは、レコードをチャンク化してキューに入れることで実現できます。

キューにレコードがあり、処理する必要があるかどうかをチェックし続けるために、 setInterval() を使用する必要がある場合があります。

async/await でキューを使用して、一度に 1 つのチャンクを処理すると出来上がりです!

繰り返しになりますが、このソリューションはリソースを大量に消費するため、問題がなければ使用する必要があります。

于 2021-01-03T12:03:12.387 に答える