Domino 9 und frühere Versionen > ND6: Entwicklung
E-Mails nach Inhalten parsen
immanuel:
Hallo Zusammen
Ein Mail kann so aussehen:
--- Code: ---TransaktionsID: 1111111
Zusatzparameter:
Spende für: Zweck
Zahlungsart: Visa
Zahlungsnummer: 1111111
Transaktionsbestätigung für Spendenbetrag: 200
Währung: CHF
ESR Member:
ESR Referenznummer:
ESR Nummer:
Spender wünscht keine Werbung. true
***********************************************
Adresse:
Herr
Nachname Vorname
Strasse
PLZ Ort
***********************************************
--- Ende Code ---
Gut wäre, wenn das Parsen auf der Seite des Servers geschehen würde, wie z.B. über einen Agenten, weil die Clients R5 und R6 sind.
LG Manuel
Semeaphoros:
Also, um das zu parsen, wenn es denn so stabil ist, wie Du das schilderst, braucht es nicht wirklich regex. R5 oder R6 spielt da auch fast keine Rolle, und dass man das auf dem Server platziert ist so, wie ich das oben vorgeschlagen habe, eigentlich auch gegeben, ein clientseitiges Parsen wäre eigentlich schon eher komplizierter.
koehlerbv:
In diesem Falle - wenn immer diese Formulardaten genauso vorkommen - ganz einfach:
- Text aus Body ziehen
- Zeilenweise aufdröseln
- dabei nach den Kennern suchen wie "Spendenbetrag"
- an der dann erwarteten Stelle den Wert extrahieren (incl. Prüfungen / Konvertierungen)
Du weisst ja faktisch schon, wo oder wonach die Dich interessierenden Daten stehen.
HTH,
Bernhard
TMC:
Genau, das erscheint mir jetzt auch eher simpel.
Mit item.Text auslesen.
Dann bietet sich IMHO an, das ganze in eine Liste zu überführen.
Dadurch hat man schön Zugriff auf die einzelnen Werte, und zieht sich das raus, was man braucht.
eknori:
habs mal schnell exemplarisch für die Währung zusammengebraten
Sub Click(Source As Button)
Dim s As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim doc As NotesDocument
Dim rtItem As Variant
Dim plaintext As Variant
Dim retVal As String
Dim key As String
Dim pos As Integer
Set db = s.CurrentDatabase
Set col = db.UnprocessedDocuments
Set doc = col.GetFirstDocument
Set rtitem = doc.GetFirstItem( "Body" )
If ( rtitem.Type = RICHTEXT ) Then
plainText = rtitem.GetFormattedText( False, 0 )
End If
key = "Währung:"
'Msgbox plaintext
pos=Instr(1, plaintext, Key)
'Msgbox pos
retval = Mid(plaintext,pos + Len(key) + 1 ,3)
Msgbox retval
End Sub
Ist noch nicht dynamisch, da beim MID noch mit einem festen Wert gearbeitet wird (3)
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln