Remove parechild, when parent is removed

Hello friends, here again, a few days ago I asked how to avoid deleting parents if they have parechild and @Joseph_Seddik resolved the question, now my question is the following:

Suppose I am doing a job (parent) that has many tasks (parentchild). After all tasks are completed, a task status such as "FINISHED" is displayed.

What I want to do is allow the work (parent) to be deleted only if the status is "FINISHED" and that in that joint action the childs are also deleted to.
Does anyone know how to do this?
Greetings good day to all

Solved Solved
1 9 341
2 ACCEPTED SOLUTIONS

Hola Gus --<@ 🙂 

Consideremos este ejemplo:

  • Tabla Ciudades (tabla referente), tiene una columna de tipo Ref (columna referente) que hace referencia a la tabla: Países.

  • Tabla Países (tabla referenciada), su columna key es la columna referenciada


La opción Is part of se muestra cuando la columna es de tipo Ref. Si esta opción está activada, cuando se elimine una fila x en la tabla referenciadapor una Action de la app, se eliminará. también cualquier fila en la tabla referente donde el valor de su columna referente coincida con el valor de la columna referenciada en la fila x que ha sido eliminada.

¿La razón? Porque hemos indicado que una ciudad no puede existir en nuestra base de datos, sin pertenecer a un país que existe también en la misma base de datos. 

Capture d’écran 2022-04-02 à 01.17.05.png

View solution in original post

Hola Gus,

La solución como descrito arriba no va a mejorar el tiempo de sinc; porque las tablas de archivo, mientras que no estén visibles al usuario, seguirán siendo cargadas en la app. Si el objetivo de este archivado es mejorar el tiempo de la sincronización, propongo una de las soluciones siguientes:

  • 1. Activar la opción Delta Sync. Así las tablas se cargarán solamente una vez al día (si el archivado es diario).
  • 2. Utilizar los Security Filters, para no cargar filas con una cierta antigüedad.
  • 3. Implementar el archivado por Apps Scripts, que no debería ser complicado. 

View solution in original post

9 REPLIES 9

For the condition to delete, it is exactly the same, so instead of ISBLANK(), you put [status] = “Finished”. That you already know 🙂

When you have the option Is part of checked, if the parent record is deleted by an app delete action, the corresponding child record should also be automatically deleted. 

As a general practice, you wouldn’t want to delete records, instead, you should move them to a static, hidden, no-ref Archive table, or at least move the significant static columns of the record to that table. The Archive table would have a retention period that in some cases would be required by law, but even if it is not the case, for the best interest of the business, in several aspects, you should not eliminate records without an appropriate retention period. 

This is done by creating an action to move the record to the Archive, hide the system Delete action, and replace it by a Group Action comprising of the Archive action then the system Delete action. 

Me parece una práctica muy seria, dado que si un usuario desea recuperar algún dato, tendría la posibilidad de hacerlo. Estoy tratando de terminar el UX de la app, así que cuando termine voy a crear esa tabla y esa acción porque si me interesa Joseph, realmente es muy valioso poder hacer eso! Gracias por el consejo

Sí, sin embargo ese archivado era más bien para la dirección que el usuario. Sí te lo atreves 🙂 podrías hacerlo aún en dos etapas: una papelera de unos días que permitiría una recuperación, luego el archivado. 

¿Has probado la opción Is part of

@Joseph_Seddik Cómo estás! Buen día!

Sí! es una idea genial! para el director de la app obvio, por si a alguien le interesa recuperar datos que éste pueda tener a mano una papelera de reciclaje.

Respecto de la condición "Is part of ", me queda la duda de cómo funciona, la he visto y he estado tratando de entender cómo funciona. Lo que yo entiendo es que al borrar un registro de la lista dependiente el resto se borra, sin embargo no se si entendí bien y no se a qué aplicarle la condición si al parent o al parenchild.

Buen día Joseph! voy a volver sobre este tema a hacer una consulta aparte en appsheet por si alguien ha hecho una papelera de reciclaje y eliminación automática de filas pasado un tiempo. Esto sería muy útil para la sincronización de las bases.

Hola Gus --<@ 🙂 

Consideremos este ejemplo:

  • Tabla Ciudades (tabla referente), tiene una columna de tipo Ref (columna referente) que hace referencia a la tabla: Países.

  • Tabla Países (tabla referenciada), su columna key es la columna referenciada


La opción Is part of se muestra cuando la columna es de tipo Ref. Si esta opción está activada, cuando se elimine una fila x en la tabla referenciadapor una Action de la app, se eliminará. también cualquier fila en la tabla referente donde el valor de su columna referente coincida con el valor de la columna referenciada en la fila x que ha sido eliminada.

¿La razón? Porque hemos indicado que una ciudad no puede existir en nuestra base de datos, sin pertenecer a un país que existe también en la misma base de datos. 

Capture d’écran 2022-04-02 à 01.17.05.png

Buen día Joseph! Excelente Explicación, más claro imposible. Perdón la demora en la respuesta. Muchas gracias desde ya!

Hola Gus,

La solución como descrito arriba no va a mejorar el tiempo de sinc; porque las tablas de archivo, mientras que no estén visibles al usuario, seguirán siendo cargadas en la app. Si el objetivo de este archivado es mejorar el tiempo de la sincronización, propongo una de las soluciones siguientes:

  • 1. Activar la opción Delta Sync. Así las tablas se cargarán solamente una vez al día (si el archivado es diario).
  • 2. Utilizar los Security Filters, para no cargar filas con una cierta antigüedad.
  • 3. Implementar el archivado por Apps Scripts, que no debería ser complicado. 

Genial Joseph! Voy a probar, es bueno saberlo. Esto para mi es nuevo!

Agradezo tu respuesta que tengas un excelente día.

Top Labels in this Space