Buenazo lo que indicas!!! Pero si tienes dos fuentes de data, es decir, tu formulario tiene dos fuentes distintas de sharepoint, que le pones en Patch? las dos tablas o cómo hacemos?
Amigo, al guardar esa colección y el ID del producto en otra tabla ¿No estariamos redundando datos? ¿Cómo puedo almacenar en una colección un campo relacionado, como por ejemplo de una lista desplegable y que alguardar esa colección, el dato siga siendo relacionado y no un valor nuevo? esto para evitar redundancia
Hola hermano, que buenos videos, gracias por compartir el conocimiento. Ehh, tengo una duda, no sé si me puedas ayudar. Tengo 2 tablas, una es tblVenta y la otra es tblDetalleDeVenta, lo que quiero hacer es que se me registe el dato general de la venta en tblVenta donde tendrá el valor total y cliente; en tblDetalleDeVenta quiero que se guarde ya más a detalle, por ejemplo los productos, cantidad y precio, sin embargo, uiero poner en mi tblDetalleDeventa el Id de la tblVenta ¿Cómo puedo hacer esto si estoy guardando datos en simultaneo y aun no sé cual es el ID de tblVenta? la idea de esto es poder agrupar los detalles de venta y luego pueda hacer mayor analisis de esto, sería algo muy similar a lo que tienes como una especie de carrito con las colecciones, pero no sé como hacerlo, espero puedas ayudarme, un saludo!
voy a poner luz en tu camino amigo. Lo que le falta contar en este video es que la funcion patch puede devolver un valor. De la siguiente manera: Set(_idDevuelto; Patch(ErrorsOnReport; Defaults(ErrorsOnReport); { Report_Name:_reportName; Description:txtDescription_1.Text; Date:Today() } ).Id );; Lo que hace la funcion patch es devolver ".Id" e introducir ese valor en "_idDevuelto". La tabla de mi base de datos tiene una columna/campo que se llama "Id". Este es un valor que se genera automatico e incrementa 1 a 1, por eso no lo inserto en el patch. Se podría devolver cualquier otra columna de la tabla. Te apunto otra cosa muy interesante La funcion Patch tambien devuelve si ha insertado el registro de manera satisfactoria o no. Entonces puedes hacer un control de errores cuando haces un patch IfError(Patch( bla bla bla ) ;Notify("Error ocurred while saving. Message: " & FirstError.Message & ". Kind: " & FirstError.Kind & ". Observed: " & FirstError.Observed;NotificationType.Error; 16000); Notify("Saved successfully";NotificationType.Success;16000);; Basicamente lo que haces es preguntar si la funcion patch ha dado algun error. Si la da lanzas un Notify de error y si no lo da lanzas uno positivo. Ojo, si copias y pegas el codigo podria faltarte algun parentesis de cierre. Lo he copiado y pegado de uno de mis codigos y te confirmo que funciona perfect
Una vez que ya tienes recogido el Id de la tabla que quieres, puedes hacer otro patch. Con el control de errores puedes hacer el segundo patch, solo si el primero ha resultado satisfactorio.
Hola Cesar! Gran contenido! Tenia una consulta… si tengo un pequeño formulario para crear un nuevo registro y quiero recoger por fuera dos etiquetas de texto como lo concatenaria todo en un unico nuevo registro
Hola, te dejo link a documentación de microsoft para las funciones de concatenar y poder hacerlo con las etiquetas de texto que mencionas. Saludos learn.microsoft.com/en-us/power-platform/power-fx/reference/function-concatenate
Cesar Crack! gracias por compartir tu conocimiento, me queda una duda ojalá logres leer este mensaje... Me gustaria saber, luego de registrar varios datos en una lista de SharePoint, como hago para que me muestre en un formulario o en cada campo "el ultimo registro creado"? teniendo en cuenta que registraré varios datos diarios, dia a dia, pero quiero que me traiga o muestre el ultimo creado de la lista de SharePoint en un formulario. Muchas gracias en avanzada por responder.
Hola Cesar buenas tardes. Consulta: Para la función Patch en el caso de Lookup, con que atributo puedo actualizar los registros de forma automática. Ej: En tu caso LOOKUP (Pedidos - Patch; ID = 1) En ese caso en particular sólo te cambiara ese unico registro. Mi consulta es como hacer para que ese "1" cambie automáticamente según cada registro o ID, para que lo asocie automáticamente. se Podra? Intente con LOOKUP(Pedidos - patch; ID = ""), pero no me toma registors automáticos. Quedo atento y gracias desde ya.
Hola Rubén Para el caso de la actualización como tal ya existe el registro dentro de la base de datos por lo cual ya cuenta con ID Puede que tengas una galería la cual selecciones y te lleve a un formulario Patch(tubasedatos; lookup(tubasedatos; ID=galeria.selected.id)
No se si te entiendo bien. Si lo que tienes es una lista concreta de registros que quieres cambiar y tienes los Id de cada registro metidos en una coleccion (por ejemplo). Puedes recorrer esa coleccion con un ForAll() y con cada uno hacer un Patch. mira: ForAll(ListNumber; IfError( Patch('Mi tabla';LookUp('Mi table'; ID=ThisRecord.Value); { Campo1: valor1; Campo2: valor2
} ); Notify("Error ocurred while saving users into table Training-Users. Message: " & FirstError.Message & ". Kind: " & FirstError.Kind & ". Observed: " & FirstError.Observed;NotificationType.Error; 6000); Notify("Mesagge sent successfully";NotificationType.Success;6000) ) ) Tengo una lista de id recogida en ListNumber. Con ForAll recorro esa lista y cada valor de la lista lo tienes en ThisRecord.Value. Entonces, recorres la lista y con ThisRecord.Value buscas ese registro en la tabla con LookUp y si lo encuentra, haces patch. ifError es un control de errores. La funcion patch devuelte false si no consiguio hacer el patch y true si el resultado fue positivo.
Tengo una base de datos relacional en SQL con diferentes tablas , necesito editar unos campos de esa base y igualmente agregar nuevos registros pero que van a relacionados a diferentes tablas . Puedes ayudarme con eso
@@JuanCamiloRamosCamacho ya pude guardar lista deplegables e imagen , en lista selected.text y en imagen es .image o la camara es .camera (al guardar una foto o imagen en la lista de sharepoint debe estar como imagen para que pueda guardarse
Hola! muchas gracias por la información, tengo una duda, ya logré que la aplicación guarde los registros, pero al ingresar uno nuevo, me sigue mostrando la información del registro anterior, como hago para que se limpie el formulario? para que se ingrese un nuevo registro
Buenazo lo que indicas!!! Pero si tienes dos fuentes de data, es decir, tu formulario tiene dos fuentes distintas de sharepoint, que le pones en Patch? las dos tablas o cómo hacemos?
ha hora eres mi persona favorita, parce que bn explicas
Hola Juan gracias por el comentario
Amigo, al guardar esa colección y el ID del producto en otra tabla ¿No estariamos redundando datos? ¿Cómo puedo almacenar en una colección un campo relacionado, como por ejemplo de una lista desplegable y que alguardar esa colección, el dato siga siendo relacionado y no un valor nuevo? esto para evitar redundancia
Hola hermano, que buenos videos, gracias por compartir el conocimiento.
Ehh, tengo una duda, no sé si me puedas ayudar.
Tengo 2 tablas, una es tblVenta y la otra es tblDetalleDeVenta, lo que quiero hacer es que se me registe el dato general de la venta en tblVenta donde tendrá el valor total y cliente; en tblDetalleDeVenta quiero que se guarde ya más a detalle, por ejemplo los productos, cantidad y precio, sin embargo, uiero poner en mi tblDetalleDeventa el Id de la tblVenta ¿Cómo puedo hacer esto si estoy guardando datos en simultaneo y aun no sé cual es el ID de tblVenta? la idea de esto es poder agrupar los detalles de venta y luego pueda hacer mayor analisis de esto, sería algo muy similar a lo que tienes como una especie de carrito con las colecciones, pero no sé como hacerlo, espero puedas ayudarme, un saludo!
voy a poner luz en tu camino amigo. Lo que le falta contar en este video es que la funcion patch puede devolver un valor. De la siguiente manera:
Set(_idDevuelto;
Patch(ErrorsOnReport; Defaults(ErrorsOnReport);
{
Report_Name:_reportName;
Description:txtDescription_1.Text;
Date:Today()
}
).Id
);;
Lo que hace la funcion patch es devolver ".Id" e introducir ese valor en "_idDevuelto". La tabla de mi base de datos tiene una columna/campo que se llama "Id". Este es un valor que se genera automatico e incrementa 1 a 1, por eso no lo inserto en el patch. Se podría devolver cualquier otra columna de la tabla.
Te apunto otra cosa muy interesante
La funcion Patch tambien devuelve si ha insertado el registro de manera satisfactoria o no. Entonces puedes hacer un control de errores cuando haces un patch
IfError(Patch(
bla bla bla
)
;Notify("Error ocurred while saving. Message: " & FirstError.Message & ". Kind: " & FirstError.Kind & ". Observed: " & FirstError.Observed;NotificationType.Error; 16000);
Notify("Saved successfully";NotificationType.Success;16000);;
Basicamente lo que haces es preguntar si la funcion patch ha dado algun error. Si la da lanzas un Notify de error y si no lo da lanzas uno positivo.
Ojo, si copias y pegas el codigo podria faltarte algun parentesis de cierre. Lo he copiado y pegado de uno de mis codigos y te confirmo que funciona perfect
Una vez que ya tienes recogido el Id de la tabla que quieres, puedes hacer otro patch. Con el control de errores puedes hacer el segundo patch, solo si el primero ha resultado satisfactorio.
Hola Cesar! Gran contenido! Tenia una consulta… si tengo un pequeño formulario para crear un nuevo registro y quiero recoger por fuera dos etiquetas de texto como lo concatenaria todo en un unico nuevo registro
Hola, te dejo link a documentación de microsoft para las funciones de concatenar y poder hacerlo con las etiquetas de texto que mencionas. Saludos
learn.microsoft.com/en-us/power-platform/power-fx/reference/function-concatenate
Excelente video. Saludos
Cesar Crack! gracias por compartir tu conocimiento, me queda una duda ojalá logres leer este mensaje... Me gustaria saber, luego de registrar varios datos en una lista de SharePoint, como hago para que me muestre en un formulario o en cada campo "el ultimo registro creado"? teniendo en cuenta que registraré varios datos diarios, dia a dia, pero quiero que me traiga o muestre el ultimo creado de la lista de SharePoint en un formulario. Muchas gracias en avanzada por responder.
Hola Cesar buenas tardes. Consulta: Para la función Patch en el caso de Lookup, con que atributo puedo actualizar los registros de forma automática. Ej: En tu caso LOOKUP (Pedidos - Patch; ID = 1) En ese caso en particular sólo te cambiara ese unico registro. Mi consulta es como hacer para que ese "1" cambie automáticamente según cada registro o ID, para que lo asocie automáticamente. se Podra? Intente con LOOKUP(Pedidos - patch; ID = ""), pero no me toma registors automáticos. Quedo atento y gracias desde ya.
Hola Rubén
Para el caso de la actualización como tal ya existe el registro dentro de la base de datos por lo cual ya cuenta con ID
Puede que tengas una galería la cual selecciones y te lleve a un formulario
Patch(tubasedatos; lookup(tubasedatos; ID=galeria.selected.id)
No se si te entiendo bien. Si lo que tienes es una lista concreta de registros que quieres cambiar y tienes los Id de cada registro metidos en una coleccion (por ejemplo). Puedes recorrer esa coleccion con un ForAll() y con cada uno hacer un Patch.
mira:
ForAll(ListNumber;
IfError( Patch('Mi tabla';LookUp('Mi table'; ID=ThisRecord.Value);
{
Campo1: valor1;
Campo2: valor2
}
);
Notify("Error ocurred while saving users into table Training-Users. Message: " & FirstError.Message & ". Kind: " & FirstError.Kind & ". Observed: " & FirstError.Observed;NotificationType.Error; 6000);
Notify("Mesagge sent successfully";NotificationType.Success;6000)
)
)
Tengo una lista de id recogida en ListNumber. Con ForAll recorro esa lista y cada valor de la lista lo tienes en ThisRecord.Value. Entonces, recorres la lista y con ThisRecord.Value buscas ese registro en la tabla con LookUp y si lo encuentra, haces patch. ifError es un control de errores. La funcion patch devuelte false si no consiguio hacer el patch y true si el resultado fue positivo.
que formula usas para sumar los productos de tu carro de compras?
Tengo una base de datos relacional en SQL con diferentes tablas , necesito editar unos campos de esa base y igualmente agregar nuevos registros pero que van a relacionados a diferentes tablas . Puedes ayudarme con eso
También tengo el problema como lo solucionasteM
Hola Cesar! que pasaría si yo tengo en la base de datos un campo de opción? Como transformaría el dato para poder ser almacenado?
Yo tambien tengo esa duda por que me marca error 😢
esperemos nos de una respuesta pero en mi caso me toco volverlos una lista ya que agrego una imagen
@@JuanCamiloRamosCamacho ya pude guardar lista deplegables e imagen , en lista selected.text y en imagen es .image o la camara es .camera (al guardar una foto o imagen en la lista de sharepoint debe estar como imagen para que pueda guardarse
Hola! muchas gracias por la información, tengo una duda, ya logré que la aplicación guarde los registros, pero al ingresar uno nuevo, me sigue mostrando la información del registro anterior, como hago para que se limpie el formulario? para que se ingrese un nuevo registro
Tienes que actualizar el formulario
Puedes usar la función newform(). Saludos
Gracias
Hola Jesús, con mucho gusto
Hola, y si tengo un campo de correo electronico?