Thursday, December 31, 2015

Deployment Steps for OA Framework on R 12.2.x or R 12.2.4


Steps to deploy custom OA Framework page on R 12.2.4

1) Copy class files on server
2) Create ZIP file
3) Make Jar file from the ZIP file created before
4) Bounce the services

1) Copy class files on server
==================================
Copy files to custom folder path on server.

2) To Make .ZIP file
==================================
A) Create a temporary custom.zip file which contains all the custom application's directories/files at non-standard location. Please follow the following steps:

    1) cd $JAVA_TOP

    2) zip -r customprod.zip. Where the list of all directory paths are present, relative to $JAVA_TOP, for custom application's java files at non-standard location.

    Command: zip -r xxtest.zip xxtest

    3) Generate & sign customprod.jar file.

    Command: adjava oracle.apps.ad.jri.adjmx -areas $JAVA_TOP/customprod.zip -outputFile $JAVA_TOP/customprod.jar -jar $CONTEXT_NAME 1 CUST jarsigner -storePass -keyPass

3) To Make .JAR file
==================================
example : adjava oracle.apps.ad.jri.adjmx -areas $JAVA_TOP/customprod.zip -outputFile $JAVA_TOP/customprod.jar -jar $CONTEXT_NAME 1 CUST jarsigner -storePass <KeyStore Password> -keyPass <Key Password>

Command:     adjava oracle.apps.ad.jri.adjmx -areas $JAVA_TOP/xxtest.zip -outputFile $JAVA_TOP/xxtest.jar -jar $CONTEXT_NAME 1 CUST jarsigner


4) Bounce the Apache and mid-tier service by using the following commands.
==================================
adapcctl.sh stop

adapcctl.sh start

admanagedsrvctl.sh stop oacore_server1

EnterWeblogic Password: <pwd>

admanagedsrvctl.sh start oacore_server1

EnterWeblogic Password: <pwd>

Wednesday, December 23, 2015

FNDLOAD for multi-language OR Multilingual

Some time we are facing situation where we have to move AOL objects in Oracle EBS Multilingual/Territory environment.
For example we want to move Lookups, Concurrent Programs, Messages etc with their translation also for Multilingual/Territory like English and Arabic.

In such scenario we have to download and upload LDTs for both languages.
Lets suppose we have to move Concurrent Program with both English and Arabic translations.

==============
DOWNLOAD
==============
Before downloading we have to set the export language style like,

For English           
-------------------------------------------------------------------------------
export NLS_LANG=AMERICAN_AMERICA.AR8MSWIN1256

FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct XXTST_CONCURRENT_PRG_US.ldt PROGRAM APPLICATION_SHORT_NAME="XXTST" CONCURRENT_PROGRAM_NAME="XXTST_CONCURRENT_PRG"

For Arabic           
-------------------------------------------------------------------------------
export NLS_LANG=ARABIC_AMERICA.AR8MSWIN1256

FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct XXTST_CONCURRENT_PRG_AR.ldt PROGRAM APPLICATION_SHORT_NAME="XXTST" CONCURRENT_PROGRAM_NAME="XXTST_CONCURRENT_PRG"

==============
UPLOAD
==============
Similarly for Upload LDTs we have to set the language style.

For English           
-------------------------------------------------------------------------------
set NLS_LANG=AMERICAN_AMERICA.AR8MSWIN1256

FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct XXTST_CONCURRENT_PRG_US.ldt UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE


For Arabic           
-------------------------------------------------------------------------------
set NLS_LANG=ARABIC_AMERICA.AR8MSWIN1256

FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct XXTST_CONCURRENT_PRG_AR.ldt UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE



Sunday, December 6, 2015

Download file from Server in OA Framework

To download a file from server location.

In controller class call downloadFileFromServer method on any event.

//on button click in process form request
//call this method
            downloadFileFromServer(
                        pageContext,--pagecontext
                        "/xx/xxx/ssss/120devg.pdf",--full file path with file name and ext
                        "120devg.pdf" --file name with extension
            );


After process form request copy below methods in controller class,

/**
* @param pageContext the current OA page context
* @param file_name_with_path - this is fully qualified file name with its path on unix application
* server. eg "/xxcrp/xxapplcrp/mukul/abc.pdf"
* @param file_name_with_ext - this is file name with extension, you wanna display user
* for download. eg- i wanna display the abc.pdf file download with name five_point_someone.pdf
* then I can pass this as "five_point_someone.pdf"
*/
public void downloadFileFromServer(OAPageContext pageContext,
                                  String file_name_with_path,
                                  String file_name_with_ext) {
  HttpServletResponse response = (HttpServletResponse) pageContext.getRenderingContext().getServletResponse();
  if (((file_name_with_path == null) || ("".equals(file_name_with_path)))){
    throw new OAException("File path is invalid.");
  }

  File fileToDownload = null;
  try{
    fileToDownload = new File(file_name_with_path);
  }catch (Exception e){
    throw new OAException("Invalid File Path or file does not exist.");
  }

  if (!fileToDownload.exists()){
    throw new OAException("File does not exist.");
  }

  if (!fileToDownload.canRead()){
    throw new OAException("Not Able to read the file.");
  }

  String fileType = "application/pdf";
  response.setContentType(fileType);
  response.setContentLength((int)fileToDownload.length());
  response.setHeader("Content-Disposition", "attachment; filename=\"" + file_name_with_ext + "\"");

  InputStream in = null;
  ServletOutputStream outs = null;

  try{
    outs = response.getOutputStream();
    in = new BufferedInputStream(new FileInputStream(fileToDownload));
    int ch;
    while ((ch = in.read()) != -1){
      outs.write(ch);
    }
  }catch (IOException e){
    // TODO
    e.printStackTrace();
  }finally{
    try{
      outs.flush();
      outs.close();
      if (in != null){
        in.close();
      }
    }catch (Exception e){
      e.printStackTrace();
    }
  }
}




Source: http://mukx.blogspot.com/search?q=downloadFileFromServer

Oracle E-Business Suite | How to deploy cutom JAR file and use in OA Framework

There are two ways to deploy custom JAR file on Server.

Deploying on Custom path.


Steps :
1. Deploy your JAR file at some custom location in R12 server
i.e. –
/u01/app/apnac03r12/XX_TEST/

2. Open “orion-application.xml” file present at path –
$ORA_CONFIG_HOME/10.1.3/j2ee/oacore/application-deployments/oacore/

3. Edit “orion-application.xml” file to add JAR file path

i.e. –
<library path="/u01/app/apnac03r12/XX_TEST/jxl.jar" />


4. Bounce Apache Server




Deploying with Standard libraries.
 
Steps :
1. Place jxl.jar into

    $OA_HTML/WEB-INF/lib/


2. Bounce Apache Server








Thursday, October 22, 2015

PL/SQL How to set proxy to access URL



Below is script to set proxy from DB session in PL/SQL.


    BEGIN
      --
      UTL_HTTP.SET_PROXY('<IP Address>', NULL);
      UTL_HTTP.SET_PERSISTENT_CONN_SUPPORT(TRUE);
      --
    END;


Once proxy is set, you can check access for particular URL using below SQL statement,

select utl_http.request('<URL>')
  from dual;

Thursday, September 17, 2015

Oracle Application Framework | Create Popup window


How to add popup window in OA Framework.

1) Create Image bean on your page or region.
    Lets say you have created Image bean having id DetailsIMG

2) Create a page or region that you want to open as a popup.

3) Add following code in process request method of main page's controller.

 /** Opening the popup
      */
          OAImageBean img = (OAImageBean) webBean.findChildRecursive("DetailsIMG");
          String url = "/xxtst/oracle/apps/per/selfservice/job/webui/XxTstPG";
//          String Popupparams = "P_OrderNo={@OrderNo}&P_EmpCi={@EmpCi}";
        
//          String page = url + "&retainAM=Y&fndOAJSPinEmbeddedMode=y" + "&" + Popupparams;
          String page = url + "&retainAM=Y&fndOAJSPinEmbeddedMode=y";
          String destURL = OAWebBeanConstants.APPS_HTML_DIRECTORY + OAWebBeanConstants.APPLICATION_JSP + "?" + OAWebBeanConstants.JRAD_PAGE_URL_CONSTANT + "=" + page;
        
          OABoundValueEmbedURL jsBound = new OABoundValueEmbedURL(img, "openWindow(self, '", destURL, "' , 'longTipWin', {width:750, height:450}, true); return false;");
        
          img.setAttributeValue(OAWebBeanConstants.ON_CLICK_ATTR, jsBound);

4) To close the popup add link bean or button on popup page or region and add below code on Destination URI property.

javascript:opener.submitForm('DefaultFormName',0,{XXX:' abc'});window.close();

Note: You can pass parameters also to main page.




Tuesday, September 15, 2015

Usage of FNDLOAD for Oracle EBS AOL objects

Following are the usage list of FNDLOAD command to upload and download application objects.

Concurrent Program

FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct XXCUST_CP.ldt PROGRAM APPLICATION_SHORT_NAME="XXCUST" CONCURRENT_PROGRAM_NAME="XXCUST_CP"

FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct XXCUST_CP.ldt UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

Lookups

FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/aflvmlu.lct XXCUST_LKP.ldt FND_LOOKUP_TYPE APPLICATION_SHORT_NAME="XXCUST" LOOKUP_TYPE="XXCUST_LKP"

FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/aflvmlu.lct  XXCUST_LKP.ldt UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

Messages

FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afmdmsg.lct XXCUST_MESG.ldt FND_NEW_MESSAGES APPLICATION_SHORT_NAME="XXCUST" MESSAGE_NAME="XXCUST_MESG%"

FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/afmdmsg.lct XXCUST_MESG.ldt UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

Request Set and Link

FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcprset.lct XXCUST_RS.ldt REQ_SET REQUEST_SET_NAME='XXCUST_RS'

FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afcprset.lct XXCUST_LNK.ldt REQ_SET_LINKS REQUEST_SET_NAME='XXCUST_LNK'


FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/afcprset.lct  XXCUST_RS.ldt UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/afcprset.lct  XXCUST_LNK.ldt UPLOAD_MODE=REPLACE CUSTOM_MODE=FORCE

Form Function

FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct XXCUST_FUNC.ldt FUNCTION FUNC_APP_SHORT_NAME='XXCUST' FUNCTION_NAME='XXCUST_FUNC'

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afsload.lct XXCUST_FUNC.ldt

Profile

FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/afscprof.lct XXCUST_PROF.ldt PROFILE PROFILE_NAME="XXCUST_PROFILE" APPLICATION_SHORT_NAME="XXCUST"

FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afscprof.lct XXCUST_FUNC.ldt

Menu

FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afsload.lct XXCUST_MENU.ldt MENU MENU_NAME="XXCUST_MENU"

FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/afsload.lct XXCUST_MENU.ldt

Data Definition

FNDLOAD apps/apps 0 Y DOWNLOAD $XDO_TOP/patch/115/import/xdotmpl.lct XXCUST_DD.ldt XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXCUST DATA_SOURCE_CODE=XXCUST_DS

FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/afsload.lct XXCUST_DD.ldt

Monday, September 14, 2015

Oracle E-Business Suite R12.2.x | How to integrating OA Framework and BI Publisher



Controller Code
==============================
//Import below classes in controller

import oracle.xdo.XDOException;
import oracle.xdo.template.FOProcessor;
import oracle.xdo.template.RTFProcessor;
import oracle.cabo.ui.data.DataObject;
import oracle.xml.parser.v2.XMLNode;


/*
 * Handles functionality of Print button
 */

     if("printRpt".equals(pageContext.getParameter(EVENT_PARAM))) {

                DataObject sessionDictionary = pageContext.getNamedDataObject("_SessionParameters");
                HttpServletResponse response = (HttpServletResponse)sessionDictionary.selectValue(null,"HttpServletResponse");

                // Set the Output Report File Name and Content Type
                String contentDisposition = "attachment; filename=EmployeeReport.pdf";
                response.setHeader("Content-Disposition",contentDisposition);
                response.setCharacterEncoding("UTF-8");
                response.setContentType("application/pdf");

                  try {
                     
                      ServletOutputStream os = response.getOutputStream();

                //Calling RTF Processor
                //RTF Processor generate XSL

                      RTFProcessor rtfProcessor = new RTFProcessor("/u01/oracle/ERPDEV/fs2/EBSapps/comn/java/classes/xxmoh/oracle/apps/per/selfservice/hrorder/template/TEMPLATE_SOURCE_PER_XXMOH_HR_SUSP_ORD_ar_SA_OAF.rtf");

                      ByteArrayOutputStream xlsOutputStream = new ByteArrayOutputStream();
                      rtfProcessor.setOutput(xlsOutputStream);
                      rtfProcessor.process();
                     
                       ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();

                             byte bufutf[] ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n".getBytes();
                             localByteArrayOutputStream.write(bufutf);
                             byte buf[] = "<XXMainPG>".getBytes();
                             localByteArrayOutputStream.write(buf);
                           
                            Serializable[] params = {pageContext.getParameter("P_OrderSeq")};                         
                            XMLNode Nodes = (XMLNode)am.invokeMethod("getPrintDataXML", params);
                            
                             Nodes.print(localByteArrayOutputStream);
                            
                             byte buf2[] = "</XXMainPG>".getBytes();
                             localByteArrayOutputStream.write(buf2);

// To generate file

                      ByteArrayInputStream xmlInputStream = new ByteArrayInputStream(localByteArrayOutputStream.toByteArray());
                     
                      System.out.println("XML : "+localByteArrayOutputStream.toString());
                    
//Calling FO Processor
//FO processor take XML data and RTF as XSL and generate PDF output
                      FOProcessor processor = new FOProcessor();
                     
                      ByteArrayOutputStream pdfOutputStream = new ByteArrayOutputStream();

                      processor.setData(xmlInputStream); //set xml input Stream
                      ByteArrayInputStream xlsInputStream = new ByteArrayInputStream(xlsOutputStream.toByteArray());
                      processor.setTemplate(xlsInputStream); //set xsl input file
                      processor.setOutput(pdfOutputStream);
                      processor.setOutputFormat(FOProcessor.FORMAT_PDF);
                     
                      processor.generate();
                     
     // Write the PDF Report to the HttpServletResponse object and flush.
                      byte[] b = pdfOutputStream.toByteArray();
                      response.setContentLength(b.length);
                      os.write(b, 0, b.length);
                      os.flush();
                      os.close();
                      pdfOutputStream.flush();
                      pdfOutputStream.close();
                     
                     
                  } catch (IOException e) {
                      // TODO
                      e.printStackTrace();
                  } catch (XDOException e) {
                        // TODO
                        e.printStackTrace();
                    }
                }



Application Module Code
==============================
import oracle.jbo.XMLInterface;
import oracle.xml.parser.v2.XMLNode;

    public XMLNode getPrintDataXML(String P_SeqNo) {

        try {

           OAViewObject vo = (OAViewObject)findViewObject("XxtstRptVO");

               vo.setWhereClause(null);
               vo.setWhereClause(" ORDER_SEQ = " + P_SeqNo);

             // Exceute VO
              vo.executeQuery();

              XMLNode xmlNode = (XMLNode)vo.writeXML(4, XMLInterface.XML_OPT_ALL_ROWS);

              return xmlNode;

             } catch (Exception e) {

               throw new OAException(e.getMessage() + "Custom Error in XML generation");
            }
 
      }



Oracle E-Business Suite R12.1.x | Integrating BI Publisher and OA Framework

Controller Code
================================================
// Import below classes in Controller
import java.util.Properties;import oracle.apps.xdo.oa.common.DocumentHelper;
import java.io.ByteArrayOutputStream;
import java.io.Serializable;
import java.util.Properties;
import oracle.apps.fnd.common.VersionInfo;
import oracle.apps.xdo.oa.common.DocumentHelper;
import oracle.apps.xdo.oa.schema.server.Template;
import oracle.jbo.XMLInterface;
import oracle.jbo.domain.BlobDomain;
import oracle.xml.parser.v2.XMLNode;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import oracle.apps.xdo.XDOException;
import oracle.apps.xdo.oa.schema.server.TemplateHelper;
import oracle.cabo.ui.data.DataObject;
import oracle.jbo.XMLInterface;
import oracle.apps.xdo.oa.schema.server.Template;
import oracle.jbo.domain.BlobDomain;

 ....
 ....
 ....

  public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
  {
    super.processFormRequest(pageContext, webBean);


      OAApplicationModule am = pageContext.getApplicationModule(webBean);


    ////////////////////////////////////////
    ///////// For RTF Template
    ////////////////////////////////////////
               
    if ((pageContext.getParameter("BTNPrintReport") != null))  {

      String TemplateApplicationShortName = "PER";
      String TemplateCode = "XXARMSEMP"; //"XXARMS_IR_InterviewFeedback" ;

      Number LeadId = 494;
      Serializable aserializable2[] = {LeadId.toString()};
      Class aclass2[] = {String.class };
      BlobDomain result = (BlobDomain) am.invokeMethod("getXMLData",aserializable2,aclass2);

// Get the HttpServletResponse object from the PageContext. The report output is written to HttpServletResponse.
       DataObject sessionDictionary = (DataObject)pageContext.getNamedDataObject("_SessionParameters");
       HttpServletResponse response = (HttpServletResponse)sessionDictionary.selectValue(null,"HttpServletResponse");
       try {
       ServletOutputStream os = response.getOutputStream();

// Set the Output Report File Name and Content Type
      String contentDisposition = "attachment;filename=EmpReport.pdf";
      response.setHeader("Content-Disposition",contentDisposition);
      response.setContentType("application/pdf");
      ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
      outputStream = (ByteArrayOutputStream)result.getOutputStream();

      ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray());
      ByteArrayOutputStream pdfFile = new ByteArrayOutputStream();

//Generate the PDF Report.
       TemplateHelper.processTemplate(
       ((OADBTransactionImpl)pageContext.getApplicationModule(webBean).getOADBTransaction()).getAppsContext(),
       TemplateApplicationShortName,
       TemplateCode,
       ((OADBTransactionImpl)pageContext.getApplicationModule(webBean).getOADBTransaction()).getUserLocale().getLanguage(),
       ((OADBTransactionImpl)pageContext.getApplicationModule(webBean).getOADBTransaction()).getUserLocale().getCountry(),
       inputStream,
       TemplateHelper.OUTPUT_TYPE_PDF,
       null,
       pdfFile);

// Write the PDF Report to the HttpServletResponse object and flush.
      byte[] b = pdfFile.toByteArray();
      response.setContentLength(b.length);
      os.write(b, 0, b.length);
      os.flush();
      os.close();
      }
      catch(Exception e)
      {
      response.setContentType("text/html");
      throw new OAException(e.getMessage(), OAException.ERROR);
      }
      pageContext.setDocumentRendered(false);

     }

  }




Application Module Code
================================================
 
    public BlobDomain getXMLData(String P_VacancyId)
    {
    BlobDomain blobDomain = new BlobDomain();
    OADBTransaction oadbtransaction = getOADBTransaction();
    try
    {
    String dataDefCode = "XXARMSEMP"; //"XXARMSInterviewFeedback" ;
    String dataDefApp = "PER";
    String outputString = null;
    DataTemplate datatemplate = new DataTemplate(((OADBTransactionImpl)getOADBTransaction()).getAppsContext(), dataDefApp, dataDefCode );
//    Hashtable parameters = new Hashtable();
//    parameters.put("P_VacancyId",P_VacancyId);
//    datatemplate.setParameters(parameters);
    datatemplate.setOutput(blobDomain.getBinaryOutputStream());
    datatemplate.processData();
    }
    catch(SQLException e)
    {
    throw new OAException("SQL Error=" + e.getMessage(),OAException.ERROR);
    }
    catch (XDOException e)
    {
    throw new OAException("XDOException" + e.getMessage(),OAException.ERROR);
    }
    catch(Exception e)
    {
    throw new OAException("Exception" + e.getMessage(),OAException.ERROR);
    }
    return blobDomain;
    }

Wednesday, September 2, 2015

Oracle E-Business Suite R12 | How to get Customization, Extension and Personalization details


There is a standard package JDR_UTILS. using this package we can, 
  - Get the customization details
  - Get the list of customization in particular package
  - Delete the existing customization
  - Print the xml of page or region
  - Print translation
  - Export document etc

This package includes procedures and function like,
  • JDR_UTILS.listDocuments
  • JDR_UTILS.listCustomizations
  • JDR_UTILS.printDocument
  • JDR_UTILS.deleteDocument
  • JDR_UTILS.printTranslations
JDR_UTILS.listDocuments

This is used to list of all OA Framework documents in the given path/module. It provides list of all the pages/extensions/personalizations. It takes two parameters: 1. Full/Partial path of MDS repository 2. TRUE will direct the API to list all Child Documents underneath that tree path
Example: Begin
  JDR_UTILS.listContents (p_path => '/oracle/apps/per/selfservice/',
                                      p_recursive => TRUE);
End;

/

JDR_UTILS.listCustomizations

To list all Extensions/Personalizations/Contents of a specific Object (i.e. Page or Region).
Example: Begin
  JDR_UTILS.listCustomizations(p_document => '/xxhr/oracle/apps/per/selfservice/test/webui/XXEmpQueryPG');
End;

 /

JDR_UTILS.printDocument

To print the contents/xml of a specific object (i.e. Page or Region). 

Example: Begin
  JDR_UTILS.printDocument(p_document => 'xxhr/oracle/apps/per/selfservice/test/webui/XXEmpQueryPG');
End;

/

Using above example code we can print the XML of given Page or Region.

JDR_UTILS.deleteDocument

Using this we can delete a Page, Personalization and Extension. 
Example:
Begin    JDR_UTILS.deletedocument(p_document => '/oracle/apps/icx/por/server/customizations/InvoiceHeaderVO');
End;
/

Above example is to delete the VO extension.

JDR_UTILS.printTranslations

To print the translations for the document in XLIFF format

Example:
Begin 
  JDR_UTILS.printTranslations (p_document => 'xxhr/oracle/apps/per/selfservice/test/webui/XXEmpQueryPG', p_language => 'AR');
End;
/


There are few more procedures that can also be useful like,
JDR_UTILS.exportDocument : Export the XML for a document
JDR_UTILS.saveTranslations : Saves the specified translations for the specified document.