Autor Thema: Datenbank für Botendienst - Prüfroutine  (Gelesen 2407 mal)

Offline Lionhead

  • Frischling
  • *
  • Beiträge: 35
Datenbank für Botendienst - Prüfroutine
« am: 19.02.19 - 09:36:41 »
Hallo,

ich habe eine einfache  Datenbank für Botendienste. Diese funktioniert so, dass bei einem Transport ein Dokument mit Angabe des Datums, des Absenders, des Empfängers, dem transportierten Gegenstand sowie dem Namen des Boten  erstellt wird.  Der Empfang wird in der DB bestätigt.

Der Transport wird von mehreren (wechselnden)  Boten durchgeführt. Es dürfen jedoch maximal 3 Boten gleichzeitig  zur Ablieferung unterwegs sein. Genau da liegt für mich die Herausforderung.

Ich hätte mir dazu als Ansatz ein Statusfeld im Dokument überlegt:
Sobald eine Fahrt eingetragen wird,  bekommt das Dokument den Status „Zustellung“. Nach der
Zustellungsbestätigung des Empfängers wird dieser auf „zugestellt“ geändert. Es müsste daher bei Erstellung eines neuen Dokuments geprüft werden, ob  bereits  drei Dokumente mit dem Status „Zustellung“ vorhanden sind und mit einem Hinweis quitiert werden.

Ich weiß jetzt aber nicht, wie ich das so überprüfen kann. Vielleicht gibt es aber auch einen anderen (besseren)  Lösungsvorschlag.

Leider kenne ich mich mit Lotus Script nicht so gut aus. Ich fürchte aber, das wird nur mit einem Script gehen....


Grüße
Dieter

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Datenbank für Botendienst - Prüfroutine
« Antwort #1 am: 19.02.19 - 09:48:57 »
In Formelsprache holst Du Dir mit einem @DBLookup aus einer Ansicht die zugehörigen Zustellungsdokumente, das Ergebnis überprüfst Du mit @Elements, das ist die Anzahl der gefundenen Elemente

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Datenbank für Botendienst - Prüfroutine
« Antwort #2 am: 19.02.19 - 09:53:19 »
Das geht sehr einfach mit LotusScript oder auch mit Formelsprache. Wichtig: Du musst sicherstellen, dass alle auf der selben Replik arbeiten, sonst geht das nicht.

Mit Formelsprache würde ich ein "Botenzähler"- Dokument erstellen, das per @SetDocField aktualisiert wird, wenn ein Dokument den Status ändert.

Also:

1. Ansicht "LkpAllByStatus", kategorisiert nach Status
2. Ansicht "LkpCounter": Enthält nur das Botenzähler- Dokument, 1. Spalte: @Text( @DocumentUniqueID ), 2. Spalte: Counter

Dann die Formel zum zurückschreiben (z.B. im PostSave- Event):

Code
_botenLkp := @DBColum( "" : "NoCache" ; @DBName; "LkpCounter" ; 1 );
@If( @IsError( _botenLkp ) | _botenLkp = "" ; @Return( @Prompt( [ok] ; "FEHLER" ; "Zählerdokument existiert nicht" ) ) ; "" )
_botenUnid := @Subset( _botenLkp ; 1 );
_lkpCount := @DBLookup( "" : "NoCache" ; @DBName ; "LkpAllByStatus"; "Zustellung" ; 2 );
_count := @If( @IsError( _lkpCount ) | _lkpCount = "" ; 0 ; @Elements( _lkpCount ) );
@SetDocField( _botenUnid ; "Count" ; _count )

Und dann beim in einer Eingabevalidierung eines Feldes sowas wie:
Code
_botenLkp := @DBColum( "" : "NoCache" ; @DBName; "LkpCounter" ; 2 );
@If( @IsError( _botenLkp ) | _botenLkp = "" ; @Return( @Prompt( [ok] ; "FEHLER" ; "Zählerdokument existiert nicht" ) ) ; "" )
@If( _botenLkp >= 3 ; @Failure( "Bereits 3 Boten unterwegs" ) ; @Success )

Mit LotusScript geht das natürlich viel eleganter, aber die Lernkurve ist auch höher...

EDIT: Peter hat mit seiner einfachen Vorgehensweise vollkommen recht... Die Sache mit dem Counter- Dokument ist natürlich quatsch und übermässig kompliziert...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Lionhead

  • Frischling
  • *
  • Beiträge: 35
Re: Datenbank für Botendienst - Prüfroutine
« Antwort #3 am: 20.02.19 - 11:03:58 »
Vielen Dank für die schnellen Lösungsvorschläge.

Gruß
Dieter

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz