Domino 9 und frühere Versionen > ND8: Entwicklung
Dialogbox funktioniert under Notes 7 aber nicht mehr unter Notes 852
Lancelot:
Hallo Leute,
ich habe eine Funktion, die mir eine Email zu einem Kundenauftrag in ein optisches Archiv packt.
Ablauf ist folgender.
Man klickt auf einen Button "Archivieren".
Gibt eine Kaufvertragsnummer ein und ich hole per ODBC die restlichen Daten zum Kaufvertrag von einer AS 400 zurück und zeige diese in der Dialogbox an.
Nach dem Speichern soll die Box die gesamten Werte in die Maske der Email schreiben und dann einen Index aufbauen und das Mail samt Anhänge in das Archiv schreiben.
Die Felder heißen alle gleich.
Das Email ist dabei in der Inbox nur markiert nicht geöffnet.
Bei den Usern mit Notes 7.0.3 funktioniert es seit Jahren ohne Probleme.
Bei Notes 8.5.2 User funktioniert es aber erst, wenn man das zweite mal auf den Knopf klickt.
Beim erstenmal werden die Daten nicht übergeben, denn die Felder der Dialogbox und der Emailmaske sind
zu diesem Zeitpunkt leer.
Hat jemand eine Idee woran das liegen kann?
Bin verzweifelt und für jede Idee dankbar.
koehlerbv:
Was sollten wir denn dazu sagen, Gerry - so ohne Code?
Hast Du das Problem schon in die beiden wichtigen Teile zerlegt?
- Kommen beim ersten Click die Daten via ODBC auch wirklich im Speicher an?
- Oder passiert das Malheur erst bei der Übergabe der ausgelesenen Daten an die Maske, die Du für die DialogBox hernimmst?
Brich bitte Dein Problem herunter, sonst lohnt es sich für uns nicht einmal, über das Problem nachzudenken (zumindest die ohne Kristallkugel oder weisem Raben).
Bernhard
Lancelot:
Hallo Bernhard,
Du hast recht ich bin schon lange genug im Forum um an den Code zu denken.
Sorry!!! :)
Das Probelm liegt schon gleich nach dem Aufruf der Dialogbox.
Die Werte werden nicht gleich an das untere Dokument übergeben.
Wenn ich mit dem Debug den Code durchlaufe, sind die Felder selbst wenn ich ein doc.Save den ich gleich nach der Dialogbox einbaue leer.
Ist die Verarbeitung aber beendet und ich schaue dann über die Eigenschaften rein, hat das Email die Daten, deswegen funktioniert es beim 2. Aufruf ohne Probleme.
Code teil eins
'----------------------------------------------------------------------------------------------------------------------------------------
'Eingabe über Dialogbox "(Archiv_Dialog1)"
Dim workspace As New NotesUIWorkspace
Set db = session.CurrentDatabase
Set col = db.UnprocessedDocuments
Set doc = Col.GetFirstDocument()
Set rtitem = doc.GetFirstItem( "Body" )
'Ermittelt wieviel Anhänge im Email sind für das Array
anzahl_anhang = 0
If doc.HasEmbedded Then
anzahl_anhang = 0
Forall a In rtitem.EmbeddedObjects
anzahl_anhang = anzahl_anhang + 1
End Forall
End If
'Prüfung ob mehrere Doc markeirt wurden
If col.Count > 1 Then
Msgbox "Mehr als eine Email können Sie nicht zur gleichen Zeit archivieren!", MB_OK, "Archivierungsfehler"
Exit Sub
End If
'Wenn das Feld leer ist rufe den dialog auf
If doc.vkhs(0) = "" Then
Test = workspace.DialogBox _
( "(Archiv_Dialog2)", True, True, True, False, False, False, "Auftragsdaten eingeben")
Else
varbox = Msgbox ("Soll dieses Email nochmal archiviert werden?", 20, "INFO")
If varbox = 6 Then
Test = workspace.DialogBox _
( "(Archiv_Dialog2)", True, True, True, False, False, False, "Auftragsdaten eingeben")
Else
Exit Sub
End If
End If
'**********************************************************
If Test = "True" Then
Goto Verarbeitung
Else
Exit Sub
End If
Verarbeitung:
Const ErrFileNotFound = 53
Const ErrCannotCreateFile = 4005
On Error Goto ErrHandle
On Error ErrFileNotFound Goto ErrHandle53
On Error ErrCannotCreateFile Goto ErrHandle4005
fnlen = Len( session.CurrentDatabase.FileName )
fplen = Len( session.CurrentDatabase.FilePath )
filepath = "\\qs44a0262\asroot\IMAGE_IMPORT\MAILFILER\"
i = 0
Call Mailexport
Code teil Zwei = Mailexport:
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set view = db.GetView("($All)")
Set doc = session.DocumentContext
Set rtitem = doc.GetFirstItem( "Body" )
Set senddate = doc.getfirstitem("PostedDate")
Set sendfrom = doc.getfirstitem("From")
Set maildoc = session.DocumentContext
'******************************************************
'Hier kommt es zum Abbruch weil das Feld noch leer ist
If doc.Auftragsdatum(0) = "" Then
End
End If
koehlerbv:
Und wo belegst Du das Item "Auftragsdatum"?
Welchen Typ hat dieses Item? "Datum" und der Vergleich auf einen Leerstring beissen sich irgendwie extrem ...
Bernhard
Lancelot:
Ähmmmm,
dass Feld setzte ich bisher garnicht.
hat unter Notes 7 auch so funktioniert.
Die Felder sind alle vom Typ Text, denn von der AS 400 bekomme ich diese auch als Text übergeben.
Wo und wie setzte ich die Felder, denn in der Variabelen "TEST" steht nur "True" drin.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln