Autor Thema: wie Feldwert "berechnet beim Anlegen" mit Script füllen?  (Gelesen 1783 mal)

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Folgende Ausgangssituation:
In einer bestehenden Datenbank sollen die Zugriffsrechte modifiziert werden, da in Zukunft mehrere Pflegefunktionen in die Regionen ausgelagert werden sollen. Die regionalen Sachbearbeiter sollen also nur Ihre Dokumente sehen/bearbeiten können. Welche Region zuständig ist, wird vom zentralen Manager festgelegt, indem er ein Feld "WeiterleitungAn" entsprechend ausfüllt.

Problem:
Es gibt 7 richtige Regionen(z. B. Hamburg,München...) und jede Menge Querschnittsfunktionen(z. B. Consulting, Abrechnung...); diese Querschnittsfunktionen werden dann wieder einem zentralen Bearbeiter zugeordnet.

Lösungsversuch:
Ich möchte das gern mit einem Autorenfeld lösen. Habe mir nun einen Agenten gebastelt, welcher die bestehenden Dokumente anpasst. Habe ich auch problemlos hingekriegt mit einer Select_Case-Anweisung, nach dem Motto wenn WeiterleitungAn = Hamburg dann kommt "[Hamburg]" ins Autorenfeld; bei München dementsprechend "[Muenchen]" (weil ich nicht wusste, ob Umlaute gut gehen); und wenn da eben kein richtiger Ortsname drinsteht dann wird da "[Zentrale]" reingehackt.

Aber: Wie baue ich das nun in die Maske ein?
"Berechnet beim Anlegen" fällt aus, weil der grosse Manager ja nicht unbedingt sofort das WeiterleitungAn ausfüllen muss! Also wohl irgendwie mit Eingabeübersetzung/validierung prüfen, ob WeiterleitungAn belegt ist, dann Autorenfeld füllen. Aber: wie mache ich denn hier meine Fallunterscheidung? Eine ätzend verschachtelte @If-Abfrage? Oder kann ich das, wenn ja wie/wo mit Script besser erschlagen?
Danke für eure Vorschläge!
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:wie Feldwert "berechnet beim Anlegen" mit Script füllen?
« Antwort #1 am: 22.09.03 - 17:19:53 »
Hast Du einen definierten Zeitpunkt, wann die beiden Felder gefüllt werden müssen ?

Dann würde ich mit Setup-Docs arbeiten (Location und zugehörige Rolle).
Diese werden dann schon bei WeiterleitenAn zur Auswahl verwendet (@dbColumn), im Autorenfeld dann mit @dbLookup die zugehörige Rolle auswählen.

Problem: Was machst Du, wenn jemand die Location ändert ? Dann müßte ja auch die olle Rolle raus und die neue rein ...

Das nur so als ersten Gedanken.

HTH,
Bernhard

Driri

  • Gast
Re:wie Feldwert "berechnet beim Anlegen" mit Script füllen?
« Antwort #2 am: 22.09.03 - 17:22:36 »
Hi,

wenn die Dokumente nur von einem bestimmten Personenkreis gesehen werden dürfen, dann reicht ein Autorenfeld aber nicht aus, dann müßtest Du Leserfelder verwenden.

Wie ist das mit den Regionen und den Funktionen gemeint ? Soll z.B. ein Sachbearbeiter aus dem Bereich Abrechnung mit Sitz in Hamburg nur die Dokumente sehen für [Hamburg]+[Abrechnung] oder soll er die Dokumente für [Hamburg] sehen ?

Die Frage hat den Hintergrund, daß es reicht, einmal in einem Leserfeld berechtigt zu werden, um das Dokument zu sehen. Du müßtest in dem Fall also Rollen für alle möglichen Kombinationen generieren.

Beispiel :

Bearbeiter A, Hamburg, Controlling
Bearbeiter B, München, Controlling

Dokument für Hamburg + Controlling

Wenn nun im Leserfeld drinsteht [Hamburg],[Controlling], dann kann auch Bearbeiter B das Dokument lesen und ggf. bearbeiten.

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:wie Feldwert "berechnet beim Anlegen" mit Script füllen?
« Antwort #3 am: 22.09.03 - 17:39:06 »
Ja, das kommt davon, wenn man hektisch eine Hilfeanfrage stellt.
Ich hätte ja auch noch gern die Überschrift meiner Anfrage modifiziert, denn "berechnet beim Anlegen" scheidet ja schon aus...
Zu euren Anmerkungen/ersten Gedanken:
Ja, Bernhard, das gefällt mir schon mal. Es ist tatsächlich so, dass dieses WeiterleitungAn aus einem Schlüsseldok über  @ookup gefüllt wird. Wie meinst du, geht es weiter? (Bisher ist nicht vorgesehen, dass WeiterleitungAn geändert wird, wenn aber doch, dann sollte auch das Autorenfeld geändert werden!)
@Driri: Ist klar, es gibt ja auch noch ein Leserfeld in allen Doks (diesmal wirklich berechnet beim Anlegen!), wo die Rolle [Admin] drinsteht. Das sind die zentralen Macher. Und die Leute aus z. B. Hamburg sollen nur die Dokumente lesen/bearbeiten können wo auch WeiterleitungAn = "Hamburg" ist. Bei WeiterleitungAn ist immer nur EIN Wert zulässig. Und immer wenn da kein konkreter Ortsnamen drinsteht (also z. B. "Abrechnung") dann kommt in das Autorenfeld die Rolle [Zentrale] rein.
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:wie Feldwert "berechnet beim Anlegen" mit Script füllen?
« Antwort #4 am: 22.09.03 - 18:02:46 »
Naja, dann scheinst Du es ja recht einfach zu haben ;-)

In der Eingabevalidierung Deines Autorenfeldes (die damit ja gleich Leser sind, solange nur irgendein Leserfeld existiert wie bei Dir mit den Admins) prüfst Du:
- dbLookup auf Weiterleitung an, Feld Rolle auslesen
- Fehler ? -> abbrechen (dann ist WieterleitungAn leer oder ungültig)
- Rolle <> Rolle im Autorenfeld - austauschen (damit gibt es Änderungen nur, wenn sich WeiterleitungAn geändert hat.

Und für Deine Setup-Doks: Dui machst auch welche für Deine "Querschnittsbereiche", die dann jedesmal im Rollen-Feld den Eintrag "[Zentrale]" bekommen.
So wird aus "WeiterleitungAn"
= "Hamburg" -> "[Hamburg]"
= "München" -> "[Muenchen]"  (das mit dem Umlautverzicht ist immer eine gute Idee ;-)
= "Abrechnung" -> "[Zentrale]"
= "Controlling" -> "[Zentrale]"

Und die Setup-Docs kannst Du dann jederzeit überarbeiten, ohne in den Docs was ändern zu müssen.

Es hingt immer alles am Algorithmus ;-) Coden kann "jeder" ;-)

Einen schönen Abend wünscht
Bernhard


Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:wie Feldwert "berechnet beim Anlegen" mit Script füllen?
« Antwort #5 am: 22.09.03 - 20:44:57 »
Klingt gut, aber: ich kriegs nicht hin!
Naja ist auch schon spät, der Tag war lang.
Wenn ich ein bearbeitbares Feld habe, dann kann ich in der Eingabevalidierung einen Dblookup machen:
_konfigDB := @Subset(@DbName; -1);
_srv := @Subset(@DbName; 1);

_wert := @DbLookup("":""; _srv:_konfigDB; "vwluAsp";dWeiterAn;2);
@If(@IsError(_wert);"";_wert)

(vwluAsp ist eine Ansicht, erste Spalte sortiert,in der stehen die Schlüsselwerte zu WeiterleitungAn; in der zweiten Spalte stehen die entsprechenden Rollen
dWeiterAn ist ein berechnetes Textfeld, das den Wert für WeiterleitungAn enthält)

Wenn ich nun ein Dok öffne, so krieg ich mehrfach eine Meldung, dass das Feld der Eingabevalidierung nicht entspricht.
Habe dann festgestellt, dass in der Maske noch jede Menge Script steckt. Habe diese Datenbank von unserem grossen Script-Guru übernommen und stehe wie der Ochs vorm Tor: da werden 5-6 Scriptbibliotheken eingebunden, die sich immer locker gegenseitig aufrufen .... Jedenfalls konnte ich das soweit durchschauen, dass da irgendwo ein doc.Refresh kommt, was dann den Fehler hervorbringt.

Der Lookup stimmt jedenfalls und es wird auch das richtige gefunden.

Ok, dann eben anders: Das Autorenfeld als berechnet definiert und dann den Lookup in "Vorgabewert"; Ergebnis: Keine Fehlermeldung aber im Autorenfeld steht auch nichts drin.
Und jetzt geh ich nach Hause. Gute Nacht!
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:wie Feldwert "berechnet beim Anlegen" mit Script füllen?
« Antwort #6 am: 24.09.03 - 17:14:27 »
OK, es ist mir gelungen, die ganze Scripterei soweit zu kapieren, dass ich eine Stelle gefunden habe, wo ich mit Script meine Felder befülle.
Aber auf dem Gebiet muss ich halt noch viel lernen.
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:wie Feldwert "berechnet beim Anlegen" mit Script füllen?
« Antwort #7 am: 24.09.03 - 17:21:04 »
Und sag beim Lernen an, wenn es mal arg klemmt - Du mußt ja nicht das Rad neu erfinden und bemühst Dich ja eh schon redlich ;-)

Bernhard

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:wie Feldwert "berechnet beim Anlegen" mit Script füllen?
« Antwort #8 am: 25.09.03 - 10:19:51 »
Keine Angst, ich werde euch schon noch genügend auf den S... gehen.
Habe mir mittlerweile angewöhnt, dieses Forum (arbeits)täglich zu besuchen und konnte schon sehr nützliche Sachen entnehmen.
Dafür mein DANK!
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz