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):
| _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:
| _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...