Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: mgeidl am 17.07.03 - 09:55:56

Titel: Autorenfelder
Beitrag von: mgeidl am 17.07.03 - 09:55:56
Hallo zusammen!

Ich hab ein Problem mit den Berechtigungen:

Ich hab eine Datenbank repliziert auf zwei Servern. In dieser DB wird mit Leser und Autorenfelder gearbeitet. In der ACL hab ich bei den Zugriffen Autor eingestellt und bei ERWEITERT auch Leser und Autorenfelder ändern und konsistente ACL .... erzwingen angehakt. Der Administrationsserver ist der unsrige.

Wenn ich nun mit einer ID in die DB reingehe, kann ich auf unserem Server die Dok´s ändern, obwohl der Name nicht in der ACL eingetragen ist, gehe ich aber auf den anderen Server, funktioniert das mit der Berechtigung.

Weiters hab ich in unserer Mail-Schablone eingebaut, dass man eingegangene Mails in diese DB kopieren kann. Beim Klick darauf geht ein Fenster mit der Ansicht hoch, da sucht man sich das Projekt aus, klickt auf OK und das Doku wurde erfolgreich übertragen.

Wenn man nun Autorenrechte hat, bei dem Dok, dem man das Mail zuordnen will als Autor eingetragen ist, kommt aber die Fehlermeldung:

Notes error: Sie können keine Dokumente aktualisieren oder löschen, in denen Sie nicht als zulässiger Autor aufgeführt sind

?????

Hat jemand eine Idee??

lg
Marietta
Titel: Re:Autorenfelder
Beitrag von: koehlerbv am 17.07.03 - 10:15:07
Ist in der ACL für die Autoren "Dokumente erstellen" und "Öffentliche Dokumente schreiben" erlaubt ?
Welche Rechte hat -Default- ?
Titel: Re:Autorenfelder
Beitrag von: mgeidl am 17.07.03 - 10:19:09
Eben als Default-Wert hab ich die Autoren, die Dokumente erstellen und schreiben dürfen!
Titel: Re:Autorenfelder
Beitrag von: Christian97 am 17.07.03 - 10:38:52
Hallo,

mach doch bitte mal den Haken bei "Konsistente ACL erzwingen" wieder raus. Dann sollte es funktionieren.

Ciao,
Christian
Titel: Re:Autorenfelder
Beitrag von: Axel am 17.07.03 - 10:45:17
Hi,

sind denn die Leser- und Autorenfelder richtig gefüllt ?


Axel
Titel: Re:Autorenfelder
Beitrag von: mgeidl am 17.07.03 - 10:48:29
Hi!

Es ist so, dass in der Projektaufbauorganisation verschiedene Felder gefüllt werden: Projektleiter, Kernteam, Auftraggeber, Lenkungsausschuß.

Alle Personen, die in diesen Feldern drinn sind, werden ins Autorenfeld übertragen. Im Leserfeld hab ich beide AllUser Gruppen drinnen.

lg
Marietta
Titel: Re:Autorenfelder
Beitrag von: mgeidl am 17.07.03 - 10:50:36
Hallo Christian!

Den Haken hab ich jetzt rausgenommen, auf unseren Server kommt die Person, die nur Autorenrechte hat und nicht im Feld Autoren drinn ist, trotzdem in den Bearbeiten-Modus, beim anderen Server aber nicht!
Titel: Re:Autorenfelder
Beitrag von: Axel am 17.07.03 - 10:52:37
Hi,

nehme mal die User direkt oder in einer Gruppe in die ACL auf un setze den richtigen Typ (Person bzw. Personengruppe). Ich bin mir nämlich nicht sicher, ob das mit dem Default - Zugriff funktioniert.

Axel
Titel: Re:Autorenfelder
Beitrag von: mgeidl am 17.07.03 - 11:05:38
Irgendwas stimmt da sowieso nicht. Auf beiden Servern ist nun der Benutzer (ich nehme immer die ID meines Kollegen als "Versuchskanninchen") als Person und Autor eingetragen.
Wenn ich nun mit seiner ID angemeldet bin und auf unserem Server in die ACL sehe, hat er, obwohl als Autor eingetragen, Managerrechte, wechsle ich auf die Replik am anderen Server, ist er eben nur Autor!

Marietta
Titel: Re:Autorenfelder
Beitrag von: Axel am 17.07.03 - 11:15:14
Hi,

ist er noch über eine Gruppe in der ACL eingetragen. Normalerweise heißt es zwar Einzelrecht geht vor Gruppenrecht, aber man weiß ja nie.

Wechselst du die ID nur oder startest du den Client neu ?  Vielleicht hebt sich der Client das irgendwo auf ? Halt ich ´zwar auch für relativ unwahrscheinlich, weil solche Phänomene habe ich noch nicht beobachtet.

Versuch ihn mal aus der ACL zu entfernen und neu einzutragen.

Vielleicht hat die ACL einen Schlag bekommen. Du könntest versuchen die DB zu löschen und von der funktionierenden DB eine neue Replik zu machen.

Ansonsten bin ich mit meinem Latein auch so langsam am Ende.

Axel
Titel: Re:Autorenfelder
Beitrag von: Christian97 am 17.07.03 - 11:33:36
Du hattest doch im ersten Posting geschrieben, daß die Leser und Autorenfelder vom Administrationsserver geändert werden können. Ich bin mir nicht sicher, da ich mit dieser Option noch nicht gearbeitet habe, aber vielleicht liegt's daran. Stell's doch mal so ein, daß die Felder nicht geändert werden.
Falls das nicht weiterhilft und mir jemand erklären kann, was es mit dieser Option auf sich hat, freu ich mich.

Ciao,
Christian
Titel: Re:Autorenfelder
Beitrag von: koehlerbv am 17.07.03 - 11:42:59
Was den Aufbau der ACL angeht, schliesse ich mich meinen "Vorrednern" an.
Eine konstistente ACL schadet aber nichts, ist aber (insbesondere lokal) manchmal etwas sperrig.
Ich würde mal folgendes machen: In beiden Repliken das Replizierprotokoll löschen und dann "mit Optionen" replizieren.
Der Server schnarcht ja manchmal auch etwas, bevor er schnallt, daß jemand neu in einer Gruppe ist. Daher auf der Konsole mal dbcache flush eingeben.
Sind die Repliken der NABs auf beiden Servern auf dem gleichen Stand ?
Nach Änderungen an der ACL den User mit F5 abmelden, damit ein erneutes Einlesen erzwungen wird.

Vielleicht hilft davon ja was.

Bernhard
Titel: Re:Autorenfelder
Beitrag von: mgeidl am 17.07.03 - 11:49:46
Hallo zusammen!

Hab jetzt mal die Replik auf unserem Server gelöscht und eine neue Replik erstellt. Jetzt funktioniert´s, auch nur mit dem Default-Wert Autor. Das Problem dabei ist nämlich, dass mit der Datenbank im schlimmsten Fall 400 User arbeiten und die mit Gruppen oder Namen in der ACL verwalten, tu ich mir nicht an. Und mit dem Autorenfeld in den Masken kann ich ja verhindern, dass mir da irgendwer was reinpfuscht.

Jetzt hab ich nur mehr das Problem, dass einer mit Autorenrechte kein mail aus seiner Mail-DB in diese DB reinkopieren kann. Die Fehlermeldung hab ich ja schon oben beschrieben.

Ich schick mal zur Sicherheit das LS mit, beim DocN.Save haut´s ihn mit der Fehlermeldung auf:

Sub Initialize
   Dim WS As New NotesUIWorkspace
   Dim s As New NotesSession
   Dim IUDoc As NotesUIDocument
   Dim Doc As NotesDocument
   Dim UNID As String
   Dim DB,DBPM As NotesDatabase
   Dim View As NotesView
   Dim DocN,DocG As NotesDocument
   Dim Item As NotesItem
   Dim ServerName As String
   Dim Col As NotesdocumentCollection
   
   
   'Set UIDoc=WS.CurrentDocument
   Set DB=s.CurrentDatabase
   
   Set col=db.unprocesseddocuments
'   Set Doc=UIDoc.Document
   Set Doc=Col.GetFirstDocument
   
   UNID=s.GetEnvironmentString( "G_UNID" )
   ' UNID=Doc.G_UNID(0)
   
   ServerName=db.Server
   Set DBPM=New NotesDatabase(ServerName,s.GetEnvironmentString( "PM_DB" ))
   If(DBPM Is Nothing) Then
      Messagebox "Datenbank konnte nicht geöffnet werden !"
      Exit Sub
   End If
   
   Set view=DBPM.GetView("(UID)")
   Set DocG=view.GetDocumentByKey(UNID)
   
   If(DocG Is Nothing) Then
      Messagebox "Eintrag konnte nicht gefunden werden !"
      Exit Sub
      
   Else
      While Not (Doc Is Nothing)
         Set DocN=Doc.CopyToDatabase(DBPM)
         Call DocN.MakeResponse(DocG)
         DocN.Doc_Subject=Doc.Subject
         DocN.Doc_PostedDate=Doc.PostedDate
         DocN.form="Memo"
         DocN.Autoren=Doc.Autoren
         DocN.Leser=Doc.Leser
         Call DocN.Save(True,False)
         
         Set Doc=col.GetnextDocument(doc)
      Wend
      
   End If
   
   
   'Set Item=Doc.GetFirstItem("G_UNID")
   'Call Item.Remove
   'Set Item=Doc.GetFirstItem("PROJ_DB")
   'Call Item.Remove
   
   'Call Doc.Save(True,False)
   Messagebox "Das Dokument wurde erfolgreich übertragen !"
   
End Sub
Titel: Re:Autorenfelder
Beitrag von: koehlerbv am 17.07.03 - 11:55:07
Zuerst wird das Dokument in die DB kopiert - so, wie es ist, also ohne Autorenfeld. Dann wird es geändert und erneut gespeichert - aber das Originaldok hat ja kein Autorenfeld.
Wenn ich jetzt nix übersehe, dann sollte das ja auch vom Server abgelehnt werden.

Bernhard
Titel: Re:Autorenfelder
Beitrag von: mgeidl am 17.07.03 - 12:02:41
Das komische dabei ist ja, dass das Dok in die DB kopiert wird, aber eben nicht als Response-Doc sondern als "nicht kategorisiert"!

Titel: Re:Autorenfelder
Beitrag von: Axel am 17.07.03 - 12:05:53
Eine konstistente ACL schadet aber nichts, ist aber (insbesondere lokal) manchmal etwas sperrig.

Hi,

ist aber der einzigste Weg wenn du mit Rollen arbeitest. Bei allen Datenbanken, die ich bisher erstellt habe, arbeite ich mit konsistenter ACL.

@Christian97

Zitat
Du hattest doch im ersten Posting geschrieben, daß die Leser und Autorenfelder vom Administrationsserver geändert werden können. Ich bin mir nicht sicher, da ich mit dieser Option noch nicht gearbeitet habe, aber vielleicht liegt's daran. Stell's doch mal so ein, daß die Felder nicht geändert werden.
Falls das nicht weiterhilft und mir jemand erklären kann, was es mit dieser Option auf sich hat, freu ich mich.

Diese Option ist aber sehr sinnvoll. Die Änderung bezieht sich darauf, wenn in den Feldern User drinstehen, deren Zugang gelöscht wird, dann nimmst sie der Adminserver auch aus den Feldern raus.

Axel
 
Titel: Re:Autorenfelder
Beitrag von: koehlerbv am 17.07.03 - 12:11:53
Konsistente ACL: Wird wirklich gebraucht, wenn man mit Rollen und Zugriffsrechten arbeitet - aber nur lokal. Sollte (!) eine DB nur auf dem Server liegen, ist konsistente ACL unnötig. Aber von welcher DB gibt es schon keine lokalen Repliken ?

Felder ändern: Bezieht sich auf alle Autoren- und Leserfelder und ist eine sehr hilfreiche Einrichtung. Steht ein gelöschter oder auch rezertifizierter User also in einem Nicht-Autoren- oder Leserfeld, wird das vom AdminP nicht berücksichtigt.

Zu den Response-Docs: Ist nach der Aktion $Ref gefüllt ? Ist die Ansicht so aufgebaut, daß Antwort-Dokumente hierarchisch angezeigt werden ?

HTH,
Bernhard
Titel: Re:Autorenfelder
Beitrag von: Axel am 17.07.03 - 12:12:02
Hi,

versuch's mal mit dieser Anpassung:

...
While Not (Doc Is Nothing)
    Set DocN=Doc.CopyToDatabase(DBPM)
    Call DocN.MakeResponse(DocG)
    DocN.Doc_Subject=Doc.Subject
    DocN.Doc_PostedDate=Doc.PostedDate
    DocN.form="Memo"

    Set item = New NotesItem( DocN, "Leser", doc.Leser, READERS )
    item.IsReaders= True
    Set item = New NotesItem( DocN, "Autoren", doc.Autoren, AUTHORS )
    item.IsAuthors= True

    Call DocN.Save(True,False)
         
    Set Doc=col.GetnextDocument(doc)
Wend
...


Axel

Titel: Re:Autorenfelder
Beitrag von: koehlerbv am 17.07.03 - 12:14:45
Au weia, das hab' ich glatt übersehen ;-(
Titel: Re:Autorenfelder
Beitrag von: Christian97 am 17.07.03 - 12:16:42
@Axel, koehlerbv:

Vielen Dank für die Erläuterungen. Dann muß ich das doch gleich mal nachholen, man weiß ja nie, wie sich die User ändern.

Christian
Titel: Re:Autorenfelder
Beitrag von: koehlerbv am 17.07.03 - 12:23:30
@Marietta:
Um den Widerspruch "Dokument ohne Autorfeld kopieren und anschliessend als Autor bearbeiten wollen" zu umgehen, würde ich statt CopyToDatabase CopyAllItems verwenden:
- in der Ziel-DB neues Doc anlegen
- Eigene Felder belegen, zum Response-Doc machen
- Autor-/Leserfelder die nötigen Property verpassen
- CopyAllItems vom Original ins Doc
- speichern

HTH,
Bernhard
Titel: Re:Autorenfelder
Beitrag von: koehlerbv am 17.07.03 - 12:27:10
@Christian:
Mit dem Update der Autoren- und Leserfeldern muß man aber auch aufpassen, daß man sich dabei nicht selbst ins Knie schiesst.
Nehmen wir mal eine Inventar-DB. Falls Frl. X heiratet und rezertifiziert wird, soll ja auch ihr Inventar entsprechend unter dem neuen Namen aufgelistet werden. Ergo: Wir machen aus dem Feld "Besitzer" gleich ein Autorenfeld, und der AdminP wird's dann schon richten.
Dumm wird's aber, wenn Frau Y (wie sie jetzt heißt) wegen Nachwuchs die Firma verläßt. AdminP entfernt jetzt ihren Namen aus dem Feld "Besitzer", und keiner weiß mehr, wem denn nun das Notebook und der externe Brenner und das zweite Ladegerät und die SmartSuite-Lizenz gehört ...
Titel: Re:Autorenfelder
Beitrag von: Christian97 am 17.07.03 - 12:33:30
@koehlerbv:
Zitat
keiner weiß mehr, wem denn nun das Notebook und der externe Brenner und das zweite Ladegerät und die SmartSuite-Lizenz gehört ...
Das hat sie dann alles mitgehen lassen  ;D

Aber vielen Dank für die Erläuterung dieser Option.

Christian
Titel: Re:Autorenfelder
Beitrag von: Axel am 17.07.03 - 12:38:33
@Christian:
Mit dem Update der Autoren- und Leserfeldern muß man aber auch aufpassen, daß man sich dabei nicht selbst ins Knie schiesst.
Nehmen wir mal eine Inventar-DB. Falls Frl. X heiratet und rezertifiziert wird, soll ja auch ihr Inventar entsprechend unter dem neuen Namen aufgelistet werden. Ergo: Wir machen aus dem Feld "Besitzer" gleich ein Autorenfeld, und der AdminP wird's dann schon richten.
Dumm wird's aber, wenn Frau Y (wie sie jetzt heißt) wegen Nachwuchs die Firma verläßt. AdminP entfernt jetzt ihren Namen aus dem Feld "Besitzer", und keiner weiß mehr, wem denn nun das Notebook und der externe Brenner und das zweite Ladegerät und die SmartSuite-Lizenz gehört ...


Hi,

seit wann soll denn ein "Normalsterblicher" Einträge in einer Inventar-DB ändern dürfen ? Autorenrechte sollte hier die EDV haben und sonst keiner.
Ausserdem hab ich noch nie eine Inventar-DB gesehen, in dem das Feld Besitzer ein Autorenfeld war. Das mach doch keinen Sinn.

Axel
Titel: Re:Autorenfelder
Beitrag von: mgeidl am 17.07.03 - 14:24:59
Hi Axel!

Ich hab jetzt alles so reinkopiert, wie von Dir vorgeschlagen, aber sch..............!

Gehört bei:
Set item = New NotesItem( DocN, "Leser", doc.Leser, READERS )
         item.IsReaders= True
         Set item = New NotesItem( DocN, "Autoren", doc.Autoren, AUTHORS )
         item.IsAuthors= True

Leser und Autoren in Hochkomma, oder kommt da was anderes rein??
Bin schon fix und fertig, wahrscheinlich ist aber auch die Hitze daran schuld.

Hi Bernhard!

Und wie mach ich das bei meinem Code?

lg
Marietta
Titel: Re:Autorenfelder
Beitrag von: koehlerbv am 17.07.03 - 14:29:44
Ich glaub', da hast Du was vollkommen mißverstanden.
1. Inventar-DB war ein Beispiel
2. Daß in der DB irgendeiner ausserhalb der DV-Abteilung Autorenrechte hat, wurde nicht mal erwähnt.
3. Mit hat tatsächlich mal jemand das beschriebene Verfahren als *den* Einfall verkaufen wollen, um nach Rezertifizierungen alle früheren Doks automatisch per AdminP umzustellen.
4. In etlichen Apps führe ich tatsächliche Personen *zusätzlich* in einem Leserfeld mit, ein periodischer Agent updated im Fall der Fälle (Rezertifizierung) das eigentliche Personenfeld, falls das Leserfeld nicht plötzlich leer sein sollte ...

Bye,
Bernhard
Titel: Re:Autorenfelder
Beitrag von: Axel am 17.07.03 - 14:46:05
Hi,

hier die kurze Erklärung der Parameter für

Set item = New NotesItem( DocN, "Leser", doc.Leser, READERS )

DocN -> Dokument in dem das Feld (neudeutsch: Item) angelegt werden soll.

"Leser" -> Name des Feldes in Anführungszeichen

doc.Leser > Feldinhalt der in das neue FEld eingefügt werden soll.

READERS -> legt den Typ des Feldes fest, hier ein Leserfeld.


Leser und Autor ist der Feldname und die habe ich aus deinem Script entnommen. Sie gehören in Anführungszeichen.

Axel
Titel: Re:Autorenfelder
Beitrag von: Axel am 17.07.03 - 14:50:04
Ich glaub', da hast Du was vollkommen mißverstanden.
1. Inventar-DB war ein Beispiel
2. Daß in der DB irgendeiner ausserhalb der DV-Abteilung Autorenrechte hat, wurde nicht mal erwähnt.
3. Mit hat tatsächlich mal jemand das beschriebene Verfahren als *den* Einfall verkaufen wollen, um nach Rezertifizierungen alle früheren Doks automatisch per AdminP umzustellen.
4. In etlichen Apps führe ich tatsächliche Personen *zusätzlich* in einem Leserfeld mit, ein periodischer Agent updated im Fall der Fälle (Rezertifizierung) das eigentliche Personenfeld, falls das Leserfeld nicht plötzlich leer sein sollte ...

Bye,
Bernhard


zu 3. Ich möchte mal behaupten, derjenige hat den Sinn und Zweck der leserfelder nicht ganz kapiert.

zu 4. warum so aufwändig? Ich definiere mir eine Rolle und die kommt fest in ein Leserfeld. Die Rolle bekommt der DB-Administrator zugewiesen. Fertig. Die Zugriffssteuerung mache ich dann über ein 2. Leserfeld. So habe ich die Gewähr, dass immer jemand auf des Dokument zugreifen kann.

Axel
Titel: Re:Autorenfelder
Beitrag von: koehlerbv am 17.07.03 - 15:02:10
Zu 3. Doch, doch - aber erst, als ich ihm das Wirken von AdminP bei User-Löschungen zu denken gegeben habe ;-)  Er hat dann 'ne runde Bier ausgegeben ;-)

Zu 4. Immer noch ein Mißverständnis: Natürlich haben die Manager immer Zugriff, da braucht man ja noch nicht mal 'ne Rolle (solange man nicht Buttons, Teilmasken oder Felder/Text mit Hide-when rollenabhängig ausblendet.
Es geht hier um folgende Situation - und bleiben wir mal beim schön einfachen Inventar-DB-Beispiel:
- Eine Ansicht stellt alles Inventar nach Besitzer dar.
- Frl. X wird Frau Y durch Rezertifizierung.
- Frau Y scheidet zur Kindererziehung aus.

Ist das Besitzer-Feld Names oder Text, kriegt die App nix mit von der Rezertifizierung (doof) und auch nicht von der Löschung (guuut).
Zur Lösung des Falls "Doof": Im Dokument gibt es Item, das dem Item "Besitzer" beigestellt ist (unsichtbar, in keiner Maske - wozu auch). Dieses hat die property IsReaders und wird von einem scheduled agent überwacht:
- Gibt es "BesitzerLerser" noch nicht - anlegen
- Ist "BesitzerLeser" leer - schade, aber nicht zu ändern.
- Ist BesitzerLeser <> Besitzer, dann gab's 'ne Rezertifizierung. Der Agent übernimmt nun für Besitzer den Inhalt von BesitzerLeser.

Und in unserer Ansicht steht jetzt alles Inventar von Frl. X unter dem Namen Frau Y.
Und wenn sich Frau Y dann um die lieben Kleinen kümmert und dankend auf ihren Notes-Account verzichten kann, steht ihr Inventar immer noch unter ihrem Namen.
Und wenn der Programmierer noch ganz fix war, dann hat er für den Fall BesitzerLeser = "" durch den Agent noch ein Flag setzen lassen: "Beute zu verteilen". Erscheint dann als Kategorie in einer anderen Ansicht.

Ciao,
Bernhard
Titel: Re:Autorenfelder
Beitrag von: mgeidl am 17.07.03 - 15:12:54
Hat leider noch immer nicht funktioniert!
Titel: Re:Autorenfelder
Beitrag von: koehlerbv am 17.07.03 - 15:28:30
Sorry, Marietta, jetzt haben wir Dich doch glatt vergessen ...

Ich versuche mal so aus dem Hut noch ein paar Erläuterungen:
Axels Vorschlag (guuut!) - Du mußt hierzu aber in den Declarations ein %Include "lsconst.lss" einbinden, sonst kennt er die Konstanten READERS und AUTHORS nicht.

Mein Vorschlag wegen CopyAllItems:

While Not (Doc Is Nothing)
         Set DocN = DBPM.CreateDocument
         Call DocN.MakeResponse(DocG)
         DocN.Doc_Subject=Doc.Subject
         DocN.Doc_PostedDate=Doc.PostedDate
         DocN.form="Memo"
         <Axels Code wegen Autoren/Leser>
         Call Doc.CopyAllItems (DocN, true)
         Call DocN.Save(True, False, True)
         
         Set Doc=col.GetnextDocument(doc)
      Wend


Wie gesagt - aus dem Hut. Wenn es noch irgendwo scheppert, bitte mit dem Debugger ermittelt, wo.

HTH,
Bernhard
Titel: Re:Autorenfelder
Beitrag von: ata am 17.07.03 - 19:44:35
@Koehlerbv

... wegen 2 Konstanten eine ganze .lss verwenden - da würde ich die beiden Konstanten explicit einbinden - sollte auf einer anderen Maschine - aus welchem Grund auch immer - die Datei fehlen hast du beim neu kompilieren ein Problem...

... ich gebe Axel völlig recht, was die Verwendung der konsistenten ACL angeht. Auch ich verwende sehr häufig die konsistente ACL - nicht nur lokal - da ist sie unabdingbar, wenn ich Rollen verwende...

... die konsistente ACL stellt eines sicher - Änderungen in der ACL dürfen NUR auf dem Administrationsserver vorgenommen werden. Ist das nicht der Fall, werden die DB's nicht mehr repliziert...

... in so einem Fall muß die konsistente ACL deaktiviert werden und die ACL's gerade gezogen werden - dann die konsistente ACL wieder aktivieren...

ata
Titel: Re:Autorenfelder
Beitrag von: koehlerbv am 17.07.03 - 20:01:49
Hi, ata,

was die Konstanten READERS und AUTHORS angeht: Die separat zu deklarieren ist natürlich kein Problem. Aber "eine ganze .lss einbinden" ist sicherlich erheblich einfacher (und unproblematischer) als einem newbee zu erklären, wie sie die erforderlichen Werte herausbekommt ... Und lsconst bietet ja nun einen ganzen Sack voll Konstanten, die man dauernd braucht (MB_xxxx usw.).

Wegen der konsistenten ACL müssen wir wohl alle nochmal genauer nachlesen. Ich programmiere an einem ganzen Sack voll Apps, die auf konsistente ACL angewiesen sind und kann daher folgendes sagen:
- Liegt die DB auf einem Server, braucht man definitiv keine konsistente ACL, um Rollen zu ermitteln. Sagt auch die Doku.
- R5.0.8: Die ACL wird definitiv auch repliziert, wenn deren Änderung nicht auf dem Administrations-Server vorgenommen wurde.
- Was zu checken ist: Bestimmte Änderungen in der ACL werden gecached und werden erst wirksam, wenn man hier nachhilft - nicht nur lokal (da ist es ja sowieso happig), sondern auch auf den Servern. In der Regel hilft es, das Replizierprotokoll zu löschen ...

Eure Erfahrungen würden mich hier sehr interessieren - gerade das Zusammenspiel Server-DB mit lokalen Repliken!

Beste Grüsse, Bernhard
Titel: Re:Autorenfelder
Beitrag von: ata am 17.07.03 - 20:09:54
... die Rollen werden bei jedem Server-Zugriff überprüft, da beim Zugriff eine Sicherheitsüberprüfung zwingend ist - und die gibt es lokal nicht zwingend - eben nur mit der konsisten ACL...

... damit man mir nicht replizierend in der ACL rumpfuscht aktiviere ich die konsistente ACL - damit weden ACL-Änderungen nur auf dem Administrationsserver zugelassen - definitiv - ich hatte deswegen mit Admins beim Kunden schon diverse Kontakte, warum die Replikation nicht mehr funktioniert...

... ob das mit 5.08 funktioniert kann ich dir gerade nicht beantworten, dazu müsste ich in die Konowledge Base...

ata
Titel: Re:Autorenfelder
Beitrag von: koehlerbv am 17.07.03 - 21:44:12
Ich glaube, wir sollten mal 'n Thread aufmachen für "enforce consistent ACL" ;-)  Was meinst Du ? Wäre aber nur für erfahrene Notes-Admins/Programmierer ...

Erstmal zur Version: 5.0.8 habe ich als Entwicklungsplattform im Einsatz, in der Firma und erst recht beim Kunden ist es viel bunter, aber hinsichtlich konsistenter ACL immer gleich.

In der ACL rumpfuschen können - egal ob konsistente ACL oder nicht - immer nur DB-Manager. Wenn jemand 'ne lokale Replik hat OHNE konsistente ACL, ist er dort bekanntermassen Manager. Aber ob er dann dort sich selbst, der er nur Leser ist, als Manager einträgt oder nicht, oist so egal, als ob in China 'n Sack Reis umfällt - seine ACL-Änderungen werden von (jdem) Server abgelehnt, und seine unautorisierten Dokument-Änderungen auch.

Meine Kenntnis: Konsistente ACL braucht man, wenn
- lokal Rollen und Rechte (!) ausgewertet werden sollen
- und Leute nicht mit OS-Kopien einer NSF rumhantieren dürfen sollen, die sie lokal vorfinden (= nicht mir ihrer ID angelegt haben resp. sie nicht explizit NAMENTLICH in der ACL aufgeführt sind) oder sich vom Server ziehen.

Können wir uns da weiter austauschen (in einem Extra-Thread)?

Und back to the roots: Wie können wir Marietta weiter helfen? Das war doch der Ausgangspunkt ...

Ciao,
Bernhard
Titel: Re:Autorenfelder
Beitrag von: ata am 17.07.03 - 21:49:46
... und man nimmt die konsistente ACL auf einem Server, um die ACL nur auf dem Admin-Server pfelgbar zu machen. Natürlich kann ei Mangaer die ACL auf einem anderen Server ändern - aber sie wird NICHT repliziert....

ata
Titel: Re:Autorenfelder
Beitrag von: koehlerbv am 17.07.03 - 22:00:00
Ich sag doch - wir sollten dazu einen eigenen Thread aufmachen !

Ich hab' jetzt eben in einer entsprechenden DB LOKAL eine ACL-Änderung gemacht (Person hinzugefügt als Manager).
Administrationsserver ist Server A, repliziert habe ich aber mit Server B.
Und die ACL wurde geupdated auf B. Und nach Replikation mit A stand dort das selbe.

Wie gesagt, das Ganze interessiert mich auch sehr und ich habe damit seit Jahren zu tun (und bekomme teilweise erst jetzt Probleme von Kunden gemeldet, die es zu umschiffen gilt - es betrifft immer die lokalen Repliken). Wollen wir dazu nicht einen eigenen Thread aufmachen und jetzt hier nicht die arme Marietta wuschig machen ?

Herzliche Grüsse vom Rand der Alpen auf die Alb,
Bernhard
Titel: Re:Autorenfelder
Beitrag von: ata am 17.07.03 - 22:13:16
@koehlerbv
... back to the roots - ich poste dir meine Einstellung der Kunden-DB morgen - in einem neuen Posting unter R5 Probleme - OK...

@Marietta
... sind die Autorenfelder in der Replik korrekt gesetzt - AdminP übernimmt auch die Aktualisierung der Leser und Autorenfelder...

ata
Titel: Re:Autorenfelder
Beitrag von: mgeidl am 18.07.03 - 07:03:56
Morgen!

Wusste gar nicht, dass ich mit meinem Betrag eine Lawine losgelöst hab!

Die Berechtigungen an beiden Servern bzgl. Leser und Autorenfeldern funktionieren jetzt, nachdem ich die Replik am Admin-Server gelöscht und eine Neue erstellt hab.

Beim LS von Bernhard "frisst" er mir die Zeile mit !!!-markiert beim sichern des Script nicht:

While Not (Doc Is Nothing)
        Set DocN = DBPM.CreateDocument
        Call DocN.MakeResponse(DocG)
        DocN.Doc_Subject=Doc.Subject
        DocN.Doc_PostedDate=Doc.PostedDate
        DocN.form="Memo"
        '<Axels Code wegen Autoren/Leser>
     !! Call Doc.CopyAllItems (DocN, true)
        Call DocN.Save(True, False, True)
       
        Set Doc=col.GetnextDocument(doc)
      Wend

Marietta
Titel: Re:Autorenfelder
Beitrag von: Axel am 18.07.03 - 08:27:20
Hi,

musste mich gestern relativ früh ausklinken, aber es scheint so, dass du ein Stückchen weitergekommen bist.

Bekommst du eine Fehlermeldung oder passiert einfach gar nichts ?

Hast du auch mal versucht die Zeile etwas weiter vorzuziehen, beispielsweise nach dem CreateDocument ?

Axel
Titel: Re:Autorenfelder
Beitrag von: ata am 18.07.03 - 08:36:11
... könnte sein, daß er beim Kopieren der Felder Probleme hat, wenn die im Doc bereits angelegt wurden - der Vorschlag von Axel klingt gut...

ata
Titel: Re:Autorenfelder
Beitrag von: mgeidl am 18.07.03 - 09:14:30
Beim Abspeichern des Scripts kommt die im Anhang beschriebene Fehlermeldung:
Titel: Re:Autorenfelder
Beitrag von: Axel am 18.07.03 - 09:28:39
Hi,

versuch's mal so:

While Not (Doc Is Nothing)
  Set DocN = New NotesDocument(DBPM)
        Call Doc.CopyAllItems (DocN, true)
...


Axel
Titel: Re:Autorenfelder
Beitrag von: ghost am 18.07.03 - 09:44:48
Es liegt an der Deklaration von DocN:

Dim DocN,DocG As NotesDocument

Richtig muss es heissen:

Dim DocN as NotesDocument, DocG As NotesDocument

Sonst wird DocN als Variant angelegt.

Viele Grüße
ghost
Titel: Re:Autorenfelder
Beitrag von: mgeidl am 18.07.03 - 10:04:48
Danke ghost! Danke an alle!

Jetzt bin ich rundum glücklich und kann beruhigt ins Wochenende.

Schönes Wochenende an alle.

Marietta