Error when approving the request in OIM 11g R2
I have a catalog item for iPlanet User resource setup to go for beneficiary manager approval. On the approval window, when the manager approves the request, OIM tries to forward to the url /identity/face which throws an generic error saying "identity" page doesnt exist because it doesn't get resolved as hostname.
I have another OIM instance where the popup window just disappears when the approval button is clicked. I'm not sure what the default behavior is. In R1, it used to get a OIM alert box notifying that the request was approved/rejected.
I'm getting these errors in the logs when I approve/reject
The parent-organization-chain is empty for the organization list
Edited by: DJ on Jan 16, 2013 10:44 AM
Edited by: DJ on Jan 16, 2013 2:36 PM
I scooped the requests when I hit the approve button, it hits the 302 - Page moved Temporarily
Here is is the request looks like for the working instance:
<html><head><title>302 Moved Temporarily</title></head>
<body bgcolor="#FFFFFF">
<p>This document you requested has moved temporarily.</p>
<p>It's now at <a href="http://oim1:14000/identity/faces/adf.task-flow-return?_adf.ctrl-state=zjh4didfg_105&adf.tfDoc=%2FWEB-INF%2FApprovalTask_TaskFlow.xml&adf.tfId=ApprovalTask_TaskFlow&_task-flow-outcome=done&_afrLoop=20671600459024">http://oim1:14000/identity/faces/adf.task-flow-return?_adf.ctrl-state=zjh4didfg_105&adf.tfDoc=%2FWEB-INF%2FApprovalTask_TaskFlow.xml&adf.tfId=ApprovalTask_TaskFlow&_task-flow-outcome=done&_afrLoop=20671600459024</a>.</p>
</body></html>Here is the broken instance:
<html><head><title>302 Moved Temporarily</title></head>
<body bgcolor="#FFFFFF">
<p>This document you requested has moved temporarily.</p>
<p>It's now at <a href="http://identity/faces/adf.task-flow-return?_adf.ctrl-state=1acvf8c9l_101&adf.tfDoc=%2FWEB-INF%2FApprovalTask_TaskFlow.xml&adf.tfId=ApprovalTask_TaskFlow&_task-flow-outcome=done&_afrLoop=16835862702848">http://identity/faces/adf.task-flow-return?_adf.ctrl-state=1acvf8c9l_101&adf.tfDoc=%2FWEB-INF%2FApprovalTask_TaskFlow.xml&adf.tfId=ApprovalTask_TaskFlow&_task-flow-outcome=done&_afrLoop=16835862702848</a>.</p>
</body></html>Working code has the hostname:port - oim1:14000 as part of the URL but the second one does not have it. Does anyone know where this URL setting is stored?
Thanks
Edited by: DJ on Jan 16, 2013 2:34 PM
Edited by: DJ on Jan 16, 2013 2:35 PM
Similar Messages
-
Access Enforcer(error in approving the request) and import roles
Dear all,
error in approving the request at security stage(last)
manager and role owner are successfully approved.
and also importing roles into access enforcer was not successful.
imortstatus : 0 roles imported of 28 records found.
please find the system log:
2008-09-05 13:01:34,625 [SAPEngine_Application_Thread[impl:3]_8] DEBUG com.virsa.ae.service.messaging.MessageFormatter : parseDesc : : INTO the method : desc :Please specify a file to import.paramNames :paramsMap :{FIELD_NAME=#_!FIELD_NAME#_!}
2008-09-05 13:01:34,625 [SAPEngine_Application_Thread[impl:3]_8] DEBUG com.virsa.ae.service.cache.AECacheUtil : getResourceBundle : : INTO the method : en
2008-09-05 13:01:34,625 [SAPEngine_Application_Thread[impl:3]_8] DEBUG com.virsa.ae.service.cache.AECacheUtil : getResourceBundle : : INTO the method : en
2008-09-05 13:01:34,625 [SAPEngine_Application_Thread[impl:3]_8] DEBUG com.virsa.ae.service.cache.AECacheUtil : getResourceBundle : : INTO the method : en
2008-09-05 13:01:34,625 [SAPEngine_Application_Thread[impl:3]_8] DEBUG com.virsa.ae.service.cache.AECacheUtil : getResourceBundle : : INTO the method : en
2008-09-05 13:01:34,625 [SAPEngine_Application_Thread[impl:3]_8] DEBUG com.virsa.ae.service.cache.AECacheUtil : getResourceBundle : : INTO the method : en
2008-09-05 13:02:28,234 [Thread-47] DEBUGIn Addition to my previous response:
I meant to include the following:
Some of the fields that need to be properly defined with attributes are:
System: must have the know SAP system defined here
Role Approver (i presently are using most of the roles without having need for approval; I created a user called NOAPPRV in AE)
Functional Area: need to have all the areas defined that roles will be assigned to
Company: I only have one company so that's an easy one
Some areas I presently do not use but found they must ne coded and coded properly:
ResponsibilityID: N/A (coded as is)
CommentsMandatory: NO (coded as is)
Parent Role Owner: NO
Business Process: NA (I believe I originally coded N/A and it did not like that)
Sub Process: NA (again N/A I believe error on me)
Reaffirm Period: presently I am using 0 (zero)
LastReaffirm: presently using 12/31/9999
Hope this helps a bit
I wanted to include an attachment with a sample of my Role Import spreadsheet but I'm not sure exactly how to do that; if I figure that out or someone can provide me the process I will include it
Jerry Synoga
Ryerson Inc.
630-758-2021 -
Access Enforcer(error in approving the request)
Dear all,
Fascing the problem while security approver is approving the request.
Error in Processing your request, Request no: 1006 in stage : ZSECURITY
Thanks & RegardsHi-
I guess, you are on AE 5.2. Please make sure, if the approver at your ZSECURITY stage approving the request by clicking the email message link and login onto AE and then go to User Login to see requests to approve.
If this is the last stage in the linear path of your workflow, make sure SAP system is not down. If not, check if the next approver at next stage is defined in the path.
thanks,
Ashok -
Error while approving the request ..
Hi ,
I have created a SOA composite where in the 1st level approver is manager and second level approval is a role . When i raise the request the task is assigned to the manager and manager approves it . Then the task is assigned to the Role . However the issue is , when any member of the Role tries to approve the task , the below error is thrown . Please note he is able to reject the request though , only in case of approving i see the below error .
Though it shows in the logs as warning but on the approval UI , it throws an error . ie ."An Error Occured "
Any clues Pls !
####<Aug 7, 2012 3:42:56 PM EEST> <Notice> <Stdout> <bubo.stadi.sonera.fi> <soa_server1> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <a94ee5b878875ef9:-47c429e2:138eb2557d6:-8000-000000000007d520> <1344343376602> <BEA-000000> <<Aug 7, 2012 3:42:56 PM EEST>
<Warning> <oracle.soa.services.workflow.persistency> <BEA-000000> <<PredicateImpl.getPredicateCondtion> Query values for columns that can contain multiple identity types (users, groups, approles) should be IdentityType or list of IdentityType objects. Incorrect use of 'WF_NONEXISTENT_ASSIGNEE' for column 'wfa.assignee'>>
####<Aug 7, 2012 3:42:56 PM EEST> <Notice> <Stdout> <bubo.stadi.sonera.fi> <soa_server1> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <a94ee5b878875ef9:-47c429e2:138eb2557d6:-8000-000000000007d51f> <1344343376602> <BEA-000000> <<Aug 7, 2012 3:42:56 PM EEST>
<Warning> <oracle.soa.services.workflow.persistency> <BEA-000000> <<QueryUtil.warnForUseOfNonIdentityTypeValues> Query values for columns that can contain multiple identity types (users, groups, approles) should be IdentityType or list of IdentityType objects. Incorrect use of 'WF_NONEXISTENT_ASSIGNEE' for column 'wfa.assignee'>>You need to give approver the right on the request . Add the approver to the request administrator role .
Thanks
Suren -
Error when importing the request
Hi All,
I have collected few queries in to one request and imported the request in to quality client and iam getting below mentioned error
Execution of programs after import (XPRA)
Transport request : NBDK900366
System : NBP
tp path : tp
Version and release: 372.04.08 700
Post-import methods for change/transport request: NBDK900366
Post-import method RS_AFTER_IMPORT started for ELEM L, date and time: 20100406151003
Start of the after-import method RS_ELEM_AFTER_IMPORT for object type(s) ELEM (Activation Mode)
Error when activating element 4HBCVLNBZJBOCJ2A2NP4Y0XEM
Start of the after-import method RS_ELEM_AFTER_IMPORT for object type(s) ELEM (Delete Mode)
Errors occurred during post-handling RS_AFTER_IMPORT for ELEM L
The errors affect the following components:
BW-WHM (Warehouse Management)
Post-import methods of change/transport request NBDK900366 completed
Start of subsequent processing ... 20100406151003
End of subsequent processing... 20100406151018
Execute reports for change/transport request: NBDK900366
Reports for change/transport request NBDK900366 have been executed
Start of................ 20100406151018
End of.................. 20100406151018
Execution of programs after import (XPRA)
End date and time : 20100406151018
Ended with return code: ===> 8 <===
Kindly let me know how to correct the error.
RegardsHi,
As you have collected more than one queries in a single request,first identify the query which is giving problem.For this you can go to se11 and diasplay table RSRREPDIR,go to output list of the table and under ID field give the hexa decimal Id that you got in the error log.The table will display the query associated with this.
In the target system check whether your query changes are reflecting or not.
Make sure that you have collected all the necessary elements ,that is variables ,resricted KFs etc.You can check this via RSA1 Transport connections.
Thanks
Sreeja -
Error when updating the Request again after deleting it .
Hi
Actually I deleted few requests(some red ,some green) to load the request in order in the ODS for each date. While again updating the same requests from the PSA,
I am getting this error in the monitor.
"Deletion of M version from ODS terminated"
What should i look for ?
Please advise,
Thanks and regards,
Priya.
Few lines from the monitor:#
Subseq. processing (messages) : Missing messages
Missing message: Subseq. processing completed
Deletion (messages): Errors occurred
Delete running: ODS ZCCD0003 , from 71504 to 71938
Deletion of request 71938 from ODS ZCCD0003 successful
Deletion of request 71938 from ODS ZCCD0003 successful
Deletion of request 71938 from ODS ZCCD0003 successful
You want to delete request 0000057118 , but it is already updated
Deletion of request 71938 from ODS ZCCD0003 successful
Deletion of request 71876 from ODS ZCCD0003 successful
Deletion of request 71504 from ODS ZCCD0003 successful
Deletion of M version from ODS ZCCD0003 completed successfully
Delete running: ODS ZCCD0003 , from 71504 to 71876
You want to delete request 0000057118 , but it is already updated
No data request exists for request number 71876
No data request exists for request number 71504
No data request exists for request number 71,504
<b><i>Deletion of M version from ODS terminated</i></b>
Deletion of M version from ODS ZCCD0003 completed successfully
Delete running: ODS ZCCD0003 , from 71504 to 71876
You want to delete request 0000057118 , but it is already updated
No data request exists for request number 71876
No data request exists for request number 71504
No data request exists for request number 71,504
Deletion of M version from ODS terminated
Deletion of M version from ODS ZCCD0003 completed successfully
Delete running: ODS ZCCD0003 , from 71504 to 71876
Deletion of request 71876 from ODS ZCCD0003 successful
Deletion of request 71504 from ODS ZCCD0003 successful
Error :Deletion of M version from ODS terminatedHi Roberto,
I just want to know in SM50 how do we recognise that the process is running for what request.
Everytime I see only this status:
0 DIA 2004 Running Yes SAPLTHFB 400 Disdgnl01.
What does this report do? and how do we understand the
details ......
Can i have some link as well where I can get more information about the process overview.
Thanks a lot for all your help,
Priya. -
Request Approval Process exception in OIM 11g
Hi,
We have upgraded oim 9.1 to oim 11.1.1.5 and we did not have any request approvals in oim 9.1.
Now we are using oim 11g to develop request approval process. We have tried to raise a request for "Provisioning Resource" - Application Access and "Assign Role" - Business Role Request in OIM 11g environment. Both the Requests are failing with the same exception as below,
Error:
IAM-2050014:An error occurred while initiating approvals for request oracle.iam.platform.workflowservice.exception.IAMWorkflowException: Tasklist mapping failed for workflowdefinition: default/DefaultRequestApproval!1.0 due to javax.naming.NamingException: String index out of range: -1. The corresponding error message is {1}.
Any idea on the above error?
Thanks!!you can follow these videos to see if you can get a basic manager approval working for a self request resource.
http://www.youtube.com/watch?v=KCA_cxKsi_o&feature=channel_video_title -
When trying to login in OIM 11g after providing credentials, it gives internal error 500.
please note: 500 error is the most difficult HTTP error to troubleshoot , because it is very generic. It could be because of many things.
So, if you could provide us the OIM diagnostic logs when you receive it, it will help as to be helpful.
thx in advance,
Thiago Leoncio.
thiagoleoncio -
How to get details of Pending Approval request in OIM 11g R2?
Hi,
We need to find out following details from Pending Approval Request in OIM 11g R2 -
Request ID,Assignees,Requested Resource Name, Title of Request, Beneficiary, Status of Request.
Out of above attributes we could find out Assignees, Title of Request, Status of Request, Beneficiary, etc. But we are not getting Request ID and Requested Resource Name.
We have used API - 'IworkflowServiceClient'
If we use API - 'RequestService' then we are not getting Assignees and Resource name from Pending approval request.
Can any one suggeste how can we get these details? Do we need to use other API or other alternative to get all of attributes from Pending Approval Request.
Thanks.Thanks Kevin for your suggestion.
In OIM 11g R2 I tried task.getIdentificationKey() to get Request ID and task.getSystemMessageAttributes().getTextAttribute6() to get requested resource name but I am getting null values out of it. Is there something I am missing?
Which common thing I can use to retrieve data from both OIM and SOAINFRA? As I am not getting Request ID from 'IworkflowServiceClient' API so I could not use it to earch request in OIM using 'RequestService'. Even if I have to use query what will be common thing I can use to fetch data from both tablespaces?
Thanks. -
Error in approve the leave request in MSS
Hello,
i m new in ESS/MSS.. right now working on maintanance project...All configuration settings are done by other guy. -
I m facing error in approving the leave request in MSS .. it open a error page as of no page found ... can any body tell me the solution of this problem.
thankz and regards,
SumitHi,
Sumit Malhotra ,
Can you check with other user who is having all the roles.
This error has something to do with the roles.navigation is occuring with URL means check the roles or try with other user.
Look into permissions and also in different browser also.
Log file u have to search in OS LEVEL.
Mail meto [email protected] if it doesn,t work and we can try for other ways.
Sorry if it doesn't work.
Thanks,
Gopal.sattiraju -
Creation of a Request in OIM 11G using API's
Hi Friends,
I am trying to create a request using OIM 11g API's.
I am trying to do this for EBS Responsibility resource and this resource has a request dataset has EBS-IT-Resource-Instance, application name, responsibility name, start date and security group. Please note application name, responsibility name, start date and security group are in child form.
I am trying to populate the request dataset using the below code.
List<RequestBeneficiaryEntityAttribute> entityAttrList;
RequestBeneficiaryEntity entity = null;
entityAttrList = new ArrayList<RequestBeneficiaryEntityAttribute>();
entity = new RequestBeneficiaryEntity();
tcITResourceInstanceOperationsIntf tcITResourceIntf = Platform.getService(tcITResourceInstanceOperationsIntf.class);
HashMap searchcriteria = new HashMap<String, String>();
searchcriteria.put("IT Resources.Name", "EBSHF-APPS12");
tcResultSet resultSet = tcITResourceIntf.findITResourceInstances(searchcriteria);
long itResourceKey=resultSet.getLongValue("IT Resources.Key");
entityAttrList.add(this.getAttrLong("eBusiness Suite Instance Name",itResourceKey));
entityAttrList.add(this.getAttr("Application Name","3~300"));
entityAttrList.add(this.getAttr("Responsibility Name", "3~300~52281"));
entityAttrList.add(this.getAttr("Security Group", "3~0"));
entity.setEntityKey(getResourceKey("Oracle eBusiness Responsibility"));
entity.setEntityType(RequestConstants.RESOURCE);
entity.setEntitySubType("Oracle eBusiness Responsibility");
entity.setEntityData(entityAttrList);
private RequestBeneficiaryEntityAttribute getAttr(String name, String value)
RequestBeneficiaryEntityAttribute attr = null;
attr = new RequestBeneficiaryEntityAttribute(name, value, RequestBeneficiaryEntityAttribute.TYPE.String);
return attr;
private RequestBeneficiaryEntityAttribute getAttrLong(String name, long value)
RequestBeneficiaryEntityAttribute attr = null;
attr = new RequestBeneficiaryEntityAttribute(name, value, RequestBeneficiaryEntityAttribute.TYPE.Long);
return attr;
My code is working fine and a request is getting created. But when I try to open the request dataset(object form) for the newly created request, I am getting null exceptions.
If I did not populate the fields that are in the child form application name, responsibility name and security group which are highlighted above, then I am able to view the form with the correct IT-Resource-Instance name after request creation.
So, I am thinking I am doing something wrong while populating child form data in the request dataset.
Can you please provide me some code snippet to populate the child using 11G API'S?Hi Bikash,
After referring your code, i made changes in mine. Here is my updated code.
RequestBeneficiaryEntityAttribute parantAttr=null;
List<RequestBeneficiaryEntityAttribute> entityAttrList;
RequestBeneficiaryEntity entity = null;
entity = new RequestBeneficiaryEntity();
parantAttr=this.getAttrLong("eBusiness Suite Instance Name", itResourceKey);
RequestBeneficiaryEntityAttribute mid1 = new RequestBeneficiaryEntityAttribute();
List <RequestBeneficiaryEntityAttribute> childAttributesList = new ArrayList<RequestBeneficiaryEntityAttribute>();
childAttributesList.add(this.getAttr("Application Name", "3~555"));
childAttributesList.add(this.getAttr("Responsibility Name", "3~555~22862"));
childAttributesList.add(this.getAttr("Security Group", "3~0"));
mid1.setChildAttributes(childAttributesList);
mid1.setAction(RequestBeneficiaryEntityAttribute.ACTION.Add);
entityAttrList = new ArrayList<RequestBeneficiaryEntityAttribute>();
entityAttrList.add(parantAttr);
entityAttrList.add(mid1);
But when I try to run this, it is getting failed saying "RequestServiceException: IAM-2050033:Invalid attribute name null. No corresponding reference was found in the data set ProvisionResourceOracle eBusiness Responsibility".
Here is my request data set for your reference.
<AttributeReference name="eBusiness Suite Instance Name" attr-ref="eBusiness Suite Instance Name" type="Long" length="50" widget="itresource-lookup" required="true" available-in-bulk="true" itresource-type="eBusiness Suite UM"/>
<AttributeReference available-in-bulk="true" length="10" widget="text" type="String" attr-ref="UD_EBH_RSCP" name="EBS HR Foundation User Responsibilities">
<AttributeReference name="Application Name" attr-ref="Application Name" type="String" length="256" widget="lookup-query" available-in-bulk="true" required="true">
<lookupQuery lookup-query="select lkv_encoded as Value,lkv_decoded as Description from lkv lkv, lku lku where lkv.lku_key=lku.lku_key and lku_type_string_key='Lookup.EBS.Application' and lkv_encoded like concat('$Form data.eBusiness Suite Instance Name', '~%')" display-field="Description" save-field="Value"/>
</AttributeReference>
<AttributeReference name="Responsibility Name" attr-ref="Responsibility Name" type="String" length="256" widget="lookup-query" available-in-bulk="true" required="true" primary="true">
<lookupQuery lookup-query="select lkv_encoded as Value,lkv_decoded as Description from lkv lkv,lku lku where lkv.lku_key=lku.lku_key and lku_type_string_key='Lookup.EBS.Responsibility' and lkv_encoded like concat('$Form data.Application Name','~%')" display-field="Description" save-field="Value"/>
</AttributeReference>
<AttributeReference name="Security Group" attr-ref="Security Group" type="String" length="256" widget="lookup-query" available-in-bulk="true" required="true">
<lookupQuery lookup-query="select lkv_encoded as Value,lkv_decoded as Description from lkv lkv, lku lku where lkv.lku_key=lku.lku_key and lku_type_string_key='Lookup.EBS.SecurityGroup' and lkv_encoded like concat('$Form data.eBusiness Suite Instance Name', '~%')" display-field="Description" save-field="Value"/>
</AttributeReference>
I am not sure why it is not referencing to the attribute. In your blog, it is saying your code is to set process form. But i am trying to create a request using API's. so, I need some code snippet to populate request dataset. Do you think, this will serve both?
Thanks for your help. -
UWL-Error when processing your request
Dear All,
We are getting the following error when Approver goes to approve the trip(travel request) of his subordinates.
The URL http://abc.jxyz.com:8000/sap/bc/gui/sap/its/BWWF_WI_DECI was not called due to an error.
The termination type was: RABAX_STATE
The ABAP call stack was:
SYSTEM-EXIT of program SAPMSYST
Error code: ICF-IE-http -c: 900 -u: P00001383 -l: E -s: ECQ -i: eccqas_ECQ_00 -w: 0 -d: 20101201 -t: 161711 -v: RABAX_STATE -e: ITS_ERRMSG_EXCEPTION
HTTP 500 - Internal Server Error
Your SAP Internet Communication Framework Team
Regards ,
VijayThis error is usually seen when the corresponding SICF service is not active in the backend system.
In your backend system, activate the service BWWF_WI_DECI from the transaction SICF.
However, for approving trip, there is no need to launch any ITS service.
What UWL configuration do you have in place for this work item ? Have you transported your UWL XML config files from your Development portal to your quality portal ?
Turn on the UWL support information and check what XML configuration file is being used for this work item.
Thanks,
Shanti Mupkala -
Error when processing your request
Error when processing your request
What has happened?
The URL http://vinay:8000/sap/bc/webdynpro/sap/zfirst_web was not called due to an error.
Note
The following error text was processed in the system NSP : Die URL enthält keine vollständige Domainangabe (vinay statt vinay.).
The error occurred on the application server vinay_NSP_00 and in the work process 0 .
The termination type was: RABAX_STATE
The ABAP call stack was:
Method: CHECK of program CX_FQDN=======================CP
Method: STARTUP_CHECKS of program CL_WDR_CLIENT_ABSTRACT_HTTP===CP
Method: HANDLE_REQUEST of program CL_WDR_CLIENT_ABSTRACT_HTTP===CP
Method: IF_HTTP_EXTENSION~HANDLE_REQUEST of program CL_WDR_MAIN_TASK==============CP
Method: EXECUTE_REQUEST of program CL_HTTP_SERVER================CP
Function: HTTP_DISPATCH_REQUEST of program SAPLHTTP_RUNTIME
Module: %_HTTP_START of program SAPMHTTP
What can I do?
If the termination type was RABAX_STATE, then you can find more information on the cause of the termination in the system NSP in transaction ST22.
If the termination type was ABORT_MESSAGE_STATE, then you can find more information on the cause of the termination on the application server vinay_NSP_00 in transaction SM21.
If the termination type was ERROR_MESSAGE_STATE, then you can search for more information in the trace file for the work process 0 in transaction ST11 on the application server vinay_NSP_00 . In some situations, you may also need to analyze the trace files of other work processes.
If you do not yet have a user ID, contact your system administrator.
Error code: ICF-IE-http -c: 001 -u: BCUSER -l: E -s: NSP -i: vinay_NSP_00 -w: 0 -d: 20090622 -t: 074756 -v: RABAX_STATE -e: UNCAUGHT_EXCEPTION
HTTP 500 - Internal Server Error
Your SAP Internet Communication Framework TeamHi Thomas,
I realize this is a rather old discussion, but I wonder if you know whether running transaction SGEN to generate the loads for either all web dynpros or just a particular transport containing a custom web dynpro would resolve the slow response time and timeout. After a customer message with SAP, this was their suggestion, however our Basis team is skeptical that this will have the desired effect. We noticed the issue when moving from development to QA so we won't know if this is the solution until we try it in production upon go-live.
Cheers,
Amy -
Error when installing the supporting objects of OLL Packaged Application
Hello,
I am trying to install OLL Packaged Application|http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/apex/r41/inst_pkgapp/inst_pkgapp.htm#top
but when installing the supporting objects, I got error when executing the code of "create_package_body"
Error at line 274: PLS-00201: identifier 'UTL_TCP' must be declared
create 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;
/Error at line 274: PLS-00201: identifier 'UTL_TCP' must be declared
Edited by: Fateh on Jan 13, 2012 7:32 AMThanks & Sorry for not mentioning the full information about my environment.
it was:
Oracle 11g xe R2 on Windows 7 machine
Apex listener deployed on Glass Fish server 3.1 on Windows 7 machine
Apex 4.1
Google Chrome
So, to have OLL application worked locally . we need the following:
grant execute on utl_tcp to [your_schema_name]And to
Configure an Application Express Application as a Partner Application in Oracle AS Single Sign-On http://www.oracle.com/technetwork/testcontent/sso-partner-app-100552.html.
I think I am going to install on my work space on apex.oracle.com.
Regards,
Fateh
Edited by: Fateh on Jan 15, 2012 9:38 AM -
Error when generating the report in Production Server
Hi,
I have created one infoset query in Development server of my client. It is working fine there. I had transported the request containg this query to Production server. But whenever I am trying to generate report using this query in Production server it is giving an error message
"Error when generating the report".
I am not getting what 's problem.
SamriddhiSamriddhi,
Genarally its not suggested to transport Queries. Should be able to create Queries directly Production. There might be diferences between your Development and Production versions.
Thanks.
Maybe you are looking for
-
HT201250 Need info about TM re-set
Hi I've had my TM unplugged for about three months due to renovations. In that time we have also changed internet service provider and therefore have a new network and password. However I can't get my TM on to this wireless network. If I re-set the T
-
Hey I was wondering how I can get all my old tapes onto my computer so that I can burn them to CD? My computer does not have a microphone jack or else I would just record them through a double ended wire. thanks for the tips. Austin
-
XFX R7850 with mini display ports, yet 27" ACD will not work
I know i need files from boot camp but don't know what i need.
-
How to implement "Undo" option using acrobat SDK
Hello, I want to implement "Undo" option in my application which will restore last modified data. I am reffering to acrobat 7.0 SDK. I am trying with AVUndo functions from SDK. I am not getting basic thing to start the implementation.
-
Cannot load from BACKUPSTORE issue
Hi, Hopefully, someone can help with this. I'm in the process of developing a J2EE application. At present it contains one very small stateful session bean. The issue I have regards passivation and removal of this bean. For testing purposes I have se