Hi all :
I have got a piece of JS code where I am creating multiple list items. So first I am creating an Expense item and then each of the expense line item( 5 of those ) in a different list. It creates the Expense item successfully and then when it tries to
create the line items, I am getting the following error :
Request failed. Unexpected response from server. null
However when I go to the line items list, I can see all the items being created!!! I am also inserting my code below.
clientContext.executeQueryAsync(function (sender, args) {
var createdExpenseID = viewModel.listItem.get_id();
//Now create the expense line items - one by one
clientContext = SP.ClientContext.get_current();
web = clientContext.get_web();
list = web.get_lists().getByTitle("Expense Items");
var expenseIDLookup = new SP.FieldLookupValue();
expenseIDLookup.set_lookupId(createdExpenseID);
/*for (i = 1; i <= 5; i++) {
var descriptionField = "description"+i;
alert(viewModel.model.window[descriptionField]);
}*/
itemCreateInfo = new SP.ListItemCreationInformation();
this.listItem = list.addItem(itemCreateInfo);
//alert(list);
this.listItem.set_item('Title', viewModel.model.description1());
this.listItem.set_item('Date', $('#date1').val());
this.listItem.set_item('ProjectNumber', viewModel.model.projectNumber1());
this.listItem.set_item('ClientToPay', viewModel.model.selectedClienttopay1());
this.listItem.set_item('Amount', viewModel.model.amount1());
this.listItem.set_item('ExpenseCurrency', viewModel.model.selectedExpenseCurrency1());
this.listItem.set_item('ExchangeRate', viewModel.model.exchange1());
this.listItem.set_item('ConvertedAmount', viewModel.model.converted1());
this.listItem.set_item('Expense', expenseIDLookup);
this.listItem.update();
clientContext.load(this.listItem);
clientContext.executeQueryAsync(function (sender, args) {
},
function (sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
});
itemCreateInfo = new SP.ListItemCreationInformation();
this.listItem = list.addItem(itemCreateInfo);
//alert(list);
this.listItem.set_item('Title', viewModel.model.description2());
this.listItem.set_item('Date', $('#date2').val());
this.listItem.set_item('ProjectNumber', viewModel.model.projectNumber2());
this.listItem.set_item('ClientToPay', viewModel.model.selectedClienttopay2());
this.listItem.set_item('Amount', viewModel.model.amount2());
this.listItem.set_item('ExpenseCurrency', viewModel.model.selectedExpenseCurrency2());
this.listItem.set_item('ExchangeRate', viewModel.model.exchange2());
this.listItem.set_item('ConvertedAmount', viewModel.model.converted2());
this.listItem.set_item('Expense', expenseIDLookup);
this.listItem.update();
clientContext.load(this.listItem);
clientContext.executeQueryAsync(function (sender, args) {
},
function (sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
});
//Now redirect to the newly created item edititem.aspx page for attaching attachments
window.location.replace("/sites/process/Lists/Expense/EditForm.aspx?ID="+createdExpenseID+"&Source=/sites/process");
},
function (sender, args) {
alert('Expense creation failed');
});
The outermost executeQueryAsync creates the Expense item and on being successful, I create the line items.
Any help will be much appreciated.
Thanks and regards,
developer_melbourne