Цитата |
---|
Максим пишет:
Вот оракловый тригер для автоматического вписывания зарегистрированного в SD пользователя в поле Пользователь в заявке, организация тоже заполняется.
CREATE OR REPLACE TRIGGER T_NSSO_AI_ITSM_SER_INFORMATION
...
END;
/ |
В поле per_emaillower запись хранится в нижнем регистре, а если email будет TeSt-Aa@SERVICECALL.ru
Триггер не найдет его в поле per_emaillower, и подставить пользователя первого попавшегося.
Переписал немного, добавив: условие, перевод p_email в нижний регистр lower, ну и завершение поправил
....
BEGIN
IF :new.sei_information like 'From:%' THEN -- доп.условие
SELECT
lower(SUBSTR (:new.sei_information,
INSTR (:new.sei_information, '<', 1) + 1,
INSTR (:new.sei_information, '>', 1) - INSTR (:new.sei_information, '<', 1) - 1))
INTO p_email
FROM DUAL;
SELECT per_oid, per_org_oid
INTO p_oid, p_per_org_oid
FROM ITSM_PERSONS
WHERE per_emaillower LIKE '%'||p_email||'%' AND ROWNUM = 1;
UPDATE ITSM_SERVICECALLS
SET SER_CALLER_PER = p_oid, SER_CALLER_ORG = p_per_org_oid
WHERE ser_oid = :new.sei_ser_oid AND ROWNUM = 1;
END IF;
EXCEPTION
WHEN
OTHERS THEN NULL; --защищает наш select
END;