Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Fis am 29.07.03 - 09:32:54
-
Hallo liebe Leidesgenossen,
hab zwar ein paar Treffer gefunden zu meinem gesuchten Thema, brachte mich aber nicht weiter.
Ich bekomme immer eine bestimmte Mail und aus dieser Mail sollen bestimmte Textabschnitte in bestimmte Felder in einer DB kopiert werden. Dieses sollte manuell geschehen.
Am besten wäre es über ein Agent in der Mail-DB. Vielleicht kann mir da einer unter die Arme greifen.
Danke und Gruß
Rodan
-
... wenn es manuell passieren soll, wofür dann noch der agent ?
-
Also du willst einen Agent der dir Teile des Inhaltes des Richttext Feldes in Felder einer DB einbaut.
Schreib dir doch einfach einen Parser in Script.
Vorbedingung: Du musst die zu übertragenden Teile eindeutig identifizieren können. Das hängt eigentlich ausschließlich von der Struktur der Daten ab. Beispiel hier wäre nicht schlecht um das abschätzen zu können.
Thomas
-
Ich möchte gernen einen Agenten den ich manuell über Aktion ausführen kann bei der geöffneten Mail.
Beispiel kann ich schlecht hier rein geben, da vertraulich, aber es soll so aussehen.
Marion Tester
Ertrag: 13000 €
Gewinn: 5000 €
noch verbleibender Kredit beträgt 234454 €
Und ich möchte dann den Namen in ein Feld, den Ertrag in ein weiteres Feld ....
-
Hab mal hier schnell was zusammengebraten:
Sub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim fullString As String
Dim positionOfErtrag As Integer
Set uidoc = workspace.CurrentDocument
fullString = uidoc.FieldGetText( "Body" )
positionOfErtrag = Instr ( fullString, "Ertrag:") + Len("Ertrag: ")
subErtrag$ = sWord ( Mid$ ( fullString , positionOfErtrag , 10), " " , 1 )
positionOfGewinn = Instr ( fullString, "Gewinn:") + Len("Gewinn: ")
subGewinn$ = sWord ( Mid$ ( fullString , positionOfGewinn , 10) , " " ,1 )
Msgbox subErtrag$
Msgbox subGewinn$
End Sub
Function sWord ( sourceString As String, separator As String, number As Integer ) As String
searchString$=SourceString & separator ' add one separator to catch also the last substring
For i% = 1 To number
pos%=Instr(searchString$, separator)
If pos%=0 Then Exit For
substring$=Left(searchString$,pos%-1)
searchString$=Mid(searchString$, pos%+1)
Next
If pos% > 0 Then
sWord=substring$
Else
sWord=""
End If
End Function
Die Funktion sWord verhältsich wie @Word.
Zunächst hole ich mir den Inhalt von "Body" in eine String Variable.
Dann prüfe ich mit instr die Position der Schlüsselwörter "Eintrag:" und "Gewinn:".
Von den ermittelten Positionen aus lese ich 10 zeichen nach rechts und (kann auch mehr sein ) und schneide dann mit sword beim ersten Leerzeichen ab ( ist zwischen Zahl und Eurosymbol ) Damit habe ich die Werte)
Mit dem "verbleibenden Kredit" verfährst du dann analog.
wenn jetz vor dem eigentlichen Namen noch das Schlüsselwort Name: stehen würde, hättest du das Problem schon (fast) gelöst. ;D
-
Woher kommen eigentlich diese Mails? Werden die automatisch erzeugt? Wenn nicht, dann wird das aber eine kribblige Sache, denn welcher Mensch kann (und manche: will) sich schon zu hundert Prozent an eine vorgebene Syntax halten ?
Oder kommen diese Mails gar aus Notes selber ? Dann gäbe es ja ganz andere Ansätze ...
Sind die Mails hingegen automatisiert, dann könnten die ja auch an eine Mail-in-DB gehen und dort automatisch verarbeitet werden (aber auch dafür braucht man für den Fall der Fälle ein Fehlermanagement und -informationssystem, damit nix im Nirwana verschwindet).
-
Die Mails werden aus einer Warenwirtschaft erzeugt und sehen immer gleich aus. Alle Schlüsselwörter sind eindeutig, also hab ich damit schon mal kein Problem.
Danke erstmal für deine Hilfe Ulrich, hast mir sehr geholfen. Auch den anderen danke.