Domino 9 und frühere Versionen > ND6: Entwicklung
Notes Error: "zulässiger Autor"
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