定制Oracle EBS应用程序


Oracle EBS是北美地区销量最大的应用程序套件,并且与其他公司应用程序很好地集成在一起。通常,业务需求是预览报告输出(在浏览器中)。在本文中,我们将使用RMA标签(使用XML Publisher报表开发)作为示例,通过单击EBS中的按钮在浏览器窗口中显示嵌入式PDF。

实施的高级步骤

  1. 在XML Publisher中使用特定于客户的格式设计标签。
  2. 在Oracle Repository中上载XML发布者模板,并注册为并发程序。
  3. 使用OA框架和JDeveloper创建新页面以触发XML Publisher标签进行预览和发送电子邮件。
  4. 使用个性化功能在现有业务功能(例如RMA标签屏幕)上添加按钮,以调用新开发的页面。

先决条件

我将以下设置用于我的设置:

  • Oracle EBS 12.2.8发行版。
  • 使用OAF扩展(10.1.3.4)项目和工作区设置Oracle JDeveloper。
  • Putty和FileZilla FTP工具。
  • 使用XML Publisher设计标签。

我不会完成这些先决条件的设置-设置JDeveloper和设计标签相当简单。如果您需要有关先决条件的任何帮助,请与我们联系。

设计标签和注册并发程序

标签是使用XML Publisher报告模板设计的,并按如下所示上载到XML Publisher Administrator存储库中:

登录到Oracle EBS,然后导航到XML Publisher Administrator>主页>模板。如下创建一个新模板并上传RTF模板: 创建一个新模板

1613250316064.png

  • 登录到Application Developer并创建一个新的并发程序,如下所示: 创建一个新的并发程序

1613250331881.png

请注意,并发程序可执行文件是“ Java并发程序”。

  • 登录到系统管理员>职责>请求将并发程序(在上一步中创建)分配给Application Developer职责。 请求组用户界面

1613250372069.png

通过手动提交来测试并发程序,并查看输出。确保您的输出以所需的PDF格式显示。

开发Oracle应用程序框架页面以预览PDF输出

通过转到OA Components>页面来启动JDeveloper并创建一个新页面: OA组件>页面

1613250385868.png

  • 输入名称(类似“ ReturnLabelViewPG”)和程序包名称(xx.oracle.apps.csd.returns.webui),然后单击“确定”。
  • 在页面布局区域下,添加单列布局区域,如下所示。 单列RN

1613250405892.png

右键单击“ PageLayoutRN”,然后如下设置新的Controller。

  1. 软件包名称-xx.oracle.apps.csd.returns.webui
  2. 类名— ReturnLabelViewCO

1613250461932.png

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上一步中编码的方法。

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突出显示

1613250547132.png

  • 右键单击项目,创建一个新的应用程序模块,然后单击新的应用程序模块。
  • 软件包名称-xx.oracle.apps.csd.returns.server
  • 名称-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;
}
}

部署方式

  • 下一步将是将本地开发的Java组件/ OAF页面部署到Application Server。
  • 使用腻子登录到服务器上的Unix框并转到$JAVA_TOP。

1613250658399.png

  • 创建新目录(与JDeveloper中的包结构相同):
  • mkdir -p xx/oracle/apps/csd/returns/server #directory to hold server components
  • mkdir -p xx/oracle/apps/csd/returns/webui #directory to hold webui components
  • chmod 777 xx/oracle/apps/csd/returns/server #set permission to read/write/exec
  • chmod 777 xx/oracle/apps/csd/returns/webui #set permission to read/write/exec

  • 登录FileZilla并将文件移动到上面的位置。

  • 请查看以下文件,了解有关的信息xx/oracle/apps/csd/returns/webui

1613250677170.png

  • 登录到腻子并转到$ JAVA_TOP,运行以下命令以生成customall.jar文件。备份此位置上存在的现有customall.jar文件:
  • adgcnjar
  • 它提示您输入APPS(数据库用户名)和密码。输入后,它将在服务器上生成一个customall.jar文件。
  • 在连接到中间层时,使用以下腻子中的以下命令将OAF页面导入Oracle Repository:

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

  • 在EBS的中间层上启动应用程序服务,因此Oracle可以在运行时执行时选择customall.jar文件。

个性化Oracle应用程序屏幕以添加预览按钮

在要查看预览输出的EBS屏幕上添加一个按钮。出于演示目的,已使用“仓库维修”屏幕。使用个性化功能添加“预览”按钮并如下设置属性。注意目标URL,该URL调用开发的自定义页面。

测试RMA预览更改

单击“ RMA预览”按钮。单击此按钮将调用XML发布者模板,并将输出嵌入到框架中,如下所示。

1613250840568.png

结论

在本文中,我们学习了如何扩展Oracle应用产品以使用Oracle标准添加预览功能。您可以使用相同的方法并扩展任何Oracle提供的屏幕以添加更多功能。希望本文对您的业务需求有用。


原文链接:http://codingdict.com