Autor Thema: Agent ausführen im Namen von  (Gelesen 3791 mal)

Offline mariab

  • Aktives Mitglied
  • ***
  • Beiträge: 123
Agent ausführen im Namen von
« am: 13.03.07 - 16:51:23 »
Hallo,

habe einen Formel Agent der ein Dokument aktualisiert bzw. Einträge in einer Maske ändert. Der Agent wird von den Benutzern ausgeführt. Da aber die Benutzer keine Autorenrechte besitzen, habe ich beim Agent unter dem Sicherheitstab "Agent ausführen im Namen von" meinen Benutzer eingegeben, der die entsprechende Rolle besitzt. Leider funktioniert der Agent trotzdem nicht.

Danke Maria

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Agent ausführen im Namen von
« Antwort #1 am: 13.03.07 - 18:58:09 »
Was funktioniert nicht? Wird der Agent nicht ausgeführt oder gibt's Fehlermeldungen? Wie sind die Agenteneigenschaften? Code?

Ein paar mehr Infos musst du uns schon liefern. Mit den dürftigen Angaben können wir dir nicht helfen.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline gab

  • Frischling
  • *
  • Beiträge: 45
Re: Agent ausführen im Namen von
« Antwort #2 am: 13.03.07 - 22:08:35 »
du musst den Agent, wenn die DB lokal liegt mit, .runonserver(noteid) starten, und wenn die DB auf einem server liegt mit .run(noteid) starten.

evtl. liegt es daran...

gabor

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agent ausführen im Namen von
« Antwort #3 am: 13.03.07 - 22:28:22 »
Eigentlich eher anders herum, Gabor: Lokal wirkt NotesAgent.RunOnServer wie Agent.Run, und auf dem Server muss NotesAgent.RunOnServer aufgerufen werden.

Bernhard

Offline gab

  • Frischling
  • *
  • Beiträge: 45
Re: Agent ausführen im Namen von
« Antwort #4 am: 14.03.07 - 07:59:43 »
Theoretisch ja, aber in der Praxis sieht es bei mir anders aus.
Ich benutze folgenden Code um z.B aus nach Ausführen einer Action in einer embedded View,  das Dokument in dem die emb. View sich befindet, zu aktualisieren:

....
      If Not ag Is Nothing Then
         If db_This.Server = "" Then
            iReturn = ag.RunOnServer( doc_main.NoteID )               
            Exit Function
         Else
            iReturn = ag.Run( doc_main.NoteID )               
         End If
      End If

....

Andersherum funktioniert  der Code nicht ( 6.5.4) ...
Agent ist, wie gesagt, mit "run on behalf..." eingestellt.


Offline mariab

  • Aktives Mitglied
  • ***
  • Beiträge: 123
Re: Agent ausführen im Namen von
« Antwort #5 am: 14.03.07 - 15:42:05 »
Was funktioniert nicht? Wird der Agent nicht ausgeführt oder gibt's Fehlermeldungen? Wie sind die Agenteneigenschaften? Code?

Ein paar mehr Infos musst du uns schon liefern. Mit den dürftigen Angaben können wir dir nicht helfen.


Axel


Sorry, hier genauere Details:
Bei der DB handelt es sich um eine Art Warenkorb. Eine Form enthält jeweils ein Produkt z.B. Schuhe mit Angabe von Preis und der Anzahl von verfügbaren Schuhen. Wenn nun ein Benutzer 10 Paar Schuhe bestellt, dann wird überprüft ob genug Schuhe vorhanden sind, wenn ja kann der Benutzer auf bestellen drücken. Nun muss die Anzahl der verfügbaren Schuhe aktualisiert werden, dies möchte ich mit einem Agenten erledigen. Mit meinen Benutzer welcher Managerrechte besitzt funktioniert der Agent. Wenn ein Benutzer auf den Agent klickt erscheint folgende Fehlermeldung: "Sie sind zur Durchführung dieser Operation nicht berechtigt"
Wenn ich den Benutzer die Rolle zuweise die Maske zu ändern funktioniert der Agent auch, bloß kann er dann Änderungen durchführen wie z.B. den Preis ändern und dies möchte ich vermeiden.
Hier gibt es meiner Meinung nach das Problem, dass der Benutzer welcher den Agent ausführt keine Schreibrechte in der Maske besitzt. Um das Problem zu umgehen dachte ich mir ich führe den Agenten mit dem Namen meines Benutzers aus. (Run on behalf ....)
Die Datenbank liegt auf einem Server und im Agenten verwende ich die Formelsprache.

Grüße Maria

Driri

  • Gast
Re: Agent ausführen im Namen von
« Antwort #6 am: 14.03.07 - 15:49:37 »
Bist Du denn im Serverdokument auch berechtigt, RunOnBehalf-Agents zu signieren ? (Tab Sicherheit, Agenten signieren, die im Namen anderer ausgeführt werden)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Agent ausführen im Namen von
« Antwort #7 am: 14.03.07 - 16:18:08 »
Vollkommen abgesehen von der Agent-Problematik: Ich wage zu bezweifeln, dass es guter Software-Architektur entspricht, die Lager-Artikelmenge auf diese Art und Weise zu pflegen. Sowas sollte eigentlich niemals direkt in diesem Dokument geführt werden, sondern über Zulauf - Abverkauf ad hoc ermittelt werden.

Bernhard

Offline mariab

  • Aktives Mitglied
  • ***
  • Beiträge: 123
Re: Agent ausführen im Namen von
« Antwort #8 am: 14.03.07 - 16:43:46 »
Vollkommen abgesehen von der Agent-Problematik: Ich wage zu bezweifeln, dass es guter Software-Architektur entspricht, die Lager-Artikelmenge auf diese Art und Weise zu pflegen. Sowas sollte eigentlich niemals direkt in diesem Dokument geführt werden, sondern über Zulauf - Abverkauf ad hoc ermittelt werden.

Bernhard

Könntest du mir einige Tipps geben wie ich das aders machen könnte? Bin immer bereit meine Datenbanken zu verbessern.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz