как известно "Too many DML statements: 1" прилетает из apex в LWC когда твой апекс метод имеет (cacheable=true) и ДМЛ операцию внутри (да еще при-@wire-рен). Эта ситуация понятна.
теперь представьте что есть простейший апекс метод:
@AuraEnabled(cacheable=false)
public static String setInProgress(string recordId){DO DML
}
и вы вызываете его императивно:
setInProgress()
.then(result => {
console.log('setInProgress result');
console.log(result);
})
.catch(error => {
console.log('setInProgress error');
console.log(error);
});
и, да, вы правильно заметили, что он вызывается с ошибкой, так как аргумент recordId не указан, ну бывает...
ну так вот, если его вот так вот с ошибкой вызывать в connectedCallback(), то прилетает ошибка с фейлом в выполнении апекс метода, и по ней все понятно, что recordId там нулевой.
а вот если тот же императивный вызов ты используешь
<lightning-record-edit-form onsuccess={ВОТ_ЗДЕСЬ} onsubmit={ИЛИ_ВОТ_ЗДЕСЬ}>
то прилетит "Too many DML statements: 1", и ты будешь долго и безрезультатно доказывать, что (cacheable=false) там, хотя проблема совсем не в этом
как известно "Too many DML statements: 1" прилетает из apex в LWC когда твой апекс метод имеет (cacheable=true) и ДМЛ операцию внутри (да еще при-@wire-рен). Эта ситуация понятна. теперь представьте что есть простейший апекс метод: [code] @AuraEnabled(cacheable=false) public static String setInProgress(string recordId){ DO DML } [/code] и вы вызываете его императивно: [code] setInProgress() .then(result => { console.log('setInProgress result'); console.log(result); }) .catch(error => { console.log('setInProgress error'); console.log(error); }); [/code] и, да, вы правильно заметили, что он вызывается с ошибкой, так как аргумент recordId не указан, ну бывает... ну так вот, если его вот так вот с ошибкой вызывать в connectedCallback(), то прилетает ошибка с фейлом в выполнении апекс метода, и по ней все понятно, что recordId там нулевой. а вот если тот же императивный вызов ты используешь [code]<lightning-record-edit-form onsuccess={ВОТ_ЗДЕСЬ} onsubmit={ИЛИ_ВОТ_ЗДЕСЬ}>[/code] то прилетит "Too many DML statements: 1", и ты будешь долго и безрезультатно доказывать, что (cacheable=false) там, хотя проблема совсем не в этом