/* tr-u-sit.p - Write trigger for state-item */ TRIGGER PROCEDURE FOR WRITE OF state-item OLD BUFFER old-item. /* Include commons */ {common.i} DEFINE BUFFER localItem FOR state-item. /* Assing the update info */ ASSIGN state-item.upd-date = TODAY state-item.upd-time = STRING(TIME, "HH:MM:SS") state-item.upd-user-name = menu-user. /* If its new, see if exists elsewhere */ IF NEW state-item THEN DO: FIND FIRST localItem NO-LOCK WHERE localItem.state-version-id <> state-item.state-version-id AND localItem.state-element-code = state-item.state-element-code NO-ERROR. IF AVAILABLE localItem THEN state-item.state-item-id = localItem.state-item-id. END. ELSE DO: /* See if the field we care about changed */ IF old-item.state-element-code <> state-item.state-element-code THEN DO: FIND FIRST localItem NO-LOCK WHERE localItem.state-version-id <> state-item.state-version-id AND localItem.state-element-code = state-item.state-element-code NO-ERROR. IF AVAILABLE localItem THEN state-item.state-item-id = localItem.state-item-id. ELSE state-item.state-item-id = NEXT-VALUE(record-id). END. END. /* That's it */