Wie man mit FlowFields umgeht
Die Berechnung von FlowFields nimmt in Microsoft Dynamics NAV 2013R2 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 NAV 2013R2-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();
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;