Import bauen

25. September 2008 12:09

Hallo zusammen. Ich bin Azubi und soll ein Import mit folgenden Kriterien bauen. Artikelnr., Seriennr., Lager, Menge und soll den Import dann ins Artikelbuchungsblatt einlesen. Könnte mir jemand vielleicht paar Tipps geben. Danke im voraus.

Gruß

Re: Import bauen

25. September 2008 14:55

Ist RIM 1.0 oder 2.0 installiert?
Wenn ja, geht das auch ohne Dataport per Excel Sheet ansonsten ist ein Dataport oder eine Codeunit gefragt.

Re: Import bauen

25. September 2008 15:01

so weit ich weiß werde ich wohl ein Dataport bauen müssen.

Re: Import bauen

25. September 2008 15:59

soll gefiltert werden können? also soll davor abgegrenzt werden, welche artikel import werden sollen?
also ein echter import ist das nicht, eher "datenschubserei", wie viel ahnung hast du von der materie Navision? hast du überhaupt schon mal etwas programmiert?

Re: Import bauen

26. September 2008 11:15

etwas ahnung habe ich schon und programmieren habe ich bis jetzt noch nicht viel gemacht.wenn dann mit Hilfe. das mit den filtern ist nee gute frage.ich denke mal der Import soll so aussehen das er mir nur die Daten für die Arikelnr, Seriennr, Lager und Menge einliest.

Re: Import bauen

26. September 2008 11:49

wird das ganze produktiv gemacht oder soll das nur eine übung für dich sein?
ich werd dir die einzelnen schritte erklären, ich könnte es dir zwar das objekt schicken, aber was würde dir das an erfahrung bringen?

so erstmal musst du im object designer die beiden tabellen finden, dann musst du die felder abgleichen, schreibe dir auf welches feld zu welchem kopiert wird, also zum beispiel "No." aus der Artikeltabelle wird zu "Item No." in den Artikelposten, da du keine filter brauchst, schlage ich vor du machst eine kleine codeunit, lege dort die beiden tabellen als records in den globalen variablen an, wenn du das hast speicher den die codeunit ab und exportier sie mal als text-datei, zeig sie mal, dann seh ich ob du das bisher richtig gemacht hast

bist du im 1. lehrjahr? wirst du in deinem unternehmen ständig in der navision-abteilung eingesetzt sein?

Re: Import bauen

26. September 2008 11:56

ja habe im august angefangen. soll mich halt in Navision so einarbeiten das ich später unseren eigentlichen Navisionexperten unter die Arme greifen kann.ich soll das erstmal als übung für mich machen. Ich werde mal versuchen was du mir geschrieben hast und schau mal was daraus wird.danke aber erstmal für die hilfe.

Re: Import bauen

26. September 2008 12:37

wahrscheinlich nee dumme frage von mir, aber welche zwei tables? die eine kann ich mir denken wird wahrscheinlich die nr. 27 Items sein oder bei mir halt Artikel,aber die zweite da bin ich überfragt.

Re: Import bauen

26. September 2008 13:16

im object designer gibt es Name (zusammen mit Type eindeutig) und es gibt Caption (name des objekts für deine jeweilige spracheinstellung), also filter doch einfach mal nach der caption, du gehst davon aus, dass die Tabelle die Caption Artikelbuchungsposten hat, dann filter doch mal nach *art*post* (der stern lässt zeichen unbestimmter länge zu: zum beispiel wenn du nach *art* filterst könnte ein ergebnis Artikel sein), und ja Nr. 27 Item stimmt schon mal

Re: Import bauen

26. September 2008 14:05

habe jetzt die Tables Artikel und Artikelposten genommen und habe sie als Variable mit dem DataType Record genommen. Wollte jetzt speichern und dann kommt vollgende Fehlermeldung: "TableData 0 exestiert nicht". Was kann das bedeuten?

Re: Import bauen

26. September 2008 15:52

wenn du eine record-variable anlegen willst musst du als subtype die tabelle auswählen, das ganze sieht dann so aus:

Name DataType Subtype Length
Artikel Record Item
ArtPosten Record Item Ledger Entry

Re: Import bauen

26. September 2008 16:04

So sieht es aus nachdem ich die Codeunit exportier habe.

OBJECT Codeunit 50002 test
{
OBJECT-PROPERTIES
{
Date=26.09.08;
Time=16:01:54;
Modified=Yes;
Version List=;
}
PROPERTIES
{
OnRun=BEGIN
END;

}
CODE
{
VAR
Artikel@1113800000 : Record 27;
Artikelposten@1113800001 : Record 32;

BEGIN
END.
}
}

Re: Import bauen

26. September 2008 19:19

sieht schon mal ganz gut aus, so nun zum code

füge das mal in deinen onRun-Trigger:
Code:
IF Artikel.FINDSET THEN
  REPEAT
    ArtPosten.INIT;
    // hier in diesem bereich musst du deine felder zuordnen
    ArtPosten.INSERT(TRUE);
  UNTIL Artikel.NEXT = 0;


so auf den rest solltest du nun von selbst kommen, trotzdem kannst du gerne noch fragen ;)

Re: Import bauen

29. September 2008 08:48

Guten Morgen,

meiner Meinung nach dürfte das so nicht funktionieren.

Sebastian Pfliegel hat geschrieben:sieht schon mal ganz gut aus, so nun zum code

füge das mal in deinen onRun-Trigger:
Code:
IF Artikel.FINDSET THEN
  REPEAT
    ArtPosten.INIT;
    // hier in diesem bereich musst du deine felder zuordnen
    ArtPosten.INSERT(TRUE);
  UNTIL Artikel.NEXT = 0;


so auf den rest solltest du nun von selbst kommen, trotzdem kannst du gerne noch fragen ;)

Ich gehe mal davon aus, das Chiwi bei einem Endanwender und nicht bei einem Microsoft-Partner
lernt. Und mit einer Kunden-Lizenz kann man nicht in die T32 - Artikelposten direkt schreiben,
dies würde nur mit einer MBS-Partner-Lizenz (sogenannte "Lizenz zum Töten") gehen.

Aber selbst dann ist es sehr kritisch, wenn man die Artikelposten direkt schreibt. :shock:

Der sicherste Weg ist, wie auch in der Aufgabenstellung im ersten Beitrag eigentlich gefordert,
wenn man ein Artikelbuchblatt (T82) füllt und dann verbucht.

MfG
Christian

Re: Import bauen

29. September 2008 10:32

wie soll ich denn bitte meine Felder zuordnen?wenn ich das mache, kommt ständig die meldung das keine variable definiert ist.

Re: Import bauen

29. September 2008 10:35

Wobei der Import von Seriennummern über die Item Journal Line auch wieder etwas tricky ist:

Code:
    PROCEDURE CreateReservEntrySerNo@1000000000(ItemJnlLine@1000000000 : Record 83;SerialNo@1000000004 : Code[30];LotNo@1000000005 : Code[30]);
    VAR
      CreateReservEntry@1000000003 : Codeunit 99000830;
      ReservEntry@1000000006 : Record 337;
    BEGIN
      CreateReservEntry.CreateReservEntryFor(
        DATABASE::"Item Journal Line", ItemJnlLine."Entry Type", ItemJnlLine."Journal Template Name",
        ItemJnlLine."Journal Batch Name", 0, ItemJnlLine."Line No.", ItemJnlLine."Qty. per Unit of Measure",
        ItemJnlLine.Quantity, SerialNo, LotNo, 0D);

      CreateReservEntry.CreateEntry(
        ItemJnlLine."Item No.", ItemJnlLine."Variant Code", ItemJnlLine."Location Code",
        '', ItemJnlLine."Posting Date", ItemJnlLine."Posting Date", 0, 3);
    END;


Obiger Code hinterlegt EINE Seriennummer zu einer Buch.-Blattzeile.

Re: Import bauen

12. November 2008 12:14

Hallo zusammen. sorry das ich erst jetzt wieder schreibe, war aber Krank.

Ich habe den Codeunit soweit gebaut und muss ich den jetzt in ein Dataport einbauen oder einfach nur den Codeunit laufen lassen?

Re: Import bauen

12. November 2008 15:23

Es wurde oben zwar schon erwähnt, aber nochmal : das direkte Erzeugen von Artikelposten, um Bestände in das System zu bringen, ist nicht der rechte Weg. Es gibt sogar MBSP , wo das ein Anlass für eine fristlose Kündigung ist, und das nicht ohne Grund. Die Daten dürfen nur in das Artikelbuchungsblatt bzw. die Seriennummer in eine separate verknüpfte Tabelle (336 Verfolgungsspezifikation), damit das zusammen verbucht werden kann. Das ist absolut keine Anfängerarbeit.

Re: Import bauen

12. November 2008 15:32

Alles klar, dann werde ich mal die Finger von den Artikelposten lassen. Trotzdem Danke.

Re: Import bauen

12. November 2008 15:46

Oben steht ja Ich soll das ArtikelBuchBlatt füllen und dann abbuchen, wie stelle ich das denn am besten an?

Re: Import bauen

12. November 2008 17:11

Chiwi hat geschrieben:Oben steht ja Ich soll das ArtikelBuchBlatt füllen und dann abbuchen, wie stelle ich das denn am besten an?


Na, so wie es da steht :-)

Füll einfach mal (in einer Testdatenbank) ein Buchblatt, uns beobachte, was dabei passiert. Und genau so füllst Du die Buchblattzeilen auch. Und die validates auf die Felder/Werte nicht vergessen ;-) - dieser trigger wird nämlich jedesmal aufgerufen, denn Du bei der Eingabe das Feld verläßt.