Formula is working slow

Hi! I have an app of a trasnport company.
This formula generates notifications depending certain conditions and dates.
It is calculating slow, I enter to the view and takes some seconds to calculate. 
¿How can I improve the performance? 😅

IF(and(not([F. Descarga (Estimada/Confirmada)]),[Fecha de descarga]<=today()),"Atencion pendiente confirmar descarga",
if(and(not([F. Arribo a Lugar de Desc. (Estimada/Confirmada)]),[Fecha arribo a Lugar de Descarga]<=today()),"Atencion pendiente confirmar arribo a lugar de descarga",
if(and(not([F. Lib. Aduana Destino (Estimada/Confirmada)]),[Fecha liberacion Aduana Destino]<=today()),"Atencion pendiente confirmar liberacion aduana destino",
if(and(not([F. Arribo a aduana destino (Estimada/Confirmada)]),[Fecha arribo a Aduana Destino]<=today()),"Atencion pendiente confirmar arribo a aduana destino",
if(and(not([F. Lib. Aduana Origen (Estimada/Confirmada)]),[Fecha liberacion Aduana Origen]<=today()),"Atencion pendiente confirmar liberacion aduana origen",
if(and(not([F. Arribo a aduana origen (Estimada/Confirmada)]),[Fecha arribo a Aduana Origen]<=today()),"Atencion pendiente confirmar arribo a aduana origen",
if(and(not([F. Carga Trasbordo (Estimada/Confirmada)]),[Fecha de Carga Trasbordo]<=today()),"Atencion pendiente confirmar fecha de carga trasbordo",
if(and(not([F. Desc. Trasbordo (Estimada/Confirmada)]),[Fecha de Descarga Trasbordo]<=today()),"Atencion pendiente confirmar fecha de descarga trasbordo",
if(and(not([F. Embarque (Estimada/Confirmada)]),[Fecha embarque]<=today()),"Atencion pendiente confirmar fecha de embarque",
if(and(not([F. Arribo a Lugar de Carga (Estimada/Confirmada)]),[Fecha de arribo a Lugar de Carga]<=today()),"Atencion pendiente confirmar fecha de arribo a lugar de carga","Sin notificaciones"))))))))))

Solved Solved
0 7 187
1 ACCEPTED SOLUTION


@nicolasfsamaja wrote:

Aunque no obstante cuando entro a la vista, me activa el boton de Sync y demora la operacion unos 3 segundos.

No es terrible pero seria genial resolverlo.


Usar una columna real y actualizar la fila cuando la selecciones usando una acción previa a abrir la vista detail. Se vería instantáneamente, pero no se actualizarían todas las filas al sincronizar, sino solamente cuando la fila cambie

View solution in original post

7 REPLIES 7

Qué tal.
Dónde ocupas esta expresión?
Por favor compártenos los tipo de columna de cada campo.

PD: Parece que trabajamos en la misma industria 🤔. De dónde eres?

Hola! Es un campo calculado en mi tabla principal. 
Los demas campos son: arribo confirmar? (si/no) y fecha de arribo (date)
Nececito que calcule contra la fecha de hoy siempre.

Soy de buenos aires argentina, y vos?

 

 

Qué tal Nicolás, soy de Chile. Hice un ERP completo en AppSheet para el departamento de operaciones y logística de la empresa exportadora de fruta fresca en la que trabajo (aunque lo diseñé para la anterior en la que me encontraba), por eso me pareció similar.

Creo que el problema es que estás usando las formulas IF() como lo harías en GSheets/MSExcel.
Lo noté una vez que reformateé tu expresión:

Show More
IF(
  and(
    not([F. Descarga (Estimada/Confirmada)]),
    [Fecha de descarga]<=today()
  ),
  "Atencion pendiente confirmar descarga",
  if(
    and(
      not([F. Arribo a Lugar de Desc. (Estimada/Confirmada)]),
      [Fecha arribo a Lugar de Descarga]<=today()
    ),
    "Atencion pendiente confirmar arribo a lugar de descarga",
    if(
      and(
        not([F. Lib. Aduana Destino (Estimada/Confirmada)]),
        [Fecha liberacion Aduana Destino]<=today()
      ),
      "Atencion pendiente confirmar liberacion aduana destino",
      if(
        and(
          not([F. Arribo a aduana destino (Estimada/Confirmada)]),
          [Fecha arribo a Aduana Destino]<=today()
        ),
        "Atencion pendiente confirmar arribo a aduana destino",
        if(
          and(
            not([F. Lib. Aduana Origen (Estimada/Confirmada)]),
            [Fecha liberacion Aduana Origen]<=today()
          ),
          "Atencion pendiente confirmar liberacion aduana origen",
          if(
            and(
              not([F. Arribo a aduana origen (Estimada/Confirmada)]),
              [Fecha arribo a Aduana Origen]<=today()
            ),
            "Atencion pendiente confirmar arribo a aduana origen",
            if(
              and(
                not([F. Carga Trasbordo (Estimada/Confirmada)]),
                [Fecha de Carga Trasbordo]<=today()
              ),
              "Atencion pendiente confirmar fecha de carga trasbordo",
              if(
                and(
                  not([F. Desc. Trasbordo (Estimada/Confirmada)]),
                  [Fecha de Descarga Trasbordo]<=today()
                ),
                "Atencion pendiente confirmar fecha de descarga trasbordo",
                if(
                  and(
                    not([F. Embarque (Estimada/Confirmada)]),
                    [Fecha embarque]<=today()
                  ),
                  "Atencion pendiente confirmar fecha de embarque",
                  if(
                    and(
                      not([F. Arribo a Lugar de Carga (Estimada/Confirmada)]),
                      [Fecha de arribo a Lugar de Carga]<=today()
                    ),
                    "Atencion pendiente confirmar fecha de arribo a lugar de carga",
                    "Sin notificaciones"
                  )
                )
              )
            )
          )
        )
      )
    )
  )
)

Por favor, considera esta opción:

IFS(
  AND(
    NOT([F. Descarga (Estimada/Confirmada)]),
    [Fecha de descarga]<=TODAY()
  ),
  "Atencion pendiente confirmar descarga",
  AND(
    NOT([F. Arribo a Lugar de Desc. (Estimada/Confirmada)]),
    [Fecha arribo a Lugar de Descarga]<=TODAY()
  ),
  "Atencion pendiente confirmar arribo a lugar de descarga",
  AND(
    NOT([F. Lib. Aduana Destino (Estimada/Confirmada)]),
    [Fecha liberacion Aduana Destino]<=TODAY()
  ),
  "Atencion pendiente confirmar liberacion aduana destino",
  AND(
    NOT([F. Arribo a aduana destino (Estimada/Confirmada)]),
    [Fecha arribo a Aduana Destino]<=TODAY()
  ),
  "Atencion pendiente confirmar arribo a aduana destino",
  AND(
    NOT([F. Lib. Aduana Origen (Estimada/Confirmada)]),
    [Fecha liberacion Aduana Origen]<=TODAY()
  ),
  "Atencion pendiente confirmar liberacion aduana origen",
  AND(
    NOT([F. Arribo a aduana origen (Estimada/Confirmada)]),
    [Fecha arribo a Aduana Origen]<=TODAY()
  ),
  "Atencion pendiente confirmar arribo a aduana origen",
  AND(
    NOT([F. Carga Trasbordo (Estimada/Confirmada)]),
    [Fecha de Carga Trasbordo]<=TODAY()
  ),
  "Atencion pendiente confirmar fecha de carga trasbordo",
  AND(
    NOT([F. Desc. Trasbordo (Estimada/Confirmada)]),
    [Fecha de Descarga Trasbordo]<=TODAY()
  ),
  "Atencion pendiente confirmar fecha de descarga trasbordo",
  AND(
    NOT([F. Embarque (Estimada/Confirmada)]),
    [Fecha embarque]<=TODAY()
  ),
  "Atencion pendiente confirmar fecha de embarque",
  AND(
    NOT([F. Arribo a Lugar de Carga (Estimada/Confirmada)]),
    [Fecha de arribo a Lugar de Carga]<=TODAY()
  ),
  "Atencion pendiente confirmar fecha de arribo a lugar de carga",
  TRUE,
  "Sin notificaciones"
)

 

Sin dudas esta funcion es mucho mas eficiente.

Aunque no obstante cuando entro a la vista, me activa el boton de Sync y demora la operacion unos 3 segundos.

No es terrible pero seria genial resolverlo.

Tienes alguna otra idea? MIL GRACIAS!!!!

Image 1 inicial, Image 2 unos segundos despues.

nicolasfsamaja_0-1700162009127.png

nicolasfsamaja_1-1700162030193.png

 

 


@nicolasfsamaja wrote:

Aunque no obstante cuando entro a la vista, me activa el boton de Sync y demora la operacion unos 3 segundos.

No es terrible pero seria genial resolverlo.


Usar una columna real y actualizar la fila cuando la selecciones usando una acción previa a abrir la vista detail. Se vería instantáneamente, pero no se actualizarían todas las filas al sincronizar, sino solamente cuando la fila cambie

Hay posibilidad de pedirle que todos los dias lo recalcule? En una version no paga es posible? gracias!!!


@nicolasfsamaja wrote:

En una version no paga es posible?


No

Top Labels in this Space