Auftrag x-Fach kopieren

4. April 2012 10:36

Guten Morgen,
ich möchte einen Verkaufsauftrag mehrfach kopieren. Genau genommen so oft, wie der Anwender es im Dialog eingibt.
Dann möchte ich X neue aufträge erstellen und den ausgangsauftrag entsprechend kopieren. Die Options, die sonst über Report 292 eingestellt werden, definiere ich. Das mit dem X neue Aufträge erstellen klappt wunderbar. Nun war eig mein gedanke direkt auf die Codeunit 6620 und die Funktionen SetProperties und CopySalesDoc zuzugreifen und den Report zu umgehen. funktioniert nach erstem testen nicht. Weiß jemand ob das überhaupt so funktionieren kann!? Hab mit der Beleg kopieren funktion wenig Erfahrung und etwas ähnliches neu erfinden sprengt den zeitlichen Rahmen.

Code:
fromrec:="No.";
FOR i:=1 TO anz DO BEGIN
c6620.SetProperties(TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE);
  INIT;
  "Document Type":=1;
  "No.":='';
  INSERT(TRUE);
  FINDLAST;
  newdoc:="No.";
c6620.CopySalesDoc("Document Type",fromrec,Rec);
END;

Re: Auftrag x-Fach kopieren

4. April 2012 10:44

Hi,

da spricht nichts gegen deinen Ansatz.
Was mich stört ist allerdings das FINDLAST.
Das sollte eigentlich nicht nötig sein um die aktuelle "No." zu bekommen und birgt zusätzlich die Gefahr, dass je nach Nummernserien der falsche Auftrag gezogen wird.
Als Beispiel:
Nummernserie ist SO12000..SO12999, manuelle sind erlaubt.
Dein neuer Auftrag bekommt SO12523, es gibt aber einen Auftrag mit XX500, da manuelle Nummern erluabt sind.
Oder aber es gab mal eine Nummernserie SO99000..SO99999, dann findest du vermtl. tausende Aufträge nach deinem.

Kurz: Versuche es doch einmal ohne das FINDLAST.

Re: Auftrag x-Fach kopieren

4. April 2012 11:20

In meinem Fall hat der Findlast keinen einfluss auf das Ergebnis.
mit nem Message auf die alte u neue auftragsnr erhalte ich genau die werte, die ich erwarte.
das Problem lag wohl eher am übergeben von Rec... mit einer Recordvariable von Sales Header (Get mit der neuen nummer) scheint es eher zu funktionieren.
Allerdings habe ich nun das Problem, dass die Codeunit aus meinem Auftrag einen Rahmenauftrag macht u dann folglich keinen datensatz zum kopieren findet... oder so ähnlich... ;)

Code:

  INIT;
  "Document Type":="Document Type"::Order;
  "No.":=' ';
  INSERT(TRUE);
  COMMIT;
  FINDLAST;
  newdoc:="No.";
  sh.GET("Document Type"::Order,newdoc);
c6620.CopySalesDoc("Document Type"::Order,fromrec,sh);
END;


edit:

Das scheint daran zu liegen, dass der Option-String in der Codeunit anders aufgebaut ist... mit der "harten" übermittlung c6620.CopySalesDoc(2,fromrec,sh); gehts... crazy Nav

Re: Auftrag x-Fach kopieren

4. April 2012 11:53

Teemaschine hat geschrieben:edit:
Das scheint daran zu liegen, dass der Option-String in der Codeunit anders aufgebaut ist... mit der "harten" übermittlung c6620.CopySalesDoc(2,fromrec,sh); gehts... crazy Nav

Das kann allerdings auch durch eine Anpassung hervorgerufen worden sein :wink:

Wenn das ganze jetzt funktioniert, kannst du ja bitte noch das [gelöst] im ersten Beitrag ergänzen :-D

Re: Auftrag x-Fach kopieren

4. April 2012 12:38

Meinst du nicht eigentlich einen Rahmenauftrag?

Gruß, Fiddi