Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Alperen15 am 19.04.12 - 14:39:31

Titel: Upload Agent funktioniert nicht
Beitrag von: Alperen15 am 19.04.12 - 14:39:31
Hallo alle zusammen,

ich habe vor Monaten einen Upload Agenten in Notes programmiert. Und schon seit Monaten mach ich nichts mehr mit Notes. Jetzt bekomme ich folgende Fehlermeldung, wenn ich den Agenten starte "Object variable not set" im Quellcode habe ich es markiert.

Sub Initialize   
   Dim session As New NotesSession
   Dim db As NotesDatabase   
   Dim view As NotesView
   Dim doc As NotesDocument
   Dim rtitem As NotesRichTextItem, SendRtitem As NotesRichTextItem
   Dim itemReaders As NotesItem, itemReaders2 As NotesItem
   Dim object As NotesEmbeddedObject
   Dim row As Integer, written As Integer ,iWCount As Integer
   Dim colsum As Currency, colsum2 As Currency, colval As Currency, colname As Currency
   Dim Excel As Variant, xlWorkbook As Variant, xlSheet As Variant, vIntLeser(3) As Variant
   Dim One As String,  xlFilename As String
   Dim cRechname As String, cPathname As String
   Dim tmpKundennr As String
   Dim vdoc As NotesDocument
   Dim   i As String
   Dim filenum As Integer
   Dim pathName As String
   Dim cFilename As String
   Dim PathFileName As String
   
   pathName$ = "K:\LCU-Sales issue - commercial data\*"
   cFilename$ = Dir$(pathName$ & "*.xls", 0)
   PathFileName = "K:\LCU-Sales issue - commercial data\" & cFilename$
   
   iWCount = 1
   Set db = session.CurrentDatabase
   Set Excel = CreateObject( "Excel.Application" )      
   '  *** ---------------------- öffnet Excel File ---------------------------
   Excel.Visible = False
   
   Excel.Workbooks.Open PathFileName
   Set xlWorkbook = Excel.ActiveWorkbook
      'Set xlSheet = xlWorkbook.Worksheets(1)
   
   Set xlSheet = xlWorkbook.ActiveSheet                          ' *** Nur ein Sheet - wird hier definiert
   row = 2      
   
   With xlSheet
      
      tmpKundennr = .Cells( row, 1 ).Value
      Set view = db.GetView ("vwLogistik")
      While tmpKundennr <> ""
         'tmpKundennr = .Cells( row, 1 ).Value
         Set vdoc = view.GetDocumentByKey(tmpKundennr)         
         'If Not vdoc Is Nothing Then
         If   vdoc Is Nothing Then
            vdoc.Form = "maLCU"    --> Da kommt die Fehlermeldung          vdoc.txCustNo = .Cells( row, 2 ).Value
            vdoc.txCustName = .Cells( row, 3 ).Value                   
            vdoc.fdMandant = .Cells( row, 4 ).Value                 
            vdoc.fdAnzahlMA = .Cells( row, 5 ).Value       
            vdoc.fdBranche = .Cells( row, 6 ).Value               
            vdoc.fdAPKunde = .Cells( row, 7 ).Value               
            vdoc.fdUmsatzAktiv = .Cells( row, 8 ).Value
            vdoc.fdUmsatzPassive = .Cells( row, 9 ).Value
            vdoc.fdUmsatzEMechanik = .Cells( row, 10 ).Value
            vdoc.fdUmsatzTotal = .Cells( row, 11 ).Value
            vdoc.fdMargeAktiv = .Cells( row, 12 ).Value
            vdoc.fdMargePassive = .Cells( row, 13 ).Value
            vdoc.fdMargeEMechanik = .Cells( row, 14 ).Value
            vdoc.fdUmsatzAktiv_1 = .Cells( row, 15).Value
            vdoc.fdUmsatzPassive_1 = .Cells( row, 16 ).Value
            vdoc.fdUmsatzEMechanik_1 = .Cells( row, 17 ).Value
            vdoc.fdUmsatzTotal_1 = .Cells( row, 18 ).Value
            
            vdoc.fdMargeAktiv_1 = .Cells( row, 19 ).Value
            vdoc.fdMargePassive_1 = .Cells( row, 20 ).Value
            vdoc.fdMargeEMechanik_1 = .Cells( row, 21 ).Value
            vdoc.fdUmsatzAktiv_2 = .Cells( row, 22 ).Value
            vdoc.fdUmsatzPassive_2 = .Cells( row, 23 ).Value
            vdoc.fdUmsatzEMechanik_2 = .Cells( row, 24 ).Value
            
            vdoc.fdUmsatzTotal_2 = .Cells( row, 25 ).Value
            vdoc.fdMargeAktiv_2 = .Cells( row, 26 ).Value
            vdoc.fdMargePassive_2 = .Cells( row, 27 ).Value
            
            vdoc.fdMargeEMechanik_2 = .Cells( row, 28 ).Value
            vdoc.fdAnzahlMA = .Cells( row, 29 ).Value
            vdoc.fdAPKunde = .Cells( row, 30 ).Value
            vdoc.fdInnendienst = .Cells( row, 31 ).Value
            vdoc.fdAussendienst = .Cells( row, 32 ).Value
            
            Call vdoc.save(False,True)   
            row = row + 1
            tmpKundennr = .Cells( row, 1 ).Value
         Else
            row = row + 1
            tmpKundennr = .Cells( row, 1 ).Value
         End If
         
         
      Wend
   End With 
NextDoc:
      ' *** Disconnecting from Excel...            
   xlWorkbook.Close False          
   Excel.Quit
   Set Excel = Nothing
End Sub
Titel: Re: Upload Agent funktioniert nicht
Beitrag von: Alperen15 am 19.04.12 - 14:40:18
Ich wäre euch sehr dankbar, wenn ihr mir weiterhelfen könnt. Danke im voraus
Titel: Re: Upload Agent funktioniert nicht
Beitrag von: Glombi am 19.04.12 - 14:43:38
If   vdoc Is Nothing Then
ist natürlich Unsinn, wenn kein
set vdoc = db.CreateDocument
folgt.

Oder muss es doch
If Not vdoc Is Nothing
heissen? Das musst Du beurteilen.

Das kann aber noch nie funktioniert haben.

Andreas

Titel: Re: Upload Agent funktioniert nicht
Beitrag von: ascabg am 19.04.12 - 14:45:19
Hallo,

Warum Fragst Du ab, ob vdoc Nothing ist, und wenn Nothing, um dann mit dem besagten Objekt weiterzuarbeiten, als ob
es erfolgreich gesetzt ist?


Andreas
Titel: Re: Upload Agent funktioniert nicht
Beitrag von: Alperen15 am 19.04.12 - 15:03:19
klar das falsche war auskommentiert

If Not vdoc Is Nothing ist richtig, jetzt wird allerdings kein dokument erstellt obwohl das dokument mit derselben Kundennummer verfügbar ist in der Exceldatei
Titel: Re: Upload Agent funktioniert nicht
Beitrag von: ascabg am 19.04.12 - 15:09:08
Was soll der Code denn eigentlich machen?

Du sprichst jetzt davon, dass kein Dokument erstellt wird.
Das macht der Code doch auf den ersten Blick nicht.

Nur wenn in der Ansicht bereits ein Dokument gefunden wird, wird dieses mit den Daten aus dem Excel-File
aktualisiert.
Wird nichts in der Ansicht gefunden, wird auch nichts erstellt bzw. aktualisiert.


Andreas
Titel: Re: Upload Agent funktioniert nicht
Beitrag von: Alperen15 am 19.04.12 - 15:16:30
genau dass soll auch gemacht werden. Wenn ein Dokument gefunden wird, soll dieses Dokument aktualisiert werden.

Ich habe aber ein Dokument und in der Excelfile die Kundennummer (key) trotzdem wird nichts aktualisiert
Titel: Re: Upload Agent funktioniert nicht
Beitrag von: klaussal am 19.04.12 - 15:21:02
Kommt die Kd-Nr in der Ansicht vor ?
Ist die Notes-Kd-Nr 100% identisch zu der im Excel-File ?

Was "sagt" der Debugger ?
Titel: Re: Upload Agent funktioniert nicht
Beitrag von: ascabg am 19.04.12 - 15:25:44
Ich schliesse mich der Frage an, was der Debugger sagt.

Wird die Nummer, auch wenn vorhanden, in der Ansicht ueberhaupt gefunden?


Andreas
Titel: Re: Upload Agent funktioniert nicht
Beitrag von: ata am 23.04.12 - 08:50:05
... wenn du 

If  Not vdoc Is Nothing Then

verwendest, und die Fehlermeldung in der Zeile kommt mit "Object variable not set", dann hört sich das seltsam an.

Prüfe mal mit vdoc.IsValid - eventuell hast du einen deletion stub erwischt.

Toni