Hallo,
ich möchte gerne aus einen Dokument "Archive" ein Feld "ID_DOC"
beim erstellen eines neuen Dokument hochzählen und dann das Ergebnis speichern sowie im
neuen Dokument im Feld "ID_MainDOC" hinterlegen.
Hierzu habe ich versucht folgenden Code zu schreiben komme aber nicht so richtig weiter, da ich
immer einen Fehler Missmatch erhalte.
Sub Initialize
Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc_ID As NotesDocument
Dim doc As NotesDocument
Dim IDcounter As Integer
Dim ID_Doc As Integer
Set db = session.CurrentDatabase
Set db_doc = db.AllDocuments
Set doc_ID = db_doc.GetDocument (archive)
Set IDcounter =doc_ID.Items(ID_Doc)
IDcounter = IDcounter +1
doc_ID.ID_DOC = IDcounter
Call doc_ID.Save(True,False)
End Sub
Wo muss ich den Code am besten hinterlegen (z.B. Postopen oder unter Vorgabewert des Feldes) , damit
es im neuen Dokument im Feld ID_MainDOC abgelegt wird?
Gruß Jörg
Die DocumenteUniqueID verwende ich nachher zum auslesen aller Antwortdokumente,
aber der Counter verwende dazu erstmal alle Dokumente zu Kategoriesieren.
Hier nun der Code , mit dem ich auf einen Server und bei einen neuen Hauptdokument
einen Counter hochzähle:
Sub Postopen(Source As Notesuidocument)
Set uidoc = source
Set thisuidoc=source
Set thisdoc=thisuidoc.Document
Set doc = uidoc.document
Dim doc_ID As NotesDocument
Dim IDcounter As Variant
Dim ID_Doc As Variant
Set db = session.currentdatabase
If thisdoc.IsNewDoc And db.Server <> "" Then
'Abfrage profile Dokument auf dem Server
Set doc_ID=db.getprofileDocument("dokumentcounter","DocCounter")
'Wenn Feld schon vorhanden
If doc_id.hasitem("DOC_ID") Then
'Counterwert holen
IDcounter = doc_id.DOC_ID(0)
Else
'Wenn Feld nicht vorhanden dann anlegen
IDcounter =0
doc_id.DOC_ID="0"
End If
'Wenn Documenten Status ist Neu
IDcounter = IDcounter +1
doc_ID.DOC_ID = IDcounter
Call doc_ID.Save(True,False)
doc.ID_MainDOC = IDcounter
Else
Exit Sub
End If
End Sub
Sicherlich gibt es andere Lösungen , aber die ist für meine Anwendung völlig ausreichend.
Auch wenn ich dann Dokumente lösche ist es mir dann egal , ob der Counter fortlaufend
ist oder nicht.
Gruß Jörg