Home » Developer & Programmer » Forms » FRM-40734 Internal Error PL/SQL error = magic error? (Oracle 10.2.4, Forms 11g)
FRM-40734 Internal Error PL/SQL error = magic error? [message #572579] |
Thu, 13 December 2012 06:39 |
|
grzes1d
Messages: 4 Registered: December 2012 Location: Poland
|
Junior Member |
|
|
Hi everyone
Problem is one form that i have to migrate from version 6 throu 6i
I got very difficult (for me) error FRM-40734. Happens In WHEN-NEW-FORM-INSTANCE trigger when i try do go_block('NAVI');
NAVI block is NOT database block (property set NO)
Database Oracle Database 10g Release 10.2.0.4.0
Forms 11.1.2.0.0,
Below i post some code
When-New-Form-Instance trigger
....some other code
navi_pck.link_activated();
... some other code
navi_pck.Init();
... some other code
Navi_pck is a package added to program modules
PACKAGE BODY navi_pck IS
type t_navi_data is record
( name varchar2(64),
primary_item varchar2(64),
other_items varchar2(4000),
isValid boolean
);
type t_navi_table is table of t_navi_data index by binary_integer;
navi_record t_navi_data;
-- Navi Array
navi_table t_navi_table;
-- other variables
iNaviCount PLS_INTEGER := 0;
iNextNum PLS_INTEGER := 0;
function nextnum (Re_init IN BOOLEAN DEFAULT FALSE) return NUMBER is
begin
if Re_init then
iNextNum := 0;
else
iNextNum := iNextNum + 1;
end if;
return iNextNum;
end;
procedure Add_Link(LinkName in VARCHAR2, PrimaryItem in VARCHAR2, OtherItems in VARCHAR2, pr_isValid in boolean) is
i number;
begin
i := nextnum();
navi_table(i).name := LinkName;
navi_table(i).primary_item := PrimaryItem;
navi_table(i).other_items := OtherItems;
navi_table(i).isValid := pr_isValid;
end;
procedure init is
begin
Add_Link(LinkName => g_links.Wywiad_pierwszorazowy, PrimaryItem => 'TD_WYWIAD_PIERWSZORAZOWY.OPIS', OtherItems => 'TD_WYWIAD_PIERWSZORAZOWY', pr_isValid => false);
Add_Link(LinkName => g_links.Dane_podstawowe, PrimaryItem => 'TD_WIZYTA.KOD_LEKARZA_PRZYJMUJACEGO', OtherItems => 'TD_WIZYTA.KOD_GABINETU;TD_WIZYTA.TYP_WIZYTY;TD_WIZYTA.DATA_WIZYTY;TD_WIZYTA.GODZ_WIZYTY;TD_WIZYTA.DSP_ROZPOZNANIE;TD_ROZPOZ.DSP_ROZP OZNANIE;TD_ROZPOZ.BTN_WIZYTA_WYBOR_ICD10;TD_ROZPOZ.BTN_WIZYTA_USUN_ICD10', pr_isValid => false);
Add_Link(LinkName => g_links.Wywiad, PrimaryItem => 'TD_WYWIAD.OPIS', OtherItems => 'TD_WYWIAD', pr_isValid => false);
Add_Link(LinkName => g_links.Badanie_fizykalne, PrimaryItem => 'TD_BADANIE.OPIS', OtherItems => 'TD_BADANIE', pr_isValid => false);
Add_Link(LinkName => g_links.Procedury, PrimaryItem => 'TD_PROCEDURY_ICD9.NAZWA_PROCEDURY', OtherItems => 'TD_PROCEDURY_ICD9;TD_PROCEDURY_ICD9.BTN_ICD9_SZUKAJ;TD_PROCEDURY_ICD9.BTN_ICD9_DODAJ_AUTO;TD_PROCEDURY_ICD9.BTN_ZABIEG;TD_PROCEDURY_ ICD9.BTN_ICD9_DODAJ;TD_PROCEDURY_ICD9.BTN_ICD9_USUN;TD_PROCEDURY_ICD9.BTN_ICD9_ZLECENIE', pr_isValid => false);
Add_Link(LinkName => g_links.Rozliczenie, PrimaryItem => 'TD_ROZLICZENIE.NAZWA_US', OtherItems => 'TD_ROZLICZENIE.BTN_NFZ_DODAJ_AUTO;TD_ROZLICZENIE.NFZ_KOD_PROC;TD_ROZLICZENIE.NAZWA_US', pr_isValid => false);
Add_Link(LinkName => g_links.Zastosowane_leczenie, PrimaryItem => 'TD_WIZYTA.ZASTOSOWANE_LECZENIE', OtherItems => 'TD_WIZYTA.ZASTOSOWANE_LECZENIE', pr_isValid => false);
Add_Link(LinkName => g_links.Leki, PrimaryItem => 'WYD_RECEPTY.TXT_LEK', OtherItems => 'WYD_RECEPTY', pr_isValid => false);
Add_Link(LinkName => g_links.Zalecenia, PrimaryItem => 'TD_WIZYTA.ZALECENIA', OtherItems => '', pr_isValid => false);
Add_Link(LinkName => g_links.Druki, PrimaryItem => 'TD_DRUKI.RODZAJ', OtherItems => 'TD_DRUKI', pr_isValid => false);
Add_Link(LinkName => g_links.Skierowanie, PrimaryItem => 'BUTTONS.BTN_SKIER_DODAJ', OtherItems => 'TD_SKIEROWANIE', pr_isValid => false);
Add_Link(LinkName => g_links.ksiega_zabiegowa, PrimaryItem => 'TD_KSIEGA_ZABIEGOWA.PRZEBIEG_ZABIEGU', OtherItems => 'TD_KSIEGA_ZABIEGOWA.LEKI_PODANE', pr_isValid => false);
:ctrl.sekcja_01 := upper(' '||zmienne_globalne.sSekcja_01);
:ctrl.sekcja_02 := upper(' '||zmienne_globalne.sSekcja_02);
:ctrl.sekcja_03 := upper(' '||zmienne_globalne.sSekcja_03);
:ctrl.sekcja_04 := upper(' '||zmienne_globalne.sSekcja_04);
:ctrl.sekcja_05 := upper(' '||zmienne_globalne.sSekcja_05);
:ctrl.sekcja_06 := upper(' '||zmienne_globalne.sSekcja_06);
:ctrl.sekcja_07 := upper(' '||zmienne_globalne.sSekcja_07);
:ctrl.sekcja_08 := upper(' '||zmienne_globalne.sSekcja_08);
:ctrl.sekcja_09 := upper(' '||zmienne_globalne.sSekcja_09);
:ctrl.sekcja_10 := upper(' '||zmienne_globalne.sSekcja_10);
:ctrl.sekcja_11 := upper(' '||zmienne_globalne.sSekcja_11);
obsluga_formy.unprotectblock(navi_pck.g_Block);
go_block(g_Block);
clear_block();
first_record;
for idx in 1.. navi_table.count loop
:NAVI.L01 := navi_table(idx).name;
:NAVI.L_IDX := idx;
:NAVI.L_STATUS := '[OK]';
next_record();
end loop;
first_record();
g_Current := :NAVI.L_IDX;
protectblock(g_Block);
end;
procedure go_to(pr_Idx in number) is
begin
go_block(g_Block);
first_record;
for idx in 1..navi_table.count loop
if :NAVI.L_IDX = pr_Idx then
g_Current := pr_Idx;
exit;
end if;
if :system.last_record = 'TRUE' then
exit;
end if;
next_record();
end loop;
end;
procedure find_idx(pt_itemname in varchar2) is
begin
for idx in 1..navi_table.count loop
if navi_table(idx).name = pt_itemname or
navi_table(idx).primary_item = pt_itemname or
navi_table(idx).other_items like '%'||pt_itemname||'%' /*or
navi_table(idx).other_items like '%'||:system.trigger_block||'%'*/
then
go_to(idx);
exit;
end if;
end loop;
end;
procedure refresh_status is
begin
obsluga_formy.unprotectblock(navi_pck.g_Block);
go_block(navi_pck.g_Block);
first_record;
for idx in 1.. navi_table.count loop
next_record();
end loop;
first_record();
g_Current := :NAVI.L_IDX;
protectblock(navi_pck.g_Block);
end;
procedure Link_Activated is
begin
go_item(navi_table(:navi.l_idx).primary_item);
g_current := :navi.l_idx;
end;
procedure Navigate (pr_next boolean default true) is
begin
obsluga_formy.zapisz_zmiany();
if pr_next and navi_table.count > navi_pck.g_current then
go_to(pr_Idx => navi_pck.g_current + 1);
elsif not pr_next and navi_pck.g_current > 1 then
go_to(pr_Idx => navi_pck.g_current - 1);
end if;
Link_Activated();
end;
procedure key_next_item is
begin
navi_pck.Navigate(true);
end;
procedure key_prev_item is
begin
navi_pck.Navigate(false);
end;
BEGIN
init();
END;
When When-New-Instance-Form fires on line
navi_pck.link_activated();
we go to init(); in navi_pck package
everything is ok - that mean it is executed without any error
then when we hit
navi_pck.Init();
we got error at Bold line => go_block(g_block);
that is error not exception (because adding begin... exception when others ... end; does not catch it)
Ofcourse its needed to be done -> mean that go_block, because after it we clear block and work on it.
I got 5 triggers on that block NAVE - but tried already to NULL theirs code but didnt solve the problem (didnt try to remove them...)
Does anyone got any idea what can be wrong? any sugestions?
Best Regards
Grzegorz
[Updated on: Thu, 13 December 2012 06:41] Report message to a moderator
|
|
|
|
Re: FRM-40734 Internal Error PL/SQL error = magic error? [message #572631 is a reply to message #572591] |
Fri, 14 December 2012 03:32 |
|
grzes1d
Messages: 4 Registered: December 2012 Location: Poland
|
Junior Member |
|
|
thx for replay
im migrating forms from 6 to 11g... but it cant be done with no 6i... so first i got to do migration to 6i then to 11g.
navi_pck is a package
in navi_pck is defined variable
g_Block varchar2(32) := 'NAVI';
that means that all those go_block means same...
don't be mad on me im just migrating - im not author of source
[Updated on: Fri, 14 December 2012 03:35] Report message to a moderator
|
|
|
|
Re: FRM-40734 Internal Error PL/SQL error = magic error? [message #572634 is a reply to message #572632] |
Fri, 14 December 2012 04:50 |
|
grzes1d
Messages: 4 Registered: December 2012 Location: Poland
|
Junior Member |
|
|
You are right
i got Virtual machine with oracle 6, other virtual machine with 6i and 3rd virtualmachine with 11g
to migrate i got to do 2 steps - convert all files to 6i then move them to 11g and convert n compile them on 11g
if i remove line:
navi_pck.Init();
from when-new-form-instance its ok - no error.
BUT i would know why simple GO_BLOCK cause the error.
[Updated on: Fri, 14 December 2012 04:50] Report message to a moderator
|
|
|
|
|
|
Goto Forum:
Current Time: Sun Feb 02 23:05:01 CST 2025
|