Menü

cn_VLOG_Tagesabschluss

Zurück | Ebene zurück

Über diese Prozedur kann ein Paketversendungsprogramm wie VLOG abfragen in welcher Betriebsart es sein soll. Im Standardmodus soll es im Pollingbetrieb sein und weiterhin abrufen, ob Sendungen verarbeitet werden sollen. Wird jedoch der Tagesabschluss für einen Mandanten und Frachtführer signalisiert, so soll der Pollingbetrieb für diese Zeit eingestellt werden und der Tagesabschluss zum angegebenen Mandanten und Frachtführer durchgeführt werden.

Syntax

cn_VLOG_Tagesabschluss
  @Action (varchar(10), Eingabe)
  @Value (bit, Eingabe/Ausgabe)
  @Mandant (varchar(40), Eingabe/Ausgabe)
  @Frachtfuehrer (varchar(20),  Eingabe/Ausgabe)

Argumente

@Action (varchar(10), Eingabe)

Über diesen Wert wird der Befehl spezifiziert. Die Versandsoftware wird in der Regel den Befehl „GETRESET“ verwenden. In dem Fall kann durch Angabe des Frachtführers abgefragt werden ob ein Tagesabschluss gemacht werden soll. Nach Auslesen des Wertes wird dieser automatisch zurückgesetzt.

Wird @Action nicht übergeben, so ist der Defaultwert automatisch „GETRESET“.

Folgende Werte sind möglich:
 

GET Über den Wert GET kann ein Wert abgefragt werden. Das Ergebnis wird in @Value übergeben.
GETRESET Dieser Befehl arbeitet wir GET, jedoch wird nach dem Auslesen automatisch der Wert auf „0“ zurückgesetzt.
SET Mit dem Befehl SET kann ein Wert gesetzt werden.

 

Sonderfall
Zum vereinfachten Auslesen, ob ein Tagesabschluss durchgeführt werden soll, kann die Prozedur rmit leeren Parametern aufgerufen werden.
In diesem Fall wird @Value, @Mandant und @Frachtfuehrer als Ausgabe den ersten Eintrag liefern, für den ein Tagesabschluss durchgeführt werden soll.
Soll bei keinem Mandanten und bei keinem Frachtführer ein Tagesabschluss durchgeführt werden, so liefert @value eine 0.
Da der Default „GETRESET“ ist, wird nach Abfrage das Signal auf 0 zurückgesetzt. Soll der Wert erhalten bleiben, so muss mit @Action ='GET' gearbeitet werden und nach Abschluss des Tagesabschlusses ist mit @Action='SET' für den entsprechenden Mandanten und Frachtführer @Value=0 zu übergeben.

@Value (bit, Eingabe/Ausgabe)

Wird @Action mit dem Befehl „SET“ belegt, so ist @Value ein Eingabewert und setzt diesen in der Datenbank. Bei den Methoden GET und GETRESET enthält @Value den ausgelesenen Wert. Der Wert 1 bedeutet, dass ein Tagesabschluss durchgeführt werden soll, der Wert 0 hingegen, dass die Versandsoftware weiterhin im Polling bleiben soll.

@Mandant (varchar(40), Eingabe/Ausgabe)

Wenn @Action den Wert „GET“, „GETRESET“ oder NULL kann mit Übergabe eines Mandantenwerts der Tagesabschluss für diesen Mandanten abgefragt werden. Wenn kein Mandantenname angegeben wird (NULL oder weglassen), wird die Abfrage für den Hauptmandanten durchgeführt, Das ist der Mandant zu dem die aktuelle Datenbank gehört.

Zu Testzwecken kann das Tagesabschlusssignal für einen bestimmten Mandanten gesetzt werden. Hierzu muss der Mandant jedoch in der Datenbank als gültig bekannt sein. Zum Setzen eines Wertes muss @Action='SET' enthalten.

Sind @Frachtfuehrer und @Mandant ohne Inhalt (=NULL), so gilt der oben beschriebene Sonderfall.

@Frachtfuehrer (varchar(20), Eingabe/Ausgabe)

Die unterstützten Versandarten, die bereits mit VLOG vereinbart sind in der Sicht EXPORT_VLOG_Sendung_Alle beschrieben.

Sind @Frachtfuehrer und @Mandant ohne Inhalt (=NULL), so gilt der oben beschriebene Sonderfall.

Beispiel 1

declare 
  @e int,
  @value bit
exec @e = cn_VLOG_Tagesabschluss @value=@value out, @Mandant='PV', @Frachtfuehrer='DPD'
Select @value [Tagesabschluss]

In diesem Beispiel wird abgefragt, ob ein Tagesabschluss für den Frachtführer „DPD“ bezogen auf den Mandanten „PV“ durchgeführt werden soll. Bei einem Rückgabewert von „1“ soll ein Tagesabschluss durchgeführt werden. Nach Abruf des Wertes wird intern der Wert auf „0“ zurückgesetzt, so dass ein erneuter Abruf den Wert „0“ ergeben wird.

Beispiel 2

declare 
  @e int,
  @value bit,
  @Mandant varchar(40),
  @Frachtfuehrer varchar(20)
SET @Mandant=NULL
SET @Frachtfuehrer=NULL
exec @e = cn_VLOG_Tagesabschluss 
              @value=@value out,
              @Mandant=@Mandant out, 
              @Frachtfuehrer=@Frachtfuehrer out
Select @value [Tagesabschluss], @Mandant [Mandant], @Frachtfuehrer [Frachtfuehrer]

In diesem Beispiel wird abgefragt, ob ein Tagesabschluss für einen beliebigen Mandanten und einen beliebigen Frachtführer vorliegt. Wenn @value=1 ist, so ist ein Tagesabschluss durchzuführen. Die Variable @Mandant und @Frachtfuehrer enthalten die Daten für welchen Mandanten und Frachtführer dies zutrifft. Da @Action nicht übergeben wurde wird automatisch nach den Lesen ein Reset durchgeführt. Das bedeutet ein direkter Neuaufruf liefert @value=0.

Beispiel 3

declare 
  @e int,
  @value bit,
  @Mandant varchar(40),
  @Frachtfuehrer varchar(20)
SET @Mandant=NULL
SET @Frachtfuehrer=NULL
exec @e = cn_VLOG_Tagesabschluss 
              @Action='GET',
              @value=@value out,
              @Mandant=@Mandant out, 
              @Frachtfuehrer=@Frachtfuehrer out
Select @value [Tagesabschluss], @Mandant [Mandant], @Frachtfuehrer [Frachtfuehrer]

In diesem Beispiel wird abgefragt, ob ein Tagesabschluss für einen beliebigen Mandanten und einen beliebigen Frachtführer vorliegt. Wenn @value=1 ist, so ist ein Tagesabschluss durchzuführen. Die Variable @Mandant und @Frachtfuehrer enthalten die Daten für welchen Mandanten und Frachtführer dies zutrifft. Der Wert wird in der Datenbank nicht zurückgesetzt, da @Action nur eine Leseoperation macht. Der Wert kann von der Anwendung über den Befehl 'SET' explizit zurückgesetzt werden.

Beispiel 4

cn_VLOG_Tagesabschluss 
              @Action='SET',
              @value=0,
              @Mandant='MUSTERMANN', 
              @Frachtfuehrer='DPD'

In diesem Beispiel wird der Tagesabschluss auf 0 zurückgesetzt. Hierbei speziell für den Mandanten „MUSTERMANN“ und den Frachtführer „DPD“.

Beispiel 5

cn_VLOG_Tagesabschluss 
              @Action='SET',
              @value=0,
              @Frachtfuehrer='DPD'

In diesem Beispiel wird der Tagesabschluss auf 0 zurückgesetzt. Hierbei speziell für den Hauptmandanten und den Frachtführer „DPD“. Der Hauptmandant ist der Mandant zu dem die geöffnete Datenbank gehört.

Beispiel 5

cn_VLOG_Tagesabschluss 
              @Action='SET',
              @value=1,
              @Frachtfuehrer='DPD'

In diesem Beispiel wird der Tagesabschluss auf 1 gesetzt und damit erzwungen. Hierbei speziell für den Hauptmandanten und den Frachtführer „DPD“. Der Hauptmandant ist der Mandant zu dem die geöffnete Datenbank gehört.