How to save the values shown in my editable grid
Hello! I´m having some trouble trying to save my values in an editable grid.
The first 6 columns are read-only (data from a local variable, query of a record) and the 7 one is an editable column (user introduces quantity)

My values are not saving correctly into my rule input "RecordLineasRecepcion"
Could you please tell me how can I save the values of each column? I think I cannot use fv!item in the saveInto parameter of the six first columns because the user is not interacting. Should I use an (or some) a!save functions? Can that work with more than one row?
This is an example of what I want to do:
1) Show the value of the selected field of my local variable
2) Save the value to another record

With my code code, no data is saved when I click "Submit"

I leave my code below (I know that if there is no user interaction data will not be saved when using the SaveInto of each field directly, but I´m not sure how to be able to save the values):
a!localVariables(
/*mirar para incluir columna extra en variable local*/
local!DatosLineas: a!queryRecordType(
recordType: 'recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido',
fields: {
'recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{fcfa4b36-4398-4430-8055-ecfa59daf13a}idLineaPedido','recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{71427dbb-12db-4f83-bd99-f625bf9af271}idPedido', 'recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{69e9a834-b2fb-4f35-a36d-3c526c97f4ac}Material','recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{e78c5b35-026f-4713-8404-05077c6c9152}Cantidad', 'recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{47f4bf32-2e41-4c5a-a7e7-9fc7786bd753}PrecioUnit', 'recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{beb59a89-a332-46d3-b718-a8285f58f942}Importe'
},
filters: a!queryFilter(
field: 'recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{71427dbb-12db-4f83-bd99-f625bf9af271}idPedido',
operator: "=",
value: ri!record['recordType!{3c95c0e4-e69d-43f6-b485-e72b24252af7}CPF Maestro Pedidos.fields.{7309402c-2312-4a4e-bdaa-5654789bffb2}idPedido']
),
pagingInfo: a!pagingInfo(startIndex: 1, batchSize: 100)
).data
,
{
a!sectionLayout(
label: "Datos Recepción",
labelIcon: "dolly",
contents: {
a!columnsLayout(
columns: {
a!columnLayout(
contents: {
a!textField(
label: "Id Recepción",
labelPosition: "ABOVE",
value: ri!RecordRecepciones['recordType!{b6fc6108-1f5d-4cbe-9c5c-08da4b1d58f3}CPF Maestro Recepciones.fields.{cb86a21e-a5e5-4ec7-98dc-14e94cc5736c}idRecepcion'],
saveInto: ri!RecordRecepciones['recordType!{b6fc6108-1f5d-4cbe-9c5c-08da4b1d58f3}CPF Maestro Recepciones.fields.{cb86a21e-a5e5-4ec7-98dc-14e94cc5736c}idRecepcion'],
refreshAfter: "UNFOCUS",
validations: {}
)
}
),
a!columnLayout(
contents: {
a!dateTimeField(
label: "Fecha y hora de Recepción",
labelPosition: "ABOVE",
value: ri!RecordRecepciones['recordType!{b6fc6108-1f5d-4cbe-9c5c-08da4b1d58f3}CPF Maestro Recepciones.fields.{4fa92044-3c8b-438b-b77e-30bf88efbae3}FechaRecepcion'],
saveInto: ri!RecordRecepciones['recordType!{b6fc6108-1f5d-4cbe-9c5c-08da4b1d58f3}CPF Maestro Recepciones.fields.{4fa92044-3c8b-438b-b77e-30bf88efbae3}FechaRecepcion'],
validations: {}
)
}
)
}
)
}
),
a!sectionLayout(
label: "LÃ%ADneas Recepción",
labelIcon: "list-alt-solid",
contents: {
a!gridLayout(
label: "A continuación, introduzca las cantidades a recepcionar para cada lÃ%ADnea de pedido y pulse el botón de Recepción",
headerCells: {
a!gridLayoutHeaderCell(label: "Linea Pedido"),
a!gridLayoutHeaderCell(label: "Pedido"),
a!gridLayoutHeaderCell(label: "Material"),
a!gridLayoutHeaderCell(label: "Cantidad"),
a!gridLayoutHeaderCell(label: "Precio Unitario"),
a!gridLayoutHeaderCell(label: "Importe Total"),
a!gridLayoutHeaderCell(label: "Cantidad Recepcionada"),
a!gridLayoutHeaderCell()
},
columnConfigs: {
a!gridLayoutColumnConfig(width: "DISTRIBUTE"),
a!gridLayoutColumnConfig(width: "DISTRIBUTE"),
a!gridLayoutColumnConfig(width: "DISTRIBUTE"),
a!gridLayoutColumnConfig(width: "DISTRIBUTE"),
a!gridLayoutColumnConfig(width: "DISTRIBUTE"),
a!gridLayoutColumnConfig(width: "DISTRIBUTE"),
a!gridLayoutColumnConfig(width: "DISTRIBUTE"),
a!gridLayoutColumnConfig(width: "ICON")
},
rows: a!forEach(
items: local!DatosLineas,
expression: a!gridRowLayout(
contents: {
a!textField(
value: fv!index,
readOnly:true
),
a!textField(
value: fv!item['recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{71427dbb-12db-4f83-bd99-f625bf9af271}idPedido'],
saveInto: {
},
readOnly:true
),
a!textField(
value: fv!item['recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{69e9a834-b2fb-4f35-a36d-3c526c97f4ac}Material'],
saveInto:{fv!item['recordType!{20fd7d81-a6d6-4fee-9219-afab0a7df2e4}CPF Lineas Recepciones.fields.{5e36f0f0-c022-4883-bc2c-195b92a6b9e0}Material']},
readOnly:true
),
a!integerField(
value: fv!item['recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{e78c5b35-026f-4713-8404-05077c6c9152}Cantidad'],
saveInto: {
},
required: true,
readOnly:true,
validations: {
}
),
a!floatingPointField(
value: fv!item['recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{47f4bf32-2e41-4c5a-a7e7-9fc7786bd753}PrecioUnit'],
saveInto: {fv!item['recordType!{20fd7d81-a6d6-4fee-9219-afab0a7df2e4}CPF Lineas Recepciones.fields.{9255c197-7e92-4f29-8e6a-104967146dcb}PrecioUnit']},
required: true,
readOnly:true,
validations: {
}
),
a!floatingPointField(
value: fv!item['recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{beb59a89-a332-46d3-b718-a8285f58f942}Importe'],
saveInto: {fv!item['recordType!{20fd7d81-a6d6-4fee-9219-afab0a7df2e4}CPF Lineas Recepciones.fields.{7c444d45-8e9d-4542-a4a7-e1633eaef735}ImporteLinea']
},
required: true,
readOnly:true,
validations: {
},
align: "RIGHT"
),
a!integerField(
value: fv!item['recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{bd0fe4ca-322c-422e-89e5-97e5194817a1}CantRecepAcum'],
saveInto: { fv!item['recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{bd0fe4ca-322c-422e-89e5-97e5194817a1}CantRecepAcum']
}
),
a!richTextDisplayField(
value: {
a!richTextIcon(
icon: "times-circle",
link: a!dynamicLink(
value: remove(local!DatosLineas, fv!index),
saveInto: local!DatosLineas
),
linkstyle: "STANDALONE",
color: "NEGATIVE"
)
}
)
}
)
)
)
}
),
a!buttonLayout(
primaryButtons: {
a!buttonWidget(
label: "Completar Recepción",
saveInto:{ a!save(
/*cambiar por recordLineasRecepciones*/
ri!recordLineasRecep,
local!DatosLineas
)
},
submit: true,
style: "PRIMARY",
validate: true
)
},
secondaryButtons: {
a!buttonWidget(
label: "Cancelar",
value: true,
saveInto: ri!cancel2,
submit: true,
style: "NORMAL",
validate: false
)
}
)
}
)
Code without using the saveInto parameters in non-interactive fields (still no values saved)
a!localVariables(
/*mirar para incluir columna extra en variable local*/
local!DatosLineas: a!queryRecordType(
recordType: 'recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido',
fields: {
'recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{fcfa4b36-4398-4430-8055-ecfa59daf13a}idLineaPedido','recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{71427dbb-12db-4f83-bd99-f625bf9af271}idPedido', 'recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{69e9a834-b2fb-4f35-a36d-3c526c97f4ac}Material','recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{e78c5b35-026f-4713-8404-05077c6c9152}Cantidad', 'recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{47f4bf32-2e41-4c5a-a7e7-9fc7786bd753}PrecioUnit', 'recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{beb59a89-a332-46d3-b718-a8285f58f942}Importe'
},
filters: a!queryFilter(
field: 'recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{71427dbb-12db-4f83-bd99-f625bf9af271}idPedido',
operator: "=",
value: ri!record['recordType!{3c95c0e4-e69d-43f6-b485-e72b24252af7}CPF Maestro Pedidos.fields.{7309402c-2312-4a4e-bdaa-5654789bffb2}idPedido']
),
pagingInfo: a!pagingInfo(startIndex: 1, batchSize: 100)
).data
,
{
a!sectionLayout(
label: "Datos Recepción",
labelIcon: "dolly",
contents: {
a!columnsLayout(
columns: {
a!columnLayout(
contents: {
a!textField(
label: "Id Recepción",
labelPosition: "ABOVE",
value: ri!RecordRecepciones['recordType!{b6fc6108-1f5d-4cbe-9c5c-08da4b1d58f3}CPF Maestro Recepciones.fields.{cb86a21e-a5e5-4ec7-98dc-14e94cc5736c}idRecepcion'],
saveInto: ri!RecordRecepciones['recordType!{b6fc6108-1f5d-4cbe-9c5c-08da4b1d58f3}CPF Maestro Recepciones.fields.{cb86a21e-a5e5-4ec7-98dc-14e94cc5736c}idRecepcion'],
refreshAfter: "UNFOCUS",
validations: {}
)
}
),
a!columnLayout(
contents: {
a!dateTimeField(
label: "Fecha y hora de Recepción",
labelPosition: "ABOVE",
value: ri!RecordRecepciones['recordType!{b6fc6108-1f5d-4cbe-9c5c-08da4b1d58f3}CPF Maestro Recepciones.fields.{4fa92044-3c8b-438b-b77e-30bf88efbae3}FechaRecepcion'],
saveInto: ri!RecordRecepciones['recordType!{b6fc6108-1f5d-4cbe-9c5c-08da4b1d58f3}CPF Maestro Recepciones.fields.{4fa92044-3c8b-438b-b77e-30bf88efbae3}FechaRecepcion'],
validations: {}
)
}
)
}
)
}
),
a!sectionLayout(
label: "LÃ%ADneas Recepción",
labelIcon: "list-alt-solid",
contents: {
a!gridLayout(
label: "A continuación, introduzca las cantidades a recepcionar para cada lÃ%ADnea de pedido y pulse el botón de Recepción",
headerCells: {
a!gridLayoutHeaderCell(label: "Linea Pedido"),
a!gridLayoutHeaderCell(label: "Pedido"),
a!gridLayoutHeaderCell(label: "Material"),
a!gridLayoutHeaderCell(label: "Cantidad"),
a!gridLayoutHeaderCell(label: "Precio Unitario"),
a!gridLayoutHeaderCell(label: "Importe Total"),
a!gridLayoutHeaderCell(label: "Cantidad Recepcionada"),
a!gridLayoutHeaderCell()
},
columnConfigs: {
a!gridLayoutColumnConfig(width: "DISTRIBUTE"),
a!gridLayoutColumnConfig(width: "DISTRIBUTE"),
a!gridLayoutColumnConfig(width: "DISTRIBUTE"),
a!gridLayoutColumnConfig(width: "DISTRIBUTE"),
a!gridLayoutColumnConfig(width: "DISTRIBUTE"),
a!gridLayoutColumnConfig(width: "DISTRIBUTE"),
a!gridLayoutColumnConfig(width: "DISTRIBUTE"),
a!gridLayoutColumnConfig(width: "ICON")
},
rows: a!forEach(
items: local!DatosLineas,
expression: a!gridRowLayout(
contents: {
a!textField(
value: fv!index,
readOnly:true
),
a!textField(
value: fv!item['recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{71427dbb-12db-4f83-bd99-f625bf9af271}idPedido'],
saveInto: {
},
readOnly:true
),
a!textField(
value: fv!item['recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{69e9a834-b2fb-4f35-a36d-3c526c97f4ac}Material'],
saveInto:{},
readOnly:true
),
a!integerField(
value: fv!item['recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{e78c5b35-026f-4713-8404-05077c6c9152}Cantidad'],
saveInto: {
},
required: true,
readOnly:true,
validations: {
}
),
a!floatingPointField(
value: fv!item['recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{47f4bf32-2e41-4c5a-a7e7-9fc7786bd753}PrecioUnit'],
saveInto: {},
required: true,
readOnly:true,
validations: {
}
),
a!floatingPointField(
value: fv!item['recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{beb59a89-a332-46d3-b718-a8285f58f942}Importe'],
saveInto: {
},
required: true,
readOnly:true,
validations: {
},
align: "RIGHT"
),
a!integerField(
value: fv!item['recordType!{495578a9-1b23-4253-8145-6418faabe727}CPF Lineas Pedido.fields.{bd0fe4ca-322c-422e-89e5-97e5194817a1}CantRecepAcum'],
saveInto: { fv!item['recordType!{20fd7d81-a6d6-4fee-9219-afab0a7df2e4}CPF Lineas Recepciones.fields.{5b2d9770-999d-481c-927b-a2d7fc000098}CantidadRecep']
}
),
a!richTextDisplayField(
value: {
a!richTextIcon(
icon: "times-circle",
link: a!dynamicLink(
value: remove(local!DatosLineas, fv!index),
saveInto: local!DatosLineas
),
linkstyle: "STANDALONE",
color: "NEGATIVE"
)
}
)
}
)
)
)
}
),
a!buttonLayout(
primaryButtons: {
a!buttonWidget(
label: "Completar Recepción",
saveInto:{ a!save(
/*cambiar por recordLineasRecepciones*/
ri!recordLineasRecep,
local!DatosLineas
)
},
submit: true,
style: "PRIMARY",
validate: true
)
},
secondaryButtons: {
a!buttonWidget(
label: "Cancelar",
value: true,
saveInto: ri!cancel2,
submit: true,
style: "NORMAL",
validate: false
)
}
)
}
)