Das Notes Forum

Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: paschalis am 10.10.14 - 14:52:40

Titel: Neuer Ordner erstellen
Beitrag von: paschalis am 10.10.14 - 14:52:40
Hallo zusammen

Mich würde interessieren, ob @Command([CreateFolder]) in unterschiedlichen Versionen ausgeführt werden kann.

Die Frage ist entstanden, weil wenn ich einen neuen Ordner im Mailfile erstelle, in der linken unteren Ecke den Button "Erweiterte Optionen" habe.
Wenn ich nun aber in den Lesezeichen, also im Navigator links in meinem Klient einen neuen Ordner erstelle, so ist diese Funktion nicht vorhanden.
Bringe ich die @Command([CreateFolder]) im Mailfile dazu einen neuen Ordner zu erstellen ohne das ich weitere Optionen zur Verfügung habe, oder wie wird in der Lesezeichen DB ein neuer Ordner erstellt?

Vielen Dank und Gruss
Titel: Re: Neuer Ordner erstellen
Beitrag von: Tode am 10.10.14 - 15:11:11
Hmmm... Sehr interessante Erkenntnis... Tatsächlich ist es so: Wenn ich in der Bookmark.nsf @Command([CreateFolder]) aufrufe, dann kommt der Button für "Erweiterte Optionen" nicht, der selbe Befehl im Mailfile zeigt den Button... Versuche gerade rauszufinden, woran das festgemacht ist...

EDIT: Es scheint mit den Datenbank- Eigenschaften zusammenzuhängen.. ist der Type (erster Tab der Eigenschaften) auf "Standard", dann kommt die Option, bei "Portfolio" nicht... Mal ein bisschen weiter probieren...
Titel: Re: Neuer Ordner erstellen
Beitrag von: paschalis am 10.10.14 - 15:17:12
Hallo Tode

sag wo findest du diese Einstellung?


***Gefunden***
Titel: Re: Neuer Ordner erstellen
Beitrag von: Tode am 10.10.14 - 15:31:15
OK: Wollte das mal auf Basis dieser Erkenntnis ausprobieren, ob man was tricksen kann:
Also das Ganze geht mit Tricks und Entwickler- Zugriff:

3 Agenten.

Der erste ruft die beiden anderen auf. Formelsprache:
Code
@Command([RunAgent] ; "TestCreateFolder1" );
@Command([CreateFolder] );
@Command([RunAgent] ; "TestCreateFolder2" );

Der zweite ("TestCreateFolder1") setzt das Flag "Portfolio" im Datenbank- Icon:
Code
	Dim doc As NotesDocument
	Dim strFlags As String

	Set doc = g_dbCurrent.GetDocumentByID("FFFF0010")
	If InStr( strFlags, "u" ) = 0 Then
		strFlags = doc.GetItemValue( "$Flags" )(0) & "u" 
		Call doc.Replaceitemvalue( "$Flags", strFlags )
		Call doc.Save( True, True )
		MsgBox "Flag set to portfolio: " & strFlags
	Else
		MsgBox "no need to set Flag"
	End If

Und der dritte ("TestCreateFolder2") setzt das Flag wieder zurück:
Code
	Dim doc As NotesDocument
	Dim strFlags As String

	Set doc = g_dbCurrent.GetDocumentByID("FFFF0010") 
	strFlags = Replace( doc.GetItemValue( "$Flags" )(0), "u", "" ) 
	Call doc.Replaceitemvalue( "$Flags", strFlags )
	Call doc.Save( True, True )
	MsgBox "Flag reset : " & strFlags

Natürlich könnte man probieren, das mit den Designer- Berechtigungen via Agent auf dem Server zu umgehen, aber für eine gute Idee halte ich das nicht...
Das ist nur ein "proof of concept"... Einsetzen würde ich das nie im leben.

Die Infos übers Datenbank- Icon kommen übrigens hierher (http://www-01.ibm.com/support/docview.wss?rs=463&context=SSKTMJ&context=SSKTWP&context=SSRNU3&context=SSRNUY&q1=1244071&uid=swg21244071&loc=en_US&cs=utf-8&lang=en)



Titel: Re: Neuer Ordner erstellen
Beitrag von: paschalis am 10.10.14 - 15:41:51
wenn ich das richtig verstanden habe.....

Der Unterschied für den @Command([CreateFolder]) macht der DB Typ in den Eigenschaften.

Deine Agenten erstellen einen Ordner --> dann setzt der zweite Agend den DB Typ auf "Portfolio"
der letzte Agent setzt die DB Eigenschaft wieder auf Standard.

Frage: Bleibt das Verhalten des @Command([CreateFolder]) erhalten, also ohne Erweiterte Optionen oder werden diese wieder zurück gestellt nachdem der DB Typ wieder auf Standard gewechselt hast?

Vielen Dank
Titel: Re: Neuer Ordner erstellen
Beitrag von: Tode am 10.10.14 - 15:55:21
Du hast das mit der Ausführungsreihenfolge noch nicht verstanden.

1. @Command([RunAgent] ; "TestCreateFolder1" ); - Setzt DB- Typ auf Portfolio
2. @Command([CreateFolder] ); - erstellt einen Ordner: Die Schaltfläche fehlt
3. @Command([RunAgent] ; "TestCreateFolder2" ); - Setzt DB- Typ zurück - jeder weitere Aufruf von CreateFolder hätte die Schaltfläche wieder...

EDIT: ACHTUNG, ich bin sicher, die Schaltfläche kann auch noch auf andere Art und Weise gesteuert werden, aber der DB- Typ ist halt eine der Möglichkeiten das zu steuern...
Titel: Re: Neuer Ordner erstellen
Beitrag von: paschalis am 10.10.14 - 15:59:43
Danke Tode

Jetzt wäre es interessant zu wissen welche Faktoren diese Schaltfläche auch noch steuern können, da der DB Typ zu ändern bei managed replica sehe ich als unmöglich.

"grummel"
Titel: Re: Neuer Ordner erstellen
Beitrag von: Tode am 10.10.14 - 16:28:51
Na dann: an die Arbeit... *g*