Oracle EBS是北美地区销量最大的应用程序套件,并且与其他公司应用程序很好地集成在一起。通常,业务需求是预览报告输出(在浏览器中)。在本文中,我们将使用RMA标签(使用XML Publisher报表开发)作为示例,通过单击EBS中的按钮在浏览器窗口中显示嵌入式PDF。
实施的高级步骤
先决条件
我将以下设置用于我的设置:
我不会完成这些先决条件的设置-设置JDeveloper和设计标签相当简单。如果您需要有关先决条件的任何帮助,请与我们联系。
设计标签和注册并发程序
标签是使用XML Publisher报告模板设计的,并按如下所示上载到XML Publisher Administrator存储库中:
登录到Oracle EBS,然后导航到XML Publisher Administrator>主页>模板。如下创建一个新模板并上传RTF模板: 创建一个新模板
请注意,并发程序可执行文件是“ Java并发程序”。
通过手动提交来测试并发程序,并查看输出。确保您的输出以所需的PDF格式显示。
开发Oracle应用程序框架页面以预览PDF输出
通过转到OA Components>页面来启动JDeveloper并创建一个新页面: OA组件>页面
右键单击“ PageLayoutRN”,然后如下设置新的Controller。
printReport如下所示在Controller中添加新方法,并粘贴代码:
public void printReport(OAPageContext pageContext, OAWebBean webBean , String orderId) { OAApplicationModule oaAM = pageContext.getApplicationModule(webBean); pageContext.putParameter("p_DataSource",DocumentHelper.DATA_SOURCE_TYPE_BLOB); pageContext.putParameter("p_DataSourceCode","XX_DEPOT_RMA");// Data Definition Short Name pageContext.putParameter("p_DataSourceAppsShortName","XX");// Data Definition Registered Application Short Name pageContext.putParameter("p_TemplateCode","XX_DEPOT_RMA");//XML Report Template Short Code pageContext.putParameter("p_TemplateAppsShortName","XX");//XML Report Template Application Short Name pageContext.putParameter("p_Locale","English:United States");//XML Report Template Language and Territory pageContext.putParameter("p_OutputType","PDF");//Desired XML Report Output pageContext.putParameter("p_XDORegionHeight","200%");//Desired XML output frame size Serializable[] oaParams = {orderId}; //Parameter passed to the report BlobDomain result = (BlobDomain)oaAM.invokeMethod("submitReport",oaParams); pageContext.putSessionValueDirect("XML_DATA_BLOB", result); }
如下更新processRequestController中的方法以调用printReport上一步中编码的方法。
processRequestController
printReport
public void processRequest(OAPageContext pageContext, OAWebBean webBean) { super.processRequest(pageContext, webBean); String strOrderId = pageContext.getParameter("OrderId");//Get this value from calling Page printReport(pageContext, webBean, strOrderId); }
printReport突出显示
名称-ReturnLabelAM
创建应用程序模块后,如下添加新方法submitReport。我也粘贴了内容。从Controller中调用此方法(上一步),以通过将orderID作为输入参数来触发标签报告。 爪哇
public BlobDomain submitReport (String strOrderId) { BlobDomain blobDomain = new BlobDomain(); try { DataTemplate datatemplate = new DataTemplate(((OADBTransactionImpl)getOADBTransaction()).getAppsContext(), "XX", "XX_DEPORT_RMA"); Hashtable parameters = new Hashtable(); parameters.put("P_ORDER_ID",strOrderId); datatemplate.setParameters(parameters); datatemplate.setOutput(blobDomain.getBinaryOutputStream()); datatemplate.processData(); } catch(SQLException e) { throw new OAException("SQL Error=" + e.getMessage(),OAException.ERROR); } catch (OAException e) { throw new OAException("XDOException" + e.getMessage(),OAException.ERROR); } catch(Exception e) { throw new OAException("Exception" + e.getMessage(),OAException.ERROR); } return blobDomain; } }
部署方式
chmod 777 xx/oracle/apps/csd/returns/webui #set permission to read/write/exec
登录FileZilla并将文件移动到上面的位置。
xx/oracle/apps/csd/returns/webui
JAVA_TOP/xx/oracle/apps/csd/returns/webui/ReturnLabelViewPG.xml -username apps -password <apps_password> -dbconnection "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= <host_name> ) (PORT=<host_port>))(CONNECT_DATA=(SID=<host_SID>)))" -rootdir $JAVA_TOP
JAVA_TOP/xx/oracle/apps/csd/returns/webui/ReturnLabelViewPG.xml -username apps
-password <apps_password> -dbconnection
"(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= <host_name> )
(PORT=<host_port>))(CONNECT_DATA=(SID=<host_SID>)))" -rootdir $JAVA_TOP
个性化Oracle应用程序屏幕以添加预览按钮
在要查看预览输出的EBS屏幕上添加一个按钮。出于演示目的,已使用“仓库维修”屏幕。使用个性化功能添加“预览”按钮并如下设置属性。注意目标URL,该URL调用开发的自定义页面。
测试RMA预览更改
单击“ RMA预览”按钮。单击此按钮将调用XML发布者模板,并将输出嵌入到框架中,如下所示。
结论
在本文中,我们学习了如何扩展Oracle应用产品以使用Oracle标准添加预览功能。您可以使用相同的方法并扩展任何Oracle提供的屏幕以添加更多功能。希望本文对您的业务需求有用。
原文链接:http://codingdict.com