/* tr-u-src.p - Write trigger for state-record */ TRIGGER PROCEDURE FOR WRITE OF state-record OLD buffer old-record. /* Include commons */ {common.i} DEFINE BUFFER localRecord FOR state-record. /* Assign update info */ ASSIGN state-record.upd-date = TODAY state-record.upd-time = STRING(TIME, "HH:MM:SS") state-record.upd-user-name = menu-user. IF NEW state-record THEN DO: FIND FIRST localRecord WHERE localRecord.state-version-id <> state-record.state-version-id AND localRecord.state-record-code = state-record.state-record-code NO-LOCK NO-ERROR. IF AVAILABLE localRecord THEN DO: state-record.state-record-id = localRecord.state-record-id. END. END. ELSE DO: IF old-record.state-record-code <> state-record.state-record-code THEN DO: FIND FIRST localRecord NO-LOCK WHERE localRecord.state-version-id <> state-record.state-version-id AND localRecord.state-record-code = state-record.state-record-code NO-ERROR. IF AVAILABLE localRecord THEN state-record.state-record-id = localRecord.state-record-id. ELSE state-record.state-record-id = NEXT-VALUE(record-id). END. END. /* Go back */