Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: two7 am 15.05.06 - 23:36:50

Titel: Agent zum Aufräumen alter Variablen
Beitrag von: two7 am 15.05.06 - 23:36:50
Hallo,

habe mich dem Thema Entwicklung mit Lotus angenommen. Bin allerdings noch am Anfang.

Nun ist mir aufgefallen, dass wenn ich in einer Maske Felder anlege und später diese umbennene, dass noch die alten Feldnamen vorhanden sind.

Ein Kollege in der Firma hat mir erzählt, dass man diese durch einen Agenten löschen lassen kann, allerdings hab ich keinen Plan wie ich dies realisieren kann.

Würd mich über eine Hilfe von den Forumusern hier erfreuen.

Danke. two7
Titel: Re: Agent zum Aufräumen alter Variablen
Beitrag von: Untitled am 16.05.06 - 08:44:10
Hallo two7 und willkommen im Forum

Das geht ganz einfach mit einem Formelagenten. Den lässt du über alle Dokumente in der aktuellen View laufen (am Besten die View "AllDocuments" o.ä., damit du alle erwischst).

Die Formel lautet dann:
Code
FIELD zuloeschendesfeld := @DeleteField

Damit wird in jedem Dokument der View, das betreffende Feld gelöscht.

Grüsse
Moritz
Titel: Re: Agent zum Aufräumen alter Variablen
Beitrag von: Lossa am 16.05.06 - 09:04:32
hi,

wichtig ist aber das die Datenbank mittels compact -c komprimiert werden muss, sonst verschwinden die Felder nicht. Auch wenn Sie in keiner Maske, Ansicht u. Dokument mehr vorhanden sind.
Titel: Re: Agent zum Aufräumen alter Variablen
Beitrag von: Untitled am 16.05.06 - 09:07:05
Hi,

Was heisst "verschwinden nicht"? Also der Speicherplatz wird nicht freigegeben... oder?
Titel: Re: Agent zum Aufräumen alter Variablen
Beitrag von: umi am 16.05.06 - 09:11:45
Der Speicherplatz wird schon freigegeben, aber in der Referenz Spalte aller Felder (z.B. in einer Ansicht) sind die Felder dann immer noch sichtbar wenn du compact -c nicht machst
Titel: Re: Agent zum Aufräumen alter Variablen
Beitrag von: two7 am 16.05.06 - 10:36:11
vielen dank für die hilfe. werd das dann mal gleich ausprobieren.

schönen tag noch.

two7
Titel: Re: Agent zum Aufräumen alter Variablen
Beitrag von: LohCon am 15.08.06 - 18:00:41
dieses Thema würde ich gerne noch einmal kurz aufgreifen:

Alte Feldnamen bekämpfe ich auf die gleiche Weise, wie hier beschrieben.
Also Löschagent schreiben, über alle Dokumente laufen lassen und die Datenbank komprimieren mit der -c Option.

Trotzdem sind die Feldnamen noch z. B. in der Referenz für Datenbankfelder sichtbar.

Mir ist aufgefallen, dass die alten Feldnamen in den Eigenschaften des Gestaltungsdokumentes auftauchen, teilweise mit ein oder zwei Dollarzeichen davor. Das hängt wohl damit zusammen, das die Feldnamen in einem Scriptagenten in der Maske verwendet wurden oder ein Code in den Feldevents vorhanden war.

Da hilft nur noch: Neue Maske erstellen, Inhalt kopieren alte Maske löschen.
Danach verschwinden auch die Feldnamen endgültig aus der Datenbank.

Oder gibt es da noch einen Kniff???

LG, - Jörg
Titel: Re: Agent zum Aufräumen alter Variablen
Beitrag von: ata am 22.08.06 - 13:03:36
... zum grundsätzlichen Verständnis:

Es gibt einen Unterschied zwischen Feldern auf Masken und Feldern in Dokumenten.

Wird ein Feld aus einem Dokument gelöscht, dann hat das Dokument kein Feld mehr. Öffnest du es mit einer Maske, die dieses Feld hat, dann kann das Dokument natürlich wieder das Feld haben.

Beim compact wird das Feld erst dann aus der Referenz genommen, wenn kein Dokument und keine Maske mehr ein Feld mit diesem Namen haben...

Toni
Titel: Re: Agent zum Aufräumen alter Variablen
Beitrag von: LohCon am 23.08.06 - 17:21:47
Hallo Toni,

mein Posting zielte in eine etwas andere Richtung, ich versuche es mal anders ...

Wenn ich ein Feld aus einer MASKE lösche, und dann im Designer die Eigenschaften des Gestaltungsdokumentes öffne, wird das Feld noch aufgeführt. Teilweise doppelt und dreifach mit einem oder zwei $ - zeichen davor.
Ich habe mal einen Screenshot angehängt, der das verdeutlicht.
Die Felder al01_01 ff. gibt es in der Maske nicht mehr...

Hast Du eine Idee, woran das liegt?

Gruss, - Jörg
Titel: Re: Agent zum Aufräumen alter Variablen
Beitrag von: Lossa am 23.08.06 - 19:24:07
Hi,

wenn du in dem Feld in einen LS Script Event z.B. Entering etwas Programmiert hasst, dann wird das $$DeinFeldName angelegt, dort steht quasi der ScriptCode drin. Wenn du nun "einfach" das Feld löschst wird nicht der ScriptCode gelöscht sondern eben nur das Feld. Der Code alleine macht dann zwar nichts mehr, aber er ist in der Maske drin.

Also erst den Code löschen, den kompletten Event Inhalt markieren incl. Sub und end und dann löschen, speichern, dann erst das Feld löschen. Danach hast du keine $$DeinFeldName Felder mehr.

Titel: Re: Agent zum Aufräumen alter Variablen
Beitrag von: LohCon am 28.08.06 - 18:07:59
Das war's, danke Ulrich-Thomas ...