Skip to main content
Solved

Custom PL/SQL Procedure Not Appearing in “Select Method” for Database Task (IFS Apps 8)

  • May 22, 2025
  • 3 replies
  • 96 views

Forum|alt.badge.img+8
  • Sidekick (Customer)
  • 52 replies

Hello,

I have developed a new PL/SQL procedure (Auto_Purchase_Req) inside a custom package (BSM_PURCH_UTIL_API) in our IFS Apps 8 environment.
The package is compiled successfully and the procedure is working as expected when called directly from the database.

However, when I try to create a new Database Task in IFS and click on “Select Method”, my custom procedure does not appear in the method list.
I have already restarted both the Test Application and Test Database servers, but the issue persists.

Is there a specific way to refresh the IFS metadata or PL/SQL definitions so that new procedures/functions appear in the Select Method list for Database Tasks?
If so, can you please advise on the steps or the correct menu to use for this operation?

Any help or recommendations would be greatly appreciated.

Thank you in advance!

 

Best answer by asanka1055

Hi ​@sahango 

Did you try refreshing the Dictionary cache?

Thanks & Regards,
Asanka.

3 replies

asanka1055
Hero (Partner)
Forum|alt.badge.img+9
  • Hero (Partner)
  • 68 replies
  • Answer
  • May 22, 2025

Hi ​@sahango 

Did you try refreshing the Dictionary cache?

Thanks & Regards,
Asanka.


Forum|alt.badge.img+8
  • Author
  • Sidekick (Customer)
  • 52 replies
  • May 22, 2025

Hi ​@sahango 

Did you try refreshing the Dictionary cache?

Thanks & Regards,
Asanka.

Thank you for your quick response!
Refreshing the Dictionary cache solved the issue. Now I can see my custom procedure in the method list.
Much appreciated!


Manulak
Hero (Customer)
Forum|alt.badge.img+8
  • Hero (Customer)
  • 91 replies
  • May 22, 2025

As ​@asanka1055 mentioned, try refreshing the cache.

If that doesn’t work either, you can manually enter this just for testing, etc. using the following script.

DECLARE
lu_name_ VARCHAR2(100) := 'XxxXxxXxx';
module_ VARCHAR2(100) := 'XXXXXX';
api_ VARCHAR2(100) := 'XXXXXXX_API';
proc_ VARCHAR2(100) := 'XxxXxxXxxxx';

BEGIN

IF NOT Dictionary_sys.Logical_Unit_Is_Installed(lu_name_) THEN
INSERT INTO dictionary_sys_tab(lu_name, module, lu_prompt, lu_type, rowversion)
VALUES(lu_name_, module_, lu_name_, 'L', SYSDATE);
END IF;

IF NOT Dictionary_SYS.Package_Is_Installed(api_) THEN
INSERT INTO dictionary_sys_package_tab(lu_name, package_name, package_index, package_type, rowversion)
VALUES(lu_name_, api_, 1, 'N', SYSDATE);
END IF;

IF NOT Dictionary_sys.Method_Is_Installed(api_, proc_) THEN
INSERT INTO dictionary_sys_method_tab(lu_name, package_name, method_name, method_type, rowversion)
VALUES(lu_name_, api_, proc_, 'N', SYSDATE);
END IF;

COMMIT;
END;