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 Go to next message
grzes1d
Messages: 4
Registered: December 2012
Location: Poland
Junior Member
Hi everyone
Problem is one form that i have to migrate from version 6 Laughing 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 #572591 is a reply to message #572579] Thu, 13 December 2012 07:59 Go to previous messageGo to next message
Littlefoot
Messages: 18821
Registered: June 2005
Location: Croatia, Europe
Senior Member
Account Moderator
You said that you are trying to
go_block('NAVI')
while code you posted says
go_block(g_Block);
and/or
go_block(navi_pck.g_Block);

So, what is true? 'NAVI', g_Block or navi_pck.g_Block? Maybe you should use one of these (the one that is correct).

Also, I didn't quite understand: you are migrating a form from Forms 6 to Forms 6i, but use Forms 11g to do that? Is this the right way? (I don't know, just asking.)
Re: FRM-40734 Internal Error PL/SQL error = magic error? [message #572631 is a reply to message #572591] Fri, 14 December 2012 03:32 Go to previous messageGo to next message
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 Razz 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 #572632 is a reply to message #572631] Fri, 14 December 2012 03:42 Go to previous messageGo to next message
Littlefoot
Messages: 18821
Registered: June 2005
Location: Croatia, Europe
Senior Member
Account Moderator
I have no experience with migration. I thought that, if you want to migrate forms from 6 to 6i, that you should have Forms 6i installed on your computer; do that step of migration process, and then - using Forms 11g - make another step and migrate forms from 6i to 11g.

What happens if you remove all code you have in WHEN-NEW-FORM-INSTANCE trigger and put a single line in there:
go_block('NAVI');
Run the form - is the error raised again, or not?

P.S. Why would I be mad?!?
Re: FRM-40734 Internal Error PL/SQL error = magic error? [message #572634 is a reply to message #572632] Fri, 14 December 2012 04:50 Go to previous messageGo to next message
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

Re: FRM-40734 Internal Error PL/SQL error = magic error? [message #572635 is a reply to message #572634] Fri, 14 December 2012 04:57 Go to previous messageGo to next message
Littlefoot
Messages: 18821
Registered: June 2005
Location: Croatia, Europe
Senior Member
Account Moderator
Maybe it is NAVI_PCK.INIT that does *something* that causes the error. For example (stupid example, most probably), it makes all items in the NAVI block non-eneterable so when you try to navigate to that block, Forms complains that it can not do that because there's no item which can get focus at that time.

Check the package once again because - obviously - GO_BLOCK works OK without the package call so it is not to be blamed (at least, that's what I think).
Re: FRM-40734 Internal Error PL/SQL error = magic error? [message #572638 is a reply to message #572635] Fri, 14 December 2012 05:35 Go to previous messageGo to next message
grzes1d
Messages: 4
Registered: December 2012
Location: Poland
Junior Member
thx for now
will look after it again... but i think the objects are ENABLED
will try first do ENABLE on all items then will do INIT procedure.

IF i got any new issues I will post it.

Best Regards
Grzegorz
Re: FRM-40734 Internal Error PL/SQL error = magic error? [message #572640 is a reply to message #572638] Fri, 14 December 2012 06:06 Go to previous message
Littlefoot
Messages: 18821
Registered: June 2005
Location: Croatia, Europe
Senior Member
Account Moderator
You got me wrong: I'm not saying that items are disabled - it was just an example.

But yes, I'd check the INIT procedure once again.
Previous Topic: Oracle form 10g
Next Topic: Problems with Visual Attribute in multirecord block
Goto Forum:
  


Current Time: Wed Apr 16 10:15:02 CDT 2014

Total time taken to generate the page: 0.08675 seconds