Autor Thema: Farbe für Kategorien im Kalender-Profil per Script setzen  (Gelesen 4897 mal)

Offline Bruce Willis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.002
  • Geschlecht: Männlich
  • Wer nicht wagt...
Hallo,

ich versuche per LS die Farben im Kalender-Profil zu setzen, was eigentlich auch klappt (siehe Screenshot).

Aber es hat leider keine Auswirkung weder auf die neuen noch auf die alten Termine bzw. deren Farben im Kalender.

Was könnte noch fehlen?

Code
	                                'Call item.AppendToTextlist("Review")
					userdoc.Category3List = "Review"
					'userdoc.Category3B = doc.backgroundcolor
					userdoc.Category3B = "00FF00FF"
					'userdoc.Category3F = doc.fontcolor
					userdoc.Category3F = "00FFEE00"
					
					'Call item.AppendToTextlist("Sprint Planning")
					userdoc.Category4List = "Sprint Planning"
					'userdoc.Category4B = doc.backgroundcolor
					userdoc.Category4B = "000000FF"
					'userdoc.Category4F = doc.fontcolor
					userdoc.Category4F = "0099FF00"
					
					userdoc.colorchange = "2"
					userdoc.rebuildCalendar = "1"
					Call userdoc.ComputeWithForm(False,False) 

					Call userdoc.Save(True, False)

Gruß
Leo
nobody is perfect but i'm pretty close 

Offline WildVirus

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 658
  • Geschlecht: Männlich
Re: Farbe für Kategorien im Kalender-Profil per Script setzen
« Antwort #1 am: 26.08.16 - 20:06:13 »
Was passiert, wenn Du über den Profildialog gehst ?

Nach (!!!) dem Klick auf OK zum Schließen des Profils denkt Notes "kurz" nach und die Farben sind geändert.

Also - schau im IBM Code nach, wass nach dem Klick auf OK passiert. Und bau das bei Dir ein oder ruf die passende IBM-Funktion auf.

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.718
  • Geschlecht: Männlich
Re: Farbe für Kategorien im Kalender-Profil per Script setzen
« Antwort #2 am: 26.08.16 - 20:14:07 »
Wenn du die Werte im Backend änderst, dann sind die Änderungen erst nach dem Neustart des Client verfügbar. Liegt in der Natur dieser idiotischen Profile Docs
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline WildVirus

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 658
  • Geschlecht: Männlich
Re: Farbe für Kategorien im Kalender-Profil per Script setzen
« Antwort #3 am: 26.08.16 - 20:21:46 »
Hallo Ulrich,

nicht ganz. IBM aktualisiert das on the fly, wenn Du das Profil änderst.

In der Scriptbibliothek "Preferences_de-DE" findet sich ein "Sub UpdateAgentsAndOptions(note As NotesDocument)", das ab Zeile 300 u.a. folgenden Code enthält:
Code
	If note.getitemvalue("ColorChange")(0) = "2" Or rebuildPreferences = True Then
		If note.HasItem("rebuildCalendar") Then
			If note.GetItemValue("rebuildCalendar")(0) = "1" Then
				Call ws.ViewRebuildByDBid(db.ReplicaID,"($Calendar)",True,_
				rebuildView, rebuildPreferences)
				Call ws.ViewRebuildByDBid(db.ReplicaID,"($CSAPIs)",True,_
				rebuildView, rebuildPreferences)
			End If
		End If
	Else
		Call ws.ViewRefreshByDBID(db.ReplicaID,"($Calendar)",True)
		Call ws.ViewRebuildByDBid(db.ReplicaID,"($CSAPIs)",True,rebuildView, rebuildPreferences)
	End If

Das muss Leo nur bei sich einbauen.


Offline Bruce Willis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.002
  • Geschlecht: Männlich
  • Wer nicht wagt...
Re: Farbe für Kategorien im Kalender-Profil per Script setzen
« Antwort #4 am: 27.08.16 - 14:26:32 »
Wenn du die Werte im Backend änderst, dann sind die Änderungen erst nach dem Neustart des Client verfügbar.
Danke, Ulrich!
Leider hilft in dem Fall auch der Neustart nicht. So wie auch leeren CACHE.NDK u.ä.
Es scheint, dass noch etwas passieren sollte. Ich frage mich, ob ich auf dem Server z.B. über Admin-Console oder auch zeitgesteuert etwas über alle Benutzer-Maildatenbanken anstossen könnte...
nobody is perfect but i'm pretty close 

Offline Bruce Willis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.002
  • Geschlecht: Männlich
  • Wer nicht wagt...
Re: Farbe für Kategorien im Kalender-Profil per Script setzen
« Antwort #5 am: 27.08.16 - 14:34:28 »

In der Scriptbibliothek "Preferences_de-DE" findet sich ein "Sub UpdateAgentsAndOptions(note As NotesDocument)", das ab Zeile 300 u.a. folgenden Code enthält:
Code
	If note.getitemvalue("ColorChange")(0) = "2" Or rebuildPreferences = True Then
		If note.HasItem("rebuildCalendar") Then
			If note.GetItemValue("rebuildCalendar")(0) = "1" Then
				Call ws.ViewRebuildByDBid(db.ReplicaID,"($Calendar)",True,_
				rebuildView, rebuildPreferences)
				Call ws.ViewRebuildByDBid(db.ReplicaID,"($CSAPIs)",True,_
				rebuildView, rebuildPreferences)
			End If
		End If
	Else
		Call ws.ViewRefreshByDBID(db.ReplicaID,"($Calendar)",True)
		Call ws.ViewRebuildByDBid(db.ReplicaID,"($CSAPIs)",True,rebuildView, rebuildPreferences)
	End If

Vielen Dank!

1. Weißt Du, ob ich dies über Backend realisieren könnte, da ich die Farbe-Änderungen zentral für alle Benutzer machen muss?
Wenn es über Backend unmöglich ist, muss ich wohl die Mail-Template anpassen, was ich allerdings vermeiden wollte...

2. Wie hast du übrigens diese Funktion in der Scriptbibliothek gefunden? Über den Debugger hatte es bei mir nicht geklappt. Erst über die Textsuche nach "rebuildCalendar" in allen Bibliotheken.

Gruß
Leo
nobody is perfect but i'm pretty close 

Offline WildVirus

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 658
  • Geschlecht: Männlich
Re: Farbe für Kategorien im Kalender-Profil per Script setzen
« Antwort #6 am: 27.08.16 - 14:45:54 »
Hallo Leo,

ich habe mit Profildokumenten früher sehr viel programmiert und auch sehr gute Erfahrungen gemacht. Eine Änderung in einem Profildokument erfordert nicht zwingend einen Client- bzw. DB-Neustart. Hängt vom Design ab.

Mein erster Post war ein wenig aus der Hüfte geschossen, daher dachte ich mir, schau doch einfach mal kurz nach. Da gerade Zeit hatte, Mail-DB aufgemacht, Profilmaske aufgemacht, Feld für Kategorienfarbe gemerkt und Gestaltungsübersicht erstellt (alle Scriptlibs und die Profilmaske). Code nach dem Feld durchsucht, und danch kannte ich das Feld, über das der Refresh angefordert wird.

Erneute Suche im Quellcode nach der Abfrage auf dieses Feld et voila.

Am zeitlichen Abstand der beiden Posts siehst Du, wie lange ich gebraucht habe.

Häufig ist die Gestaltungsübersicht bei so einer Suche (wo Du nur einen Ansatz, eben den Feldnamen, hast) schneller als der Debugger.

Ob die Funktion auch im Backend geht, habe ich nicht geprüft.

Wenn es nicht geht, kannst Du ein Flag im Profildokument hinterlassen und beim Öffnen der Ansicht -bei aktiviertem Flag- den Refresh durchziehen. Evtl. ist dieser Refresh sogar beim Start der Ansicht schon drin, hab ich nicht geprüft.

Viel Erfolg,
Axel

Offline Bruce Willis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.002
  • Geschlecht: Männlich
  • Wer nicht wagt...
Re: Farbe für Kategorien im Kalender-Profil per Script setzen
« Antwort #7 am: 29.08.16 - 12:42:31 »
Hallo Axel,

nochmals Danke!

1.
... Gestaltungsübersicht erstellt (alle Scriptlibs und die Profilmaske). Code nach dem Feld durchsucht, und danch kannte ich das Feld, über das der Refresh angefordert wird...
Sorry, aber nach welchem Feld gesucht? Wie hast Du auf das Feld gekommen?

2.
...ein Flag im Profildokument hinterlassen und beim Öffnen der Ansicht -bei aktiviertem Flag- den Refresh durchziehen...

Wenn ich in PostOpen Call View.Refresh ausführe, bringt es nix, d.h. die Termin-Farben werden nicht aktualisiert.

Wenn ich in PostOpen das Folgende (aus der gefundenen Funktion) ausführe, bekomme ich die Fehlermeldung "Object variable not set":
Call ws.ViewRebuildByDBid(db.ReplicaID, "($Calendar)", True, rebuildView, rebuildPreferences)
Call ws.ViewRebuildByDBid(db.ReplicaID,"($CSAPIs)",True,rebuildView, rebuildPreferences)

Und dasselbe bei dem einfachen Call ws.ViewRebuild

Hättest Du eine Idee, was dabei falsch ist bzw. wie es richtig wäre?
Dim ws As NotesUIWorkspace  ist selbstverständlich dabei...

Gruß
Leo
« Letzte Änderung: 29.08.16 - 15:33:52 von Bruce Willis »
nobody is perfect but i'm pretty close 

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Farbe für Kategorien im Kalender-Profil per Script setzen
« Antwort #8 am: 29.08.16 - 13:07:58 »
Wenn DU das
          Dim ws As NotesUIWorkspace
tatsächlich so notiert ist, dann wäre das schon mal ein Fehler, denn der UIWorkspace ist damit deklariert, aber nicht instantiiert. Richtig wäre
          Dim ws as New NotesUIWorkspace.

Bernhard

Offline Bruce Willis

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.002
  • Geschlecht: Männlich
  • Wer nicht wagt...
Re: Farbe für Kategorien im Kalender-Profil per Script setzen
« Antwort #9 am: 29.08.16 - 15:17:49 »
         Dim ws as New NotesUIWorkspace
Oh!!! Ich brauche eine neue Brille! ;)
Vielen Dank, Bernhard!
nobody is perfect but i'm pretty close 

Offline WildVirus

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 658
  • Geschlecht: Männlich
Re: Farbe für Kategorien im Kalender-Profil per Script setzen
« Antwort #10 am: 29.08.16 - 19:46:30 »
nochmals Danke!
gerne
Sorry, aber nach welchem Feld gesucht? Wie hast Du auf das Feld gekommen?
Mich hat interessiert, wie IBM das gelöst hat. Wenn ich es am Frontend ändere, dann wähle ich eine Farbe und schließe das Profil.
Also habe ich mir im Designer im Mailtemplate die Profilmaske angesehen und einen der Feldnamen gemerkt, die für die Farbdefinitionen ist. Dann wie gesagt über Gestaltungsübersicht gesucht - fertig.

Normales Vorgehen, wenn ich eine Programmierung nachvollziehen möchte.

CU,
Axel

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz