function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Mahesh GorrepatiMahesh Gorrepati 

Error in Save call back:  when creating a multiple records of a task object showing the error like this, kindly provide help regarding the issue

User-added image
Error in Save call back:
{status: 500, body: {…}, headers: {…}, ok: false, statusText: 'Server Error', …}
body: {message: 'Unable to read SObject'}
errorType: "fetchResponse"
headers: {}
ok: false
status: 500
statusText: "Server Error"
[[Prototype]]: Object




LWC html file:-
<template>
    <lightning-card>
        <lightning-button-icon icon-name="utility:add" slot="actions" onclick={addRow}></lightning-button-icon>
    <lightning-button
        label={toggleSaveLabel}
        icon-name="utility:save"
        slot="actions"
        onclick={handleSave}>
    </lightning-button>
    <lightning-button
        label="Clear All"
        icon-name="utility:clear"
        slot="actions"
        onclick={taskRecords}>
    </lightning-button>
        <table class="slds-table slds-table_cell-buffer slds-table_bordered slds-table_col-bordered" aria-label="Example table of Opportunities with vertical borders">
            <thead>
            <tr class="slds-line-height_reset">
                <th class="" scope="col">
                    <div class="slds-truncate" title="SI NO">SI.No</div>
                    </th>
            <th class="" scope="col">
               
            <div class="slds-truncate" title="Operator  Name">Operator_Name</div>
            </th>
            <th class="" scope="col">
            <div class="slds-truncate" title="Activities">Activities</div>
            </th>
            <th class="" scope="col">
            <div class="slds-truncate" title="Actual Start Date">Actual_Start_Date_time</div>
            </th>  
            <th class="" scope="col">
            <div class="slds-truncate" title="Actual End date">Actual_End_date_time</div>
            </th>
            <th class="" scope="col">
            <div class="slds-truncate" title="TOtal Hours">Total_Hours</div>
            </th>
            <th class="" scope="col">
             <div class="slds-truncate" title="Remarks">Remarks</div>
             </th>
            </tr>
            </thead>
            <tbody>
                <template for:each={taskList} for:item="tsk" for:index="index">
                    <tr key={tsk.key}>
                        <td>{index}</td>                                                  
                        <td>
                            <!--<div class="slds-box slds-p-top_small" style="background-color: white;">
                                <lightning-record-edit-form object-api-name="Contact" >
                                    <lightning-input-field field-name="WhoId" variant="label-hidden"  value={tsk.Name} onchange={handleoperatornameChange} > </lightning-input-field>
                                </lightning-record-edit-form>
                            </div>
                            <lightning-record-edit-form object-api-name="Task" >
                                <lightning-input-field field-name='WhoId' onchange={handleoperatornameChange}></lightning-input-field>
                              </lightning-record-edit-form>    
                              <lightning-record-edit-form object-api-name="Task"  >
                                <lightning-input-field field-name="WhoId" variant="label-hidden" onchange={handleAccountSelection} required> </lightning-input-field>
                            </lightning-record-edit-form> -->
                            <lightning-input label=" "  key={tsk.key} data-id={tsk.key} type="text" value={tsk.operatorname} onchange={handleoperatornameChange}></lightning-input>                        
                        </td>
                        <td>
                            <lightning-input label=" "   key={tsk.key} data-id={tsk.key} type="text" value={tsk.Activities} onchange={handleActivitiesChange}></lightning-input>                        
                        </td>
                        <td>
                            <lightning-input label=""  key={tsk.key} data-id={tsk.key} type="datetime" value={tsk.acstarttime} onchange={handleacstarttimeChange}></lightning-input>
                        </td>
                        <td>
                            <lightning-input lable=""  key={tsk.key} data-id={tsk.key} type="datetime" value={tsk.acendtime} onchange={handleacendtimechange}> </lightning-input>
                        </td>
                        <td>
                            <lightning-input lable=""  key={tsk.key} data-id={tsk.key} type="number"  value={tsk.totalHours}></lightning-input>
                        </td>
                        <td>
                            <lightning-input label=""  key={tsk.key} data-id={tsk.key} type="text" value={tsk.remarks} onchange={handleremarkschange}></lightning-input>
                        </td>
                        <td>
                            <a onclick={removeRow}>
                                <lightning-icon icon-name="utility:delete" size="small" style="margin-top: -4px; margin-right: 0px;" ></lightning-icon>
                                <span class="slds-assistive-text">Delete</span>
                            </a>
                        </td>
                    </tr>
                </template>
        </tbody>
            </table>
    </lightning-card>
</template>

LWC JS file :;-

import { LightningElement,track,api,wire } from 'lwc';
import {getRecord,getFieldValue} from 'lightning/uiRecordApi';
import inserttasks from '@salesforce/apex/Taskforoperators.inserttasks';
import ACTUAL_END_TIME from '@salesforce/schema/task.Actual_end_date_time__c';
import ACTUAL_START_TIME from '@salesforce/schema/task.Actual_start_Date_and_time__c';
import REMARKS_FIELD from '@salesforce/schema/task.CallObject';
import ACTIVITIES_FIELD from '@salesforce/schema/task.Description';
import  NAME_FIELD from '@salesforce/schema/task.CallDisposition';
import  NAME_FIELDS from '@salesforce/schema/Contact.Name' ;
const fields = [NAME_FIELDS];
export default class AddTasksToOperators extends LightningElement {
//@track operatorname;
//@track activities;
//@track acstarttime;
//@track acendtime;
//@track totalHours;
//@track remarks;
@track taskList=[];


//
handleoperatornameChange(event)
{
    let foundelement = this.taskList.find(ele => ele.key == event.target.dataset.id);
        foundelement.Operator_Name = event.target.value;
        this.taskList = [...this.taskList];
        //this.operatorname=event.target.value;
        // this.lookupId = event.target.value;
       
        console.log(event.target.value); // "001***************"
        //console.log(event.detail.value[0]); // "001***************"
}
handleActivitiesChange(event)
{
    let foundelement = this.taskList.find(ele => ele.key == event.target.dataset.id);
    foundelement.Activities = event.target.value;
    this.taskList = [...this.taskList];
}
handleacstarttimeChange(event)
{
    let foundelement = this.taskList.find(ele => ele.key == event.target.dataset.id);
        foundelement.Actual_Start_Date_time = event.target.value;
        this.taskList = [...this.taskList];
}
handleacendtimechange(event)
{
    let foundelement = this.taskList.find(ele => ele.key == event.target.dataset.id);
        foundelement.Actual_End_date_time = event.target.value;
        this.taskList = [...this.taskList];
}
handleremarkschange(event)
{
    let foundelement = this.taskList.find(ele => ele.key == event.target.dataset.id);
        foundelement.Remarks = event.target.value;
        this.taskList = [...this.taskList];
}
connectedCallback()
{
this.taskRecords()  
}
taskRecords()
{
    this.taskList=[];
    for(var i=0; i < 4 ; i++){
        this.taskList.push({Operator_Name : NAME_FIELD,Activities : ACTIVITIES_FIELD,Actual_Start_Date_time : ACTUAL_START_TIME,Actual_End_date_time : ACTUAL_END_TIME,Remarks : REMARKS_FIELD,key : Math.random().toString(36).substring(2, 15)});
    }
}
addRow()
{
console.log('New rrow is added')
this.taskList.push({Operator_Name : NAME_FIELD,Activities : ACTIVITIES_FIELD,Actual_Start_Date_time : ACTUAL_START_TIME,Actual_End_date_time : ACTUAL_END_TIME,Remarks : REMARKS_FIELD,key : Math.random().toString(36).substring(2, 15)})
}
removeRow(event)
{
    const indexPos = event.currentTarget.name;
    let remList = [];
    remList = this.taskList;
    remList.splice(indexPos,1);
    this.taskList = remList;
}
handleSave()
{
    let toSaveList = this.taskList.slice(0);
       
        console.log( ' Final Save ==> ' + JSON.stringify(toSaveList));
    console.log('save invoked  Log');
    // console.log('this.tasks for the apex' +toSaveList);
inserttasks({lsttasks : toSaveList})
.then(() => {
    console.log('Success Log');
    this.dispatchEvent(
        new ShowToastEvent({
            title : 'Success',
            message : `Records saved succesfully!`,
            variant : 'success',
        }),
    )
    this.taskRecords();
    this.error = undefined;
})
.catch(error => {
    this.error = error;
    this.record = undefined;
    console.log("Error in Save call back:", this.error);
})
}

}

Class code:-
public with sharing class Taskforoperators {
  @AuraEnabled
    public static string  inserttasks(list<Task> lsttasks){
        system.debug('the lsits' + lsttasks);
        string response='';
try {
    list<task> newtasks = new list<task> ();
    for (task tsk :lsttasks )
    {
        tsk.Subject='Other';
        tsk.Status='Not Started';
        tsk.Priority='Normal';
        //tsk.WhatId=relatedId;
        tsk.OwnerId=userInfo.getUserId();
        
        newtasks.add(tsk);
    }
    if(!newtasks.isEmpty()){
        insert newtasks;
        response='SUCCESS';
    }
    
} catch (Exception e) {
    System.debug(e.getMessage());
    response=e.getMessage();
}
return response;
    }

    
}