CREATE TABLE KNA_CASH_SESSION
(
  SESSIONID     NUMBER                          NOT NULL,
  MODUL         VARCHAR2(255 BYTE),
  WINDOWS_USER  VARCHAR2(50 BYTE)               NOT NULL,
  START_DATUM   DATE                            NOT NULL
)
TABLESPACE KNA_APL_1
PCTUSED    0
PCTFREE    10
INITRANS   1
MAXTRANS   255
STORAGE    (
            INITIAL          1M
            NEXT             1M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;

CREATE UNIQUE INDEX KNA_CASH_SESSION_PK ON KNA_CASH_SESSION (SESSIONID, MODUL) LOGGING TABLESPACE KNA_APL_1 PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 1M NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT ) NOPARALLEL;
ALTER TABLE KNA_CASH_SESSION ADD ( CONSTRAINT KNA_CASH_SESSION_PK PRIMARY KEY (SESSIONID, MODUL) USING INDEX TABLESPACE KNA_APL_1 PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 1M NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 ));
Forms Program Units PROCEDURE p_programmende IS oldmsg VARCHAR(2); begin delete KNA_CASH_SESSION where sessionid = :global.sessionid and modul = :global.current_form; oldmsg := :System.Message_Level; :System.Message_Level := '25'; commit; :System.Message_Level := oldmsg; exit_form; END;
PROCEDURE hole_os_user IS BEGIN :global.os_user := webutil_clientinfo.get_user_name; END;
Modul Trigger: When-new-forms_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; oldmsg VARCHAR2(2); instanz_name varchar2(64); begin hole_os_user; edv.apldef.set_client_os_user(:global.os_user); select USERENV('SESSIONID') into :global.sessionid from dual; :global.current_form := Get_Application_Property(current_form); delete KNA_CASH_SESSION where sessionid = :global.sessionid and modul = :global.current_form; insert into KNA_CASH_SESSION(SESSIONID, modul, WINDOWS_USER, START_DATUM) values(:global.sessionid, :global.current_form , :global.os_user, sysdate); oldmsg := :System.Message_Level; :System.Message_Level := '25'; commit; :System.Message_Level := oldmsg; 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, 'Knauber Kassenbuch V 18.05.2011 13:50 / '||instanz_name||' / Benutzer: '||initcap(replace(upper(:global.os_user),'.',' '))); .... exception when others then message('Trigger When-timer_expired @'||v_step||' '||sqlerrm); pause; end;