Verbrauch automatisch buchen

23. August 2010 10:16

Ich lasse im OnPush-Trigger eines Controlls der Bericht 5405 laufen, der über bestimmte Fertigungsaufträge geht und alle Komponenten findet, die die Buchungsmethode = manuell haben! Diese Positionen werden dann in das Verbrauchs –Buch. Blatt geschrieben. Im zweiten Schritt möchte ich, dass diese Positionen auch gleich gebucht werden. Wie kann ich das machen?

Ich würde gerne der vorhandene Code hier (Verbrauchs –Buch. Blatt --> Button Buchen) verwenden wollen. Der Programmcode lautet:

CODEUNIT.RUN(CODEUNIT::"Item Jnl.-Post",Rec);
CurrentJnlBatchName := GETRANGEMAX("Journal Batch Name");
CurrForm.UPDATE(FALSE);

Ich habe einiges probiert und ich bin leider zu keinem positiven Ergebnis gekommen! Vielleicht habt Ihr so was schon mal gehabt und Ihr könnt helfen!

Danke im Voraus…

Re: Verbrauch automatisch buchen

23. August 2010 10:32

Hallo,

was für ein Fehler erscheint denn?
Im Normalfall sollte die erste Zeile deines Codes ausreichen.

Re: Verbrauch automatisch buchen

23. August 2010 10:39

Hallo,

ich habe die erste Zeile "CODEUNIT.RUN(CODEUNIT::"Item Jnl.-Post",Rec);" übernommen und habe versucht zu kompilieren!

Ich bekomme dann diese Fehlermeldung:

---------------------------
Microsoft Business Solutions-Navision
---------------------------
Sie haben eine unbekannte Variable angegeben.

REC

Definieren Sie die Variable unter 'C/AL Globale Variablen'.

---------------------------
OK
---------------------------

Re: Verbrauch automatisch buchen

23. August 2010 13:55

Wo hast du den Code hingeschrieben?

das funktioniert bei mir einwandfrei:
Code:
Control100000000 - OnPush()
  REPORT.RUN(5405);
  CODEUNIT.RUN(CODEUNIT::"Item Jnl.-Post",Rec);

Re: Verbrauch automatisch buchen

23. August 2010 14:08

So sieht es bei mir aus:

Code:
IF Zeile.FIND('-') THEN
 REPEAT
  FAKopf.RESET;
  FAKopf.SETFILTER("No.",FA_Nr);

  Verbrauchberechnen.SETTABLEVIEW(FAKopf);
  Verbrauchberechnen.RUN();

UNTIL
  Zeile.NEXT = 0;

CODEUNIT.RUN(CODEUNIT::"Item Jnl.-Post",Rec);
Zuletzt geändert von amouslih am 23. August 2010 16:31, insgesamt 1-mal geändert.

Re: Verbrauch automatisch buchen

23. August 2010 14:56

Es wäre schön ,wenn du das in CodeTags setzen könntest [code][/code].Edit: Danke

Wenn ich das richtig lese, dann musst du nachdem dein Code alles berechnet hat, dir die entsprechenden Artikelbuchblattzeilen suchen und diese dann verbuchen. Dabei wäre dann "Rec" = eine beliebige Variable vom Typ "Record 83" gefiltert auf die entsprechenden Sätze.

Re: Verbrauch automatisch buchen

25. August 2010 12:49

Ich habe das jetzt so gemacht:

Code:

ItemJournalLine.RESET;
ItemJournalLine.SETFILTER("Journal Template Name",'VERBRAUCH');
ItemJournalLine.SETFILTER("Journal Batch Name",'AUTOMATIC');
  IF ItemJournalLine.FINDSET THEN
    CODEUNIT.RUN(CODEUNIT::"Item Jnl.-Post",Rec);



Und schon beim Kompilieren bekomme ich die Fehlermeldung: Sie haben eine unbekannte Variable angegeben…

Re: Verbrauch automatisch buchen

25. August 2010 12:54

Komisch, in den ersten vier Zeilen hast du's - mal abgesehen von den SetFilters, SetRanges wären schöner gewesen - richtig gemacht :wink:

Re: Verbrauch automatisch buchen

25. August 2010 13:14

amouslih hat geschrieben:Ich habe das jetzt so gemacht:

Code:

ItemJournalLine.RESET;
ItemJournalLine.SETRANGE("Journal Template Name",'VERBRAUCH');
ItemJournalLine.SETRANGE("Journal Batch Name",'AUTOMATIC');
  IF ItemJournalLine.FINDSET THEN
    CODEUNIT.RUN(CODEUNIT::"Item Jnl.-Post",ItemJournalLine);



Und schon beim Kompilieren bekomme ich die Fehlermeldung: Sie haben eine unbekannte Variable angegeben…

Es wäre besser die Buchblattvorlage und -namen irgendwo im Setup zu hinterlegen, damit bei einer eventuellen Änderung nicht der Code geändert werden muss

so müsste es gehen!