Recent Posts

R12.1 (or earlier) upgrade to R12.2 leaves SLS Subledger Security with ORA-28113 Errors (policy predicate has error)

R12.1 (or earlier) upgrade to R12.2 leaves SLS Subledger Security with ORA-28113 Errors (policy predicate has error)

If you upgrade from R12.1 (or earlier) to R12.2 you will be thrown in the world of editionable objects for “Online Patching”.

If you have SLS (Subledger Security) enabled on some tables in your R12.1 environment you will find that after the upgrade these policies have been duplicated to the editionable objects.

For example if in R12.1 you have 2 policies defined on the following tables

  • PO_REQUISITION_HEADERS_ALL
  • PO_HEADERS_ALL

you will find that after performing the upgrade to R12.2 you will all of a sudden have 4 policies, specifically on :

  • PO_REQUISITION_HEADERS_ALL
  • PO_HEADERS_ALL
  • PO_REQUISITION_HEADERS_ALL#
  • PO_HEADERS_ALL#

and any selects or operations in screens on po_requisition_headers_all or po_headers_all will fail with an

ORA-028113 : policy predicate has error

this because the SLS generated functions ( something like IGI_SLS_1_FUN ) contains a reference to a rowid that does not exist.

To fix this problem just drop the incorrect policies.

for example :

BEGIN 
  DBMS_RLS.DROP_POLICY('PO', 'PO_REQUISITION_HEADERS_ALL#', 'IGI_SLS_21_POL'); 
  DBMS_RLS.DROP_POLICY('PO', 'PO_HEADERS_ALL#', 'IGI_SLS_1_POL'); 
END;

If you want you can rerun the SLS security concurrent program but it is not needed.

concurrent program : Subledger Security – Apply Security with parameter REFRESH run from under System administrator

All new SLS security rules made in R12.2 are by default not created on the editionable object.

Hope it helps !

Reuben

Geen reactie's

Geef een reactie