Anveo Mobile App / Meilleures pratiques / Comment traiter avec FlowFields
C'est une traduction automatique. Le message original est disponible en Anglais.

Comment traiter avec FlowFields

Le calcul des FlowFields prend beaucoup de temps dans , vous ne pouvez donc pas mettre à jour tous les FlowFields à chaque synchronisation. Il n’est pas non plus recommandé d’exécuter RECALCFIELDS après chaque routine de comptabilisation. Il en résulterait un long processus de synchronisation, ce qui n’est pas bon pour l’expérience utilisateur. D’autres options sont disponibles pour FlowFields.

Recalcul nocturne des FlowFields

Nous vous recommandons de créer un nouveau champ normal dans votre table qui stocke la valeur que vous souhaitez envoyer à l’utilisateur. Dans une tâche nocturne, vous recalculez le FlowField. Si la valeur a changé, mettez à jour votre nouveau champ et faites un »MODIFY. Cela réduit considérablement le trafic de données.

Utilisation d’un Online Fields

Vous pouvez également utiliser les champs Online Fields pour afficher la valeur de FlowField. La valeur du champ sera automatiquement mise à jour dans l’application indépendamment de la synchronisation. Pour en savoir plus sur les Online Fields et comment les configurer, cliquez ici.

Demander un nouveau calcul

Il est parfois nécessaire de disposer de données en temps réel. Dans ce cas, vous pouvez demander un nouvel envoi des données FlowField. Bien entendu, une connexion en ligne est nécessaire pour ce faire. La première étape est de fournir un bouton dans votre interface utilisateur avec un code d’action qui marque votre FlowField. Une synchronisation sera lancée immédiatement.

Rec:SETVALUE('Inventory', Rec:GETVALUE('Inventory'));
Rec:MODFIY(TRUE);
SYNC_DB();
Anveo Script Code exemple de code pour marquer FlowField Inventory de l’élément de table.

La prochaine fois que vous synchroniserez, vous pourrez effectuer la recalulation dans les événements de l’application ACF codeunit.

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;
Exemple de code C/AL pour recalculer l’inventaire FlowField de l’élément de table.