Binnen Aanvullende Bedrijfsregels en een Eigen Gebruikersinterface kun je gebruik maken van Invantive Server Pages. Invantive Server Pages, ook wel bekend als ‘ISP’, zijn vergelijkbaar met Active Server Pages (‘ASP’) en Java Server Pages (‘JSP’).
Met hulp van bijvoorbeeld eigen profielopties kunnen eigen rapportages in HTML- of XML-formaat gebouwd worden voor bijvoorbeeld gebruik in e-mails. ISP is beter geschikt dan de maatwerk rapporten in de webgebruikersinterface in de volgende situaties:
•Er is sprake van een doorlopende lay-out en geen sprake van een lay-out per pagina.
•De gewenste uitvoer is in HTML of XML.
•Er zijn eventueel mutaties nodig terwijl het rapport samengesteld wordt.
•De lay-out is complexer dan mogelijk met iReport.
ISP pagina's leveren uiteindelijk PL/SQL-programmatuur op, net zoals aanvullende bedrijfsregels. ISP pagina's zijn een betere keuze vergeleken met aanvullende bedrijfsregels als:
•De uitvoer veel opmaakelementen bevat.
•De persoon die de lay-out bouwt weinig kennis heeft van aanvullende bedrijfsregels en PL/SQL.
Het systeem herkent ISP-scripts aan de volgende tekst direct aan het begin van de tekst:
<%@ page language="ISP" %>
Vervolgens kunnen layout-elementen en codeonderdelen afgewisseld worden. De codeonderdelen moeten tussen ‘<%’ en ‘%>’ geplaatst worden en dienen geschreven te zijn in Oracle PL/SQL.
De lay-out-elementen worden identiek overgenomen in de uitvoer van het ISP-script en de codeonderdelen worden uitgevoerd. Alle uitvoer naar dbms_output wordt opgenomen in de uitvoer van het ISP-script.
Het volgende ISP-script schrijft een welkomst boodschap aan de Oracle-gebruiker:
<%@ page language="ISP" %>
<html>
<body>
Welkom <% dbms_output.put_line(user); %>
</body>
</html>
Alle codeonderdelen mogen variabelen vullen. Het verdient aanbeveling ze in het begin te definiëren. Codeonderdelen verderop in het script kunnen vervolgens de variabelen uitlezen. Het volgende script bepaalt bijvoorbeeld de dag, die later gebruikt wordt:
<%@ page language="ISP" %>
<% declare
l_dag varchar2(100);
begin
%>
<html>
<body>
<% l_dag := to_char(sysdate, 'DDD'); %>
Welkom <% dbms_output.put_line(user); %>,
het is vandaag <% dbms_output.put_line(l_dag); %>.
</body>
</html>
Het uitvoeren van een ISP-script gaat met hulp van itgen_isp.run. Het is mogelijk om variabelen door te geven in het formaat van een URL-parameter tekst als tweede parameter, bijvoorbeeld ‘GBR_ID=1&TAK_ID=2’. In de ISP-code kan dit gebruikt worden door de inhoud uit te lezen van l_parameters_map(NAAM). Je kunt alleen de waardes van get parameters van een form ophalen.
Het contenttype kan gewijzigd worden door een waarde toe te kennen aan de variabele l_content_response_type.
Als de ISP gestart wordt via een ISP die in de database opgeslagen is met een code, dan vind je de code in de variabele l_spe_code.
Als een gebruiker rechten heeft op het scherm 'Weergeven Invantive Server Pages', dan kan hij in principe alle pagina's openen. Per Invantive Server Pagina kan dit verder verfijnd worden door de variabele l_access_granted_flag op 'Y' of 'N' te zetten, bijvoorbeeld als volgt door een functie aan te maken voor de Invantive Server Pagina:
l_access_granted_flag := itgen_utilities.bool2char(bubs#mijn_menu_functies_r.has_access('xxive_db_sessions'));