Domino 9 und frühere Versionen > ND8: Entwicklung

Dialogbox funktioniert under Notes 7 aber nicht mehr unter Notes 852

(1/3) > >>

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