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;