Autor Thema: agent.OnBehalfOf  (Gelesen 5450 mal)

Offline andrew22

  • Aktives Mitglied
  • ***
  • Beiträge: 126
  • Ich liebe dieses Forum!
Re: agent.OnBehalfOf
« Antwort #20 am: 27.06.05 - 16:07:07 »
vielleicht noch als Anmerkung ;)

ich würde gern in einem Profildokument Zeitplan festlegen und dann soll dat einfach in agent eingelesen bzw. aktiviert werden.

habe mir den link mal angeschaut quellcode sieht ja janz schön dick aus :(

hmm ?!  ???

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: agent.OnBehalfOf
« Antwort #21 am: 27.06.05 - 16:38:52 »
Der sieht nicht nur ganz schön dick aus, der ist es auch (und er braucht noch ein paar kleine Erweiterungen, damit er wirklich zuverlässig läuft).

Wo Du die Werte hernimmst, die Du der durch LS pur nicht erreichbaren Datenstruktur "tAssistInfo" des Agents unterjubelst, ist egal - das kann natürlich auch ein ProfileDoc sein. Auf jeden Fall und ganz sicher ist dieser Act aber weder etwas für Anfänger noch für etwas Fortgeschrittenere - hier geht es wirklich ans Eingemachte.

Eine "einfache" Lösung gibt es aber - durch "leider" - nicht.

Bernhard

Offline Dominique M.

  • Frischling
  • *
  • Beiträge: 23
  • Geschlecht: Männlich
Re: agent.OnBehalfOf
« Antwort #22 am: 22.08.07 - 15:34:36 »
Hallo,

tut mir leid das ich so einen alten Thread wieder ans Tageslicht hole aber hat da jemand eine Lösung? Bei mir funktioniert die Lösung die gepostet wurde nicht.

Ich öffne das Agenten Document, setze das Feld, signiere und Speicher das Document. Danach ploppt im Designer die Meldung "The agent contains an illegally added 'On Behalf' attribute. To make the agent valid, please remove it"


Kann mir einer weiterhelfen?! Ich muss den Wert dynamisch ändern können...
Müssen die Agenten unter bestimmter Eigenschaften/Rechten laufen?!


// Dominique
Schöne grüße Dominique
---------------------------------
Lotus Notes Erfahrung: Erst seit Juni 2007 :)
PHP erfahrung: Seit circa 2000/2001 und immernoch aktiv am Programmieren mit PHP!

Sonstige Programmiersprachen: Angefangen mit QBasic - Visual Basic 5 / 6 - PHP - C - VisualBasic.Net - C#.Net - Java(Script)
---------------------------------

Offline Dominique M.

  • Frischling
  • *
  • Beiträge: 23
  • Geschlecht: Männlich
Re: agent.OnBehalfOf
« Antwort #23 am: 22.08.07 - 23:03:23 »
Guten Abend!

Hab es doch noch geschafft gehabt... API dein Freund und Helfer.
So konnte ich das entsprechende Feld füllen und die Flags verändern und man kann es wieder im Designer öffnen.
Ist bereits ein Wert drin kann man ihn Normal über LotusScript ändern, besteht aber vorher kein solches Feld muss man das Feld schreiben und per API die Flags ändern (Warum auch immer, ging nicht anders)



Schöne Grüße

// Dominique
Schöne grüße Dominique
---------------------------------
Lotus Notes Erfahrung: Erst seit Juni 2007 :)
PHP erfahrung: Seit circa 2000/2001 und immernoch aktiv am Programmieren mit PHP!

Sonstige Programmiersprachen: Angefangen mit QBasic - Visual Basic 5 / 6 - PHP - C - VisualBasic.Net - C#.Net - Java(Script)
---------------------------------

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: agent.OnBehalfOf
« Antwort #24 am: 22.08.07 - 23:13:33 »
Respekt, Dominique!

Lässt Du uns auch an der detaillierten Lösung teilhaben?

Bernhard

Offline Dominique M.

  • Frischling
  • *
  • Beiträge: 23
  • Geschlecht: Männlich
Re: agent.OnBehalfOf
« Antwort #25 am: 23.08.07 - 09:30:40 »
Guten Morgen,

so hier nun die Gewünschte Lösung:


Orientiert an diesem Beispiel:
API Beispiel


Neue Deklaration einfügen:

Code
Private Const wAPIModule = "NNOTES"
Declare Private Function apiNSFItemSetText Lib wAPIModule Alias "NSFItemSetText" ( Byval hNT As Long, Byval N As String, Byval D As String, Byval nD As Integer) As Integer



So nun wie gewohnt die Datenbank öffnen damit man unter anderem das NoteHandle bekommt (hNT&)

Setzen des Felder per API:

Code
apiNSFItemSetText hNT&, "$OnBehalfOf", username$ & Chr$(0), Len(username)

Wobei hier username ein String ist mit dem Canonical Name des Users!
Ich kann allerdings nicht genau sagen ob ein Chr(0) hier an dieser stelle benötigt wird, gegebenenfalls einfach entfernen.

Was nun ganz wichtig ist (siehe auch Beispiel weiter oben) muss nun das Flag Version gesetzt werden auf den Integer 2:

Code
dim version as Integer
version% = 2

Poke p& + 2, version, 2



Je nach wunsch kann man nun noch den Agenten auf "Run as Web User setzen", dazu muss man in den Feldern $AssistFlags und $Flags noch ein kleines "u" einfügen.
Beispiel für $AssistFlags: "Eu" E=Enabled; u=RunAsWebUser
Beispiel für $Flags: "fLS3u" f=V4 Agent; L=LotusScript Agent; S=Scheduled; 3=Hide from V3 Clients; u=RunAsWebUser

Konstanten für Flags

Das ganze Speichern und signieren kann auch nie schaden.



Ich hoffe ich konnte euch einen kleinen Eindruck davon geben wie man das Feld $OnBehalfOf dynamisch setzen kann!


Danke

P.S.: Für weitere Fragen könnt ihr gern eine Nachricht schicken, für eventuelle Verbesserungsvorschläge bin ich natürlich auch offen (Bin ja nur ein Praktikant)
« Letzte Änderung: 23.08.07 - 09:35:02 von Dominique M. »
Schöne grüße Dominique
---------------------------------
Lotus Notes Erfahrung: Erst seit Juni 2007 :)
PHP erfahrung: Seit circa 2000/2001 und immernoch aktiv am Programmieren mit PHP!

Sonstige Programmiersprachen: Angefangen mit QBasic - Visual Basic 5 / 6 - PHP - C - VisualBasic.Net - C#.Net - Java(Script)
---------------------------------

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz