Anveo Mobile App / Best Practices / Wie man mit FlowFields umgeht
This is an automatic translation. The original post is available in Englisch.

Wie man mit FlowFields umgeht

Die Berechnung von FlowFields nimmt in Microsoft Dynamics 365 Business Central viel Zeit in Anspruch, so dass Sie nicht bei jeder Synchronisation alle FlowFields aktualisieren können. Es wird auch nicht empfohlen, RECALCFIELDS nach jeder Buchungsroutine auszuführen. Dies würde zu einem langen Synchronisationsprozess führen, der nicht gut für die Benutzerfreundlichkeit ist. Für FlowFields stehen weitere Optionen zur Verfügung.

Nächtliche Neuberechnung von FlowFields

Wir empfehlen, in Ihrer Microsoft Dynamics 365 Business Central-Tabelle ein neues, normales Feld anzulegen, das den Wert speichert, den Sie an den Benutzer senden möchten. In einer nächtlichen Aufgabe berechnen Sie das FlowField neu. Wenn sich der Wert geändert hat, aktualisieren Sie Ihr neues Feld und führen Sie eine “MODIFY“. Dadurch wird der Datenverkehr deutlich reduziert.

Beantragung einer Nachkalkulation

Manchmal ist es erforderlich, dass Live-Daten verfügbar sind. In diesem Fall können Sie einen erneuten Versand von FlowField anfordern. Dazu ist natürlich eine Online-Verbindung erforderlich. Der erste Schritt besteht darin, eine Schaltfläche in Ihrer Benutzeroberfläche mit einem Aktionscode zu versehen, der Ihr FlowField markiert. Eine Synchronisation wird sofort gestartet.

Rec:SETVALUE('Inventory', Rec:GETVALUE('Inventory'));
Rec:MODFIY(TRUE);
SYNC_DB();
Beispiel für einen Anveo-Skriptcode, um FlowField Inventory des Tabellenelements zu markieren.

Wenn Sie das nächste Mal synchronisieren, können Sie die Neuberechnung in der Codeunit ACF App Events durchführen.

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-Codebeispiel zur Neuberechnung des FlowField Inventory des Tabellenelements.