Domino 9 und frühere Versionen > ND6: Entwicklung

Notes Error: "zulässiger Autor"

(1/3) > >>

Rootine:
Wunderschönen guten Morgen!
Ich hab wieder mal ein Problem...

Folgende Situation:
Ich habe eine Datenbank mit "Aufträgen" die von einer Gruppe bearbeitet werden. Damit die MA nicht in einer anderen Datenbank ihre Tätigkeiten nochmal eingeben müssen, haben sie in dieser Auftragsdatenbank in der Maske "Aufträge" einen Abschnitt mit berechnetem Zugriff (da ist die Gruppe eingetragen) in dem die MA ihrer Tätigkeiten eintragen und das ganze mittels Button in die andere Datenbank hinüberschmeissen.  Alle Personen dieser Gruppe haben dieses Recht und stehen in einem Autorenfeld, Zusätzlich sind alle Personen dieser Gruppe Editoren in der ACL. Nun tritt aber bei zwei von den 10 Personen folgender Fehler auf: "Notes error: Sie können keine Dokumente aktualisieren oder löschen, für die Sie nicht als berechtigter Autor aufgeführt sind".
Woran kann das liegen?

danke und lg
Rootine

dirk_2909:
Hallo

Es kann sein, dass die Autorenfelder nicht korrekt befüllt sind.
Ich denke mal, dass Du die Dokumente via LS erstellst.

Ich hatte das selbe Problem bei einigen Usern.

Vor dem doc.Save... habe ich folgende Zeilen eingefügt:

Set item = New NotesItem( docAntrag  , "fldAuthorToDo"  , sess.UserName  , AUTHORS )
item.IsSummary = True

Danach gings  :-:  ;D

wkrause:
Hallo,

ich hatte gerade ein ähnliches Problem:

-User hat autoren Recht auf die ZielDB
-Kopiert ein Dokument in die ZieldDB und kann es dann nicht mehr Speichern (ist kein Autor für Doc)

Lösung:

Leeres Dokument in der ZieldDB anlegen.
Copy all items vom QuellDoc in das ZielDoc.
->> Autorenfeld setzten (wenn kein Autorenfeld vorhanden dann noch Feld anlegen und mit  item.isauthors zum Autorenfeld machen.

Eventuell sind auch zu viele Elemente in der Gruppe/Autorenfeld. Das kann man testen indem man die  Betreffenden an den Anfang der Liste setzt.

Hoffe es hilft.
Werner

Rootine:
so ich poste Euch mal den Code vom Button rein:

Sub Click(Source As Button)
   
   Dim ws As New NotesUIWorkspace
   Dim s As New NotesSession
   Dim ccdb As NotesDatabase
   Dim zab As Notesdatabase
   Dim prodoc As notesdocument
   Dim cd As NotesUIDocument
   Dim zd As NotesDocument   
   Dim quelle As NotesRichTextItem
   Dim ziel As NotesRichTextItem
   Dim server As String
   Dim filepath(0) As String
   Dim searchstr(0) As String
   Dim replacestr(0) As String
   Dim repfilepath As Variant
   Dim fehler As String
   Dim zabcwf As Variant
   Dim gessumme As Double
   
   
   Set cd = ws.CurrentDocument
   
   Set ccdb = s.CurrentDatabase
   Set prodoc = ccdb.GetProfileDocument("DBProfil")
   
   filepath(0) = prodoc.zab(0)
   searchstr(0) = "\\"
   replacestr(0) = "\"
   repfilepath =Replace(filepath,searchstr,replacestr)
   Set zab = s.GetDatabase(prodoc.napps(0),repfilepath(0),False)
   
   'Eingabeüberprüfung
   fehler=""
   
   If cd.Fieldgettext("ZIDMA")="" Then
      fehler=fehler+"Der MA Name fehlt" & Chr(10)
   End If
   
   If cd.Fieldgettext("ABDatum")="" Then
      fehler=fehler+"Datum ist leer" & Chr(10)
   End If
   
   If cd.Fieldgettext("ABKST")="" Then
      fehler=fehler+"Kostenstelle  ist leer" & Chr(10)
   End If
   
   If cd.Fieldgettext("ABAufgabe")="" Then
      fehler=fehler+"Aufgabe ist leer" & Chr(10)      
   End If
   
   If cd.Fieldgettext("ABInstOrg")="" Then
      fehler=fehler+"Kostentrräger fehlt" & Chr(10)      
   End If
   
   If cd.Fieldgettext("ABStunden_1")="" And cd.Fieldgettext("ABStunden_2")=""Then
      fehler=fehler+"NormalAZ und ExtraAZ sind leer ( mind. 1 Feld eintragen )" & Chr(10)      
   End If   
   
   If fehler<>"" Then
      Msgbox "Folgende Fehler sind aufgetreten: " & Chr(10) & Chr(10) & fehler & Chr(10) & "Bitte geben Sie gültige Werte ein." ,16,"Fehler"
      Exit Sub
   End If
   
   If cd.FieldGetText("ABStunden_1") = "" Then
      Call cd.FieldSetText("ABStunden_1","0")
   End If
   
   If cd.FieldGetText("ABStunden_2") = "" Then
      Call cd.FieldSetText("ABStunden_2","0")
   End If
   
   Call cd.Save
   Call cd.Refresh
   
   Set zd = zab.CreateDocument()
   zd.Form="TimeBericht"
   zd.ZIDMA=cd.fieldgettext("ZIDMA")
   zd.wam = cd.fieldgettext("wam")
   zd.ABDatum=Cdat(cd.fieldgettext("ABDatum"))
   zd.ABKST= cd.fieldgettext("ABKST")
   zd.ABInstOrg=cd.fieldgettext("ABInstOrg")
   zd.ABAufgabe=cd.fieldgettext("ABAufgabe")
   zd.ABAufgabeUmwandeln=cd.fieldgettext("ABAufgabeUmwandeln")
   zd.ABStunden_1 = cd.fieldgettext("ABStunden_1")
   zd.ABStunden_2 = cd.fieldgettext("ABStunden_2")
   zd.Stundensatz=cd.fieldgettext("Stundensatz")    
   zd.Summe=cd.fieldgettext("Summe")    
   zd.ExtraAZ_von = cd.fieldgettext("ExtraAZ_von")
   zd.ExtraAZ_bis = cd.fieldgettext("ExtraAZ_bis")
   zd.ABStunden = cd.fieldgettext("ABStunden")
   zd.ABBeschreibung = cd.fieldgettext("ABBeschreibung")
   'TODO   AUTOREN UND LESERFELDER AUS ZAB HOLEN!!!
   zd.Autoren=cd.fieldgettext("AB_Autoren")
   zd.Autoren_1=cd.fieldgettext("AB_Autoren_1")
   zd.Leser=cd.fieldgettext("AB_Leser")
   zd.Leser_1=cd.fieldgettext("AB_Leser_1")
   zd.ABStatus="angelegt"
   zd.Ursprung="CCDB:"+ " - " + cd.fieldgettext("Kunde2")+ " - " +cd.fieldgettext("ABInstOrg")+ " - " +cd.fieldgettext("Kategorie")+ " - " +cd.fieldgettext("erstelltam")
   Set quelle = New NotesRichTextItem(zd,"Quelle")
   Call quelle.AppendText("CCDB: Klicken Sie hier ->")
   Call quelle.AppendDocLink(cd.Document, "CCDB Dokument öffnen!")
   Call quelle.AppendText("<- um zum Dokument zu gelangen!")
   
   Call zd.Save( False, False )
   zabcwf = zd.ComputeWithForm(False,False)
   Call zd.Save( False, False )
   
   If zd.Save(True,True,True) Then
      gessumme = Cdbl(cd.fieldgettext("ABStunden")) + Cdbl(cd.fieldgettext("ABGesSumme"))
      Call cd.FieldSetText( "ABGesSumme" , Cstr(gessumme))
      taet = cd.fieldgettext("ZIDMA") + " (" + cd.fieldgettext("ABDatum") + " - " + cd.fieldgettext("ABStunden") + " Stunden) " +  cd.fieldgettext("ABAufgabe") + " - " + cd.fieldgettext ("ABBeschreibung") + Chr(13)
      Call cd.FieldAppendText("taetigkeiten", taet)
      Call cd.Save()
      'log
      'Set ziel = New NotesRichTextItem(cd.Document, "ABLog")
      'Call ziel.AppendText("ZAB am " & Cstr(Date$) & " von " & cd.FieldGetText("ZIDMA") & " : Klicken Sie hier ->")
      'Call ziel.AppendDocLink(zd, "ZAB Dokument öffnen!")
      'Call ziel.AppendText("<- um zum Dokument zu gelangen!")
      'Call ziel.AddNewline(1)
      
      Call cd.Refresh
      
      Call cd.FieldClear("wam")
      Call cd.FieldClear("ABKST")
      Call cd.FieldClear("ABInstOrg")
      Call cd.FieldClear("ABAufgabe")
      Call cd.FieldClear("ABAufgabeUmwandeln")
      Call cd.FieldClear("ABStunden_1")
      Call cd.FieldClear("ABStunden_2")
      Call cd.FieldClear("Stundensatz")
      Call cd.FieldClear("Summe")
      Call cd.FieldClear("ExtraAZ_von")
      Call cd.FieldClear("ExtraAZ_bis")
      Call cd.FieldClear("ABStunden")
      Call cd.FieldClear("ABBeschreibung")
      
      Call cd.Save()
      
      
      
      Msgbox  "Die Daten wurden erfolgreich in ZAB übernommen!",64, "Hinweis"
      
   Else
      Call zd.ComputeWithForm(False,True)
      Msgbox "Fehler im ZAB! Dokument konnte nicht gespeichert werden!" ,16, "Fehler im ZAB"
   End If
   'Else
      ' Fehler im ZAB!!! -> Keine Speicherung   
   '   Call zd.ComputeWithForm(False,True)
   '   Msgbox "Fehler im ZAB! Dokument konnte nicht gespeichert werden!" ,16, "Fehler im ZAB"
   'End If
   
   
End Sub

Glombi:
Du musst Autoren- und Leserfelder explizit als solche erstellen!

dim item as NotesItem

Anstelle von
zd.Autoren=cd.fieldgettext("AB_Autoren")
ein
set item = New NotesItem( zd, "Autoren", cd.fieldgettext("AB_Autoren"), AUTHORS )

analog
   zd.Autoren_1=cd.fieldgettext("AB_Autoren_1")

und für die Leserfelder
Anstelle von
   zd.Leser=cd.fieldgettext("AB_Leser")
ein
set item = New NotesItem( zd, "Leser", cd.fieldgettext("AB_Leser"), READERS )

ebenso für
   zd.Leser_1=cd.fieldgettext("AB_Leser_1")



Andreas

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln