Umlagerungen erstellen

13. Oktober 2010 08:28

Hallo,
ich möchte umlagerungen per Programmcode erstellen.
Das klappt auch.

Aber nur bei der ersten.
Problem:

Ich setzte in der TransferHeader.Transfer-from-code und den transferheader.Transfer-to-code. Über die Trigger zieht er sich dann den transferhaeder.in-transit-code.

Wenn meine zweite umlagerung die gleichen Lagerorte anspricht wird der in-transit-code nicht gesetzt.

Ursache
Code:
Tabelle Umlagerungsroute 5742
procedure getTransferroute(...)

IF ("Transfer-from Code" <> TransferFromCode) OR
   ("Transfer-to Code" <> TransferToCode)
THEN
  IF GET(TransferFromCode,TransferToCode) THEN
    HasGotRecord := TRUE;

IF HasGotRecord THEN BEGIN
  InTransitCode := "In-Transit Code";
  ShippingAgentCode := "Shipping Agent Code";
  ShippingAgentServiceCode := "Shipping Agent Service Code";
END ELSE BEGIN
  InTransitCode := '';
  ShippingAgentCode := '';
  ShippingAgentServiceCode := '';
END;


Nur wenn der aktuelle Datensatzt nicht schon der passende ist ( ist er aber, da erste Umlagerung, gleiche Lager ) setzte ( GET) die Tabelle neu und gebe den in-transit-code weiter.

Was habe ich da nicht verstanden ?
gruss
Jörg

Re: Umlagerungen erstellen

31. Oktober 2010 21:20

Kann es sein, dass dieses Problem bereits gelöst ist?
Kurze Zeit später hast du geschrieben, dass du schon Umlagerungen erstellt hast: viewtopic.php?f=36&t=11425

Re: Umlagerungen erstellen

1. November 2010 14:21

Hallo Natalie,
gelöst ist Relativ.

Weniger Umgangen durch einen Quick & dirty Programierung.
gruss
Jörg

Re: Umlagerungen erstellen

1. November 2010 14:49

Dann zum Quelltextausschnitt:
Hier versucht der Standard, einen Datensatz nicht unnötig oft zu lesen (also DB-Reads auszulassen, wenn möglich).
Eigentlich passiert nur das hier:

Code:
    IF GET("Transfer-from Code","Transfer-to Code") THEN BEGIN
      InTransitCode := "In-Transit Code";
      ShippingAgentCode := "Shipping Agent Code";
      ShippingAgentServiceCode := "Shipping Agent Service Code";
    END ELSE BEGIN
      InTransitCode := '';
      ShippingAgentCode := '';
      ShippingAgentServiceCode := '';
    END;


Setz doch mal einen Debugger-Breakpoint auf die erste Codezeile, wenn dein zweiter Umlagerungsauftrag bearbeitet wird - was enthalten die Parameter TransferFromCode und TransferToCode?
Wann/wobei wird die Funktion GetTransferRoute aufgerufen? Vergleiche all dies mit dem 1. Umlagerungsauftrag.