DEF VAR iBestellt AS INT NO-UNDO. DEF BUFFER bBesze FOR Besze . DEF BUFFER bArtst FOR Artst . DEF BUFFER bArtLager FOR ArtLager. DISABLE TRIGGERS FOR LOAD OF Besze . DISABLE TRIGGERS FOR LOAD OF Artst . DISABLE TRIGGERS FOR LOAD OF ArtLager. FOR EACH Besze NO-LOCK WHERE Besze.Firma = '1000': FIND FIRST Besko NO-LOCK OF Besze NO-ERROR. IF NOT AVAILABLE Besko THEN DO: FIND bBesze WHERE RECID(bBesze) = RECID(Besze). DELETE bBesze. RELEASE bBesze. NEXT. END. IF Besze.Best_Sta = Besko.Best_Sta THEN NEXT. FIND bBesze WHERE RECID(bBesze) = RECID(Besze). bBesze.Best_Sta = Besko.Best_Sta. END. FOR EACH Artst NO-LOCK WHERE Artst.Firma = '1000', FIRST ArtLager NO-LOCK OF Artst: iBestellt = 0. FOR EACH Besze NO-LOCK WHERE Besze.Firma = Artst.Firma AND Besze.Artnr = Artst.Artnr AND Besze.Inhalt = Artst.Inhalt AND Besze.Jahr = Artst.Jahr AND Besze.Best_Sta < 3 : iBestellt = iBestellt + Besze.MBest. END. IF iBestellt = Artst.Bestellt AND iBestellt = ArtLager.Bestellt THEN NEXT. IF iBestellt <> Artst.Bestellt THEN DO: FIND bArtst EXCLUSIVE-LOCK WHERE RECID(bArtst) = RECID(Artst) NO-WAIT NO-ERROR. IF AVAILABLE bArtst THEN DO: bArtst.Bestellt = iBestellt. RELEASE bArtst. END. END. IF iBestellt <> ArtLager.Bestellt THEN DO: FIND bArtLager EXCLUSIVE-LOCK WHERE RECID(bArtLager) = RECID(ArtLager) NO-WAIT NO-ERROR. IF AVAILABLE bArtLager THEN DO: bArtLager.Bestellt = iBestellt. RELEASE bArtLager. END. END. END.