[gelöst] Import ausgeglichener Posten

19. Mai 2010 14:04

Hallo Nav Gemeinde,

ich hoffe ihr könnt mir helfen.

Meine momentane Aufgabe beinhaltet, aus einem Fremdsystem(simba) die ausgeglichenen Posten zu exporieren und dann nach Navision zu bringen.
Soweit die Aufgabenstellung.

Als erstes ist mir aufgefallen, dass es nur eine einzige Exportdatei gibt. Diese eine Datei muss also sowohl Debitoren-, als auch Kreditorenbuchungen beinhalten.
Nun ist mein Lösungsansatz, erst einmal die gesamten Daten in eine neue Tabelle zu importieren. Funktioniert bis hier hin auch.

Weiter wollte ich über eine Codeunit die Datensätze je nach Kontennummer aufteilen.
Bei dem Bereich 10000 bis 69999 handelt es sich um Debitoren, also Debitorenposten,
Bei dem Bereich 70000 bis 99999 handelt es sich um Kreditoren, also Kreditorenposten.

Der nächste Schritt war, so dachte ich mir die abgeschlossenen Buchungssätze den jeweiligen D.Posten und K Posten Tabelle zu kommen zu lassen.
Testweise erst mal nur ein Feld:
Code:
import.RESET;
import.SETRANGE("Konto-Nr",'10000','69999');
debitorenposten.INIT;
debitorenposten."Customer No.":=import."Konto-Nr";
IF debitorenposten.INSERT THEN  MESSAGE('Erfolgreich') ELSE MESSAGE('schon vorhanden...');


Dies funktioniert jedoch nicht, Nav erstellt einen leeren Datensatz in der D. Posten Tabelle, mehr nicht.
Gebe ich jedoch
anstatt
Code:
debitorenposten."Customer No.":=import."Konto-Nr";

Code:
debitorenposten."Customer No.":='123456';
ein, so fügt er dies auch ein.

Mit diesem Stand habe ich mich auf die Suche nach Informationen gemacht, und hier im Forum herausgefunden,
dass Buchungsposten nicht direkt importiert werden soll, sondern dies über die Buchungsblätter zu erledigen wäre.

Und hier beginnt meine Frage: Wie ist nun fortzufahren? Eine Beschreibung wie der Import via Buchungsblätter zu verwirklichen ist habe ich nicht gefunden.


Ergänzung: Die Daten werden in das Fibu Buchblatt (Tabelle 81) importiert. Anschließend öffnet der Anwender das dazu gehörige form und bucht die zeilen.

Stimmt das soweit?
Zuletzt geändert von Heiko_D am 2. Juni 2010 11:19, insgesamt 1-mal geändert.

Re: Import ausgeglichener Posten

20. Mai 2010 11:33

Heiko_D hat geschrieben:Der nächste Schritt war, so dachte ich mir die abgeschlossenen Buchungssätze den jeweiligen D.Posten und K Posten Tabelle zu kommen zu lassen.


=:-)
Direkt in Posten schreiben? Nieundnimmer. Das gibt Ärger obne Ende und ist pfuibäh. Belege/Posten werden über ein Buchblatt importiert/erzeugt: also erstmal die Posten in eine Buchblattzeile 'reinschreiben, dann vom Buchhalter prüfen lassen und dann wegbuchen. Beim Import ins Buchblatt die validates in den Feldern nicht vergessen. Einfach mal eine Zeile selbst erfassen.

Re: Import ausgeglichener Posten

20. Mai 2010 12:16

Markus Merkl hat geschrieben:Direkt in Posten schreiben? Nieundnimmer. Das gibt Ärger obne Ende und ist pfuibäh.


Dem ist nichts hinzuzufügen :!: :!: :!: :!: :!:

Gruß, Fiddi

Re: Import ausgeglichener Posten

20. Mai 2010 12:23

Markus Merkl hat geschrieben: .. und ist pfuibäh

.. und äußerst passend ausgedrückt :lol:

Re: Import ausgeglichener Posten

20. Mai 2010 16:30

Vielen Dank für eure deutliche Ansage. :)

Nun jedoch habe ich ein altes / neues Problem.

Warum funktioniert es nicht, Daten von einer Tabelle in eine ander zu übergeben?

Code:
import.RESET;
import.SETRANGE("Konto-Nr",'81300');
MESSAGE('Es gibt %1 DS mit der KNr. 81300',import.COUNT);
IF import.FINDFIRST THEN REPEAT
buchblatt."Journal Template Name":='VERKAUF';
buchblatt."Journal Batch Name":='STANDARD';
buchblatt.INSERT;
buchblatt."Account No.":=import.Konto
buchblatt.INIT;


Hätte hier jmd einen kleinen Tipp für mich?

Vielen Dank.

Re: Import ausgeglichener Posten

20. Mai 2010 17:27

Heiko_D hat geschrieben:Vielen Dank für eure deutliche Ansage. :)

Code:
import.RESET;
import.SETRANGE("Konto-Nr",'81300');
MESSAGE('Es gibt %1 DS mit der KNr. 81300',import.COUNT);
IF import.FINDFIRST THEN REPEAT
buchblatt."Journal Template Name":='VERKAUF';
buchblatt."Journal Batch Name":='STANDARD';
buchblatt.INSERT;
buchblatt."Account No.":=import.Konto
buchblatt.INIT;

Hätte hier jmd einen kleinen Tipp für mich?
Vielen Dank.


Ja: zuerst den Datensatz initialiseren (einen neuen anlegen mit init), dann die Werte des PK füllen, (evtl.) andere Felder füllen und dann in die DB einfügen (insert)...

und das 'until import.next = 0;' fehlt auch noch.