TRIGGER PROCEDURE FOR WRITE OF Besko NEW BUFFER nBesko OLD BUFFER oBesko. DEFINE VARIABLE cResult AS CHARACTER NO-UNDO. DEFINE VARIABLE lBatch AS LOG INIT TRUE NO-UNDO. DEFINE BUFFER bBesko FOR Besko. DEFINE BUFFER bBesze FOR Besze. BUFFER-COMPARE oBesko USING Best_Sta Lief_Datum Lieferzeit I_Best Bemerkung Verbucht Abgeholt lAbgeschlossen TO nBesko SAVE RESULT IN cResult. IF cResult <> '' THEN DO: FIND FIRST ASMutation WHERE ASMutation.Firma = nBesko.Firma AND ASMutation.Datum = TODAY AND ASMutation.MutArt = 'DASHBOARD' AND ASMutation.cFeld_1 = 'BESTELLUNG' AND ASMutation.iKey_1 = nBesko.Besnr NO-ERROR. IF AVAILABLE ASMutation THEN DO: IF (TIME - ASMutation.iFeld_1) > 5 THEN RELEASE ASMutation. END. IF NOT AVAILABLE ASMutation THEN DO: CREATE ASMutation. ASSIGN ASMutation.asmutation_id = NEXT-VALUE(asmutation_id) ASMutation.Aktiv = TRUE ASMutation.cStatus = '' ASMutation.Datum = TODAY ASMutation.Firma = nBesko.Firma ASMutation.MutArt = 'DASHBOARD' ASMutation.cFeld_1 = 'BESTELLUNG' ASMutation.iKey_1 = nBesko.Besnr ASMutation.iFeld_1 = TIME . END. END. IF LOOKUP('Best_Sta', cResult, ',') = 0 THEN RETURN. lBatch = DYNAMIC-FUNCTION('getBatch':U) NO-ERROR. IF ERROR-STATUS:ERROR THEN lBatch = FALSE. IF lBatch = ? THEN lBatch = FALSE. DISABLE TRIGGERS FOR LOAD OF Besze. FOR EACH Besze NO-LOCK OF nBesko: IF Besze.Best_Sta = nBesko.Best_Sta THEN NEXT. FIND bBesze EXCLUSIVE-LOCK WHERE RECID(bBesze) = RECID(Besze) NO-WAIT NO-ERROR. IF NOT AVAILABLE bBesze THEN NEXT. bBesze.Best_Sta = nBesko.Best_Sta. RELEASE bBesze. END.