So, I wasn’t sure how to get at each of the Condition Templates again in the drefs.save results, since the Condition Templates aren’t related to the drefs after they are created.
My workaround was within the $.each to create all the drefs rows, then create all the conditions rows, then after creating all the rows and outside the $.each, save the drefs, then save the conditions within the success results of the drefs.
This matches the right drefs to the new conditions and doesn’t make any on-screen bold red errors, but it does throw a silent error and stops the saving. The result is I’ve got my table of Conditions with the right info but unsaved changes.
What I could do is manually hit Save on the table - instead in the action framework, I use an On-Error action with the Snippet that saves the Conditions model, and it all comes out perfect.
So the final code comes out like below, finished off with the action framework.
var params = arguments[0], $ = skuid.$, models = skuid.model.map(); // grab ids of all selected rows // model to add seleted rows from var conditionTemplates = skuid.model.getModel('ConditionTemplates'); var rows = conditionTemplates.getRows(); // model to add to var conditions = skuid.model.getModel('Conditions'); var drefs = skuid.model.getModel('DREFs1'); //other models var oppModel = skuid.model.getModel('Opportunity'); var oppRow = oppModel.getFirstRow(); var oppId = oppModel.getFieldValue(oppRow,'Id'); var oppTemplateGroup = oppModel.getFieldValue(oppRow,'Template\_Group\_\_c'); // for each selected row, add a new row $.each(rows, function(){ // get selected row data var templateRow = this; // set variables for selected row field(s) var templateId = conditionTemplates.getFieldValue(templateRow, 'Id'); var templateName = conditionTemplates.getFieldValue(templateRow, 'Name'); var templateType = conditionTemplates.getFieldValue(templateRow, 'Type\_\_c'); var templateDescription = conditionTemplates.getFieldValue(templateRow, 'Description\_\_c'); var templateHelp = conditionTemplates.getFieldValue(templateRow, 'Help\_\_c'); var drefTemplateId = conditionTemplates.getFieldValue(templateRow, 'DocumentReferenceTemplate\_\_r.Id'); var drefTitle = conditionTemplates.getFieldValue(templateRow, 'DocumentReferenceTemplate\_\_r.Title\_\_c'); var drefParty = conditionTemplates.getFieldValue(templateRow, 'DocumentReferenceTemplate\_\_r.ProvidingParty\_\_c'); var drefMan = conditionTemplates.getFieldValue(templateRow, 'DocumentReferenceTemplate\_\_r.Mandatory\_\_c'); var drefRow = drefs.createRow({ additionalConditions: [{field: 'DocumentReferenceTemplate\_\_c', value: drefTemplateId, operator: '='}, {field: 'DocumentTitle\_\_c', value: drefTitle, operator: '='}, {field: 'Opportunity\_\_c', value: oppId, operator: '='}, {field: 'ProvidingParty\_\_c', value: drefParty, operator: '='}, {field: 'Mandatory\_\_c', value: drefMan, operator: '='}, {field: 'TemplateGroup\_\_c', value: oppTemplateGroup, operator: '='}] }); var conditionRow = conditions.createRow({ additionalConditions: [{field: 'ConditionTemplate\_\_c', value: templateId, operator: '='}, {field: 'Name\_\_c', value: templateName, operator: '='}, {field: 'Type\_\_c', value: templateType, operator: '='}, {field: 'Description\_\_c', value: templateDescription, operator: '='}, {field: 'Help\_\_c', value: templateHelp, operator: '='}, {field: 'Opportunity\_\_c', value: oppId, operator: '='}, {field: 'DocumentReference\_\_c', value: drefRow.Id, operator: '='}] }); }); drefs.save({callback: function(result){ if (result.totalsuccess) { console.log('Success DREFs'); conditions.save({callback: function(result){ if (result.totalsuccess) { console.log('Success Conditions 1'); } else { console.log(result.insertResults); console.log(result.updateResults); console.log(result.deleteResults); } }}); } else { console.log(result.insertResults); } }});