7 Replies Latest reply on Sep 11, 2013 5:52 AM by DilipG

    VO Substitution - methods


      Can any one explain the methods involved in VO substitution. I would like to know if JPX Import Command is mandatory for a VO substitution. In one of the articles I read, it just mentions about substituting a VO (jpx file creation) but no where I came across the import command.

      I would like to know if a VO extension can happen without this.

        • 1. Re: VO Substitution - methods
          You need to run the JPX importer command to effect the VO substitution.

          • 2. Re: VO Substitution - methods
            You need to run the JPX import command for your VO Substitution to take effect.

            JPX Importer will import the BC4J substitution information as a site level personalization.


            During runtime OAF will substitute the old VO with your newly extended VO.


            Edited by: user590473 on Jan 4, 2010 9:37 AM
            • 3. Re: VO Substitution - methods
              Since the JPX file is imported into the MDS Repository , its always better to have a middle tier bounce after the import for VO Substitution.
              • 4. Re: VO Substitution - methods

                I'm new to OAF, and the only one in the company working with it.  I understand that, when deploying from JDeveloper to a development platform, jpximport is used to import the substitutions contained in the project jpx file.


                Our general procedure to deploy to QA is to migrate from Dev, and to Prod, migrate from QA.  So I'd rather get the substitutions from Dev and put them into QA, etc.


                I notice when exporting personalizations, from Dev, substitutions are exported as server site personalizations, like this:

                <?xml version = '1.0' encoding = 'UTF-8'?>

                <customization xmlns="http://xmlns.oracle.com/jrad" xmlns:ui="http://xmlns.oracle.com/uix/ui" xmlns:oa="http://xmlns.oracle.com/oa" xmlns:user="http://xmlns.oracle.com/user" version="10.1.3_1312" xml:lang="en-US" customizes="/oracle/apps/per/selfservice/mgrviews/server/AbsenceDetailsVO">

                   <replace with="/myCompany/oracle/apps/per/selfservice/mgrviews/server/MyCompanyAbsenceDetailsVO"/>



                Can I then just import them into QA?  Or am I going to have to use jpximport on QA as well?

                • 5. Re: VO Substitution - methods

                  Hi Cornell,


                  You need to Import Jpx file and need  to bounce apache for change effect.

                  Please check below steps for more understanding.

                  Deploying Your ViewObject Extensions


                  Deploying Your ViewObject Extensions


                  Step 1:  Compile your Java in JDeveloper and copy ur .xml and .class files to Server


                              <$JAVA_TOP>/<CompanyIdentifier>/oracle/apps/<AppsProductShortName>/server (BC4J files)

                              so, if you extend a "so" view object, and your company's name is "xyz," a subclass of the Ordervompl

                                view object would be in the following directory:


                               Set the permissions on $JAVA_TOP/


                  Step 2:  Copy the .jpx definition file to the Top.

                                In my case I have creataed JpxFile Folder on JAVA_TOP  and Copied my .jpx file there .jpx file,

                                which should be located under <JDEV_USER_HOME>\myprojects, to the following   staging area:




                  Step 3:  Run the jpx import utility from JAVA_TOP to import substitutions specified in the .jpx definition

                                file to the MDS repository.

                                The import utility, jpximport.bat or the jpximport shell script. You run this utility from the command

                                line  by specifying:


                                A. The database credentials of the MDS repository on your target instance

                                B. The fully-qualified location of your .jpx file, which should be located under



                              Using the example on substituting the OrderVo view object from  Order.jpx, your command line

                               would look something like the following:


                              java oracle.jrad.tools.xml.importer.JPXImporter $JAVA_TOP/xyz/jpxFiles/Order.jpx \

                             -username <apps username> \

                             -password <apps password> \

                            -dbconnection "(description=(address_list=(address=(community=tcp.world)(protocol=tcp)

                             (host=<Host Name>)        (port=<PortNumber>)))(connect_data=(sid=<SID Name>)))"




                  Step 4: Bounce the web server


                  step  5: Do Personalization If Required


                  Step 6: Review your deployed extensions


                     At this point the deployment of your extension is complete, and you should be able to login to your

                     application to verify that your changes have successfully taken effect.

                     You can check you Extension Using JDR_util Package





                  • 6. Re: VO Substitution - methods

                    Thank you DilipG, but I don't understand why it is necessary to import from jpx for each platform, as in migrating/deploying from Dev to QA to Prod.


                    I understand that JDeveloper keeps the substitution to itself, in jpx.  And that to get it into the database so the middle tier can use it, one needs to use jpximport to import it from the jpx.  So when deploying from JDeveloper to Dev, one would use jpximport.


                    But once that is done, the substitutions are in the MDS repository, in the database.  If one then exports the Dev personalizations, the substitutions also export, in xml files as above.


                    Why can we not then simply import the personalizations, including the substitutions, into QA?  The export mechanism takes things from their proper place in the database and puts them into files.  The import mechanism must certainly do the opposite, taking things from files and putting them into their proper place in the database.  If substitutions can be exported as personalizations, then they should be able to be imported as personalizations.  By the same token, if they can't be imported as substitutions, then the export mechanism should not export them.

                    • 7. Re: VO Substitution - methods

                      Yes your are right.


                      1)Please check VO personalization is imported  in destination MDS by below command (note: change your VO path)




                      jdr_utils.printdocument(p_document => '/oracle/apps/per/selfservice/mgrviews/server/customizations/site/0/SalaryDetailsVO);





                      2) Do Clear cache by Functional Administrator and check.



                        Functional Administrator ->Coreserviced-->Caching Framework-->Global Configuration-->Clear All Cache

                        Functional Administrator ->Coreserviced-->Caching Framework-->Global Configuration-->Clear All Statics




                      3)If not succeed Please  Try one bounce Apache and check.



                      Refer below link for more understanding