Hallo und Willkommen hier im Forum!
Ich schreib einfach mal, was mir auffällt:
Die folgenden Codezeile hast du doppelt im Script. Einmal ziemlich am Anfang, dann nochmal vor der While-Schleife. Ist das gewollt?
Set Dokumente = Sitzung.CurrentDatabase.UnprocessedDocuments 'BH
Set Dokument = Dokumente.GetFirstDocument 'BH
ID = Dokument.ID(0) +"//"+Dokument.Beleg_ID(0)
Set Kalkumaske = Sitzung.CurrentDatabase.GetView ("(lookup Zuschlag)") ' Ansicht holen
Set XXX = Kalkumaske.GetEntryByKey (ID, True)
Was die Zeilen machen ist mir aus dem Code heraus nicht ganz klar. Sie werden scheinbar nicht gebraucht. Ich wollte auch noch darauf hinweisen, dass du einer "KalkuMASKE" eine View zuweist.
Zudem hast du eine UIView deklariert und nutzt sie im Script ebenfalls gar nicht.
Dein Problem dürfte aber sein, dass du wohl ein offenes Dokument hast welches du änderst, dann ein neues Dokument lädst und dann versuchst das Dokument, das du geändert hattest, zu speichern.
Dokument.Zuschlag_Gesamt = (ZMat + ZFert + ZVV + ZGew + ZVer + ZSko + ZRab) / 100 'das ganze durch 100 um Faktor zu bekommen, dient der Übersicht
Set Dokument = Dokumente.GetNextDocument(Dokument)
Call Dokument.Save(True,True,True)
Wend
Das ist ein wenig die falsche Reihenfolge.
Du holst dir auch einmal ein Eintrag (Set Eintrag = Lookup.GetEntryByKey (ID, True)) aber verarbeitest ihn nicht weiter.
Macht das Script denn das, was es soll? Es fällt mir ein wenig schwer es nachzuvollziehen.
Achja. Und der Thread ist in der falschen Kategorie
Chris