Domino 9 und frühere Versionen > ND6: Entwicklung
Dokument kopieren, aber mit Änderungen
MadMetzger:
Programmiertechnisch macht es wenig Unterschied, ob du von Maske oder Ansicht aus die Kopierfunktion entwickelst. Bei geschickter Aufspaltung der Methoden kannst du sicherlich beides anbieten.
Zum Thema Ansicht: Es gibt "Shared Actions", die du einbinden kannst. Lagerst du dann den Code für das Kopieren etc in einen Agenten aus, kannst du eine "Shared Action" oder auch "gemeinsame Aktion" erstellen, die den passenden Agenten per @Command aufruft. Im Agenten passiert dann die eigentliche Arbeit. Bei "Shared Actions" habe ich mal von Unwägbarkeiten gelesen, die mir jetzt aber nicht mehr einfallen und wovon ich aber denke, dass durch das @Command und wenig Änderungen an der Action dort eigentlich wenig Probleme zu erwarten sind.
s_Old:
Man könnte auch einfach einen Agenten schreiben, der getriggert wird "Wenn Dokumente eingefügt werden".
Ist doch ein bisschen unkomplizierter ;)
iukhdh:
Na reichlichem Überlegen hab ich nun STRG+V abgeschaltet und einen Aktionsbutton mit Verweis auf einen Agenten erstellt, der das Dokument kopiert und verändert. Klappt ganz gut.
Danke für Eure Meinungen.
Ciao
Thomas
koehlerbv:
Was heisst "klappt ganz gut" (das lese ich hier öfters)? Klappt es - oder klappt es nicht? Dazwischen gibt es doch nichts ...
Bernhard
LN4ever:
Lieber Thomas,
der beste Vorschlag stammte von Sven. Dein Agent mit dem Trigger BEIM EINFÜGEN VON DOKUMENTEN kann z.B. so aussehen:
FIELD Ident:=@DeleteField
Wenn dein kopiertes Dokument sich das Feld IDENT als BERECHNET BEIM ANLEGEN mit der Formel @Unique erstellt, so wird es sich beim ersten Editieren mit der Maske genau diese IDENT-Nummer erzeugen.
BERECHNET BEIM ANLEGEN bezieht sich nämlich keineswegs auf das Dokument, sondern auf das Feld selbst.
Normalerweise mußt du aber noch ein paar mehr Felder ändern, löschen oder zurücksetzen.
Da dein Agent bei jedem Dokumenttyp ausgeführt wird, den du manuell im UI pastest, mußt du alle Eventualitäten bedenken, z.B. wenn du ein Archiv hast und Dokumente aus dem Archiv ab und zu zurückkopieren mußt, dann wäre die Formel eher:
@If(@UpperCase(status)="ARCHIVIERT";@Do(@SetField("Status";"Aktiv");@Return(""));"");
FIELD Ident:=@DeleteField
Gruß
Norbert
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln