Within Additional Business rules and Your Own User Interface you can make use of Invantive Server Pages. Invantive Server Pages, also known as ‘ISP’, are comparable with Active Server Pages (‘ASP’) and Java Server Pages (‘JSP’).
Using user profile options for example, you can build reports in HTML or XML format which can be used for instance in emails. It is better to use ISP than the customized reports in the web user interface in the following situations:
•There is a continuous layout and not a layout for each page.
•The output needs to be HTML or XML.
•Possible changes are needed while compiling the report.
•The layout is more complex than what was possible with iReport.
ISP pages supply PL/SQL programming in the end, just like additional business rules. ISP pages are a better choice compared to additional business rules such as:
•The end product contains many layout elements.
•The person who builds the layout has little knowledge of additional business rules and PL/SQL.
The system recognizes ISP scripts by the next text directly at the beginning of a text:
<%@ page language="ISP" %>
Subsequently, layout elements and code elements can be interchanged. The code segments must be placed between ‘<%’ and ‘%>’ and must be written in Oracle PL / SQL.
The layout elements are identically reproduced in the output of the ISP script and the code segments are executed. All output to dbms_output is included in the output of the ISP script.
The following ISP script writes a welcome message to the Oracle user:
<%@ page language="ISP" %>
<html>
<body>
Welkom <% dbms_output.put_line(user); %>
</body>
</html>
All code sections may fill variables. It is recommended to define them in the beginning. Code sections located later in the script, can then read the variables. The following script provides for instance the day which is used later:
<%@ 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>
For the execution of a ISP script you can use itgen_isp.run. You can pass variables in the format of a URL parameter text as second parameter, for example ‘GBR_ID=1&TAK_ID=2’. In the ISP code this can be used to read the contents of the l_parameters_map(NAME). You can only retrieve the values of get parameters of a form.
The content type can be changed by assigning a value to the variable l_content_response_type.
If the ISP is started using an ISP that is stored in the database as a code, then you can find that code in the variable l_spe_code.
If a user has rights on the screen ‘Display Invantive Server Pages’, then he can basically open all pages. Per Invantive Server Page this can be further refined by setting the variable l_access_granted_flag to 'Y' or 'N', for example by creating a function for the Invantive Server Page in the following manner:
l_access_granted_flag := itgen_utilities.bool2char(bubs#mijn_menu_functies_r.has_access('xxive_db_sessions'));