Hi,
Zwickmühle:
Ein Server-Agent (also Backend) läuft nicht mit den ui-Funktionalitäten, um hier Dokumente zu aktualisieren gibt es nur ComputeWithForm.
ComputeWithForm greift allerdings nicht bei @DBColumn, @DBLookup etc.
Als sog. 'Lösung' wird im www immer wieder vorgeschlagen, die @DBLookups halt im Script zu integrieren.
Dies möchte ich hier aber nicht.
Jetzt habe ich mir überlegt, parallel einen Agenten laufen zu lassen, der @Command([ToolsRefreshSelectedDocs]) macht.
Problem:
Damit wird jedes Dokument für die Replizierung wieder aktiviert, obwohl aber oft keine Änderungen stattfinden (wenn DBLookup-Feld gleich bleibt).
Daher wollte ich jetzt im Maskenkopf ein Hidden Field einsetzen, dass die DBLookup-Felder ausliest. Dann im Maskenfuß im Feld "Replication" eine Formel a la
_Checker := ReplicationCheck;
_AllFields := (... Liste von Feldern ...)
@If(_Checker != _AllFields;
"Yes";
"No"
)
Dann aber klappt es nur wenn der Agent @Command([ToolsRefreshSelectedDocs]) läuft, geht man manuell ins Dokument, wird immer "No" angezeigt.
Daher habe ich übers Postopen-Event zusätzlich schon getestet um die aktuellen Feldinhalte in ein weiteres Feld zu schreiben für Vergleich, ohne Erfolg.
Was will ich überhaupt:
- Dokumente sollen regelmäßig aktualisiert werden aufgrund enthaltener @DBLookup-Felder
- es soll nur repliziert werden wenn sich tatsächlich was geändert hat (getriggert über Feld "Replication" = "Yes" )
Ich bezweifle nun stark meinen Ansatz hier. Hat vielleicht jem. eine andere Idee?
TMC
<Dialekt lang = "Kannaksch">
hey Du vollkrasser Coder!!! thanks !!!
</Dialekt>
(auch wenn sich bedanken uncool ist :-))
Klappt Deine Funktion auch bei sowas?
_5 := @Left(No; 5);
_4 := @Left(No; 4);
_3 := @Left(No; 3);
_2 := @Left(No; 2);
_1 := @Left(No; 1);
_TempLookup5 := @DbLookup( "Notes" : "NoCache" ; "" : "" ; "(LookupZIP)" ; _5 ; 2 );
_TempLookup4 := @DbLookup( "Notes" : "NoCache" ; "" : "" ; "(LookupZIP)" ; _4 ; 2 );
_TempLookup3 := @DbLookup( "Notes" : "NoCache" ; "" : "" ; "(LookupZIP)" ; _3 ; 2 );
_TempLookup2 := @DbLookup( "Notes" : "NoCache" ; "" : "" ; "(LookupZIP)" ; _2 ; 2 );
_TempLookup1 := @DbLookup( "Notes" : "NoCache" ; "" : "" ; "(LookupZIP)" ; _1 ; 2 );
@If(
!@IsError(_TempLookup5);
_TempLookup5;
!@IsError(_TempLookup4);
_TempLookup4;
!@IsError(_TempLookup3);
_TempLookup3;
!@IsError(_TempLookup2);
_TempLookup2;
!@IsError(_TempLookup1);
_TempLookup1;
""
)
Der function nach sollte es.
Wäre die beste Alternative.
Danke,
TMC