| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- 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.
|