Autor Thema: Art des Design-Elements herausfinden?  (Gelesen 4635 mal)

Offline SD

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Art des Design-Elements herausfinden?
« am: 11.11.15 - 16:10:44 »
Guten Tag!

Gibt es zufällig einen Trick oder so, wie man man herausfinden kann, was für ein Design-Element man in den Fingern hat als NotesDocument?

Konkret erzeuge ich mit einem LotusScript-Agenten eine NotesNoteCollection mit allen Design-Elementen einer Datenbank und hole mir dann jedes davon als NotesDocument. Der Hauptzweck davon war eigentlich die Design-Signierer herauszufinden und zu prüfen, wo noch alte oder falsche Signaturen herumlungern. Es ist ja durchaus faszinierend/erschreckend, was man da so alles findet. Vor allem, was so alles offenbar nicht von "Sign all design elements" über den Admin-Client signiert wird. Außerdem haben Repliken signierte Elemente, die andere Repliken mit dieser Signatur nicht haben, etc., etc.

Einen Teil davon habe ich schon als persönliche Ansichten und Profildokumente identifiziert. Einiges ist mir aber ein Rätsel, was das überhaupt ist?! Das Feld $TITLE hilft bedingt weiter. Viele Design-Elemente haben dieses Feld gar nicht oder ich finde den Namen nicht, wenn ich mich im Designer durch die Datenbank klicke. Also würde mich jetzt schon ein wenig interessieren, was genau ich da in dem Moment eigentlich in den Fingern habe. Mir ist jetzt kein offensichtlicher Weg aufgefallen, wie ich herausfinden kann, ob das jetzt eine Form ist, oder ein Frameset, oder ein Image, oder sonstwas. Manche Design-Elemente haben Felder, die es nur bei ihnen gibt, aber damit bekomme ich auch nur bei einem Bruchteil heraus, was das denn nun ist. Gibt es da irgendeine Möglichkeit, wie ich zuverlässig herausbekomme, womit ich es zu tun habe?

Gruß
SD

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Art des Design-Elements herausfinden?
« Antwort #1 am: 11.11.15 - 16:17:53 »
Das ist leider nicht ganz so einfach, sondern im Gegenteil recht komplex.

Hier ist die Formel, die wir in einer Spalte einer Ansicht unserer Applikationen haben, die alle Design- Elemente anzeigt. (Wie man eine solche Ansicht erzeugt: "Fun with $FormulaClass" als Google Suche, Ergebnis z.B. hier:

Code
_mainCat := @If( 	$Flags = "34yQC" ; "14-SHARED ACTIONS" ;
		$Flags = "t34Q" ; "16-DATABASE SCRIPT" ;
		$Flags = "#34CQ" ; "06-FRAMESETS" ;
		$Flags = "345CgQ" ; "18-FILES" ;
		@Contains( $Flags ; "34Q" ) ; "15-SCRIPT-LIBRARIES" ;
		@Contains( $Flags ; "34Ci" ) ; "17-IMAGES" ;
		@Contains( $Flags ; "f" ) & @Contains( $Flags ; "3" ) ; "13-AGENTS" ;
		@Contains( $Flags ; "CU" ) & @Contains( $Flags ; "3" ) & @Contains( $Flags ; "x" ) ; "08-SUBFORMS" ;
		@Contains( $Flags ; "W" ) ; "07-PAGES" ;
		@Contains( $Flags ; "=" ) ; "19-STYLESHEETS" ;
		@Contains( $Flags ; "m" ) ; "11-OUTLINES" ;
		( @Contains( $Flags ; "Y" ) | @IsAvailable( $Collation ) ) ; @If( @Contains( $Flags ; "^" ) ; "10-COLUMNS" ; @Contains( $Flags ; "F" ) ; "03-FOLDERS" ; "02-VIEWS" ) ;
		$Flags = "X" ; "UNKNOWN" ;
		!($Fields != $Title) | ( (@Elements( $Fields ) = 1 | ( @IsUnavailable( $Fields ) & $Flags = "") ) & (@IsUnavailable($Comment) ) ) ; "09-FIELDS" ;
		$Flags = "G3" ; "12-NAVIGATORS" ;
		$Flags = "gC~4K" ; "04-XPAGES" ;
		$Flags = "gC~4;" ; "05-CUSTOM CONTROLS" ;
		@Contains( $Title ; ".theme" ) ; "20-THEMES" ;
		@Contains( $Flags ; "~" ) ; "WEB-INF" ;
		@Contains( $Flags ; "D" ) | @Contains( $Flags ; "C" ) | @Contains( $Flags ; "H" ) | $Flags = ""; "01-FORMS" ;
"" );

@If( !(_mainCat *= "03-FOLDERS"  : "02-VIEWS") ; @Return( _mainCat ) ; "" );

_addCat := @If( @Contains( $Flags ; "V" ) ; "PRIVATE" ;
		@Contains( $Flags ; "p" ) & @Contains( $Flags ; "o" ) ; "SHARED, DESKTOP PRIVATE ON FIRST USE" ;
		@Contains( $Flags ; "p" ) ; "SHARED, PRIVATE ON FIRST USE" ;
		"SHARED" );

_mainCat + "\\" + _addCat

« Letzte Änderung: 11.11.15 - 16:19:40 von Tode »
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Art des Design-Elements herausfinden?
« Antwort #2 am: 11.11.15 - 18:33:12 »
Das kannst du mit dem DomNav machen, der liest die Gestaltung über Server ein und die Ansicht nach Signierer gibt dir eine Übersicht.
Für den eigenen Weg gibt es hier eine gute Beschreibung mit Beispiel-Code: http://www-10.lotus.com/ldd/ddwiki.nsf/dx/ls-design-programming.htm
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline SD

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Re: Art des Design-Elements herausfinden?
« Antwort #3 am: 11.11.15 - 19:06:33 »
Wow, das nenne ich mal ne Formel! Das hilft mir auf jeden Fall alles super weiter, vielen Dank!

Ich habe die Formel aus der Ansicht in LotusScript übersetzt und das funktioniert offenbar prima! Ein paar Design-Elemente haben wohl kein $Flags-Feld (ACL z.B., die hat dafür aber $ACLDigest), aber denen komme ich nach und nach auf die Spur. Auf dem Wege habe ich gerade einen privaten Agenten mit fremdem Certifier von 1996 gefunden. Da ist man fast schon versucht den einem Museum zu spenden.

Es gibt da Design-Dokumente, die bestehen nur aus einem $Flags-Feld mit dem Wert "X" (steht laut Formel oben für "UNKNOWN") und einem UpdatedBy-Feld, keine Signatur, isprofile ist False, sonst auch nichts da. Immerhin isvalid ist True. :D Size ist "32". Entgeht mir da die Pointe? Gibt es irgend ne theoretische Möglichkeit, dass das was ist, was noch irgend ne Funktion hat? Oder kann das ein Replikationsunfall sein, oder sowas? :-:

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Art des Design-Elements herausfinden?
« Antwort #4 am: 11.11.15 - 20:06:01 »
Das UNKNOWN kommt von mir, weil ich auch nicht mehr über diese Dinger rausgefunden habe als Du...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Art des Design-Elements herausfinden?
« Antwort #5 am: 11.11.15 - 20:21:56 »
32 Bytes? Deletion stubs?

Bernhard

Offline SD

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Re: Art des Design-Elements herausfinden?
« Antwort #6 am: 12.11.15 - 17:31:31 »
IsValid=True besagt im NotesDocument eigentlich, dass es kein Deletion Stub sein sollte.

Ich habe mal ein Experiment gemacht. Wenn ich in einer DB ein neues Design-Element erstelle geht die Anzahl an Notes in NotesNoteCollection eins hoch, wie es sein sollte. Wenn ich das Design-Element lösche (was ja einen Deletion-Stub hinterlassen sollte), geht die Anzahl wieder eins runter. Wären Deletions-Stubs generell enthalten, müsste der ja dann immernoch in der Collection enthalten sein. Also wenn es ein Deletion-Stub ist, dann ist es ein kaputter.

Offline Andrew Harder

  • Senior Mitglied
  • ****
  • Beiträge: 295
  • Geschlecht: Männlich
Re: Art des Design-Elements herausfinden?
« Antwort #7 am: 12.11.15 - 22:25:06 »
Das Flag "X" sind Agent data documents.

Kommt man im jeweiligen Agent dran mit:
Code
Set notesDocument = notesSession.SavedData
Andy

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Art des Design-Elements herausfinden?
« Antwort #8 am: 12.11.15 - 23:54:31 »
Daran dachte ich auch schon. Mit den "immer 32 Byte" muss man dann aber IIRC viel Glück gehabt haben (so diese denn überhaupt zurück bleiben). Dieser Hinweis ist aber auf jeden Fall besser als die Deletion Stubs, Andy. Mea culpa.

Bernhard

Offline SD

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Re: Art des Design-Elements herausfinden?
« Antwort #9 am: 16.11.15 - 16:42:31 »
Das mit den 32 Byte nehme ich zurück. Ich habe eben eine Datenbank gefunden, die ~1500 Dokumente mit Flag "X" hat (bei 43 Agenten in der DB). Diese Dokumente sind alle 1371 , 1394 oder 1414 Byte groß.

Ich glaube ich werde da mal das Gespräch mit dem Entwickler suchen. >:D

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz