Dataport - Fibu Buch Blatt Fehler

19. Mai 2009 10:15

Hallo an alle,

also habe folgendes Problem ich (bin noch AZubi :D) bekomme vom Kunden eine Excel Datei bzw. csv Datei.
Die Daten sollen in die Fibu Buch.-Blätter geholt werden. Habe mein Dataport richtig voreingestellt sprich FieldSeparator, FieldStartDelimiter und FieldEndDelimiter.

Als DataItem habe ich "Gen. Journal Line" genommen.
Nun der Code

Code:
JournalLineRec.SETRANGE(JournalLineRec."Journal Template Name",'ALLGEMEIN');
JournalLineRec.SETRANGE(JournalLineRec."Journal Batch Name",'BAR');

CLEAR(JournalLineRec);
JournalLineRec.VALIDATE(JournalLineRec."Journal Template Name",'ALLGEMEIN');
JournalLineRec.VALIDATE(JournalLineRec."Journal Batch Name",'BAR');

JournalLineRec.VALIDATE(JournalLineRec.Amount,Amount);
JournalLineRec.VALIDATE(JournalLineRec."Account No.",Konto);
JournalLineRec.VALIDATE(JournalLineRec."Posting Date",Date);
JournalLineRec.VALIDATE(JournalLineRec."Bal. Account No.",Gegenkonto);
JournalLineRec.INSERT;


Auf jeden fall kommt am Schluss folgender Fehler
Die Fibu Buch.-Blattzeile existiert bereits.
Identifizierende Felder und Werte:
Buch.-Blattvorlagenname='ALLGEMEIN',Buch.-Blattname='BAR',Zeilennr.='0'

Habe auch icq am Start 249611491
Ich hoffe ihr könnt mir weiter helfen.
Bedanke mich schon mal im vorraus.

Re: Dataport - Fibu Buch Blatt Fehler

19. Mai 2009 10:22

So auf die Schnelle:
In der Zeile mit dem Clear meinst du sicher stattdessen INIT.
Und du musst der Zeile eine Nummer mitgeben, sonst wird das nix.

Re: Dataport - Fibu Buch Blatt Fehler

19. Mai 2009 10:24

ok das INIT habe ich gemacht.

mit nummer meinst du sicher ZeileNr. oder ?

Re: Dataport - Fibu Buch Blatt Fehler

19. Mai 2009 10:28

die beiden SetRanges vor dem Clear/Init können natürlich auch weg. Und yep, das Feld "Line No." war gemeint.

Re: Dataport - Fibu Buch Blatt Fehler

19. Mai 2009 10:31

da habe ich was gemacht weiß nur nicht genau wie ich das reinschreiben soll!
und zwar folgendes :


Code:
IF NOT JournalLineRec.FIND('+') THEN BEGIN
  LineNo := 10000;
END ELSE BEGIN
  LineNo:= JournalLineRec."Line No." +10000;
END;

Re: Dataport - Fibu Buch Blatt Fehler

19. Mai 2009 10:46

Sieht doch fast schon gut aus. Nun musst du nur noch nach jedem Insert die Zeilennnummer weiter erhöhen.

Für das Finden der letzten verwendeten Zeile brauchst du deine beiden SetRanges allerdings wieder :wink:

Re: Dataport - Fibu Buch Blatt Fehler

19. Mai 2009 11:58

so habe nun bissle was gemacht

Code:
CLEAR(JournalLineRec);

JournalLineRec.INIT;
JournalLineRec."Journal Template Name" := TemplateName;
JournalLineRec."Journal Batch Name" := BatchName;

JournalLineRec."Line No." := GetNextLineNo(TemplateName,BatchName);

JournalLineRec.VALIDATE(JournalLineRec.Amount,Amount);
JournalLineRec.VALIDATE(JournalLineRec."Account No.",Konto);
JournalLineRec.VALIDATE(JournalLineRec."Posting Date",Date);
JournalLineRec.VALIDATE(JournalLineRec."Bal. Account No.",Gegenkonto);
JournalLineRec.INSERT(TRUE);

Gen. Journal Line - OnPostDataItem()

GetNextLineNo(TempNamePar : Code[20];BatchnamePar : Code[20]) : Integer
CLEAR(JournalLineRec);
JournalLineRec.SETRANGE("Journal Template Name",TempNamePar);
JournalLineRec.SETRANGE("Journal Batch Name",BatchnamePar);
IF NOT JournalLineRec.FINDLAST THEN BEGIN
  lineNoLoc := 10000;
END ELSE BEGIN
  lineNoLoc := JournalLineRec."Line No." + 10000;
END;
EXIT(lineNoLoc);


Habe eine Request Form erstellt damit ich das Problem bei den Buch.-Blattvorlagenname & Buch.-Blattname nicht mehr habe, aber beim
öffnen der Datei kommt folgendes
Das Betriebsystem findet den Pfad nicht, den SIe für die Datei angelegt haben u.s.w.

Re: Dataport - Fibu Buch Blatt Fehler

19. Mai 2009 12:27

Hab's nun mal etwas aufmerksamer gelesen :wink:

Wie kommst du denn nun an den Dateinamen? Der Dateirequester dürfte ja nun weg sein, da du die Requestform verändert hast.
Und dein Code zum Einfügen einer JournalLine sollte in Trigger OnAfterImport stehen. Damit aber der Dataport nicht auch noch versucht, Daten in die Tabelle zu schreiben, muss am Ende noch ein CurrDataport.Skip stehen (insofern das DataItem deines Dataports deine Journal-Tabelle ist).

Ist natürlich alles ein wenig wie Kaffeesatzlesen :-?

Re: Dataport - Fibu Buch Blatt Fehler

19. Mai 2009 13:37

das war ein Kopierfehler habe das antürlich in Gen. Journal Line - OnAfterImportRecord() reingetan.
Ehm also habe Assist Felder eingefügt.

Und zum öffnen der Datei die Common Dialog Management COdeunit beutzt.

Code:
Gen. Journal Line - OnAssistEdit()
Dateipfad := CmDlgMgt.OpenFile(KVS001,'',1,'*.csv',1);

Re: Dataport - Fibu Buch Blatt Fehler

19. Mai 2009 13:51

Die Fehlermeldung mit der nichtgefundenen Datei könntest du ja erst mal überbrücken, indem du den Pfad fest vorgibst. Weiter kann ich dir aber ohne genauere Fehlerbeschreibungen nun nicht mehr helfen.

Re: Dataport - Fibu Buch Blatt Fehler

20. Mai 2009 09:03

also habe gestern noch alles soweit hinbekommen.

Nun möchte ich dir Daten Validieren, dass habe ich wie folgt gemacht:
Code:
IF Betrag <> 0 THEN BEGIN
  EVALUATE(JournalLineRec.Amount,Betrag."Cell Value as Text");
  JournalLineRec.VALIDATE(Amount);
END ELSE BEGIN
  PurchaseLine.VALIDATE(JournalLineRec.Amount,0);
END;

//In der .csv Datei lerr
JournalLineRec.VALIDATE(JournalLineRec."Account No.",Konto);
//Buchungsperiode
//In der .csv Datei lerr
JournalLineRec.VALIDATE(JournalLineRec."Posting Date",Date);
JournalLineRec.VALIDATE(JournalLineRec."Bal. Account No.",Gegenkonto);
//Global Dimension Code (Kostenstellen)
//In der .csv Datei lerr
//In der .csv Datei lerr
//In der .csv Datei lerr
JournalLineRec.VALIDATE(JournalLineRec.Description,Description);
JournalLineRec.INSERT(TRUE);


Nur mein Problem ist, ich weiß nicht wie ich die leeren stellen in der csv Datei abfangen kann und das mit Amount ist auch falsch

Re: Dataport - Fibu Buch Blatt Fehler

20. Mai 2009 09:12

Das ist mir zu wirr. Erklär doch mal, was wann passieren soll.

Re: Dataport - Fibu Buch Blatt Fehler

20. Mai 2009 09:26

:D ok

also fangen wir vorne an
so ist meine csv Datei aufgebaut

zwischen den ; sind leer Spalten.

Betrag;;Konto;Bu.Periode;;Buchungstag;Gegenkonto;Kostenstellen;;;;Beschreibung
2262392;;4120;200904;;2904;1755;1;;;;Gehälter
48921;;4120;200904;;2904;1755;1;;;;Kug
179966;;4130;200904;;2904;1755;1;;;;Ges.Soz.Aufw.
1543;;4150;200904;;2904;1755;1;;;;Umlage 1+2

bis soweit klar oder :) (ich weiß es ist schwer mit mir ^^)

Re: Dataport - Fibu Buch Blatt Fehler

20. Mai 2009 09:53

habe gerade hilfe bekomme, melde mich dann nochmal falls es nicht klappt.

Trotzdem danke @McClane

Re: Dataport - Fibu Buch Blatt Fehler

20. Mai 2009 11:02

habe es nun geschafft es funktioniert nun kommen noch paar FOrmat fragen.
Also in der csv Datei stehen die Beträge immer so da

2262392 H (Variable Beträge = Text)
nun muss ich das so Formatieren das am schluss 22.623,92 so ausschaut.

Re: Dataport - Fibu Buch Blatt Fehler

20. Mai 2009 11:14

Insofern da immer die Cents hintendran stehen (also 10Euro='1000 H'), geht das:
Code:
evaluate(DecWert,delchr(Textwert,'=',delchr(Textwert,'=','0123456789')));
DecWert:=DecWert/100;

Wenn nicht, würde ich die Spalte in Excel als Zahl passend formatieren.

Re: Dataport - Fibu Buch Blatt Fehler

20. Mai 2009 11:24

Code:
  EVALUATE(JournalLineRec.Amount,DELCHR(Betrag,'=',DELCHR(Betrag,'=','0123456789')));
  JournalLineRec.VALIDATE(Amount);


das ergebnis 2.262.392,00 noch nicht ganz richtig

Re: Dataport - Fibu Buch Blatt Fehler

20. Mai 2009 11:28

Dann übernimm doch mal den ganzen Code :wink:

Re: Dataport - Fibu Buch Blatt Fehler

20. Mai 2009 11:36

du bist mein HELD !!! :)
nun klappt es, ich glaube damit habe ich es dann mal, wenn icht melde ich mich einfach hier wieder :)
und viele dank

ps wie lange entwickelst du schon ?

Re: Dataport - Fibu Buch Blatt Fehler

20. Mai 2009 11:53

249611491 hat geschrieben:ps wie lange entwickelst du schon ?

Du meinst sicher, wie lange ich es schon versuche, oder? :wink:
Nav seit gut 5 Jahren.

Re: Dataport - Fibu Buch Blatt Fehler

20. Mai 2009 11:59

ah ok :D das ja ne lange zeit. Ich habe September 08 Angefangen, hatte davor auch mit Nav nie was zu tun.