我有一个数据模型,Material,它有相关的chemicalProperty模型。每种材料可具有几种化学性质。 我希望用户能够基于现有材料创建新的材料记录,并同时创建其相关化学品记录的副本。
我知道如何从数组创建多个记录,我知道如何进行查询。 有没有办法从查询中创建数组? 还是有另一种方法可以复制几个记录来改变过程中的forgein键吗?
这是我现在的代码。
感谢任何帮助。
function duplicateChemicalProperties(oldMaterialId, newMaterialId) {
/* var query = app.models.Propiedad_Quimica.newQuery();
* query.filters.Material_fk._equals = oldMaterialId;
* var recordData = query.run()[0];*/
var recordData = [
["1",new Date,userId,new Date,userId,"H2O",,"2",,".5","algun tipo de tolerancia","comentarios"],
["2",new Date,userId,new Date,userId,"Algodon de azucar ",,"6",,"10","tolerancia","Notas"]
];
var records = [];
for (var i = 0; i < recordData.length; i++) {
var record = app.models.Propiedad_Quimica.newRecord();
record.Material_fk = newMaterialId;
record.Fecha_Creacion = recordData[i][1];
record.Usuario_Creacion = recordData[i][2];
record.Fecha_Edicion = recordData[i][3];
record.Usuario_Edicion = recordData[i][4];
record.Analisis = recordData[i][5];
record.P_Min = recordData[i][6];
record.P_Max = recordData[i][7];
record.P_Tipico = recordData[i][8];
record.Tolerancia = recordData[i][9];
record.Tipo_de_tolerancia = recordData[i][10];
record.Comentarios = recordData[i][11];
records.push(record);
}
app.saveRecords(records);
}
&#13;
答案 0 :(得分:0)
这应该有效
function duplicateChemicalProperties(oldMaterialId, newMaterialId) {
var query = app.models.Propiedad_Quimica.newQuery();
query.filters.Material_fk._equals = oldMaterialId;
var existingRecords = query.run();
var newRecords = [];
for (var i = 0; i < existingRecords.length; i++) {
var existingRecord = existingRecords[i];
var newRecord = app.models.Propiedad_Quimica.newRecord();
newRecord.Material_fk = newMaterialId;
newRecord.Fecha_Creacion = existingRecord.Fecha_Creacion;
newRecord.Usuario_Creacion = existingRecord.Usuario_Creacion;
...
newRecords.push(newRecord);
}
app.saveRecords(newRecords);
}
根据数据流,可以使用prefetches和Models Metadata API
优化算法