Autor Thema: Rolle aus anderer Datenbank auslesen?  (Gelesen 3222 mal)

DatenDuck

  • Gast
Rolle aus anderer Datenbank auslesen?
« am: 15.01.07 - 12:15:16 »
Hallo Forum,

über Evaluate( |@IsMember("| & role & |"; @UserRoles)| ) lässt sich ja ganz schön prüfen ob der Benutzer eine Rolle zugewiesen hat oder nicht.

Wie liesse sich so eine Prüfung in einer anderen DB ausführen?
Evaluate(formel, db) funktioniert leider nicht...
Gibt es überhaupt eine Möglichkeit oder muss mit Script die ACL zerpflückt werden?

Vielen Dank schon mal für die Hilfe!

Bis dann,
-Moritz

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: Rolle aus anderer Datenbank auslesen?
« Antwort #1 am: 15.01.07 - 12:37:54 »
oder muss mit Script die ACL zerpflückt werden?

Genau so.

Anders geht's nicht.

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

Glombi

  • Gast
Re: Rolle aus anderer Datenbank auslesen?
« Antwort #2 am: 15.01.07 - 12:44:29 »
Idee:
Du kannst in der anderen Datenbank ein vorhandenes Dokument öffnen. Das Dokument basiert auf einer Maske, in der ein Reld "UserRoles" ist, welches Berechnet zur Anzeige ist.
D.h. der Wert wird zur Laufzeit berechnet. Diesen kannst Du mit Script auswerten, wenn das Dokument geöffnet ist.
Nach dem Öffnen des Dokuments und Auslesen der Rollen dann das Dokument sofort wieder schließen.

Andreas

DatenDuck

  • Gast
Re: Rolle aus anderer Datenbank auslesen?
« Antwort #3 am: 10.01.08 - 11:17:20 »
Hi Andreas,

habe Deinen Vorschlag mal getestet und stoße dabei auf ein Problem.

Beim "DB Wechsel" (weil ich ja das UIDoc aus einer anderen DB öffne, als die in der der mein Agent gerade läuft) "verliert" der Agent irgendwie den Bezug auf seine eigene DB...
Beim anschließenden Aufruf von db.UnprocessedDocuments kommt dann eine Meldung "Can't get left-to-do list, Database <meineErsteDB> is not the agent's database"...
Laut Debugger ist die Variable "db" allerdings SCHON die korrekte DB des Agenten... Und auch die Instanz der anderen DB aus der ich die Rollen hole ist richtig... Also zumindest laut dem was der Debugger zu den beiden Variablen anzeigt...

Ich hab mich irgendwie schon damit abgefunden, dass mein Vorhaben nicht realisierbar ist.. Aber falls Du nochn Tipp hierzu hast, nur raus damit  ;D

Bis dann,
-Moritz

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Rolle aus anderer Datenbank auslesen?
« Antwort #4 am: 10.01.08 - 12:04:09 »
... das verstehe ich nicht ganz - du ziehst dir aus der fernen Datenbank ein belibiges Dokument per Backend und wendest den Evaluate an - wie es Andreas beschrieben hat - wo gibt es da ein Problem???

Toni
Grüßle Toni :)

DatenDuck

  • Gast
Re: Rolle aus anderer Datenbank auslesen?
« Antwort #5 am: 10.01.08 - 12:10:35 »
Jo, ganu so mach ich das.
1. Ferne DB holen
2. Doc erstellen (und Maske zuweisen)
3. Doc ins UI laden
4. Zur Anzeige berechnetes Feld mit @UserRoles Inhalt holen (variant = uidoc.Document.fieldRollen)
5. UIDoc schließen
6. Checken ob Rolle in der Liste ist
7. Wenn ja, in aktueller(!) DB weiter mit db.UnprocessedDocuments. >> Bumm

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Rolle aus anderer Datenbank auslesen?
« Antwort #6 am: 10.01.08 - 12:14:09 »
Zitat
2. Doc erstellen (und Maske zuweisen)

Dazu brauchst derjenige aber mindestens Autorenrecht...

Toni
Grüßle Toni :)

DatenDuck

  • Gast
Re: Rolle aus anderer Datenbank auslesen?
« Antwort #7 am: 10.01.08 - 12:15:22 »
Das ist auch der Fall  ;)

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Rolle aus anderer Datenbank auslesen?
« Antwort #8 am: 10.01.08 - 12:15:37 »
... sorry - warum ins UI holen und gleich weider schließen - ein Evaluate liefert dir die Liste der Rollen als Array?

Toni

Grüßle Toni :)

DatenDuck

  • Gast
Re: Rolle aus anderer Datenbank auslesen?
« Antwort #9 am: 10.01.08 - 12:18:22 »
Meinst Du
Evaluate( |@IsMember("| & role & |"; @UserRoles)| )
?
Das gibt mir doch nur die Rollen zurück die ich in der aktuellen DB und nicht in der entfernten DB habe?!

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Rolle aus anderer Datenbank auslesen?
« Antwort #10 am: 10.01.08 - 12:23:28 »
... mit ...

Code
Dim vRoles As Variant 
vRoles = Evaluate( {@UserRoles} , docFerneDB )

... erhälst du die Rollen des Users. Dann noch prüfen, ob deine gesuchte Rolle darin enthalten ist:

Code
If Not IsNull( ArrayGetIndex( vRoles , "[DeineRolle]" ) ) Then...

... sollte dann klar sein, ob er zutrifft

Toni
Grüßle Toni :)

DatenDuck

  • Gast
Re: Rolle aus anderer Datenbank auslesen?
« Antwort #11 am: 10.01.08 - 12:40:58 »
Hrr... Du Angeber!!! Funktioniert natürlich...   :D :D :D

Vielen Dank!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz