Domino 9 und frühere Versionen > ND6: Administration & Userprobleme

1 Agent 2 Ergebnisse

(1/2) > >>

Gero:
Hallo,
folgendes kann ich nicht verstehen, suche Erklärbär:
In einer Mailin DB läuft ein Agent nach eingang neuer Mail.
Er erstellt nur eine Textdatei aus dem Body und fügt dem Dokument das Feld
"processed" hinzu, damit es aus der Ansicht verschwindet.
Die Mails kommen von nicht-Notes Systemen. Vor dem Agent sind ö und ü lesbar,
nacher sind sie durch Fragezeichen ersetzt, aber nur wenn der Agent nach neuer
Mail läuft. Lasse ich den selben Agenten von Hand laufen, bleiben die Umlaute erhalten. Es ist doch 2 mal der gleiche Agent, doch ich kann die selbe Mail immer
wieder in die Datenbank kopieren und erhalte immer 2 verschiedene Eregebnisse.
Oueue abarbeiten/Local ruft ProcessDocuments manuell auf:
Sub ProcessDocuments
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim v As notesview
   Dim search As String
   Dim d As Notesdocument   
   Dim i As Notesitem
   Dim dateTime As New NotesDateTime("12/01/94")
   Dim rtitem As Variant
   Dim content As Variant, contents As String
   
   On Error Goto fehler
   
   Set db = session.CurrentDatabase
   Set v = db.GetView("Queue")   
   If session.currentagent.servername = "CN=XYZNT01/O=FIRMA" Then
      Path = "/EDINOTES/IN/"   
   Else
      Path = "W:/EDINOTES/IN/"   
   End If
   Fname = "F" & Format(Now,"yyyymmddhhmmss")
   File = path  & fname
   x=0
   
   Set d = v.GetFirstDocument
   While Not (d Is Nothing)
      If d.HasEmbedded Then
        If d.HasItem("Body") Then         
          Set rtitem = d.GetFirstItem( "Body" )
            If ( rtitem.Type = RICHTEXT ) Then
              If rtitem.EmbeddedObjects <> "" Then
      Forall o In rtitem.EmbeddedObjects
       If ( o.Type = EMBED_ATTACHMENT ) Then
      x=x+1
      Call o.ExtractFile( file & "_" & Cstr(x) & ".TXT" )
      RetCod=InfoSys1 (fname & "_" & Cstr(x) & ".TXT")         End If
   End Forall         
   Else               
   contents = Rtitem.Text
   x=x+1         
   FN=1
   Open file & "_" & Cstr(x) & ".TXT"  For Output As FN
     Print # FN,contents
   Close FN
   RetCod=InfoSys1 (fname & "_" & Cstr(x) & ".TXT")         
   End If      
   End If
   Else
   ' no body field - no data
   End If
   Else
   If d.hasitem("Body") Then
      Set rtitem = d.GetFirstItem( "Body" )
   contents = Rtitem.Text
   x=x+1         
   FN=1
   Open file & "_" & Cstr(x) & ".TXT"  For Output As FN
   Print # FN,contents
   Close FN
   RetCod=InfoSys1 (fname & "_" & Cstr(x) & ".TXT")         
   End If
                End If
             Set i = D.ReplaceItemValue( "Processed", Format(Now(), "General Date") )
      Call d.Save( True, False )
      Call v.refresh      
      Set d = v.GetFirstDocument
   Wend      
Ende:   
   Exit Sub
Fehler:      
   If logopened Then
      Call aLog ( "Fehler: " & Str(Err) & ": " & Error$)
      cLog.Close
   Else
Print "CpyToServer in editrans.nsf hat Fehler " & Str(Err) & " in Zeile " & Erl() & ":" & Error$
   End If
   Resume Ende      
End Sub

Wenn das Ding über eingang Mail gestartet wird, kommt zuerst:
Sub Initialize
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim a As NotesAgent
   Set db = s.CurrentDatabase
   Set a = db.GetAgent("CopyToServer")
   If a.RunOnServer = 0 Then
   Print "Queue processed on server " & db.Server
   Else
   Print "Error processing queue on server " & db.Server
   End If
End Sub

"Copy to Server" nimmt nur alle Dokumente in einem bestimmten Ordner und ruft
wieder "ProcessDocuments" auf.
Hierbei wird die Mail in irgend einer Form umgewandelt und Umlaute werden zu ?.
Ich komme hier einfach nicht weiter. Bin für jeden Tip dankbar!
Grüsse auf Hessen

Onkel ToM:
Hallo,

läuft der Agent nach Eingang neuer Mail, läuft er auf dem Server.
Lässt du ihn per Hand laufen, läuft er auf dem Client.

Ich gehe mal davon aus, dass du irgendein deutsches Windows als Basis für deinen Client benutzt. Da passt das schon.
Aber: Kennt die AS/400 (dein Server) deutsche Umlaute?

Bye
Onkel ToM


Glombi:
Der Knackpunkt wird die Zeile
 contents = Rtitem.Text
sein. Hier wird der Inhalt des Rich Text Feldes ausgelesen und nur der Text zurückgeliefert. Offenbar kennt das Betriebssystem die deutschen Umlaute nicht.
Da solltest Du Dich an den Admin der AS 400 wenden...

Andreas

Gero:
Wow, das wird es sein! Vielen Dank für die super schnelle Antwort!
Optimistisch wie ich bin setzte ich mal auf erledigt.

Glombi:
Wobei - bei AS400 und Vorsprechen beim verantwortlichen Admin, da wäre ich nicht ganz so optimistisch.
Es sind gewisse Seiteneffekte und Abhängigkeiten zu anderen nicht Notes Anwendungen zu berücksichtigen.
Ausser auf der Kiste läuft "nur" der Domino Server und keine anderen Anwendungen.

Andreas

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln