Anveo Mobile App / Migliori pratiche / Come trattare con FlowFields
Questa è una traduzione automatica. Il messaggio originale è disponibile in Inglese.

Come trattare con FlowFields

Il calcolo di FlowFields richiede molto tempo nel , quindi non è possibile aggiornare tutti i FlowFields ogni volta che si esegue la sincronizzazione. Si raccomanda inoltre di non eseguire RECALCFIELDS dopo ogni invio di routine. Questo si tradurrebbe in un lungo processo di sincronizzazione che non è buono per l’esperienza utente. Ci sono altre opzioni disponibili per FlowFields.

Ricalcolo notturno di FlowFields

Si consiglia di creare un nuovo campo normale nella propria tabella che memorizza il valore che si desidera inviare all’utente. In un compito notturno si ricalcola il FlowField. Se il valore è cambiato, aggiorna il tuo nuovo campo e fai un comando ”MODIFY”. Questo riduce in modo significativo il traffico di dati.

L’uso di un Online Fields

È inoltre possibile utilizzare i campi online Online Fields per visualizzare il valore di FlowField. Il valore del campo verrà aggiornato automaticamente nell’applicazione indipendentemente dalla sincronizzazione. Per saperne di più sui Online Fields e su come configurarli qui.

Richiedi un Nuovo Calcolo

A volte è necessario disporre di dati in tempo reale. In questo caso, è possibile richiedere un nuovo invio dei dati di FlowField. Naturalmente, per farlo è necessaria una connessione online. Il primo passo è quello di fornire un pulsante nell’interfaccia utente con un Action Code che segna il tuo FlowField. Una sincronizzazione verrà avviata immediatamente.

Rec:SETVALUE('Inventory', Rec:GETVALUE('Inventory'));
Rec:MODFIY(TRUE);
SYNC_DB();
Un esempio di codice script di Anveo Script per contrassegnare FlowField Inventario dell’elemento della tabella.

La prossima volta che vi sincronizzate, potete fare il ricalcolo nell’codeunit ACF App Events.

CASE RecRef.NUMBER OF
// Other code here ...
DATABASE::Item: BEGIN
DeviceRecRef.SETTABLE(DeviceItem);
IF (DeviceFldRef.NUMBER = DeviceItem.FIELDNO(Inventory)) THEN BEGIN
//Recalculate FlowFields for this item
Item.SETRANGE("No.", DeviceItem."No.");
ItemRecRef.GETTABLE(Item);
Mgt.RECALCFIELDS(ItemRecRef);
// Do not change the current value "Inventory"
NAVAction := NAVAction::Ignore;
END;
END;
END;
C/AL Esempio di codice per ricalcolare FlowField Inventory dell’elemento della tabella.