Open OBIEE report from web application

Experts, I want to open OBIEE report from a web application. I have a question regarding the security here. Say I login as 'USER1' in web application, I would have to pass 'USER1' in nquser parameter. Correct? Also, this report has access to 'Sales Group' users only. So, does 'USER1' in web application need to be assigned to 'Sales Group'? Or, any user in the web application can open this report as long as I pass nquser in the GOURL.
thx,
parag

You don't need to specify group details.
When the report hits OBIEE, it will determine the permissions based on the nquser.
Hope it helps.

Similar Messages

  • Database connection error when running report from web application

    Hi all,
    When I open a report in Reports Builder , and enter the database connection parameters, everything works fine. When I run my web application from JDeveloper (9.0.5.1), and I tried to run a report, I get this error:
    Rep-501 : Unable to connect to the specified database.
    I have ran tnsping, and it works fine. My tnsnames.ora file looks like this :
    GPGWL =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522))
    (CONNECT_DATA =
    (SERVICE_NAME = GPGWL)
    )

    Please ask this question in Jdeveloper forum.

  • Calling PL/SQL Functions And Open Oracle Reports From ADF Application

    Hi all,
    My company will convert some projects from Oracle forms to Oracle ADF so, we need to call the PL/SQL functions and open the Oracle Reports (which are already exist) from ADF Application.
    Thank You..
    Jack.N

    Hi Jack.N,
    calling PL/SQL Functions -----> http://sameh-nassar.blogspot.com/2010/01/create-plsql-function-and-call-it-from.html
    Open Oracle Reports ---------> http://radio-weblogs.com/0137094/2008/06/15.html
    You will find The Integration between ADF and other systems in ---> http://wiki.oracle.com/page/ADF+Integration
    Sameh Nassar

  • Not opening the excel workbook from web application

    I am trying the load excel work book from web application and have configured the http authentication while configuring the ADF Secutity. It is asking for the login (weblogic/weblogic1) while load excel workbook, but throws the following exception/error. Please let me know how to resolve this.
    ADFDI-05530: unable to initialize worksheet: Sheet1
    and details are:
    ADFDI-00108: user session required
    The remote server returned an error: (401) Unauthorized.
    ~~~~~~~~~~
    UserSessionRequiredException: ADFDI-00108: user session required
    Source: adfdi-datamanager
    Stack:
    at oracle.adf.client.windows.datamanager.servletrequest.SyncRequest.BeginResponse()
    at oracle.adf.client.windows.datamanager.servletrequest.TamperCheckRequest.InternalCallSyncServlet()
    at oracle.adf.client.windows.datamanager.servletrequest.SyncServletRequest.CallSyncServlet(Boolean retry)
    at oracle.adf.client.windows.datamanager.ADFBindingContext.SendSyncServletRequest(SyncServletRequest request)
    at oracle.adf.client.windows.datamanager.ADFBindingContext.CheckForTampering()
    at oracle.adf.client.windows.datamanager.ADFBindingContext.PreSyncServletTamperCheck()
    at oracle.adf.client.windows.datamanager.ADFBindingContext.SyncModel(BindingContainer bc, String contentType)
    at oracle.adf.client.windows.datamanager.BindingContainer.ReloadMetadata()
    at oracle.adf.client.windows.datamanager.BindingContainer.LoadMetadata()
    at oracle.adf.client.windows.excel.runtime.DIWorksheet.Initialize()
    Inner:
    WebException: The remote server returned an error: (401) Unauthorized.
    Source: System
    Stack:
    at System.Net.HttpWebRequest.GetResponse()
    at oracle.adf.client.windows.datamanager.servletrequest.http.ManagedHttpResponse..ctor(HttpWebRequest request)
    at oracle.adf.client.windows.datamanager.servletrequest.http.ManagedHttpRequest.GetResponse()
    at oracle.adf.client.windows.datamanager.servletrequest.SyncRequest.BeginResponse()

    Thanks for your quick reply. I have tried giving permission to all the page definition for the test-all role. But still I am getting the following error.
    [JpsAuth] Check Permission
    PolicyContext: [UI#V2.0]
    Resource/Target: [getSubjectFromDomainCombiner]
    Action: [null]
    Permission Class: [javax.security.auth.AuthPermission]
    Result: [SUCCEEDED]
    Subject: [null]
    Evaluator: [SM]
    [JpsAuth] Check Permission
    PolicyContext: [UI#V2.0]
    Resource/Target: [sessiondef._FDMApplicationVO_0_DynReg_com_hyperion_aif_gl_common_setup_userinterface_pageDefs_regFDMApplicationsPageDef]
    Action: [view]
    *Permission Class:     [oracle.adf.share.security.authorization.RegionPermission]*
    *Result:               [FAILED]* Evaluator: [ACC]
    Failed ProtectionDomain:ClassLoader=sun.misc.Launcher$AppClassLoader@47858e
    CodeSource=file:/C:/Oracle/Middleware/oracle_common/modules/oracle.adf.share_11.1.1/adf-share-support.jar Principals=total 3 of principals(
    1. JpsPrincipal: oracle.security.jps.internal.core.principals.JpsAnonymousUserImpl "anonymous" GUID=null DN=null
    2. JpsPrincipal: oracle.security.jps.internal.core.principals.JpsAnonymousRoleImpl "anonymous-role" GUID=null DN=null
    3. JpsPrincipal: oracle.security.jps.service.policystore.ApplicationRole "test-all" GUID=48AD91A06D7511DFBFDBE5A03915DD7D DN=null)
    Permissions=(
    oracle.adf.controller.security.TaskFlowPermission//data/data-task-flow-definition.xml#data-task-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//dim/dimension-task-flow-definition.xml#dimension-task-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//setup/Access-Denied-task-flow-definition.xml#Access-Denied-task-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//setup/setup-flow-definition.xml#setup-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//writeback/writeBack-task-flow-definition.xml#writeBack-task-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//setup/regApp-task-flow-definition.xml#regApp-task-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//writeback/valueMapping-task-flow-definition.xml#valueMapping-task-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//process/processDetails-task-flow-definition.xml#processDetails-task-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//setup/importProfile-task-flow-definition.xml#importProfile-task-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//setup/categoryMapping-task-flow-definition.xml#categoryMapping-task-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//setup/srcAcctEnties-task-flow-definition.xml#srcAcctEnties-task-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//hr/hr-task-flow-definition.xml#hr-task-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//setup/regSrcSystem-task-flow-definition.xml#regSrcSystem-task-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//setup/regFDMApps-task-flow-definition.xml#regFDMApps-task-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//setup/periodMapping-task-flow-definition.xml#periodMapping-task-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//setup/location-task-flow-definition.xml#location-task-flow-definition/customize,grant,personalize,view
    oracle.adf.controller.security.TaskFlowPermission//dim/memberMapping-task-flow-definition.xml#memberMapping-task-flow-definition/customize,grant,personalize,view
    (java.io.FilePermission \C:\Oracle\Middleware\oracle_common\modules\oracle.adf.share_11.1.1\adf-share-support.jar read)
    (java.net.SocketPermission localhost:1024- listen,resolve)
    (oracle.security.jps.service.credstore.CredentialAccessPermission context=SYSTEM,mapName=*,keyName=* *)
    (java.util.PropertyPermission line.separator read)
    (java.util.PropertyPermission java.vm.version read)
    (java.util.PropertyPermission java.vm.specification.version read)
    (java.util.PropertyPermission java.vm.specification.vendor read)
    (java.util.PropertyPermission java.vendor.url read)
    (java.util.PropertyPermission java.vm.name read)
    (java.util.PropertyPermission os.name read)
    (java.util.PropertyPermission java.vm.vendor read)
    (java.util.PropertyPermission path.separator read)
    (java.util.PropertyPermission java.specification.name read)
    (java.util.PropertyPermission os.version read)
    (java.util.PropertyPermission mds.store.filesystem.path read)
    (java.util.PropertyPermission os.arch read)
    (java.util.PropertyPermission java.class.version read)
    (java.util.PropertyPermission java.version read)
    (java.util.PropertyPermission file.separator read)
    (java.util.PropertyPermission java.vendor read)
    (java.util.PropertyPermission java.vm.specification.name read)
    (java.util.PropertyPermission java.specification.version read)
    (java.util.PropertyPermission java.specification.vendor read)
    (oracle.security.jps.service.policystore.PolicyStoreAccessPermission context=APPLICATION,name=* getApplicationPolicy)
    (java.lang.RuntimePermission stopThread)
    (java.lang.RuntimePermission exitVM)
    oracle.adf.share.security.authorization.RegionPermission/com.hyperion.aif.gl.drilldown.userinterface.pageDefs.drilldownPageDef/view
    oracle.adf.share.security.authorization.RegionPermission/com.hyperion.aif.gl.common.setup.userinterface.pageDefs.MainPageDef/grant,view
    Call Stack: java.security.AccessControlException: access denied oracle.adf.share.security.authorization.RegionPermission/sessiondef._FDMApplicationVO_0_DynReg_com_hyperion_aif_gl_common_setup_userinterface_pageDefs_regFDMApplicationsPageDef/view java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
    java.security.AccessController.checkPermission(AccessController.java:546)

  • How to call an OBIEE report from EBS

    Hi,
    I'm trying to call an OBIEE report from an EBS menu.
    I have setup the following form function calling SSWA jsp type function
    Web HTML
    OracleOasis.jsp?mode=OBIEE&function=Go&Path=/shared/APA%20Real%20Time/AR/AR02%20Revenue%20by%20Account%20Report&Action=Prompt
    When I click the menu item OBIEE returns the following;
    No Columns
    The request cannot be performed because it contains no columns.
    Can anyone please enlighten me on how to do this correctly
    Thanks
    Phil
    Edited by: user462334 on 28/07/2010 21:50

    Hi Phil,
    I did some further investigation. The syntax to your Oracle BI Answers should be as follows;
    OracleOasis.jsp?mode=OBIEE&function=Go&parameters=Path~/shared/APA%20Real%20Time/AR/AR02%20Revenue%20by%20Account%20Report
    Check the following for more details;
    http://obibb.wordpress.com/2010/08/05/integrating-oracle-ebs-and-oracle-bi-ee-links/
    Cheers
    Daan Bakboord
    http://obibb.wordpress.com/

  • How to cancel a report from web?

    i want to cancel some reports i have made from web.
    i have made two kinds of reports,one from web using /cgi-
    bin/rwcgi60.exe?runrep... and another from DOS command line
    using rwcli60.exe.Then i use /cgi-bin/rwcgi60.exe/showjobs?
    server=myreportserver and the web shows all the report jobs.
    i can kill report jobs from the web while clicking on the
    coloum 'job status',but i can't cancel all the jobs.that is to
    say i can cancel the jobs made from rwcgi60.exe?runrep... and
    cant cancel the jobs made from Dos because i have no privileges
    and the two kinds of reports belong to different owners.
    i can cancel them all from report queue manager using
    ADMINISTRATOR,but i must made the two kinds of report from web
    and dos and must cancel them all from web.
    anybody can help me how to solve the problem?
    another question:can i assign the report's owner to a special
    personal while using rwcgi.exe and rwcli60.exe?
    thanks in advance!

    Hi,
    The below link will be very useful for one who need idea on calling Oracle Report from Java Application,
    http://www.oracle.com/technology/products/reports/htdocs/getstart/examples/reportswebservice/index.html
    Thanks & Rgds,
    M T

  • Unable to open a report from Java SDK

    Hi,
    I am trying to open a report from the SDK in a java application. Here is the code :
    package com.metrixware.test;
    import com.crystaldecisions.sdk.occa.report.application.OpenReportOptions;
    import com.crystaldecisions.sdk.occa.report.application.ReportAppSession;
    import com.crystaldecisions.sdk.occa.report.application.ReportClientDocument;
    import com.crystaldecisions.sdk.occa.report.lib.ReportSDKException;
    public class MyBoTest {
    @param args
         public static void main(String[] args) {
             ReportClientDocument myDoc = new ReportClientDocument();
             try {
                  ReportAppSession sess = new ReportAppSession();
                  sess.setReportAppServer("AGIRC-DEMO");
                  sess.initialize();
                  myDoc.setReportAppSession(sess);
                   myDoc.open("rassdk://D:/Document8.rep",OpenReportOptions._openAsReadOnly);
                   System.out.println("Titre du doc : "+myDoc.displayName());
              } catch (ReportSDKException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
    but i always get the following error stack (ReportSDKException) on the open method of the doc :
    com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException: Impossible de charger le rapport.---- Error code:-2147483123 Error code name:failed
         at com.crystaldecisions.sdk.occa.report.lib.ReportSDKServerException.throwReportSDKServerException(Unknown Source)
         at com.crystaldecisions.proxy.remoteagent.s.a(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.if(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.do(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.a(Unknown Source)
         at com.crystaldecisions.sdk.occa.report.application.ClientDocument.open(Unknown Source)
         at com.metrixware.test.MyBoTest.main(MyBoTest.java:22)
    The document is at the right location on my local machine where my test is running. The RAS server is up and running on the CMS.
    Can you help me on this problem.
    Also i have another question. Can you tell me if i'll be able to read through this object the generated SQL select statement of the report.
    Thanks.
    Julien Pignatel

    try the following instead:
    ReportClientDocument myDoc = new ReportClientDocument();
    myDoc.setReportAppServer("AGIRC-DEMO");
    myDoc.open("rassdk://D:
    Document8.rpt",OpenReportOptions._openAsReadOnly);
    Also make sure that on RAS command you have added: -ipport "1566" -reportdirectory "D:/"
    Please note:
    1. Don't need to use ReportApSession class
    2. what do you use Document8.rep, you cannot open a Deski document with RAS. RAS can be used only with crystal reports.
    Hope that helps.
    Best Regards
    Aasavari

  • Run a report from an application

    Hi all,
    I don't know if this post belongs here or in the Reports forum. Anyway, any help with this will be muchly appreciated. I thought this task would be straightforward enough, but I'm having a whole lot of difficulty finding any instructions on it.
    I have an application developed in JDeveloper using BC4J. And I want to be able to print reports from this application. It is a standalone program, i.e., not JSP. I have a number of reports I will want to run, and for now I have created the simplest one in Oracle Reports. How do I run this from my Java application? I would really rather not have to open a browser window or generate a PDF, but just print the thing immediately (or give the user a preview if desired).
    Thank you in advance,
    Owen Gibbins

    Does anyone have any thoughts on this?

  • Error while Opening the report  from template builder

    hi all,
    After log in in the BI publisher template builder, tried to Open the report from the report Template . Then the message is displayed as Error occurred: ‘Please check the settings and try again’.
    I am using the OBIEE 10.1.3.3 version and Ms-Office 2000......
    Please give me the solution very urgent............
    Regards

    Hi,
    I am having the same issue. I am not able to import Crystal Report.
    the error is "No matching records found  'Queries' (OUQR) (ODBC -2028)  [Message 131-183]"
    I have previewed the report using Preview external crystal report option and is running perfect.
    please guide ASAP.
    Regards
    Sonil

  • Backup/Recovery from web application

    Hello guys,
    I am using Oracle 9i as DB and Oracle 9iAS for web application server. I want to provide Backup and Recovery functionality to the user via web. I don't know any thing in this regard.
    Is it possible that we can take backup and recovery from web application?
    Is there any alternative for this function.
    any other comments will be appreciated.
    Thank you,
    Jawed Nazar Ali

    Read this article in order to get an idea about Java Stored Procedures.
    Oracle Developer JAVA STORED PROCEDURES
    Simplify with Java Stored Procedures
    By Kuassi Mensah
    Use Java stored procedures to bridge SQL, XML, Java, and J2EE and Web Services.
    Stored procedures allow a clean separation of persistence logic that runs in the database tier from business logic that runs in the middle tier. This separation reduces overall application complexity and increases reuse, security, performance, and scalability.
    A major obstacle, however, for widespread adoption of stored procedures is the set of various proprietary, database-dependent implementation languages that different database vendors use. The use of Java-based stored procedures fixes this concern. Oracle has implemented ANSI standards that specify the ability to invoke static Java methods from SQL as procedures or functions. This implementation is called simply "Java stored procedures."
    In this article, you will learn how Java stored procedures help simplify and increase the performance of your business logic and extend database functionality. I'll show how Oracle enables the use of Java stored procedures within the database. I'll also look at how Java stored procedures access data, and show how to create a basic Java stored procedure.
    PL/SQL or Java
    When you think of Oracle stored procedures, you probably think of PL/SQL. Oracle, however, has provided Java support in the database since Oracle8i, to offer an open and portable alternative to PL/SQL for stored procedures. I can hear the $64,000 question: "How do I choose between PL/SQL and Java? Should I forget all the things I've been told about PL/SQL and move on to the greener Java pastures?"
    Both languages are suitable for database programming, and each has its strengths and weaknesses. In deciding which language to use, here's a general rule of thumb:
    Use PL/SQL for database-centric logic that requires seamless integration with SQL and therefore complete access to database objects, types, and features.
    Use Java as an open alternative to PL/SQL for database independence, but also for integrating and bridging the worlds of SQL, XML, J2EE, and Web services.
    OracleJVM Lets You Run Java within the Database
    Since Oracle8i, Release 1 (Oracle 8.1.5), Oracle has offered a tightly integrated Java virtual machine (JVM) that supports Oracle's database session architecture. Any database session may activate a virtually dedicated JVM during the first Java code invocation; subsequent users then benefit from this already Java-enabled session. In reality, all sessions share the same JVM code and statics—only private states are kept and garbage collected in an individual session space, to provide Java sessions the same session isolation and data integrity capabilities as SQL operations. There is no need for a separate Java-enabled process for data integrity. This session-based architecture provides a small memory footprint and gives OracleJVM the same linear SMP scalability as the Oracle database.
    Creating Java Stored Procedures
    There are a few steps involved in turning a Java method into a Java stored procedure. These include loading the Java class into the database using the loadjava utility, and publishing the Java methods using a call specification (Call Spec) to map Java methods, parameter types, and return types to their SQL counterparts. The following section shows how to do this.
    I'll use a simple Hello class, with one method, Hello.world(), that returns the string "Hello world":
    public class Hello
    public static String world ()
    return "Hello world";
    The Loadjava Utility
    Loadjava is a utility for loading Java source files, Java class files, and Java resource files; verifying bytecodes; and deploying Java classes and JAR files into the database. It is invoked either from the command line or through the loadjava() method contained within the DBMS_JAVA class. To load our Hello.class example, type:
    loadjava -user scott/tiger Hello.class
    As of Oracle9i Release 2, loadjava allows you to automatically publish Java classes as stored procedures by creating the corresponding Call Specs for methods contained in the processed classes. Oracle provides Oracle9i JDeveloper for developing, testing, debugging, and deploying Java stored procedures.
    The Resolver Spec
    The JDK-based JVM looks for and resolves class references within the directories listed in the CLASSPATH. Because Oracle database classes live in the database schema, the OracleJVM uses a database resolver to look for and resolve class references through the schemas listed in the Resolver Spec. Unlike the CLASSPATH, which applies to all classes, the Resolver Spec is applied on a per-class basis. The default resolver looks for classes first in the schema in which the class is loaded and then for classes with public synonyms.
    loadjava -resolve <myclass>
    You may need to specify different resolvers, and you can force resolution to occur when you use loadjava, to determine at deployment time any problems that may occur later at runtime.
    loadjava -resolve -resolver "((* SCOTT) (foo/bar/* OTHERS)
    (* PUBLIC))"
    Call Spec and Stored Procedures Invocation
    To invoke a Java method from SQL (as well as from PL/SQL and JDBC), you must first publish the public static method through a Call Spec, which defines for SQL the arguments the method takes and the SQL types it returns.
    In our example, we'll use SQL*Plus to connect to the database and define a top-level Call Spec for Hello.world():
    SQL> connect scott/tiger
    SQL> create or replace function helloworld return
    VARCHAR2 as language java name 'Hello.world () return
    java.lang.String';
    Function created.
    You can then invoke the Java stored procedure as shown below:
    SQL> variable myString varchar2[20];
    SQL> call helloworld() into :myString;
    Call completed.
    SQL> print myString;
    MYSTRING
    Hello world
    Java stored procedures are callable, through their Call Spec, from SQL DML statements (INSERT, UPDATE, DELETE, SELECT, CALL, EXPLAIN PLAN, LOCK TABLE, and MERGE), PL/SQL blocks, subprograms, and packages, as well as database triggers. The beauty of Call Spec is that stored procedure implementations can change over time from PL/SQL to Java or vice versa, transparently to the requesters.
    Call Spec abstracts the call interface from the implementation language (PL/SQL or Java) and therefore enables sharing business logic between legacy applications and newer Java/J2EE-based applications. At times, however, when invoking a database-resident Java class from a Java client, you may not want to go through the PL/SQL wrapper. In a future release, Oracle plans to provide a mechanism that will allow developers to bypass the Call Spec.
    Advanced Data-Access Control
    Java stored procedures can be used to control and restrict access to Oracle data by allowing users to manipulate the data only through stored procedures that execute under their invoker's privileges while denying access to the table itself. For example, you can disable updates during certain hours or give managers the ability to query salary data but not update it, or log all access and notify a security service.
    Sharing Data Logic Between Legacy and J2EE Applications
    Because legacy applications and J2EE applications both invoke stored procedures through the Call Spec, the same data logic can be shared between J2EE and non-J2EE worlds. Thanks to Call Spec, this data logic can be shared regardless of the implementation language used (whether PL/SQL or Java).
    Autogeneration of Primary Keys for BMP Entity Beans
    When using BMP for EJB entity beans, a bean instance can be uniquely identified by the auto-generated primary key associated with the newly inserted data as a return value for ejbCreate(). You can retrieve this value within ejbCreate() in one database operation by using a stored procedure that inserts the corresponding data and retrieves or computes the primary key. Alternatively, you could insert the data and retrieve the corresponding key (or ROWID) in one SQL statement, using the RETURN_GENERATED_KEYS feature in JDBC 3.0. However, the stored procedure approach is more portable across JDBC driver versions and databases.
    You can implement this pattern with these three steps:
    Create the Java stored procedure, defining a public static Java method insertAccount() within a public GenPK class. This method will insert data, compute a unique key (by passing out a sequence number), and return the computed key as primary key.
    Define the Call Spec.
    CREATE OR REPLACE PROCEDURE insertAccount(owner IN
    varchar, bal IN number, newid OUT number)
    AS LANGUAGE JAVA NAME 'GenPK.insertAccount(
    java.lang.String [])';
    Invoke the stored procedure within ejbCreate().
    Public AccountPK ejbCreate(String ownerName, int balance) throws CreateException
    try {
    CallableStatement call = conn.prepareCall{
    "{call insertAccount(?, ?, ?)}"};          
    return new AccountPK(accountID);
    Custom Primary Key Finders for CMP Entity Beans
    Finder methods are used for retrieving existing EJB entity bean instances. Primary key finders allow you to retrieve a uniquely identified EJB instance. For CMP entity beans, the EJB container automatically generates the primary key finder findByPrimaryKey() method, based on declarative description. In some situations, however, you might need more control; for example, you may need a specialized finder such as findByStoredProcKey(). In these situations, you can use Java stored procedures in conjunction with an object relational framework (such as Oracle9i Application Server [Oracle9iAS] TopLink) to implement a custom primary key finder method. After you define the EJB finder as a REDIRECT or NAMED finder, TopLink will generate the SQL query for retrieving the bean instance.
    Data-Driven EJB Invocation
    In a data-driven architecture, business logic invocation can be triggered as a result of database operations (such as inserts, updates, or deletes). A Java stored procedure implementing the data logic can be declared as a database trigger to invoke EJBs running in a middle-tier J2EE application server. You can make EJB calls by using either standard remote method invocation (RMI) over Interoperable Inter-ORB Protocol (IIOP), using a J2EE 1.3 compatible server, or RMI over a vendor-specific transport protocol (such as ORMI with Oracle9iAS/OC4J or RMI over T3 with BEA WebLogic). Each application server vendor has its own optimized protocol while providing RMI over IIOP for interoperability. Oracle9iAS supports both RMI calls over IIOP and ORMI protocols.
    Data-Driven Messaging
    Oracle9i Database embeds Advanced Queuing (AQ), which is an integrated, persistent, reliable, secure, scalable, and transactional message-queuing framework. Oracle exposes AQ features to Java developers through the standard Java Messaging System (JMS) API. Java stored procedures can invoke AQ operations through the JMS interface to allow fast, intra-session, scalable, data-driven messaging.
    Java stored procedures can use JMS to invoke AQ operations. You can implement this pattern in four steps:
    Create and start the JMS Queue (to do so, embed the following operations within a SQL script):
    execute dbms_aqadm.create_queue_table(queue_table =>
    'queue1', queue_payload_type =>
    'SYS.AQ$_JMS_TEXT_MESSAGE', comment => 'a test queue',
    multiple_consumers => false, compatible => '8.1.0');
    execute dbms_aqadm.create_queue( queue_name => 'queue1',
    queue_table => 'queue1' );
    execute dbms_aqadm.start_queue(queue_name => 'queue1');
    Create the Java stored procedure (a code snippet is shown):
    public static void runTest(String msgBody)
    try
    // get database connection
    ora_drv = new OracleDriver();
    db_conn = ora_drv.defaultConnection();
    // setup sender (cf online code sample)
    // create message
    s_msg = s_session.createTextMessage(msgBody);
    // send message
    sender.send(s_msg);
    s_session.commit();
    // receive message
    r_msg = (TextMessage) receiver.receive();
    r_session.commit();
    // output message text
    String body = r_msg.getText();
    System.out.println("message was '"+body+"'");
    Create the Call Spec:
    create or replace procedure jmsproc (t1 IN VARCHAR)
    as language java name 'jmsSample.main (java.lang.String[])';
    Invoke the stored procedure:
    call jmsproc('hello');
    Database-Assisted Web Publishing (Cache Invalidation)
    One of the common issues application architects must face is how to cache database information reliably to increase overall system performance. JCACHE is an upcoming standard specification (JSR 107) that addresses this problem. It specifies an approach for temporary, in-memory caching of Java objects, including object creation, shared access, spooling, invalidation, and consistency across JVMs. It can be used to cache read-mostly data such as product catalogs and price lists within JSP. Using JCACHE, most queries will have response times an order of magnitude faster because of cached data (in-house testing showed response times about 15 times faster).
    In order to track all the changes to the origin data and refresh the cached data, a Java stored procedure is attached to a table as a trigger. Any change to this table will result in the automatic invocation of this stored procedure, which in turn will call out a defined JSP to invalidate the JCACHE object that maps its state to the database table. Upon invalidation, the very next query will force the cache to be refreshed from the database. Next Steps
    READ MORE about Java Stored Procedures
    This article is adapted from the white paper "Unleash the Power of Java Stored Procedures." You can find the white paper at:
    /tech/java/java_db/pdf/
    OW_30820_JAVA_STORED_PROC_paper.PDF
    New PL/SQL features in Oracle9i Database, Release 2
    /tech/pl_sql/pdf/
    Paper_30720_Doc.pdf
    Resolver Spec
    /docs/products/oracle9i/
    doc_library/release2/java.920/a96659.pdf
    OracleJVM and Java 2 Security
    /docs/products/oracle9i/
    doc_library/release2/java.920/a96656.pdf
    DOWNLOAD Code
    Exercise code examples from this article:
    /sample_code/tech/
    java/jsp/Oracle9iJSPSamples.html
    LEARN about stored procedures as Web services
    /tech/webservices
    Extending Database Functionality
    One of the great things about running Java code directly in the database is the ability to implement new functionality by simply loading the code or library and using the Call Spec to make the entry points (public static methods) available to SQL, PL/SQL, Java, J2EE, and non-Java APIs. Oracle9i Database customers can easily extend database functionality. Oracle itself leverages this capability for new utilities and packages such as the XML Developer Kits (XDKs).
    Bridging SQL, PL/SQL, Java, J2EE, .NET, and XML
    The Oracle XDK is written in Java and exposes its public methods as Java stored procedures, extending the database's XML programmability. SQL, PL/SQL, Java, J2EE, and non-Java (.NET) business logic all have access to the XML parser, the XSLT processor, the XPath engine, and XML SQL Utility (XSU).
    The XML parser is accessible through the xmlparser and xmldom packages. XSU is a Java utility that generates an XML document from SQL queries or a JDBC ResultSet, and writes data from an XML document into a database table or view. Using XSU, XML output can be produced as Text, DOM trees, or DTDs. XSU is exposed to PL/SQL through the dbms_xmlquery and dbms_xmlsave packages.
    Conclusion
    The integration of the Oracle database with a Java VM enables the creation of portable, powerful, database-independent data logic and persistence logic. The loose coupling of business logic that runs in the middle tier with data logic that runs in the database tier improves application scalability, performance, flexibility, and maintenance.
    Kuassi Mensah ([email protected]) is a product manager in the Server Technologies division at Oracle.
    http://otn.oracle.com/oramag/oracle/03-jan/o13java.html
    Joel Pérez

  • How to Call Crystal Reports from Swing Application

    Hi All,
    I have a requirement for calling Crystal Report from Swing Application. Please let me know how can I do that, and also provide the Source code for calling the crystal report.
    Thanks in advance.
    Chandra

    hi
    this is the code that i am using in my application which is similar to urs. but i am working with CR XI so make all the neccessary changes.
        import java.awt.*;
        import javax.swing.*;
        import com.crystaldecisions.ReportViewer.*;
        import com.crystaldecisions.reports.sdk.*;
        import com.crystaldecisions.sdk.occa.report.reportsource.*;
       public class HelloSwing
            public static void createAndShowGUI()
                try
                    //Make sure we have nice window decorations.
                    JFrame.setDefaultLookAndFeelDecorated(true);
                    //Create and set up the window.
                    JFrame frame = new JFrame("HelloWorldSwing");
                    frame.setTitle( "Testing Reports");
                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                   ReportViewerBean viewer = new ReportViewerBean();
                    viewer.init( new String[0], null, null, null);
                  ReportClientDocument rpt = new ReportClientDocument();
                    rpt.open( "report path", 1 );
                    IReportSource rptSource = rpt.getReportSource();
                    viewer.setReportSource( rptSource );
                    frame.getContentPane().add( viewer, BorderLayout.CENTER );
                    frame.setSize( 700, 500 );
                    frame.setVisible(true);
                    viewer.start();
                catch ( Exception exception )
                    System.out.println( exception.toString() );
            public static void main(String[] args)
                javax.swing.SwingUtilities.invokeLater(new Runnable()
                    public void run()
                        createAndShowGUI();
       there are 23 jar files that u need to import into ur package. but remember that ReportViewerBean should be the first jar file in the list & it should be followed by jrcerom.jar
    specify the key in the CRConfig.xml file (which also has to be imported in the package)
    u can find these jar files in the common objects folder in your program files.
    hope it helps. best of luck

  • Opening template issue in Web Application Designer (Loading problem)

    Hi,
    When i open a query in Web Application Designer through the BWdev, it is opening but when i open a query in Web Application Designer through the BWProduction it is not opening, it is displaying a msg box like this
      " Operation Failed! NO detailed error information from backend available ".
    In the opening of the webtemplate itself it is showing that box when loading mime type imgs.
      If anybody knows pls send msg.
    Thanks & Regds,
    Giri.

    Hi Giri,
    I have a similar problem ...
    when I give the user SAP_ALL security profile,
    the problem is gone,
    but I DON'T want to do that...
    can you please specify how to give full authentication access to WAD only
    thanks a million!
    Edwin

  • Issue with receiving response from web application

    Hi,
    I have configured B2B with business protocol as 'Custom document document over Internet', document exchange protocol as AS2-1.1 and transport protocol HTTPS1.1 to invoke a web application deployed in Oracle Application server. B2B is able to invoke the web application with HTTPS request which contains an xml.
    I have set the acknowledgment mode as 'Sync' and 'Is acknowledgement handled by B2B' as true. But while receiving the response from web application which is an xml, B2B is showing the error as
    Description: Unable to identify the document protocol of the message
    StackTrace:
    Error -: AIP-50083: Document protocol identification error
         at oracle.tip.adapter.b2b.engine.Engine.identifyDocument(Engine.java:3244)
         at oracle.tip.adapter.b2b.engine.Engine.processIncomingMessage(Engine.java:1665)
         at oracle.tip.adapter.b2b.msgproc.Request.postTransmit(Request.java:2382)
         at oracle.tip.adapter.b2b.msgproc.Request.outgoingRequestPostColab(Request.java:1825)
         at oracle.tip.adapter.b2b.msgproc.Request.outgoingRequest(Request.java:974)
         at oracle.tip.adapter.b2b.engine.Engine.processOutgoingMessage(Engine.java:1166)
         at oracle.tip.adapter.b2b.data.MsgListener.onMessage(MsgListener.java:833)
         at oracle.tip.adapter.b2b.data.MsgListener.run(MsgListener.java:400)
         at java.lang.Thread.run(Thread.java:534)
    I have added headers as present in the wire message of the request. In B2B, it is showing the wire message for response as follows.
    TO_PARTY=XXX
    AS2-To=XXX
    DOCTYPE_NAME=TestAS2DT
    DOCTYPE_REVISION=1.0
    Date=Tue, 03 Nov 2009 06:09:22 GMT
    AS2-Version=1.1
    AS2-From=YYY
    Content-Transfer-Encoding=binary
    [email protected]
    ACTION_NAME=TestAS2_BA
    Content-Type=application/xml
    Server=Oracle-Application-Server-10g/10.1.3.4.0 Oracle-HTTP-Server
    MIME-version=1.0
    User-Agent=AS2 Server
    FROM_PARTY=YYY
    Content-Disposition=attachment; filename=1.0
    Connection=Keep-Alive
    From=YYY
    Keep-Alive=timeout=15, max=100
    <?xml version="1.0" encoding="UTF-8"?>
    <Books>
    <Book>
    <BookTitle>Ajax Hacks</BookTitle>
    <Author>Bruce W. Perry</Author>
    <PubDate>March 2006</PubDate>
    </Book>
    </Books>
    I am able to see the xml sent as response from web application in Payload as follows.
    <?xml version="1.0" encoding="UTF-8"?>
    <Books>
    <Book>
    <BookTitle>Ajax Hacks</BookTitle>
    <Author>Bruce W. Perry</Author>
    <PubDate>March 2006</PubDate>
    </Book>
    </Books>
    I am able to see the HTTP response in b2b_dc_transport.log. In transport log it is not showing any error. Please help me to fix this issue.

    Hi,
    Request and Response should be part of same agreement. I hope you are not confused between Acknowledgement and Response. Acknowledgement can be received in the same session (sync mode) but Response will always come in a different session and will be treated as a different document. If, for request, party A is initiator and B is responder then for response party B will be initiator and party A will be responder (as Requset and Response are two docs in case of Custom Document)
    For configuring X-Path, please refer section 8.3.11 Configuring the XPath Expression for a Custom XML Document at below link -
    http://download.oracle.com/docs/cd/B14099_19/integrate.1012/b19370/busact_coll.htm#sthref784
    Please let us know whether you are trying to receive a response or Ack?
    Regards,
    Anuj

  • Unable to Open Bex report from SAP APO User Menu

    Hi All,
    I am an  SAP APO consultant, and have not miuch expereice in BEx reporting. As APO uses Build in BI for reporting and pulling history from either external BW or R/3.
    Now my issue all BEx reports we use are assigned ot my user menu and when I select a report, I would expect report to open but an excel sheet opens and closes and nothing happens. However I am able to open this reports from my desktop menu selecting Business explorer and Analyzer and linking my SAP system. I use Excel 2007 , Is this some compactibilty issue or is there anything I need to do?

    Hi KV,
    There's a couple of possible root cause why you dont see properly the Bex Report.
    Can you share to me the APO version and the BW software component being used?
    In case this is still in the 3.x, 4.x APO, I think, a separate BW add on is needed for you to run your BEx report properly. You can ask your basis team for this separate installation.
    Btw, is this report working before, meaning was it pulled successfully already in the past?
    Can you try doing this again in a separate workstation, as the BW add on is installed separately per workstation.
    Its possible that this is also an auth issue that the user you are using is not capable enough to run BEx.
    As of now, I have not encountered any Bex issue that is related with the Excel version, I have tried running Bex in Excel 2007 no issue also. I think it maybe more related with the OS you are using, if its in Vista already what I know is you need to add your excel as a trusted document before you can run bex fro Vista.
    Let me think of other possibilities.
    Hope this helps.
    - Jeff

  • How to open Crystal Report from the SAP GUI ?

    Hi experts,
        We have developed some reports for our ECC 6.0 system by using Crystal Report 2008 and SAP integration kit , these reports are published to BO edge 3.1 server.  To view the report, our user have to open IE and login Infoview first.
       For convenience, we want to open Crystal report from SAPGUI directly without login BOE, How can we do it? 
    Thanks.

    Hi
    please take a look here
    Crystal Reports
    Regards,
    STratos

Maybe you are looking for