Clientuser Formsweb & bei db Trigger

Formsweb Trigger

when-new-form-instance
declare
   fake_timer TIMER;
begin
   logout;
   logon(NULL,NULL);
   fake_timer := CREATE_TIMER('webutil',100,NO_REPEAT);
end;   

when-timer-expired declare v_alert number(3); v_step number; instanz_name varchar2(64); begin :global.os_user := webutil_clientinfo.get_user_name; edv.apldef.set_client_os_user(:global.os_user); :no_db.begruessung := 'Hallo '||initcap(replace(upper(:global.os_user),'.',' ')); select global_name into instanz_name from global_name; instanz_name := user ||'@'|| instanz_name; v_step := 90; SET_WINDOW_PROPERTY(forms_mdi_window, window_state, maximize); v_step := 91; SET_WINDOW_PROPERTY('window1', window_state, maximize); v_step := 92; SET_WINDOW_PROPERTY('window1', title, 'xxxxxxxxxxxxx V 24.03.2011 17:05 / '||instanz_name||' / Benutzer: '||initcap(replace(upper(:global.os_user),'.',' '))); exception when others then message('Trigger When-timer-expired @'||v_step||' '||sqlerrm); pause; end;

Datenbank Package

CREATE OR REPLACE PACKAGE APLDEF1 AS PROCEDURE SET_CLIENT_OS_USER(P_USER VARCHAR2 := NULL); FUNCTION CLIENT_OS_USER_IST_GESETZT RETURN BOOLEAN; FUNCTION GET_CLIENT_OS_USER RETURN VARCHAR2; END APLDEF1; /
CREATE OR REPLACE PACKAGE BODY APLDEF1 AS CURSOR C_SESSION IS SELECT S.OSUSER, S.MACHINE, S.TERMINAL, S.PROGRAM, S.CLIENT_INFO FROM SYS.V_$SESSION S WHERE AUDSID = USERENV('SESSIONID'); CSESSION C_SESSION%ROWTYPE; CLIENT_OS_USER VARCHAR2(30) := OS_USER; CLIENT_OS_USER_GESETZT BOOLEAN := FALSE; PROCEDURE SET_CLIENT_OS_USER(P_USER VARCHAR2 := NULL) IS BEGIN IF P_USER IS NOT NULL THEN CLIENT_OS_USER := P_USER; CLIENT_OS_USER_GESETZT := TRUE; END IF; END SET_CLIENT_OS_USER; FUNCTION CLIENT_OS_USER_IST_GESETZT RETURN BOOLEAN IS BEGIN RETURN CLIENT_OS_USER_GESETZT; END CLIENT_OS_USER_IST_GESETZT; FUNCTION GET_CLIENT_OS_USER RETURN VARCHAR2 IS BEGIN RETURN CLIENT_OS_USER; END GET_CLIENT_OS_USER; END APLDEF1; /

Datenbank Tabellen Trigger

CREATE OR REPLACE TRIGGER EDV.TBI_KNA_CASH_BENUTZER BEFORE INSERT OR UPDATE ON EDV.KNA_CASH_BENUTZER REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE BEGIN if inserting then SELECT seq_kna_cash.NEXTVAL INTO :new.id FROM dual; :new.angelegt_am := sysdate; -- :new.angelegt_von := f_os_user; :new.angelegt_von := edv.apldef.get_client_os_user; elsif updating then :new.geaendert_am := sysdate; -- :new.geaendert_von := f_os_user; :new.geaendert_von := edv.apldef.get_client_os_user; end if; END; /