Hallo Forum,
ich habe hier ein konkretes Problem, zu dem ich mal ein paar Lösungsansätze brauche.
Ich habe in einer Auftragsdatenbank einen Button, der vom Anwender ausgeführt wird.
Der Code hinter diesem Button instantiiert ein neues Object meiner Klasse.
Diese Klasse macht nun folgendes:
Sie sucht in einer anderen DB nach Dokumenten mit bestimmten Schlüsselinformationen.
Diese Schlüsselinfos kommen aus dem Auftrag und werden der Instanz bei der Initalisierung übergeben.
Als Rückinformation der Suche an den Anwender können 4 Mögliche Fälle auftreten:
a) es wurde kein Dokument gefunden
b) es wurden zwar Dokumente gefunden, aber es die nachfolgende Tätigkeit darf grundsätzlich nicht ausgeführt werden
c) lediglich der aktuelle Anwender ist nicht Berechtigt, die nachfolgende Tätigkeit auszuführen
d) der Anwender darf die nachfolgende Tätigkeit ausführen
Das Problem ist aber nun folgendes:
Die Dokumente in der Suchdatenbank enthalten Leserfelder.
In allen Dokumenten ist aber auch ein Rolle eingetragen. Damit wird gewährleistet, über diese Rolle alle Dokumente zu sehen. Dies ist eigentlich nur zu administrativen Zwecken notwendig und diese Rolle ist standardmäßig keinem Anwender zugeordnet. (Sie dient nur dem Maintenance Fall!!)
Eine physikalische Person hat unter Umständen überhaupt keinen Zugriff auf diese Suchdatenbank oder sieht nur die Dokumente die sie auch bearbeiten kann.
Wenn der Anwender, der den Button drückt, also in keinem Leserfeld enthalten ist, werden auch keine Dokumente gefunden oder er hat eben ggf. auch gar keinen Zugriff.
Ich möchte aber nun folgendes Realisieren:
a) die Suche nach den Dokumenten soll mit Hilfe des technischen Users durchgeführt werden
b) das Ergebnis wird an den aktuellen Anwender lediglich weiterleiten.
c) Alle nachfolgenden Tätigkeiten sollten ebenfalls von der Klasse erledigt werden.
d) die Klasse soll aber im Frontend von einem Anwender verwendet werden können.
Beispiel: Anwender drückt Button -> Init myClass mit Werten aus aktuellem Dokument (macht der Code) -> myClass.StarteProzess (macht ebenfalls der Code, wird aber mit Userrechten ausgeführt)
myClass.StarteProzess soll nun die Suche durchführen und das Ergebnis der 4 Möglichkeiten an den Anwender melden (z.B. per Dialogbox) oder aber auch ggf. die nachfolgende Tätigkeit durchführen.
Diese Tätigkeit kann aber ebenfalls nicht mit Userrechten durchfgeführt werden, sondern muss über Funtionen der Klasse realisiert werden.
Der Code der Klasse befindet sich in einer Scriptlibrary der Auftragsdatenbank in der auch der Anwender arbeitet und wir mit einer Applikations-ID signiert.
Wie kann man hier vorgehen?