Nun - alles nur Nullen und Einsen...
Nachdem ich mich stundenlang in den Tiefen der Undokumentation der C-Api erfolglos frustriert habe, bin ich dann doch zu einem DXL Versuch übergegangen, der erfolgreich war.
Anbei das Script - falls jemand mal ein ähnliches Problem hat - oder es verbessern möchte (ich möchte anmerken, dass ich mir vollkommen bewusst bin, dass elegant etwas anderes ist - und absolut gewillt etwas über das Parsen in XML zu lernen).
| |
| Sub Initialize |
| Dim session As New NotesSession |
| Dim db As NotesDatabase |
| Set db = session.CurrentDatabase |
| Dim dc As notesdocumentcollection |
| Set dc=db.unprocesseddocuments |
| |
| Dim exporter As NotesDXLExporter |
| Set exporter = session.CreateDXLExporter |
| Dim i As Integer |
| Dim dxl As String |
| Dim doc As notesdocument |
| Dim added As String |
| On Error Goto nextloop |
| For i=1 To dc.Count |
| Print Str(i) & " von " & Str(dc.Count) |
| Set doc=dc.GetNthDocument(i) |
| dxl=exporter.Export(doc) |
| added=getAdded(dxl) |
| doc.addedToThisFile=added |
| Call doc.Save(True, False, True) |
| nl: |
| Next |
| Stop |
| Exit Sub |
| |
| nextloop: |
| Resume nl |
| End Sub |
| |
| Function getadded(dxl As String) As String |
| |
| Dim step1 As String |
| Dim step2 As String |
| Const END1=|</addedtofile>| |
| Const END2=|</datetime>| |
| Const START1=|<addedtofile>| |
| Const START2=|<datetime>| |
| Const START3=|<datetime dst= |
| |
| step1=Strright(Strleft(dxl,END1),START1) |
| step2=Strright(Strleft(step1,END2),START2) |
| |
| If step2="" Then |
| step2=Strright(Strleft(step1,END2),START3) |
| End If |
| Dim yearstring As String |
| Dim monthstring As String |
| Dim daystring As String |
| yearstring=Left(step2,4) |
| monthstring=Right(Left(step2,6),2) |
| daystring=Right(Left(step2,8),2) |
| getadded=daystring & "." & monthstring & "." & yearstring |
| End Function |
| |
| |
Ach ja, das ist ein Agent.