Loadjava + BI Publisher API's
Hi my name is Ike Wiggins. I'm exploring loading the BI Publisher API's as jar file. The end result is that my TestConfiguration class is still invalid.......It's driving me nuckin futs :-). If anyone has any idea's or suggestions or would like me to repeat step let me know. This is my last shot before I give up! I know there has to something I missing. Also, can anyone tell me what table or sys view has a record of the resource objects?
FYI: I verified the file will compile and run with javac.
First Try:+
bash-3.2$ dropjava -u scott/tiger bipublisher/jp/TestConfiguration
bash-3.2$ loadjava -force -resolve -user scott/tiger -verbose bipublisher/jp/TestConfiguration.java
arguments: '-user' 'scott/***' '-force' *'-resolve'* '-verbose' 'bipublisher/jp/TestConfiguration.java'
creating : source bipublisher/jp/TestConfiguration
loading : source bipublisher/jp/TestConfiguration
resolving: source bipublisher/jp/TestConfiguration
errors : source bipublisher/jp/TestConfiguration
ORA-29535: source requires recompilation
bipublisher/jp/TestConfiguration:11: cannot resolve symbol
symbol : class DataProcessor
location: package dataengine
import oracle.apps.xdo.dataengine.DataProcessor;
^
bipublisher/jp/TestConfiguration:91: cannot resolve symbol
symbol : class DataProcessor
location: class bipublisher.jp.TestConfiguration
DataProcessor dataProcessor = new DataProcessor();
^
bipublisher/jp/TestConfiguration:91: cannot resolve symbol
symbol : class DataProcessor
location: class bipublisher.jp.TestConfiguration
DataProcessor dataProcessor = new DataProcessor();
^
3 errors
The following operations failed
source bipublisher/jp/TestConfiguration: resolution
exiting : Failures occurred during processing
Second try:*
bash-3.2$ loadjava -force -user scott/tiger -verbose -jarasresource j5472959_xdo.zip
arguments: '-user' 'scott/***' '-force' '-verbose' '-jarasresource' 'j5472959_xdo.zip'
creating : resource j5472959_xdo.zip
loading : resource j5472959_xdo.zip
Classes Loaded: 0
Resources Loaded: 1
Sources Loaded: 0
Published Interfaces: 0
Classes generated: 0
Classes skipped: 0
Synonyms Created: 0
Errors: 0
bash-3.2$ loadjava -force -user scott/tiger -verbose bipublisher/jp/TestConfiguration.java
arguments: '-user' 'scott/***' '-force' '-verbose' 'bipublisher/jp/TestConfiguration.java'
creating : source bipublisher/jp/TestConfiguration
loading : source bipublisher/jp/TestConfiguration
Classes Loaded: 0
Resources Loaded: 0
Sources Loaded: 1
Published Interfaces: 0
Classes generated: 0
Classes skipped: 0
Synonyms Created: 0
Errors: 0
End result class is still invalid
Third try:*
bash-3.2$ dropjava -u scott/tiger bipublisher/jp/TestConfiguration.java
bash-3.2$ dropjava -u scott/tiger -jarasresource j5472959_xdo.zip
bash-3.2$ loadjava -force -stdout -user scott/tiger -verbose bipublisher/jp/TestConfiguration.java -jarasresource j5472959_xdo.zip
arguments: '-user' 'scott/***' '-force' '-stdout' '-verbose' 'bipublisher/jp/TestConfiguration.java' '-jarasresource' 'j5472959_xdo.zip'
creating : source bipublisher/jp/TestConfiguration
loading : source bipublisher/jp/TestConfiguration
creating : resource j5472959_xdo.zip
loading : resource j5472959_xdo.zip
Classes Loaded: 0
Resources Loaded: 1
Sources Loaded: 1
Published Interfaces: 0
Classes generated: 0
Classes skipped: 0
Synonyms Created: 0
Errors: 0
End result class is still invalid
Thanks,
Ike Wiggins
http://bipublisher.blogspot.com
TestConfiguration Class
package bipublisher.jp;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.Connection;
import java.sql.ResultSet;
//Oracle extensions to JDBC imports
//import oracle.apps.xdo.common.log.Logger;
import oracle.apps.xdo.dataengine.DataProcessor;
//import oracle.apps.xdo.dataengine.DEUtil;
import oracle.jdbc.driver.OracleDriver;
public class TestConfiguration {
public TestConfiguration() {
public static void main(String[] args) {
//TestConfiguration testConfiguration = new TestConfiguration();
TestConfiguration.getEmployeeXML();
public static String getEmployeeXML() {
Connection connection = null; // Database Connection Object
StringBuffer dataTemplateXml = new StringBuffer();
try {
// Get a Default Database Connection using Server Side JDBC Driver.
// Note : This class will be loaded on the Database Server and hence use a
// Server Side JDBC Driver to get default Connection to Database.
connection = new OracleDriver().defaultConnection();
dataTemplateXml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?> \r\n");
dataTemplateXml.append("<dataTemplate name=\"CORPORATION\" defaultPackage=\"\" description=\"Demo Data Template\" version=\"1.0\">\r\n");
dataTemplateXml.append("<properties>\r\n");
dataTemplateXml.append(" <property name=\"include_parameters\" value=\"true\"/>\r\n");
dataTemplateXml.append(" <property name=\"include_null_Element\" value=\"false\"/>\r\n");
dataTemplateXml.append(" <property name=\"include_rowsettag\" value=\"false\"/>\r\n");
dataTemplateXml.append(" <property name=\"scalable_mode\" value=\"on\"/>\r\n");
dataTemplateXml.append(" <property name=\"debug_mode\" value=\"off\"/>\r\n");
dataTemplateXml.append("</properties>\r\n");
dataTemplateXml.append("<parameters>\r\n");
dataTemplateXml.append(" <parameter name=\"NAME\" defaultValue=\"Vision\" dataType = \"varchar2\"/>\r\n");
dataTemplateXml.append("</parameters>\r\n");
dataTemplateXml.append("<lexicals>\r\n");
dataTemplateXml.append("</lexicals>\r\n");
dataTemplateXml.append(" <dataQuery>\r\n");
dataTemplateXml.append(" <sqlStatement name=\"Q_DEPT\">\r\n");
dataTemplateXml.append(" <![CDATA[SELECT DNAME, DEPTNO\r\n");
dataTemplateXml.append(" FROM dept\r\n");
dataTemplateXml.append(" ORDER BY dname]]>\r\n");
dataTemplateXml.append(" </sqlStatement>\r\n");
dataTemplateXml.append(" <sqlStatement name=\"Q_EMPLOYEE\">\r\n");
dataTemplateXml.append(" <![CDATA[SELECT DEPTNO AS DEPARTTNO,EMPNO, ENAME, JOB, SAL\r\n");
dataTemplateXml.append(" FROM emp\r\n");
dataTemplateXml.append(" WHERE deptno = :deptno\r\n");
dataTemplateXml.append(" ORDER BY ename]]>\r\n");
dataTemplateXml.append(" </sqlStatement>\r\n");
dataTemplateXml.append(" </dataQuery>\r\n");
dataTemplateXml.append(" <dataStructure>\r\n");
dataTemplateXml.append(" <group name=\"DEPT\" source=\"Q_DEPT\">\r\n");
dataTemplateXml.append(" <element name=\"DEPT_NAME\" value=\"DNAME\"/>\r\n");
dataTemplateXml.append(" <element name=\"DEPT_NUMBER\" value=\"DEPTNO\"/>\r\n");
dataTemplateXml.append(" <group name=\"EMPLOYEE\" source=\"Q_EMPLOYEE\">\r\n");
dataTemplateXml.append(" <element name=\"EMP_DEPT_NUMBER\" value=\"DEPT.DEPT_NUMBER\"/>\r\n");
dataTemplateXml.append(" <element name=\"EMPNO\" value=\"EMPNO\"/>\r\n");
dataTemplateXml.append(" <element name=\"ENAME\" value=\"ENAME\"/>\r\n");
dataTemplateXml.append(" <element name=\"JOB\" value=\"JOB\"/>\r\n");
dataTemplateXml.append(" <element name=\"SAL\" value=\"SAL\"/>\r\n");
dataTemplateXml.append(" </group>\r\n");
dataTemplateXml.append(" </group>\r\n");
dataTemplateXml.append(" </dataStructure>\r\n");
dataTemplateXml.append("</dataTemplate>\r\n");
System.out.print(dataTemplateXml.toString());
DataProcessor dataProcessor = new DataProcessor();
dataProcessor.setDataTemplate(dataTemplateXml.toString());
//dataProcessor.setParameters(getParameters());
dataProcessor.setConnection(connection);
dataProcessor.setOutput("/Users/ike/tmp/" + "1234" + ".xml");
dataProcessor.includeParameters(true);
dataProcessor.processData();
return "yay!";
// Close Statement, Result Set and Connection
} catch (Exception ex) { // Trap SQL Errors
System.err.println("Error in Executing getEmployeeXML" + '\n' + ex.toString());
return "nay!";
} finally {
try {
//connection.close();
} catch (Exception e) {
e.printStackTrace();
}Edited by: Ike Wiggins on Jun 28, 2009 8:00 PM
The Oracle JVM requires that all classes that are needed be loaded into the database unless a specific resolver spec is used. If the resolver spec (* -) is specified, then unresolved classes are silently ignored but will cause runtime or compile time errors if referenced.
If the required classes are not present then the class will remain invalid until all the classes it references are loaded, etc.
If you want the classes in a specific jar to be seen then do not use -jarasresource. This just makes the jar a resource and it will not be used for any resolution for other classes.
You will need to load all the classes that are referenced by your test code as well as any classes that they may reference. There is a tool, ojvmtc which can define the list of classes. When they are loaded, either in a jar or separately then your class should compile or load and be valid.
We do not load xdo classes as default. Try using your second try first without the -jarasresource and then your first try second. Issues may still arise with the xdo jar if it requires other apps classes to be loaded.
Similar Messages
-
How to trigger xml publisher API (ex:Delivering Documents via e-Mail)?
Dear All:
How to use xml publisher API ?
In user's guide always talk API's code.(ex:Delivering Documents via e-Mail
// create delivery manager instance
DeliveryManager dm = new DeliveryManager();
// create a delivery request
DeliveryRequest req =
dm.createRequest(DeliveryManager.TYPE_SMTP_EMAIL);
// set email subject
req.addProperty(DeliveryPropertyDefinitions.SMTP_SUBJECT, "Invoice");
// set SMTP server host
req.addProperty(
DeliveryPropertyDefinitions.SMTP_HOST, "mysmtphost");
// set the sender email address
req.addProperty(DeliveryPropertyDefinitions.SMTP_FROM,
"[email protected]");
// set the destination email address
req.addProperty(
DeliveryPropertyDefinitions.SMTP_TO_RECIPIENTS,
"[email protected], [email protected]" );
// set the content type of the email body
req.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_TYPE,
"text/html");
// set the document file name appeared in the email
req.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_FILENAME,
"body.html");
// set the document to deliver
req.setDocument("/document/invoice.html");
// submit the request
req.submit();
// close the request
req.close(); )
Not say how to use this code to account effect !!
Having anybody to use API before?
Please tell me how to use that,thanks!!
BY Emily_yeHi Emily
I had the same question. After much research and a lot of deduction I produced the following:
import oracle.apps.fnd.cp.request.*;
import java.io.*;
import java.sql.*;
import java.util.Vector;
import oracle.apps.fnd.util.*;
import oracle.apps.xdo.XDOException;
import oracle.apps.xdo.common.pdf.util.PDFDocMerger;
import oracle.apps.xdo.delivery.DeliveryException;
import oracle.apps.xdo.delivery.DeliveryManager;
import oracle.apps.xdo.delivery.DeliveryPropertyDefinitions;
import oracle.apps.xdo.delivery.DeliveryRequest;
import oracle.jdbc.driver.OracleCallableStatement;
public class RunTravProgram implements JavaConcurrentProgram {
CpContext mCtx; // global reference to concurrent program context
LogFile logFile; // global reference to context logfile
OutFile outFile; // global reference to context outfile
Connection mConn = null;
ReqCompletion lRC;
//File Separator
private String mFileSeparator;
// globals for template
String XDOAppShortName = "";
String XDOtemplateCode = "";
// hard-wired constants for template addition
final String XDOLanguage = "en";
final String XDOTerritory = "US";
final String XDOFinal_format = "PDF";
final String XDOtemplateType = "TEMPLATE_SOURCE";
String PDFFile = "";
String outFilePath = "";
String progShortName = "";
String progDesc = "";
Integer iRequestID = 0;
String sWatermark = ""; // watermark text
String emailAddress = ""; // Not Implemented
String emailServer = "";
public static final String M_SUCCESS = "SUCCESS";
public static final String M_ERROR = "ERROR";
public static final String M_WARNING = "WARNING";
* Create a Java FND ConcurrentRequest objec to call fnd_request.submit_request
* The first three parameters are:
* Application Short Name -- Application Short name (ie. WAHC)
* Current Program Short Name -- Concurrent Program being called
* Current Program Description -- description for above
* These should be the first three parameters passed by the concurrent
* program in this order. The next two are constants set to null
* These are followed by the parameters passed by the first concurrent
* program that are being passed to the next concurrent program.
* I am limiting the parameter list to ten for now.
// Dynamic PLSQL statement used to get a concurrent request completion status
// This is necessary because the java class does not provide this method :-(
String mGetCompleteStatus =
"DECLARE R_VAL BOOLEAN; " + "b_phase VARCHAR2 (80) := NULL; " +
"b_status VARCHAR2 (80) := NULL; " +
"b_dev_phase VARCHAR2 (80) := NULL; " +
"b_dev_status VARCHAR2 (80) := NULL; " +
"b_message VARCHAR2 (240) := NULL; " + "BEGIN " +
"r_val := fnd_concurrent.wait_for_request (:1,5,1000," +
"b_phase,b_status,b_dev_phase,b_dev_status,b_message); " +
":2 := b_phase; " + ":3 := b_status; " + ":4 := b_message; " + "end;";
public RunTravProgram() {
// no constructor necessary for now
* Concurrent Processing provides an interface 'JavaConcurrentProgram' with abstract method
* runProgram() which passes the concurrent processing context 'CpContext'. The concurrent
* program developer will implement all of their business logic for a concurrent program in
* runProgram(). The main() method, implemented by AOL, will call runProgram() after
* performing all of the required initialization for the concurrent program, including
* establishing a database connection, initializing the required contexts, and setting up
* the log and output files. CpContext will have the request specific log and output
* file input methods
public void runProgram(CpContext pCpContext) {
mCtx = pCpContext;
OracleCallableStatement lStmt = null;
boolean bCompletion = true;
String sPhase = "";
String sStatus = "";
String sMessage = "";
//get handle on request completion object for reporting status
lRC = pCpContext.getReqCompletion();
// assign logfile
logFile = pCpContext.getLogFile();
// assign outfile
outFile = pCpContext.getOutFile();
// assign fileseparator
mFileSeparator = getFileSeparator();
// get the JDBC connection object
mConn = pCpContext.getJDBCConnection();
outFilePath =
((new File(outFile.getFileName())).getParent() == null ? "" :
(new File(outFile.getFileName())).getParent() +
mFileSeparator);
logFile.writeln("OutFile File Path: -> " + outFilePath, 0);
// get parameter list object from CpContext
// these come from the concurrent program
ParameterList lPara = pCpContext.getParameterList();
// create a temporary array and retrieve the parameters created by
// the program. Currently limiting the number of parameters to 10 for now
String pvals[] = new String[10];
int pcount = 0;
while (lPara.hasMoreElements()) {
NameValueType aNVT = lPara.nextParameter();
pvals[pcount] = aNVT.getValue();
pcount++;
if (pcount > 9)
break;
// send parameter values to the log file
logFile.writeln("Arg 1: APPL_SHORT_NAME -> " + pvals[0], 0);
logFile.writeln("Arg 2: CURR_PROG_SHORT_NAME -> " + pvals[1], 0);
logFile.writeln("Arg 3: CURR_PROG_DESCRIPTION -> " + pvals[2], 0);
logFile.writeln("Arg 4: TEMPLATE_CODE -> " + pvals[3], 0);
logFile.writeln("Arg 5: P_PLANT_CODE -> " + pvals[4], 0);
logFile.writeln("Arg 6: P_BATCH_NO -> " + pvals[5], 0);
logFile.writeln("Arg 7: P_SHOW_PROMISE -> " + pvals[6], 0);
logFile.writeln("Arg 8: P_WATERMARK -> " + pvals[7], 0);
XDOtemplateCode = pvals[3]; // store the template name globally
progShortName = pvals[1]; // store the program short name globally
XDOAppShortName = pvals[0]; // store the application short name
sWatermark = pvals[7]; // store the watermark globally
progDesc = pvals[2];
try {
// create a concurrent request object
ConcurrentRequest cr = new ConcurrentRequest(mConn);
// use the parameters to call fnd_request.submit_request
cr.addLayout(XDOAppShortName, XDOtemplateCode, XDOLanguage,
XDOTerritory, XDOFinal_format);
Vector param = new Vector();
param.add(pvals[4]); // plant code
param.add(pvals[5]); // batch ID
param.add(pvals[6]); // Show SO info flag
iRequestID =
cr.submitRequest(XDOAppShortName, progShortName, progDesc,
null, false, param);
mConn.commit();
// send the request ID to the log file
logFile.writeln("-- Request ID: ->" + Integer.toString(iRequestID),
0);
// call fnd_concurrent.wait_for_request to wait until the request
// has ended - use this to check the request status before proceeding
lStmt =
(OracleCallableStatement)mConn.prepareCall(mGetCompleteStatus);
lStmt.setInt(1, iRequestID);
lStmt.registerOutParameter(2, java.sql.Types.VARCHAR, 0, 255);
lStmt.registerOutParameter(3, java.sql.Types.VARCHAR, 0, 255);
lStmt.registerOutParameter(4, java.sql.Types.VARCHAR, 0, 255);
lStmt.execute();
// get the results of the completion
sPhase = lStmt.getString(2);
sStatus = lStmt.getString(3);
sMessage = lStmt.getString(4);
lStmt.close();
// send the results of the request processing to the log file
logFile.writeln("-- Phase: -> " + sPhase, 0);
logFile.writeln("-- Status: -> " + sStatus, 0);
logFile.writeln("-- Message: -> " + sMessage, 0);
// test here to make sure it completed correctly
if (sPhase.equals("Completed") && sStatus.equals("Normal")) {
// construct the PDF file name generated by the called request
PDFFile = progShortName + "_" + iRequestID + "_1.pdf";
// add a watermark to the generated PDF
// create an output stream for the existing PDF
// and set ouput to append
OutputStream pdfout =
new FileOutputStream(outFilePath + PDFFile, true);
// create an inputstream array (required by calling method)
InputStream pdfin[] = new InputStream[1];
pdfin[0] = new FileInputStream(outFilePath + PDFFile);
// add the watermark passed as a parameter
bCompletion = addWatermark(pdfin, pdfout);
// assign the modified file to the context out
// this will print using this request
if (bCompletion)
outFile.setOutFile(outFilePath + PDFFile);
// release the connection object
// and set the completion status for the request
if (bCompletion) {
pCpContext.getReqCompletion().setCompletion(ReqCompletion.NORMAL,
} else {
lRC.setCompletion(ReqCompletion.WARNING, M_WARNING);
pCpContext.releaseJDBCConnection();
} catch (SQLException s) {
logFile.writeln("SQL Error: Exception thrown w/ error message: " +
s.getMessage(), 0);
lRC.setCompletion(ReqCompletion.WARNING, M_WARNING);
pCpContext.releaseJDBCConnection();
} catch (IOException ioe) {
logFile.writeln("IO Error: Exception thrown w/ error message: " +
ioe.getMessage(), 0);
lRC.setCompletion(ReqCompletion.WARNING, M_WARNING);
pCpContext.releaseJDBCConnection();
} catch (Exception e) {
logFile.writeln("General Exception: " + e.getMessage(), 0);
lRC.setCompletion(ReqCompletion.WARNING, M_WARNING);
pCpContext.releaseJDBCConnection();
} finally {
try {
if (lStmt != null)
lStmt.close();
pCpContext.releaseJDBCConnection();
} catch (SQLException e) {
logFile.writeln(e.getMessage(), 0);
lRC.setCompletion(ReqCompletion.WARNING, M_WARNING);
* addWatermark()
* @param pdfin
* @param pdfout
* @return boolean
* This method will work for an existing document or a newly generated
* one. Set the outputstream append flag to false for a new document
* and true for an existing one.
* NOTE: PDFDocMerger requires an inputstream array even if it only
* contains one document.
private boolean addWatermark(InputStream[] pdfin, OutputStream pdfout) {
if (!sWatermark.equals("")) {
try {
PDFDocMerger docMerger = new PDFDocMerger(pdfin, pdfout);
//docMerger.setTextDefaultWatermark(sWatermark);
docMerger.setTextWatermark(sWatermark, 80f, 50f);
docMerger.setTextWatermarkAngle(25);
docMerger.setTextWatermarkColor(1.0f, .50f, .50f);
docMerger.setTextWatermarkFont("Garamond", 100);
docMerger.process();
docMerger = null;
return true;
} catch (XDOException e) {
logFile.writeln("Watermark process Failed: " + e.getMessage(),
0);
return false;
return true;
* Returns the file separator
private String getFileSeparator() {
return (System.getProperty("file.separator"));
* EBSEmailDelivery
* @return
* Just for testing right now.
private boolean EBSEmailDelivery() {
if (!emailAddress.equals("")) {
try {
// create delivery manager instance
DeliveryManager delMgr = new DeliveryManager();
// create a delivery request
DeliveryRequest delReq =
delMgr.createRequest(DeliveryManager.TYPE_SMTP_EMAIL);
// set email subject
delReq.addProperty(DeliveryPropertyDefinitions.SMTP_SUBJECT,
"EBS Report:" + progDesc +
" for request: " + iRequestID);
// set SMTP server host
delReq.addProperty(DeliveryPropertyDefinitions.SMTP_HOST,
emailServer); // need to supply the email smtp server
// set the sender email address
delReq.addProperty(DeliveryPropertyDefinitions.SMTP_FROM,
emailAddress);
// set the destination email address
delReq.addProperty(DeliveryPropertyDefinitions.SMTP_TO_RECIPIENTS,
emailAddress);
// set the content type of the email body
delReq.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_TYPE,
"application/pdf");
// set the document file name appeared in the email
delReq.addProperty(DeliveryPropertyDefinitions.SMTP_CONTENT_FILENAME,
PDFFile);
// set the document to deliver
delReq.setDocument(outFilePath + PDFFile);
// submit the request
delReq.submit();
// close the request
delReq.close();
return true;
} catch (DeliveryException de) {
logFile.writeln("email process Failed: " + de.getMessage(), 0);
return false;
return true;
This is the class for a JCP I created to perform the following:
1) Launch an existing Concurrent Program that produces PDF output
2) Grab the PDF and apply a watermark based on user input or conditions
3) associate the modified PDF to CP output for PASTA printing
It isn't elegant but it is fairly simple. I added the email capability and tested it but am not implementing it at the present time.
there is a fair amount of information out there that explains how to create a JCP councurrent program but very little that demonstrates the class needed.
I hope this helps -
Where are the Inquiry and Publishing API
In the "Oracle App. Server Web Services: Developer's Guide: 10g(9.0.4)" document on tahiti, the author mentions several UDDI API (Inquiry API, Publishing API,..) and several examples in something named "uddidemo.zip". I CAN NOT FIND ANY OF THESE DEMO OR APIs, in http://otn.oracle.com/tech/java/oc4j/demos (according to the book). This doc was put out in September 2003.
Does anyone know where Oracle keeps these UDDI demo/API? Or is this doc out of date, already.Its on the keyboard somewhere on top center close to the number keys. To be straight, its just below F12 key.
//Click on Kudos and Accept as Solution if my reply was helpful and answered your question//
I am an HP employee!! -
Oracle BPM Suite 11g published API.
Hi Guys,
Can any one provide the links or docs for Published API for Oracle BPM suite 11g,Like REST etc.
It has any Remote Interfaces
Thanks,
VenkatHere a few links regarding the APIs:
API JavaDoc reference -
http://docs.oracle.com/cd/E28389_01/apirefs.1111/e25378/oracle/bpm/services/instancequery/IInstanceQueryService.html
Simple list example -
http://soadev.blogspot.in/2011/07/querying-oracle-bpm-process-instances.html
Aborting instances -
http://download.oracle.com/docs/cd/E17904_01/apirefs.1111/e10659/oracle/soa/management/facade/package-tree.html
Creating instances -
http://niallcblogs.blogspot.com/2011/12/invoking-bpm-processes-via-java.html
Building a custom worklist ap -
http://redstack.wordpress.com/worklist/
http://redstack.wordpress.com/2011/03/09/creating-the-domain-layer-for-the-worklist/
http://redstack.wordpress.com/2011/03/09/implementing-task-initiation/
Purging Instances -
http://niallcblogs.blogspot.com/2011/12/soabpm-apis-manipulating-composites-and.html
Instance Query -
http://java.net/projects/oraclebpmsuite11g/downloads/directory/Samples/bpm-api-101-instance-query
Human Workflow Services / Human Task API -
http://docs.oracle.com/cd/E23943_01/dev.1111/e10224/bp_workflow.htm
http://docs.oracle.com/cd/E23943_01/apirefs.1111/e10660/toc.htm
Hope this helps,
Dan -
XML publisher API registration
Hai,
Can anyone tell me the procedures to be followed for calling a XML publisher APIs in EBS to get certain output format?
Thanks in Advance.The document
XML Publisher 5.6.2 Core Components APIs
can be found here:
http://www.oracle.com/technology/products/xml-publisher/xmlpdocs.html -
UDDI - inquiry/publish API
Hi all,
i want to use the UDDI server from XI. With the UDDI client from XI i can publish my web services.
But now i want to configure the UDDI Client in transaction suddireg in order to get access to UDDI from ERP (transaction wsadmin). But i have a problem with both rfc destinations.
In the documentation the standard URLs are like the following:
http://<host>:<port>/uddi/api/inquiry
http://<host>:<port>/uddi/api/publish
I have created a rfc destination with type G.
host = XI host
port = XI port
path prefix: /uddi/api/inquiry
But the rfc destionation is not working.
Whats wrong?
Please don't refer to whole documentations!!!
Only helpful answers are rewarded.
regardsHI
Could you pls tell me what is the parameters you are using for the rfc destination..
Host Name Findings .. Go to System--->Status find the Host Name
Path prefix use : /rep
I think it will work,if not do let me know,
Regards
Manas. -
Calling BI Publisher API's from pl/sql
Hi,
We are currently in Oracle Applications : 12.0.4, RDBMS : 10.2.0.3.0 and have a requirement to generate a pdf report using BI Publisher from pl/sql.
We do not want to go to Concurrent Manager because this report will be generated every minute and should be real time.
So my questions are:
1) Can I load the bi publisher jar files into the database and try generating the report using the api's. Is this approach correct?
2) Can someone help me with the jar files that i need to load. I don't have Java experience and hence need to know this.
3) With this approach can I directly print to the users printer. The user doesn't want to see the report output on the screen.
Please let me know how should i go about with this.
Thanks.Hi Ike,
Tim has suggested to use Web services and I have few questions about it. see below.
We are currently in Oracle Applications : 12.0.4. We are using BI Publisher that comes with Oracle Applications. I had few questions :
Do we need to install BI Product separately to use the Web Service Feature ?
Do we need to install some components for BI to use the Web Service Feature ?
How do we integrate BI Web services with Oracle Applications?
I went through the guide and found an example to call a report . I tried the url for bipEndpoint variable and it doesn't return anything.
My report is defined in Oracle applications as a Concurrent Program. What do we need to pass in xdofile variable.
Please let me know how to proceed with this.
Thanks.
--- Sample Code from guide Oracle® Business Intelligence New Features Guide Release 10.1.3.4.1
public static void runReport() throws Exception {
final String bipEndpoint =
"http://mycompany.com:9999/xmlpserver/services/PublicReportService?wsdl";
final String bipNamespace = "http://xmlns.oracle.com/oxp/service/PublicReportService";
final String xdofile ="/HR Manager/Employee Salary Report/Employee Salary Report.xdo";;;
// set up the call object
service = new Service();
call = (Call) service.createCall();
call.setTargetEndpointAddress(new URL(bipEndpoint));
// TEST Run Report
System.out.println("TESTING runReport Service BEGIN");
// register the ReportRequest class
QName reportReq = new QName(bipNamespace, "ReportRequest");
call.registerTypeMapping(ReportRequest.class, reportReq,
BeanSerializerFactory.class, BeanDeserializerFactory.class);
// register the ParamNameValue class
QName nmvals = new QName(bipNamespace, "ParamNameValue");
call.registerTypeMapping(ParamNameValue.class, nmvals, BeanSerializerFactory.class, BeanDeserializerFactory.class);
// register the BIPReportResponse class
QName reportRespqn = new QName(bipNamespace, "ReportResponse");
call.registerTypeMapping(ReportResponse.class, reportRespqn,
BeanSerializerFactory.class, BeanDeserializerFactory.class);
// Default return type based on what we expect
call.setOperationName( new QName(bipNamespace, "runReport" ));
call.addParameter( "ReportRequest", reportReq, ParameterMode.IN );
call.addParameter("userID", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("password", XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnClass(ReportResponse.class);
ParamNameValue[] paramNmVals = new ParamNameValue[2];
paramNmVals[0] = new ParamNameValue(false, "dept", null) ;
paramNmVals {"*"}) ;
ReportRequest req = new ReportRequest("pdf", "en-US", "Simple", paramNmVals, xdofile);
// issue the reques
ReportResponse reportResp = (ReportResponse) call.invoke(
new Object[] {req, "Administrator", "Administrator"} );
System.out.println("Return ReportResponse: ContentType = " + reportResp.getReportContentType());
// Save the report
byte[] binaryBytes = reportResp.getReportBytes();
OutputStream out = new FileOutputStream("D:\\temp
out.pdf";;);
out.write(binaryBytes);
out.close();
System.out.println("Success for Run Report");
Thanks. -
Hi,
I am looking for complete XML Publisher Java API Docs. Any pointers would be helpful.
Thanks in Advance
~NeerajThe document
XML Publisher 5.6.2 Core Components APIs
can be found here:
http://www.oracle.com/technology/products/xml-publisher/xmlpdocs.html -
Hello
Did anybody know if exist API which allow to publish e-books on iTunes?
I can't find any.
Best Regards
m2malinAPIs are for developing applications/programs.
If you want to sell books in the iBookstore : http://www.apple.com/itunes/working-itunes/sell-content/books/
Selling ibooks FAQ : http://www.apple.com/itunes/working-itunes/sell-content/books/book-faq.html -
Where to find - javadocs for XML Publisher' API
The XML Publisher User's Guide section, called Implementation and Developer's Guide->Application Layer APIs, has examples of API's for inserting Templates and Data Definitions.
Unfortunately, XML publisher manual only provides a bunch of
samples and not the detailed javadocs, that wee need.
Where could we find javadoc for XML Publisher?Hi
You did not specify which version you were on but the java docs are linked from the relevant About Doc for each release:
Release 5.5 Note 316447.1
Release 5.0 Note 295036.1
Release 4.5 Note 269605.1
Just search for 'javadoc' in these docs for the link
Regards, Tim -
XML Publisher APIs problem.
Hi friends!
I need to convert RTF files into XSL. So I'm running the following simple code:
RTFProcessor rtfProcessor1 = new RTFProcessor("c:\\example.rtf");
rtfProcessor1.setOutput("c:\\example.xsl");
rtfProcessor1.process();
but i'm getting the following error:
java.lang.NullPointerException
at java.util.Hashtable.get(Hashtable.java:333)
at oracle.apps.xdo.template.rtf.group.RTFStyleSheetGroup.endgroup(RTFStyleSheetGroup.java:553)
at oracle.apps.xdo.template.rtf.RTF2XSLParser.endgroup(RTF2XSLParser.java:1008)
at oracle.apps.xdo.template.rtf.io.RTFFilter.write(RTFFilter.java:206)
at oracle.apps.xdo.template.rtf.io.Filter.write(Filter.java:124)
at oracle.apps.xdo.template.rtf.RTF2XSLParser.write(RTF2XSLParser.java:166)
at oracle.apps.xdo.template.rtf.io.Filter.readFromStream(Filter.java:64)
at oracle.apps.xdo.template.rtf.RTFParser.generate(RTFParser.java:134)
at oracle.apps.xdo.template.rtf.RTF2XSLParser.generateXSL(RTF2XSLParser.java:291)
at oracle.apps.xdo.template.RTFProcessor.process(RTFProcessor.java:247)
at Main.main(Main.java:28)
But opening "example.rtf" with MSWord and resaving it I will get no error.
Why?
I need to convert a huge amount of RTF files so I need to know the reason of this strange error.
Thank you!Hi,
The error could be in the path what you are providing (\\)
I have been using this API quite sometime for now, and have not faced any issue. Please find the code below. Try giving a single \ in the path. It should work fine
try
RTFProcessor processor = new RTFProcessor("c:\test.rtf");
processor.setOutput("c:\test.xsl");
processor.process();
catch (Exception e)
e.printStackTrace();
Regards,
Suresh -
Stateless EJB Webservices vs Endpoint.publish() API for a production system
Hello,
I am currently designing an SOA JEE application using JAX-WS Webservices for the synchronous calls and JMS (MDB) for asynchronous access.
It is packaged in a EAR containing one EJB module (no WAR), so I decided first to publish the Webservices using the javax.xml.ws.Endpoint.publish() method via the Spring org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter. It's working very well and I can inject easily spring beans into my JAX-WS webservice, .. but :
- I cannot see the published webservices in the Weblogic console
- I have no idea on how the webservices instances are handled (just one ? )
- Is it robust enough to be used in production in a critical financial application ?
On the other hand, I just have to add a @Statless annotation to turn my JAX-WS classes into real EJB-Webservice aware, but it probably adds overhead in the Weblogic server and it's a bit more complicated to inject Spring resources.
Any advice will help.
Thanks
GMHi Kaustubh,
A topic subscriber only receives messages that are published after it is registered with the topic. Your code for send() creates a publisher that sends the message to the topic before you create a new subscriber in your receive() code. Since that subscriber is created after your publisher has sent its message your subscriber will never receive this message!
Your code will have the expected behaviour if you use a queue instead of a topic. If you have to use a topic, you could create your subscriber and your publisher in the init() method of your EJB and reuse them in your send() and receive() methods.
Hope it helps.
Best regards
Arnaud Simon
Arjuna Technologies - http://www.arjuna.com -
any hint about those libraries?
THXAre you asking about the following;
http://www.oracle.com/technology/products/xml-publisher/xmlpdocs.html
Adith -
Hi all,
I want certain clarifications n XML Publisher reporting tool
1.I have attached a java code to call the report and have hard coded the location of rtf file and the datatemplate.
But we dont want to hardcode the location.What are the possible ways to prevent hardcoding.
2.From XML Publisher Administration responsibility, I created a data definition and a template(RTF Template)
But we are not registering the report as a concurrent program.So how to use data definition and the templates directly in the java program.
3.What are the steps to be performed to make the report translatable.
Java Code:
package oracle.apps.dpp.report;
import com.sun.java.util.collections.Hashtable;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Collection;
import oracle.apps.xdo.XDOException;
import oracle.apps.xdo.dataengine.DataProcessor;
import oracle.apps.xdo.template.FOProcessor;
import oracle.apps.xdo.template.RTFProcessor;
public class DPPReportAPI {
public DPPReportAPI() {
public String getUIReportUI(String p_strReprtLayout, Hashtable p_htParam, String p_strReportType) {
//based on the layout, write the SQL and bind it with the parameters in the Hashtable
//to get the value in the hashtable, use htParam.get("param1");
//pass the formed SQL for execution to the XML Publisher API that returns XMLdata
//Use the XMLData and the layout to generate the report
OutputStream rtfXSLOS = new ByteArrayOutputStream();
InputStream xmlDataIS = null;
InputStream xmlTransIS = null;
try {
RTFProcessor processorRTF2XSL =
new RTFProcessor(p_strReprtLayout);
//Convert rtf to FO XSL
processorRTF2XSL.setOutput(rtfXSLOS);
processorRTF2XSL.process();
} catch (Exception e) {
System.out.println("catch " + e.getMessage());
System.out.println(" Exception in xxmlp.FormatNotification, Method-formatToXSL");
e.printStackTrace();
//Convert XSL to String
String xslString = ((ByteArrayOutputStream)rtfXSLOS).toString();
//Get xsl template as input stream
InputStream xslTemplateIS =
new ByteArrayInputStream(xslString.getBytes());
try {
Class.forName("oracle.jdbc.OracleDriver");
String url = "jdbc:oracle:thin:@ap601sdb:20063:cz121dv1";
java.sql.Connection jdbcConnection = DriverManager.getConnection(url,"apps", "apps");
DataProcessor dataProcessor = new DataProcessor();
dataProcessor.setDataTemplate("/home/sanagar/Java/testdatatemplate.xml");
Hashtable parameters = p_htParam;
//parameters.put("id", "catalog1");
dataProcessor.setParameters(parameters);
dataProcessor.setConnection(jdbcConnection);
dataProcessor.setConnection(jdbcConnection);
dataProcessor.setOutput("/home/sanagar/Java/testoutput.xml");
dataProcessor.processData();
} catch (SQLException e) {
System.out.println("SQLException " + e.getMessage());
} catch (ClassNotFoundException e) {
System.out.println("ClassNotFoundException " + e.getMessage());
} catch (XDOException e) {
System.out.println("XDOException" + e.getMessage());
FOProcessor processorXSL2RPT = new FOProcessor();
processorXSL2RPT.setData("/home/sanagar/Java/testOutput.xml");
processorXSL2RPT.setTemplate(xslTemplateIS);
//Set Output
OutputStream osReport = new ByteArrayOutputStream();
processorXSL2RPT.setOutput(osReport);
//Set Output Format
if (p_strReportType == null || p_strReportType != null && p_strReportType.equals("FORMAT_PDF"))
processorXSL2RPT.setOutputFormat(FOProcessor.FORMAT_PDF);
else if (p_strReportType.equals("FORMAT_RTF"))
processorXSL2RPT.setOutputFormat(FOProcessor.FORMAT_RTF);
else if (p_strReportType.equals("FORMAT_HTML"))
processorXSL2RPT.setOutputFormat(FOProcessor.FORMAT_HTML);
else if (p_strReportType.equals("FORMAT_EXCEL"))
processorXSL2RPT.setOutputFormat(FOProcessor.FORMAT_EXCEL);
try {
processorXSL2RPT.generate();
} catch (XDOException e) {
e.printStackTrace();
System.exit(1);
return osReport.toString();
public static void main(String[] args) {
DPPReportAPI xmlPublisher = new DPPReportAPI();
Hashtable parameters = new Hashtable();
parameters.put("P_TRANSACTION_NUMBER", "1000");
String strOutput = xmlPublisher.getUIReportUI("/home/sanagar/Java/CUSTOMERCLAIM.rtf", parameters, "FORMAT_RTF");
System.out.println("Output String: "+strOutput);
Thanks,
Sangheetha.Hi Sangheetha,
I am new to Java, and working on the XMLP 5.6.3 with EBS 11.5.9.
Where to write this Java code for bursting or the Java API's documented in XML Publisher user guide. JDevloper tool is required to do this, if yes pls let me know which version should i go for and how can use for XMLP to develop reports, i mean how to integrate the JDeveloper with XML Publisher and EBS.
I really appriciate your early reply.
Thanks,
Madhu -
Hi,
We are using XML Publisher API to generate PDF,EXCEL outputs using Template. While adding image to the template its showing in the pdf output. But not showing in the Excel output. Then i added url:{/Image} in the alt text of the image in template and submitted the report again now able to see the image in excel output. Can you please tell me why its not showing the image in excel by default which is right happening in case of PDF. Iam getting the same issue for HTML outputs generation also. Please tell me what i can do to get the image by default same as the way i am getting in PDF.
Thanks
SatyaShouldn't this be posted to the BI Publisher support forum??
Thank you,
Tony Miller
Ruckersville, VA
Maybe you are looking for
-
How to create java classes when multiple xsd files with same root element
Hi, I got below error 12/08/09 16:26:38 BST: [ERROR] Error while parsing schema(s).Location []. 'resultClass' is already defined 12/08/09 16:26:38 BST: [ERROR] Error while parsing schema(s).Location []. (related to above error) the first definition a
-
56 error,EDI: Receiver partner type in control record is default
Hi all, When I trying to post the IDOC the 56 error is shown. I checked the partner profiles and found fine.Please clarify. Thanks, Srinivasa
-
Using like operator with attributes in select command
Hi, I have a table with the attributes as DID, PNO,AGE, DEPARTMENT, DATEOFADM, CHARGES, ADDRESS, DOD I want to display the records with the months in DOD and DATEOFADM same. How can I do so? I also want to do the same with the dates in the 2 attribut
-
HT201250 once time machine starts running, it never stops. what could cause this?
Using WD, My Passport for Mac, 2TB with Time-Machine. Updated software on MacBook, now once time machine starts running an update it does not stop untill cancel it!
-
Hi all, I just entered an XI - Project (XI2.0) and was given the task to document the mapping rules. the I found the ability of xi to store some documentation information for every mapping program and some other components. My question is: is there a