24. Januar 2011 21:09
IF LineNo = 0 THEN
ERROR(Text51501);
CLEAR(ItemJnlLine);
ItemJnlLine.RESET;
ItemJnlLine.SETRANGE("Journal Template Name", TemplateCode);
ItemJnlLine.SETRANGE("Journal Batch Name", BatchName);
ItemJnlLine.SETRANGE("Line No.", LineNo);
IF ItemJnlLine.FINDSET THEN BEGIN
IF NOT ItemJnlPostBatch.RUN(ItemJnlLine) THEN BEGIN
ItemJnlLine.DELETE(TRUE);
COMMIT;
ERROR(GETLASTERRORTEXT);
END;
END;
24. Januar 2011 21:19
CLEAR(ItemJnlLine);
ItemJnlLine.RESET;
ItemJnlLine.SETRANGE("Journal Template Name", TemplateCode);
ItemJnlLine.SETRANGE("Journal Batch Name", BatchName);
ItemJnlLine.SETRANGE("Line No.", LineNo);
IF ItemJnlLine.FINDSET THEN BEGIN
IF ItemJnlLine.GET(TemplateCode, BatchName, LineNo) THEN BEGIN
24. Januar 2011 21:24
24. Januar 2011 21:40
stony hat geschrieben:Wenn ich dich richtig verstehe, soll ich vorher ein CLEARLASTERROR machen.
IF ItemJnlLine.GET(TemplateCode, BatchName, LineNo) THEN BEGIN
ItemJnlLine.SETRECFILTER; // Auf aktuellen DS filtern
CLEAR(ItemJnlPostBatch); // wichtig: Codeunit-Variable initialisieren
CLEARLASTERROR;
IF NOT ItemJnlPostBatch.RUN(ItemJnlLine) THEN BEGIN
ItemJnlLine.DELETE(TRUE); // evtl. debuggen, ob wir noch immer
// auf dem richtigen Datensatz stehen
COMMIT;
ERROR(GETLASTERRORTEXT); // Muss es eigentlich ERROR sein?
END;
END;
25. Januar 2011 07:23
public static bool WriteArtikelZubuchungLinieFertigProdBuchblatt()
{
bool ret = true;
try
{
SCHWSArtikelBuchblatt.SCHWSArtikelBuchblatt_Service artikelbuchblattserv = new SCHWSArtikelBuchblatt.SCHWSArtikelBuchblatt_Service();
SCHWSArtikelBuchblatt.SCHWSArtikelBuchblatt artikelbuchblatt = new SCHWSArtikelBuchblatt.SCHWSArtikelBuchblatt();
SCHMSMDEManagement.SCHWSMDEManagement wsmde = new SCHMSMDEManagement.SCHWSMDEManagement();
wsmde.Credentials = Userdata.getCredentials();
//Damit werden alle Zeile, welche zu diesen Buchblatt gehören, aus der Tabelle "Item Journal Line" gelöscht.
//Dies ist notwendig, da teilweise Zeilen nicht verbucht werden und danach nichts mehr geht.
wsmde.ItemJnlLineDelete(SCHZubuchungLinieFertigProdProcess.Template, SCHZubuchungLinieFertigProdProcess.Batch);
artikelbuchblattserv.Credentials = Userdata.getCredentials();
artikelbuchblatt.Line_No = 10;
artikelbuchblatt.Line_NoSpecified = true;
artikelbuchblatt.Posting_Date = DateTime.Today;
artikelbuchblatt.Item_No = SCHZubuchungLinieFertigProdProcess.ArtikelNr;
artikelbuchblatt.Location_Code = "LAGERA";
artikelbuchblatt.Bin_Code = SCHZubuchungLinieFertigProdProcess.Lagerplatz;
artikelbuchblatt.Quantity = SCHZubuchungLinieFertigProdProcess.Qty * SCHZubuchungLinieFertigProdProcess.PKUmrechnungsfaktor;
artikelbuchblatt.QuantitySpecified = true;
artikelbuchblatt.Posting_Line = true;
artikelbuchblatt.Posting_LineSpecified = true;
artikelbuchblattserv.Create(SCHZubuchungLinieFertigProdProcess.Batch, ref artikelbuchblatt);
//Buchung durchführen
WSWMSManagement.WMSManagment WMS = new WSWMSManagement.WMSManagment();
WMS.Url = SCHNavision.AutocompleteUrl(ConfigReader.GetValue("WebserviceUrlWMSManagment"));
WMS.Credentials = Userdata.getCredentials();
try
{
WMS.SCHPostItemItemJnlLineZu(
SCHZubuchungLinieFertigProdProcess.Template,
SCHZubuchungLinieFertigProdProcess.Batch,
SCHZubuchungLinieFertigProdProcess.ArtikelNr,
10); //ist die Zeilennummer, diese wird auf mit Line_No 10 beim erzeugen des artikelbuchblattes gesetzt.
}
catch (Exception e)
{
Log.Error("Fehler bei der Buchung von ZubuchungLinieFertigProd " + e.ToString());
Navision.LastErrorMessage = e.Message;
ret = false;
}
}
catch (Exception e)
{
Navision.LastErrorMessage = e.Message;
ret = false;
}
return ret;
}
1. Februar 2011 04:48
1. Februar 2011 12:20
CLEARLASTERRORTEXT;
IF NOT Codeunit.RUN(12) THEN BEGIN
//create log entry
LogEntry."Error Message" = copystr(GETLASTERRORTEXT, 1, "Fieldlength"(LogEntry."Error Message"))
LogEntry.INSERT;
END;
1. Februar 2011 12:51
1. Februar 2011 15:02