Autor Thema: Felder werden teilweise nicht befüllt  (Gelesen 10836 mal)

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Felder werden teilweise nicht befüllt
« am: 27.07.10 - 14:16:07 »
Hallo Ihr lieben,

ich bräuchte wieder mal einen Gedankenstoß. Der Agent von einem Mitarbeiter den ich kopiert und bearbeitet habe soll eine Datei mit den Feldern als dokument importieren usw.... Dieser Agent hat Funktionen wie z.B ReadFields, NächstesFeld usw....

in ReadFields und in den anderen Funktionen habe ich nichts geändert. Mein Agent läuft zwar aber befüllt drei vier Felder nicht. Hier der Quellcodeteil den ich bearbeitet habe. Bin der Meinung, dass das nichts damit zu tun hat. Wäre für jeden Tipp dankbar.


   Do While cFilename$ <> ""               
      filename = pathName$ + cFilename$                                                                                                   
      i = 1                                                                                                                                 
      
      Open pathName$ & cFilename$ For Input As filenum                                                                                
      Seek fileNum,1                                                                                                                     
      On Error Goto ErrorPrint                                                                                                            
      
      Do While Not Eof (filenum)                                                                                                            '*
         Line Input #filenum, i                                                                                                            
         If i <> "" Then                                                                                                                     
            i = i + cTrenn                                                                                                                  
            iZaehler = iZaehler + 1                            ' *** Datensatzzähler                                                                     
         Else                                                                                                                               
            'cError = "asImportCollect ERROR: ReadFields" + Cstr(iZaehler)                                                            
            Call XQSchreiben("0", "1", cgTracerVorzugImport, "asNightImport ERROR: Keine Datensätze im CSV-File", 632637&)   
            Call SendMail(doc, cSendTo, cSubject, "asImportCollect ERROR: Keine Datensätze im CSV-File")                        
            Goto EndeAlles                                                                                                               
         End If                                                                                                                           
      ' **********  Einlesen des csv - Datensatzes  **************************                                                               
         cError = "asImportCollect ERROR: ReadFields" + Cstr(iZaehler)                                                               
         On Error Goto ErrorPrint                                                                                                         
         Call ReadFields(i)                                             ' *** neuer Datensatz lesen                                                         
      ' ************* Document Selection - Alle Documente in der DB werden nach der Auftrag/Position durchsucht - Anführungszeichen der Selection beachten !
         cSelection = "FORM = ""maNurVorzug"" & fdAuftrag = """+cImString(4)+"""  & fdAuftragsposition = """+cImString(5)+""""   
         Set dc = db.Search ( cSelection , dtCutOff , 0 )                                                                                    
      ' **************                                                                                                                           
' neues Dok wird angelegt falls Status aktiv ***********                                                                                       
         If cImString(1) = "A" Then                                                                                                      
            Set doc = db.CreateDocument                                                                                                   
            doc.Form="maNurVorzug"                                                                                                   
            cError = "asImportCollect ERROR: FillFields " + cImString(4) + "/" + cImString(5)                                          
            On Error Goto ErrorPrint                                                                                                      
            Call FillFields(doc,i,cDate)                          ' *** Schreiben komplettes Dokument                                                
            cError = "asImportCollect ERROR: DocSave " + cImString(4) + "/" + cImString(5)                                          
            On Error Goto ErrorPrint                                                                                                      
            Call doc.save(False,True)   
            'iZaehler = iZaehler + 1                            ' *** Datensatzzähler                                                                                          
         End If                                                                                                                  
         iZaehler = iZaehler + 1                                                                                                                  
         
         Loop '  Until Eof (filenum)   **** Neuen csv - Datensatz einlesen                
         Close filenum                                                                                                                     
         Call XQSchreiben("0", "1", cgTracerVorzugImport, "Vorzug_Export_TESTKUR" + cFilename$ + " - gelöscht ", 632637&)      
         cText = Cstr(iZaehler) + " Datensätze bearbeitet"                                                                              
         Call XQSchreiben("0", "1", cgTracerVorzugImport, cText, 632637&)                                                            
         
         
         Filecopy FileName,"E:\TestKUR\VerzeichnisTest\Archiv\" + cFilename$  ' *** Sichern der aktuellen File ins Archiv               
         Print cText                                                                                                                        
         Kill filename        ' Das File nach der Archivierung im Verzeichnis löschen                                                                                                               '*   
         cFilename$ = Dir$()                                                                                                               
         Loop         '*************Neue Datei im Verzeichnis lesen

klaussal

  • Gast
Re: Felder werden teilweise nicht befüllt
« Antwort #1 am: 27.07.10 - 14:21:50 »
Schon mal den Debugger mitlaufen lassen ?

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: Felder werden teilweise nicht befüllt
« Antwort #2 am: 27.07.10 - 14:29:41 »
ja habe ich, mir ist da nichts aufgefallen

klaussal

  • Gast
Re: Felder werden teilweise nicht befüllt
« Antwort #3 am: 27.07.10 - 14:35:26 »
Im Debugger sollte aber die Stelle zu sehen sein, wo die Felder ermittelt bzw. gefüllt werden (vmtl. ReadFields bzw. FillFields).
Da würde ich mal genauer hinsehen.

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Felder werden teilweise nicht befüllt
« Antwort #4 am: 27.07.10 - 14:41:52 »
Und ohne genau zu wissen, was in den Funktionen ReadFields(i) und FillFields(doc,i,cDate) ablaeuft, ist es auch sehr schwer eine einigermassen gesicherte Aussage zu treffen.

Ich entnehme den Namen der Prozeduren nur soviel, dass ReadFields den gelesenen String aus der Datei in einen Array splittet, der mit der Prozedur FillFields auf die entsprechenden Felder des Dokumentes verteilt wird.


Andreas
« Letzte Änderung: 27.07.10 - 14:43:55 von ascabg »

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: Felder werden teilweise nicht befüllt
« Antwort #5 am: 27.07.10 - 14:55:27 »
so ich habs mal mit dem Debugger angeschaut, die Felder werden befüllt aber drei vier felder werden nicht im Dokument gespeichert, obwohl sie auch befüllt worden sind wie die anderen

klaussal

  • Gast
Re: Felder werden teilweise nicht befüllt
« Antwort #6 am: 27.07.10 - 14:57:34 »
Sind die nicht befüllten Felder vom gleichen Typ wie die, die befüllt werden ?

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: Felder werden teilweise nicht befüllt
« Antwort #7 am: 27.07.10 - 15:05:51 »
ja sind sie

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Felder werden teilweise nicht befüllt
« Antwort #8 am: 27.07.10 - 15:09:43 »
Gibt's Eingabeumsetzungs- und/oder -validierungsformeln?

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: Felder werden teilweise nicht befüllt
« Antwort #9 am: 27.07.10 - 15:16:23 »
ja die gibts, die haben aber mit den Feldern die mir fehlen nichts zu tun. Beim Agenten vom Kollegen funktionierte es ja habe mir auch die Dokumente angeschaut. Nach meiner Änderung fehlen Sie mir. In den Funktionen habe ich nichts geändert. Ich wüsste nich was ich noch machen soll

klaussal

  • Gast
Re: Felder werden teilweise nicht befüllt
« Antwort #10 am: 27.07.10 - 15:23:32 »
Sind die Felder in den Dokumenteneigenschaften zu sehen ?

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: Felder werden teilweise nicht befüllt
« Antwort #11 am: 27.07.10 - 15:44:53 »
was heisst Dokumenteigenschaft? Wenn die Maske gemeint ist sprich das Dokument sind die Felder zu sehen

klaussal

  • Gast
Re: Felder werden teilweise nicht befüllt
« Antwort #12 am: 27.07.10 - 15:48:49 »
Nein, ist sie nicht gemeint.

Sondern das erstellt Dokument. Dokument:Eigenschaften ( dann 2. Reiter von links). Dort sind alle Felder Items aufgelistet.
« Letzte Änderung: 27.07.10 - 15:55:43 von klauss »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Felder werden teilweise nicht befüllt
« Antwort #13 am: 27.07.10 - 15:53:28 »
Items, Klaus, Items. Und eben nicht "Felder", die sind Elemente im Frontend (Maske).

Bernhard

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: Felder werden teilweise nicht befüllt
« Antwort #14 am: 27.07.10 - 15:56:27 »
ja die sind zu sehen

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: Felder werden teilweise nicht befüllt
« Antwort #15 am: 27.07.10 - 15:57:26 »
und im AgentenLog ist auch dies zu sehen ein dutzend mal

asImportCollect
   asImportCollect ERROR: FillFields 102486033/370

da hat er beim füllen ein Problem

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: Felder werden teilweise nicht befüllt
« Antwort #16 am: 27.07.10 - 16:02:57 »
mit dem Quellcode, den ich oben bereits schon eingefügt habe, hat mein Problem ncihts zu tun oder?? Das hat ncihts damit zu tun

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Felder werden teilweise nicht befüllt
« Antwort #17 am: 27.07.10 - 16:03:32 »
ja habe ich, mir ist da nichts aufgefallen
so ich habs mal mit dem Debugger angeschaut, die Felder werden befüllt aber drei vier felder werden nicht im Dokument gespeichert, obwohl sie auch befüllt worden sind wie die anderen
und im AgentenLog ist auch dies zu sehen ein dutzend mal

asImportCollect
   asImportCollect ERROR: FillFields 102486033/370

da hat er beim füllen ein Problem

Das freundlichste, was mir hierzu noch einfällt, ist: Hier will uns jemand veralbern!
Erst heisst es, im Debugger ist "nichts aufgefallen". Hä? Entweder, man hat dort gesehen, dass die Items belegt werden (und weiss dann, dass man woanders suchen muss - Items werden später wieder geleert, Backend kollidiert mit Frontend o.ä.), oder man findet die Stelle, wo die Items doch nicht korrekt belegt werden.

Dann heisst es: Die Items werden korrekt belegt.

Die Krönung dann: Der Code hat Fehlermeldungen ins Log geschrieben. Hä? Und das ist im Debugger so gar nicht aufgefallen, dass die Codeausführung zum Auslösen des ErrorHandlers geführt hat??

Wenn hier nicht zu streng logischem Vorgehen übergegangen wird und - gerade für einen blutigen Anfänger ratsam - der Code in einzeln testbare Codemodule heruntergebrochen wird, dann prophezeie ich: Das wird nie was. Und Gefrickel hat noch niemals zu etwas wirklich brauchbarem geführt.

Bernhard
« Letzte Änderung: 27.07.10 - 16:45:47 von koehlerbv »

Offline Alperen15

  • Aktives Mitglied
  • ***
  • Beiträge: 203
  • Geschlecht: Weiblich
Re: Felder werden teilweise nicht befüllt
« Antwort #18 am: 28.07.10 - 15:37:26 »
so Hallo,

1. Vor dir ist ein Anfänger, ich möchte nur normale Antworten und keine Bemerkungen.
2. Hast du alles verstanden als du dich neu mit notes beschäftigt hattest?
3. Falls ich dich nerve tut es mir Leid es ist nunmal keine Absicht.
4. Trotzdem Danke für deine Hilfe


Der Agent funktionierte vor meiner Änderung, ich sollte es nur ändern. Damit alle Dateien im Verzeichnis und jede Zeile gelesen werden soll. Die Funktionen ReadFields und FillFieds haben funktioniert aber nach meiner Änderung nicht. (nochmal in den Funktionen habe ich nichts verändert)

Laut Debugger sind die Felder gefüllt, die gefüllt sein müssen. Im Dokument sind drei Felder nciht gefüllt die restlichen aber schon. Habe in der Datei nachgeschaut ob diese Felder einen Wert drin haben, ja diese Felder beinhaltet einen Wert.

Meine Frage war nur. Schaut euch meinen Code bitte an und sagt mir ob es was mit meiner Änderung zu tun hat.


Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Felder werden teilweise nicht befüllt
« Antwort #19 am: 28.07.10 - 15:42:54 »
Wurden denn die Felder vorher befuellt oder sind es komplett neue Felder.

Wenn es neue Felder sind, dann muessen dei Werte fuer diese Felder natuerlich auch in der CSV-Datei enhalten sein.
Und damit der Code auch weis, in welcher Felder er die entsprechenden Daten auch eintragen muss, ist es aus meiner Sicht unabdingbar, sich auch einmal die hierfuer relevanten Funktionen anzusehen.

ReadFields() => werden die Daten auch sauber voneinander getrennt
FillFields() => werden die Daten, die durch ReadFields() getrennt wurden auch sauber weiterverarbeitet

Und diese Kontole erreichst Du nur, wenn Du im Debugger dir die Inhalte der Variablen ansiehst bzw. indem Du entsprechende Ausgaben in Deinen geaenderten Code einbaust.

Und da Du ja schon erwaehnt hast, dass es zu einem Fehler kommt, ist Dein erster Ansatzpunkt an dieser Stelle.


Andreas
« Letzte Änderung: 28.07.10 - 15:45:19 von ascabg »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz