APEX DB schemas
Request Express 4.2.2.00.11
I have a custom schema "XX1" that contains all of my tables.
I have a custom scheme "condition2". My workspace is reference "condition2".
For various reasons, I can't put my workspace to XX1 (standards, security etc.). I grant select, insert on XX1.table1 to condition2 and created a synonym for XX1.table in the scheme of condition2, but I can't do refer to this table in one the Assistant drop downs.
What is the recommended method, giving access to the scheme of XX1 without actually putting the top workspace?
The wizard will pick up not synonymous (at least that is what I also noticed). The usual way around this is to create a view in condition2:
create view my_table
in select * from XX1.my_table
There was a good blog of Scott Spendolini on this approach (Secure Apex Development), but a link I had to it is now invalid.
Oh, here's a copy:
http://eastcoastoracle.org/PDF_files/presentations/SpendoliniSecure%20APEX%20Development.PDF
Tags: Database
Similar Questions
-
Apex authentication scheme 4.02 Apex Bug
Hello
I have recently install 4.0.2 oracle apex in Oracle database XE, I created an application with the Apex authentication scheme. The problem I encountered is that Apex is always show the logout button, if I close the browser and open it again and enter my public page of application for the first time that the apex is showing the logout button. When I click on the logout button, the session id changes but Apex continues to show the logout button.
Is there a solution for this situation?Hello
Go to edit this entry of logout navigation bar.
The value entered conditionally "user is Authenticated (not public)"Kind regards
Jari -
APEX Application schema vs schema
What is practical common Production of creating schema?
Do I need to have separate the schema for the objects in the APEX and workspace AND have connected it to my production application diagram where all applications related tables?
Please advice.
Thank youHello
I'm not sure you understand the architecture of the Apex, and maybe a brief explanation will answer your question.
When you create a workspace Apex, you associate this workspace with an Oracle schema that is the scheme of analysis, which means that all the code you produce as part of your application is running as this drawing. This scheme would then usually become the owner of all your objects in Oracle database such as tables, views, indexes, packages, etc. (it may be more complicated with multiple schemas, but lets keep things simple for now)
Then, you just create an Apex application against this schema. Objects Apex you create, applications, pages, regions, sections, etc., are not actually stored in this scheme. They are associated with this scheme of working space and are actually stored in a metadata structure of the schema of the Apex, which you never touch directly, but interact with through the actual application of the Apex. If you logged on to your schema analysis through SQLPlus and tried to find objects of the Apex by querying the metadata of normal database views that you won't find anything.
Back to the thing of multiple schemas, for small and medium-sized applications that are purely for Apex, I would recommend that you keep everything in a single schema and use this schema in the schema of your analysis. For applications more complex, a purely database design point of view, it may be better to split your application into several scheme in multiple schemas. In this case, you will need create a scheme of analysis or use one of the existing schemas as a scheme of analysis and then to maintain a system of grants and synonyms between patterns to identify all patterns of Apex, although only can be the analysis schema.
There is a theory going around that promotes separation between schemas that have database objects and schema that connects an application like. This is mainly for security and safety so that developers do not damage the application of database and end users access without authorization through techniques such as SQL injection. This can be a concern with the very big development projects with large and/or public user databases. I tend to think, however, that this is not the typical target for applications of Apex (Apex is appropriate in this case API is another debate) and using this architecture of sorting is excessive in most cases.
I hope I understood your query and that helps.
Concerning
André -
APEX permission scheme does not not after importation
Hi all
I work with APEX 4.2. I created a simple application APEX with a diagram of permission on a development server. After export and import on the production server authorization system does not work. However, it is displayed as expected in the IDE. Someone at - it this experience?
I figured this out. After import, I needed run the access control administration page and set the mode of application of restricted access, and add users to the list of access control.
-
Hi all
-First of all, I created two individual applications with the shceme of authentication
-then I want to create the account authentication shceme database in the first request, which must take place at the second asking too much (I mean a single sign on for both applications).
Please someone help meHello
Create an authentication scheme in your 2nd application, modify the plan that you create and use "Reference Master Authentication Scheme From" the authentication scheme developed 2nd application you plan 'Master' in the application 1.HTH,
Mike
-
Error of the ACLs in Oracle Apex 5 after schema change
Hi all
I'm creating an application using Oracle Apex 5.
I have a button call Send Mail and mail is worked.
Now, I imported my request in a different schema and configured acl as below.
I use apex_mail.send to send mail and created the acl as
BEGIN
() DBMS_NETWORK_ACL_ADMIN.drop_acl
ACL = > 'open_apex.xml');
(DBMS_NETWORK_ACL_ADMIN). CREATE_ACL
ACL = > "open_apex.xml"
Description = > "a test of the ACL feature."
main = > 'RMSR. "
IS_GRANT = > TRUE,
privilege = > 'connection ',.
start_date = > SYSTIMESTAMP,
End_date = > NULL);
(DBMS_NETWORK_ACL_ADMIN). ASSIGN_ACL
ACL = > "open_apex.xml"
Home = > ' *',
lower_port = > 20,
upper_port = > 9999);
COMMIT;
end;
BEGIN
(DBMS_NETWORK_ACL_ADMIN). ADD_PRIVILEGE
ACL = > "open_apex.xml"
main = > 'RMSR. "
IS_GRANT = > TRUE,
privilege = > 'connection ',.
position = > NULL,
start_date = > NULL,
End_date = > NULL);
COMMIT;
END;
It throws error as
ORA-24247: network access denied by access control list (ACL)
Is there a problem in my setup?
Thanks in advance,
Su.GI
Hi Su.gi,
Su.GI wrote:
I'm creating an application using Oracle Apex 5.
I have a button call Send Mail and mail is worked.
Now, I imported my request in a different schema and configured acl as below.
It throws error as
ORA-24247: network access denied by access control list (ACL)
Is there a problem in my setup?
You have granted the ACL to the RMSR of your database schema, so it is necessary for the APEX_050000 scheme when you use the APEX_MAIL package.
This is why the ACL must be granted at the APEX 5 Schema: https://docs.oracle.com/cd/E59726_01/install.50/e39144/listener.htm#HTMIG29161
Here's how the ACL must be granted for APEX 5 Schema: https://docs.oracle.com/cd/E59726_01/install.50/e39144/listener.htm#HTMIG29162
NOTE:
- Create the ACL by logging into the user with SYSDBA SYS privileges.
- Don't forget to validate after execution of the anonymous block for the creation of ACL.
Kind regards
Kiran
-
Integration of apex EBS with the APPS schema
Hello
I'm a developer APEX with no experience of BSE, but I took on a project to review the current context where the APEX and EBS are integrated. The first thing that I found is that 40 + Apex Applications all use the EBS 'APPS' schema as the schema work space of analysis, I read in the document Oracle 'white paper of March 2015 release on Extending Oracle E-business 12.1 and above using APEX', is a large, no!. Below are the details of the environment. In addition, they use a PLSQL Embedded walkway that once, it looks like the less favored approach and a listener of the Apex on (Glassfish?) must be used.
So my question is... what would be the best approach, should I change all the existing application to use a newly created Apex analysis schema for example APEX_EBS_EXTENSION and then create views and grants him so it can access the data of the applications. I do this manually through all the applications by looking at each piece of code? This seems a very unpleasant approach. Should we deviate from the integrated bridge, any guidance would be appreciated?
The task that made me initially was to manage the upgrade of the schema in the database to 5 APEX Apex, regression test all existing applications and create new applications using the universal theme, but I want to get the House in order before the upgrade.
Environment
E-Business Suite Release 12.1.3
Apex 4.1.0.00.32
Oracle Database 11 g Enterprise Edition Release 11.2.0.3.0 - 64 bit Production
IBM/AIX RISC System/6000: Version 11.2.0.3.0 - Production
Hi AndyLou,
AndyLou wrote:
I'm a developer APEX with no experience of BSE, but I took on a project to review the current context where the APEX and EBS are integrated. The first thing that I found is that 40 + Apex Applications all use the EBS 'APPS' schema as the schema work space of analysis, I read in the document Oracle 'white paper of March 2015 release on Extending Oracle E-business 12.1 and above using APEX', is a large, no!. Below are the details of the environment. In addition, they use a PLSQL Embedded walkway that once, it looks like the less favored approach and a listener of the Apex on (Glassfish?) must be used.
Yes. Oracle REST Data Services (ADR) (formerly known as the APEX listener) deployed to the support for Java EE application servers is a best/best option as for Oracle APEX instead of the EPG Web listener option.
Reference: https://docs.oracle.com/cd/E59726_01/install.50/e39144/overview.htm#HTMIG29325
Learn about considerations when using of EPG (Embedded PL/SQL Gateway) as the web listener with Oracle APEX.
Reference: https://docs.oracle.com/cd/E59726_01/install.50/e39144/overview.htm#HTMIG29140
So my question is... what would be the best approach, should I change all the existing application to use a newly created Apex analysis schema for example APEX_EBS_EXTENSION and then create views and grants him so it can access the data of the applications. I do this manually through all the applications by looking at each piece of code? This seems a very unpleasant approach. Should we deviate from the integrated bridge, any guidance would be appreciated?
Yes. You must move far EPG to a better option.
The task that made me initially was to manage the upgrade of the schema in the database to 5 APEX Apex, regression test all existing applications and create new applications using the universal theme, but I want to get the House in order before the upgrade.
Environment
You should go for upgrade of the Oracle APEX of 4.1 to 5.x with existing architecture first. Regression test your applications to remove if any errors introduced by upgrade. The kickoff of a new project to migrate your applications to universal theme.
Reference:
- Re: upgrading to 5.0 - best practices
- Re: APEX late upgrade
- https://www.YouTube.com/watch?v=o8S4bg4Vo0A
After the upgrade, when all the dust about the upgrade issued sets in, then you can consider changing your architecture, analysis scheme for your APEX applications according to white papers issued by Oracle:
- http://www.Oracle.com/technetwork/developer-tools/Apex/learnmore/Apex-EBS-extension-white-paper-345780.PDF
- http://www.Oracle.com/technetwork/developer-tools/Apex/Apex-EBS-WP-Cabot-consulting-169064.PDF
Kind regards
Kiran
-
Which schema/user is a connected person slot within the Apex?
Greetings,
I have an application with built in authentication of the function table. When a person logs in their username and password is simply compared to the values of a user table to determine if they can use the application. The authentication table is in the same schema as the application.
The Apex application is in a schema called DLR_INV. All the tables used by the application, but one is in that same pattern. The table in another schema is used to retrieve the status codes for a LOV.
The user receives an error when the page opens, the error is on the State LOV. My DBA and another Oracle developer to determine what the problem is. Is there a synonym above the state table which should provide access. The DBA can connect through SQL Developer as DLR_INV and access the status table.
What could be the problem?
One question - given the way the authentication of the application is set up - when a person signs this schema/user are they connected as?
Thank you, Tony
Published by: hidden on January 25, 2010 12:14Tony
I don't see the privilege to 'select' on XX_BMC_DLRINV.MS_US_STATES? Your APEX application schema needs grants 'live' on the objects he needs to access. Privileges gained through roles will not be recognized.
GRANT SELECT ON XX_BMC_DLRINV.MS_US_STATES TO DLR_INV;
CITY
-
Apex_application.g_print_success_message do not work
Hi all
I try to use my PL/SQL package (on Apex Pasing schema) this command:
apex_application.g_print_success_message: = "error";
But no message appears on my Apex page, when the code is executed.
Any help?
I use Apex 4.2
As FAR AS I KNOW apex_application.g_print_success_message CACCNOT BEING CALLED inside the package
You can do like this
CREATE a function inside the package that will return a flag
FUNCTION FNC_name (P_ID IN table.ID%TYPE) RETURN NUMBER
IS
-- --------------------------------------------------------------------------------
L_FLAG NUMBER: = 0;
NUMBER OF L_EXISTS;
-- --------------------------------------------------------------------------------
BEGIN
FOR REC IN (SELECT columns TABLE WHERE condition) LOOP IF (condition) THEN L_FLAG: = 1; ON THE OTHER L_FLAG: = 0; END IF; END LOOP; RETURN L_FLAG; END FNC_name;
You can create a process plsql as this call that work inside the package
CREATE A PLSQL PROCESS: -.
declare
L_RETURN VARCHAR2 (500);
Start
IF
PACKAGENAME. FNC_NAME(:P42_ID) > 0 THEN
() apex_error.add_Error
p_message-online "already exists."
p_display_location-online apex_error.c_inline_with_field_and_notif,
p_page_item_name => 'P42_DISPLAY_ERROR');
ON THE OTHER
-ANY OTHER ACTION
apex_application.g_print_success_message: = 'created successfully.';
END IF;
end;
-
What are the possible values for APP_COMPONENT_TYPE?
The possible values of APP_COMPONENT_TYPE documented anywhere?
Also, I want to ask all the components in my APEX application. My current query of multiple views unions APEX (apex_application_page_items, apex_application_page_buttons, apex_application_page_regions,...)-a point of view by each component type. Is there a better way to list components?
Thank you
-Kris
Select * from APEX_APPLICATION_ALL_AUTH
View: APEX_APPLICATION_ALL_AUTH Description: All the authorisation schemes for all components of the Application Column Name Comments WORKSPACE Model authorization workspace WORKSPACE_DISPLAY_NAME Full name of the workspace APPLICATION_ID Number of request of authorization Scheme APPLICATION_NAME Name of the schema to request authorization PAGE_ID ID of Page authorization regime COMPONENT_TYPE APEX authorization schema component type NAME OF THE COMPONENT Name of the component system APEX authorization AUTHORIZATION_SCHEME Name of schema authorization STATUS Situation of authorisation system -
How to restrict access to certain pages of a user group
I want to restrict access to certain pages in my application to a set of users only. How can I achieve this.
use the authorization scheme for permission to the users group"
See also follows her
Schema authorization using the APEX authentication scheme
security - authorization roles and user in Oracle Apex? -Stack overflow
How to create the schema for permission for the users group.
Leave.
-
Find comments of request for a report
Hello
Can someone tell me which table or view can I access «Application comments» I did a search on that one found anything in this forum.
I'm creating an application where other applications can be launched from all maintaining authentication (all in the same workspace).
I have the list of the apex_applications.application_name as links in the report, but I would like to add a description of the application in an adjacent column to the link. I thought that the comments of the application would be a good field to use if I can find it and join at the sight of apex_applications.
I use APEX 4.1.0.00.32
Thank you
WayneApex WWV_FLOW_BANNER schema table
-
Error installing support OLL packaged Application objects
Hello
I am installing OLL packaged Application | http://www.Oracle.com/WebFolder/technetwork/tutorials/OBE/DB/Apex/R41/inst_pkgapp/inst_pkgapp.htm#top
but during the installation of supported objects, I got error when executing code in 'create_package_body '.
Error on line 274: PLS-00201: identifier 'UTL_TCP' must be declared
Error on line 274: PLS-00201: identifier 'UTL_TCP' must be declaredcreate or replace package body eba_oll_log as g_start_time number; procedure log_init is begin g_start_time := dbms_utility.get_time; end log_init; procedure log_page_view is begin insert into eba_oll_page_views ( APEX_USER, PAGE_ID, PAGE_NAME, VIEW_DATE, TS, ELAPSED_TIME, IP_ADDRESS, AGENT, APEX_SESSION_ID, CONTENT_ID, CONTENT_TITLE ) values ( v('APP_USER'), v('APP_PAGE_ID'), wwv_flow.g_step_title, trunc(sysdate,'DD'), systimestamp, (dbms_utility.get_time-g_start_time)*(.01), owa_util.get_cgi_env('REMOTE_ADDR'), owa_util.get_cgi_env('HTTP_USER_AGENT'), v('APP_SESSION'), case when v('APP_PAGE_ID') = 24 then v('P24_CONTENT_ID') else null end, case when v('APP_PAGE_ID') = 24 then v('P24_CONTENT_TITLE') else null end ); if v('APP_PAGE_ID') = 24 then insert into eba_oll_content_views ( APEX_USER, VIEW_DATE, TS, IP_ADDRESS, AGENT, APEX_SESSION_ID, CONTENT_ID, CONTENT_TITLE, NOTE ) values ( v('APP_USER'), trunc(sysdate,'DD'), systimestamp, owa_util.get_cgi_env('REMOTE_ADDR'), owa_util.get_cgi_env('HTTP_USER_AGENT'), v('APP_SESSION'), v('P24_CONTENT_ID'), v('P24_CONTENT_TITLE'), 'Viewed' ); end if; commit; end log_page_view; procedure log_content_click is begin insert into eba_oll_content_views ( APEX_USER, VIEW_DATE, TS, IP_ADDRESS, AGENT, APEX_SESSION_ID, CONTENT_ID, CONTENT_TITLE, NOTE ) values ( v('APP_USER'), trunc(sysdate,'DD'), systimestamp, owa_util.get_cgi_env('REMOTE_ADDR'), owa_util.get_cgi_env('HTTP_USER_AGENT'), v('APP_SESSION'), v('P24_CONTENT_ID'), v('P24_CONTENT_TITLE'), 'Launched' ); commit; end log_content_click; end eba_oll_log; / create or replace package body eba_oll_api as function gen_id return number is l_id number; begin select to_number(sys_guid(), 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX') into l_id from dual; return l_id; end gen_id; function eba_oll_tags_cleaner ( p_tags in varchar2, p_case in varchar2 default 'U' ) return varchar2 is type tags is table of varchar2(255) index by varchar2(255); l_tags_a tags; l_tag varchar2(255); l_tags apex_application_global.vc_arr2; l_tags_string varchar2(32767); i integer; begin l_tags := apex_util.string_to_table(p_tags,','); for i in 1..l_tags.count loop --remove all whitespace, including tabs, spaces, line feeds and carraige returns with a single space l_tag := substr(trim(regexp_replace(l_tags(i),'[[:space:]]{1,}',' ')),1,255); if l_tag is not null and l_tag != ' ' then if p_case = 'U' then l_tag := upper(l_tag); elsif p_case = 'L' then l_tag := lower(l_tag); end if; --add it to the associative array, if it is a duplicate, it will just be replaced l_tags_a(l_tag) := l_tag; end if; end loop; l_tag := null; l_tag := l_tags_a.first; while l_tag is not null loop l_tags_string := l_tags_string||l_tag; if l_tag != l_tags_a.last then l_tags_string := l_tags_string||', '; end if; l_tag := l_tags_a.next(l_tag); end loop; return substr(l_tags_string,1,4000); end eba_oll_tags_cleaner; procedure eba_oll_tag_sync ( p_new_tags in varchar2, p_old_tags in varchar2, p_content_type in varchar2, p_content_id in number ) as type tags is table of varchar2(255) index by varchar2(255); l_new_tags_a tags; l_old_tags_a tags; l_new_tags apex_application_global.vc_arr2; l_old_tags apex_application_global.vc_arr2; l_merge_tags apex_application_global.vc_arr2; l_dummy_tag varchar2(255); i integer; begin l_old_tags := apex_util.string_to_table(p_old_tags,', '); l_new_tags := apex_util.string_to_table(p_new_tags,', '); if l_old_tags.count > 0 then --do inserts and deletes --build the associative arrays for i in 1..l_old_tags.count loop l_old_tags_a(l_old_tags(i)) := l_old_tags(i); end loop; for i in 1..l_new_tags.count loop l_new_tags_a(l_new_tags(i)) := l_new_tags(i); end loop; --do the inserts for i in 1..l_new_tags.count loop begin l_dummy_tag := l_old_tags_a(l_new_tags(i)); exception when no_data_found then insert into eba_oll_tags (tag, content_id, content_type ) values (l_new_tags(i), p_content_id, p_content_type ); l_merge_tags(l_merge_tags.count + 1) := l_new_tags(i); end; end loop; --do the deletes for i in 1..l_old_tags.count loop begin l_dummy_tag := l_new_tags_a(l_old_tags(i)); exception when no_data_found then delete from eba_oll_tags where content_id = p_content_id and tag = l_old_tags(i); l_merge_tags(l_merge_tags.count + 1) := l_old_tags(i); end; end loop; else --just do inserts for i in 1..l_new_tags.count loop insert into eba_oll_tags (tag, content_id, content_type ) values (l_new_tags(i), p_content_id, p_content_type ); l_merge_tags(l_merge_tags.count + 1) := l_new_tags(i); end loop; end if; for i in 1..l_merge_tags.count loop merge into eba_oll_tags_type_sum s using (select count(*) tag_count from eba_oll_tags where tag = l_merge_tags(i) and content_type = p_content_type ) t on (s.tag = l_merge_tags(i) and s.content_type = p_content_type ) when not matched then insert (tag, content_type, tag_count) values (l_merge_tags(i), p_content_type, t.tag_count) when matched then update set s.tag_count = t.tag_count; merge into eba_oll_tags_sum s using (select sum(tag_count) tag_count from eba_oll_tags_type_sum where tag = l_merge_tags(i) ) t on (s.tag = l_merge_tags(i) ) when not matched then insert (tag, tag_count) values (l_merge_tags(i), t.tag_count) when matched then update set s.tag_count = t.tag_count; end loop; end eba_oll_tag_sync; procedure render_tag_cloud ( p_selection in varchar2 default null, p_app_id in number, p_session_id in number, p_min_nbr_tags in number default 1, p_max in number default 100, p_limit in number default 10000, p_link_to_page in varchar2 default '2', p_tag_item_filter in varchar2 default 'P2_TAGS', p_clear_cache in varchar2 default '2,CIR,RIR', p_more_page in varchar2 default '62' ) as l_printed_records number := 0; l_available_records number := 20; l_max number; l_min number; l_class_size number; l_class varchar2(30); type l_tagtype is table of varchar2(2000); l_tags l_tagtype; type l_numtype is table of number; l_cnts l_numtype; l_size number; l_total number :=0; l_buffer varchar2(32676); CURSOR c_all_tags IS select tag, c from ( select t.tag, count(*) c from eba_oll_content c, eba_oll_tags t where c.content_id = t.content_id and c.display_yn = 'Y' and (p_selection is null or (p_selection is not null and ( (substr(p_selection,1,1) = 'R' and substr(p_selection,2) in (select release_id from eba_oll_content_products cp where cp.content_id = c.content_id)) or (substr(p_selection,1,1) = 'C' and substr(p_selection,2) in (select product_id from eba_oll_content_products cp where cp.content_id = c.content_id)) or (substr(p_selection,1,1) = 'P' and (substr(p_selection,2) in (select product_id from eba_oll_content_products cp where cp.content_id = c.content_id) or substr(p_selection,2) in (select p.parent_product_id from eba_oll_content_products cp, eba_oll_products p where cp.content_id = c.content_id and cp.product_id = p.product_id))) or (substr(p_selection,1,1) = 'G' and (substr(p_selection,2) in (select pg.group_id from eba_oll_product_groupings pg, eba_oll_content_products cp where pg.product_id = cp.product_id and cp.content_id = c.content_id) or substr(p_selection,2) in (select pg.group_id from eba_oll_product_groupings pg, eba_oll_products p, eba_oll_content_products cp where pg.product_id = p.parent_product_id and p.product_id = cp.product_id and cp.content_id = c.content_id))) ))) group by tag ) x where rownum < p_limit and c >= p_min_nbr_tags order by upper(tag) ; begin ------------------------- -- Fetch tags into arrays -- open c_all_tags; loop fetch c_all_tags bulk collect into l_tags,l_cnts limit p_limit; exit; end loop; close c_all_tags; l_available_records := l_tags.count; ----------------------------------------------- -- Determine total count and maximum tag counts -- l_max := 0; l_min := 1000; FOR i in l_cnts.first..l_cnts.last loop l_total := l_total + l_cnts(i); if l_cnts(i) > l_max then l_max := l_cnts(i); end if; if l_cnts(i) < l_min then l_min := l_cnts(i); end if; end loop; if l_max = 0 then l_max := 1; end if; l_class_size := round((l_max-l_min)/6); ------------------------ -- Generate tag cloud -- -- sys.htp.prn('<div class="tagCloud"><ul>'); for i in l_tags.first..l_tags.last loop l_printed_records := l_printed_records + 1; if l_cnts(i) < l_min + l_class_size then l_class := 'size1'; elsif l_cnts(i) < l_min + (l_class_size*2) then l_class := 'size2'; elsif l_cnts(i) < l_min + (l_class_size*3) then l_class := 'size3'; elsif l_cnts(i) < l_min + (l_class_size*4) then l_class := 'size4'; elsif l_cnts(i) < l_min + (l_class_size*5) then l_class := 'size5'; else l_class := 'size6'; end if; l_buffer := '<li><a class="'||l_class||'" href="'|| 'f?p='||p_app_id||':'||p_link_to_page||':'||p_session_id||':::'||p_clear_cache||':'|| p_tag_item_filter||':'||htf.escape_sc(l_tags(i))||'">'|| htf.escape_sc(l_tags(i)) || '<span>' || l_cnts(i) || '</span></a></li>'; sys.htp.prn(l_buffer); l_buffer := ''; if l_printed_records > p_max then exit; end if; end loop; sys.htp.prn('</ul></div>'); -- print if there's more if l_tags.count - l_printed_records != 0 then htp.prn('<p><a href="f?p='||p_app_id||':'||htf.escape_sc(p_more_page)|| ':'||p_session_id||':::'||htf.escape_sc(p_more_page)||'">View all tags</a></p>'); end if; exception when others then sys.htp.prn('<p>No tags found.</p>'); end render_tag_cloud; procedure email_when_feedback ( p_feedback_id in number, p_host_url in varchar2, p_app_id in number ) is l_body clob; l_body_html clob; begin for c1 in ( select f.feedback_comment, f.feedback_by, c.title, nvl(ct.feedback_contacts,'[email protected]') email from eba_oll_content_feedback f, eba_oll_content c, eba_oll_team ct where f.id = p_feedback_id and f.content_id = c.content_id and c.team_id = ct.team_id (+) ) loop l_body := 'You have received feedback for a piece of content you own in the Oracle Learning Library (OLL) Application. Content: '|| c1.title || utl_tcp.crlf || ' Feedback: '|| c1.feedback_comment || utl_tcp.crlf || ' Left by: '|| lower(c1.feedback_by) ||' You can respond via the OLL Application, '||p_host_url||'f?p='||p_app_id||':47:::NO::P47_ID:' || p_feedback_id || '.'; l_body_html := '<div style="border: 1px solid #DDD; background-color: #F8F8F8; width: 460px; margin: 0 auto; -moz-border-radius: 10px; -webkit-border-radius: 10px; padding: 20px;"> <p style="font: bold 12px/16px Arial, sans-serif; margin: 0 0 10px 0; padding: 0;"> You have received feedback for a piece of content you own in the Oracle Learning Library (OLL) Application. </p> <table style="width: 100%;" cellspacing="0" cellpadding="0" border="0"> <tr>' || utl_tcp.crlf || ' <td style="font: bold 12px/16px Arial, sans-serif; color: #666; padding: 0 10px 10px 0; vertical-align: top;">Content</td> <td style="font: normal 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;"><a href="#" style="color: #000">'||c1.title||'</a></td> </tr> <tr>' || utl_tcp.crlf || ' <td style="font: bold 12px/16px Arial, sans-serif; color: #666; padding: 0 10px 10px 0; vertical-align: top;">Feedback</td> <td style="font: normal 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;">'||replace(c1.feedback_comment,CHR(10),'<br/>')||'</td> </tr> <tr>' || utl_tcp.crlf || ' <td style="font: bold 12px/16px Arial, sans-serif; color: #666; padding: 0 10px 10px 0; vertical-align: top;">Left by</td> <td style="font: bold 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;">'||lower(c1.feedback_by)||'</td> </tr> <tr>' || utl_tcp.crlf || ' <td colspan="2" style="text-align: center; font: normal 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;"> <a href="'||p_host_url||'f?p='||p_app_id||':47:::NO::P47_ID:' || p_feedback_id ||'" style="display: block; padding: 10px; background-color: #EEE; font: bold 16px/16px Arial, sans-serif; color: #444">Respond to this Feedback</a> </td> </tr> </table> </div>'; apex_mail.send ( p_to => c1.email, p_from => '[email protected]', p_subj => 'OLL - New Feedback for your team', p_body => l_body, p_body_html => l_body_html ); end loop; end email_when_feedback; procedure email_when_response ( p_feedback_id in number, p_host_url in varchar2, p_app_id in number ) is l_body clob; l_body_html clob; begin for c1 in ( select f.feedback_comment, f.feedback_by, f.response, c.title from eba_oll_content_feedback f, eba_oll_content c where f.id = p_feedback_id and f.content_id = c.content_id ) loop l_body := 'You have received a response to your feedback left in the Oracle Learning Library (OLL) Application. Content: '|| c1.title || ' Feedback: '|| c1.feedback_comment || ' Response: '|| c1.response || ' You can also view this response via the OLL Application, '||p_host_url||'f?p='||p_app_id||':60:::NO::IR_ID:' || p_feedback_id || '.'; l_body_html := '<div style="border: 1px solid #DDD; background-color: #F8F8F8; width: 460px; margin: 0 auto; -moz-border-radius: 10px; -webkit-border-radius: 10px; padding: 20px;"> <p style="font: bold 12px/16px Arial, sans-serif; margin: 0 0 10px 0; padding: 0;"> You have received a response to your feedback left in the Oracle Learning Library (OLL) Application. </p> <table style="width: 100%;" cellspacing="0" cellpadding="0" border="0"> <tr>' || utl_tcp.crlf || ' <td style="font: bold 12px/16px Arial, sans-serif; color: #666; padding: 0 10px 10px 0; vertical-align: top;">Content</td> <td style="font: normal 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;"><a href="#" style="color: #000">'||c1.title||'</a></td> </tr> <tr>' || utl_tcp.crlf || ' <td style="font: bold 12px/16px Arial, sans-serif; color: #666; padding: 0 10px 10px 0; vertical-align: top;">Feedback</td> <td style="font: normal 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;">'||replace(c1.feedback_comment,CHR(10),'<br/>')||'</td> </tr> <tr>' || utl_tcp.crlf || ' <td style="font: bold 12px/16px Arial, sans-serif; color: #666; padding: 0 10px 10px 0; vertical-align: top;">Response</td> <td style="font: bold 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;">'||replace(c1.response,CHR(10),'<br/>')||'</td> </tr> <tr>' || utl_tcp.crlf || ' <td colspan="2" style="text-align: center; font: normal 12px/16px Arial, sans-serif; padding: 0 10px 10px 0; vertical-align: top;"> <a href="'||p_host_url||'f?p='||p_app_id||':60:::NO::IR_ID:' || p_feedback_id ||'" style="display: block; padding: 10px; background-color: #EEE; font: bold 16px/16px Arial, sans-serif; color: #444">View Response in OLL Application</a> </td> </tr> </table> </div>'; apex_mail.send ( p_to => c1.feedback_by, p_from => '[email protected]', p_subj => 'Oracle Learning Library - Response to your Feedback', p_body => l_body, p_body_html => l_body_html ); end loop; end email_when_response; end eba_oll_api; /
Published by: Fateh January 13, 2012 07:32Fateh,
It would seem that your schema of Apex/user doesn't have access to, or otherwise know the utl_tcp Oracle package. Try running it in your workshop of Apex SQL > SQL commands.
desc utl_tcp
If you do not get a description of the utl_tcp package then you will know that your Apex selected scheme lacks the permissions to run this package. Assuming that this is the case, then you will need someone with the correct privileges to run:
grant execute on utl_tcp to [your_schema_name]
Hope that helps.
Earl
-
Personalized with the trusted source authentication
Hello
There is a following requirement: since a user application (non-apex) klicks on a link to a page of the apex and must be authenticated without having to type his username and password (without page 101) because it is already identified in this application non-apex.
My approach: create a procedure that checks if the user is authenticated in a non-apex application. Then create a custom authentication scheme where authentication is my procedure. Then of course change current authentication scheme to my authentication scheme. BUUUT what happens if the user is not properly authenticated in a non-apex application? So I think that the user should see page 101 and type the name of user and password.
Is it possible to do something like this: If the procedure returns true, then use Custom authentication scheme, if set to false use Apex authentication schema (standard schema)? Or is it not the right approach?
Thank you very much for your answers.
Kind regards
Anton
PS: I know that some of the discussions in the forum about this, but I don't understand how they can help in my case.Hi Anton,.
Instead of calling APEX_CUSTOM_AUTH. CONNECTION, you can call APEX_CUSTOM_AUTH. SET_SESSION_ID and APEX_CUSTOM_AUTH. SET_USER and use a sentinel of page function. You will have to search this forum for cover page features more information.
In your authentication custom parameters are user name and password, but you can check what you want and return true or false. If you do not check the password at all you could just always return true and let all users. If you need to decide what information you will use to authenticate users. There are many ways to do what you want. The password technique to generate just allows you to do a little sign outside the authentication function that allows you to have the 2 way authentication. Some users have a password generated for them and others must provide their password. The function of authentication it don't worry about the right controls for two passwords.
Rod West
-
Locked user account and connect on demand
Hi, any omniscient! :) I'm sorry for my bad English, but I have a question.
Why is able to connect to an Application user using Builtin ApEx Authentication Scheme, when this user's account is locked? We see that in the ApEx 3.1, 3.2 (and I think, ApEx 3.2.1 has builtin regime too).As a workspace admin Home > Administration > manage Services > Set Workspace Preferences and ensure that the account Expiration and locking is set to enable.
Scott
Maybe you are looking for
-
I sent my resume to my works computer that uses Microsoft, but Microsoft and Apple donot marry upward. When I tried to attach my cv on a document it wil not let me do some stuff there. I have iPad 1air
-
Import of Skype comes in contact with the server error
Trying to import facebook friends in Skype, I get this error "the service you requested is temporarily unavailable. Please try again in a few moments. Any solution?
-
An old machine, but quite capable of simple things like a web machine. Was up and running, suddenly closed. When I press the power button that keyboard will Flash at the top of the page, I hear a slight click, but that's all. These things are worth
-
where is my icon "Favorites"?
I used to click on the butterfly on the desktop and be connected to msn.com with Microsoft money msn window and various icons above as "Favorites", "email", etc. Now, nothing happens when I click on the butterfly. But I can click on the 'e' and get
-
All the lights on the control panel lights
I have a HP psc 1315v all-in-one. All of a sudden, all the lights (on / RESUME, check paper, check print cartridge;) Size - 100%, fit to Page; Plain - paper type, Photo; Start copy - black, color) flashes at the same time. I can push the On / button