In our development process, we develop our changes in separate schema's (one for each developer most of the time). When we deliver, we install the change in a "main" schema. All this happens on the development schema.
After that the patches are installed through our OTAP.
Now we develop APEX applications also, I did the following:
- We deployed an apex workspace for each developer (that develops in apex). This workspace parses on the developers own schema.
- One workspace is used to install the apex application right before it goes through the OTAP. This workspace parses on the main-schema.
- On the TAP-databases we just have one workspace, which is an export of our development main-workspace.
- Before releasing the patch to the OTAP envirionment, we export the application from the main workspace, so that we can run SQLPlus scripts to deploy the application through the OTAP.
Problem is: you can have only one application-id over the entire database. So having an application 100 in my main workspace means I cannot develop the application in my own workspace.
So I figured: make sure the application on the develop workspace is different than it is on the main workspace. When you're done: export the application. Then delete the application in the main workspace and import your application (change the application id to 100) and voila.
However, the causes the interactive reports (and probably all internal APEX id's) to disappear. Which is not very nice for the end-users.
My question: how can we resolve this issue/how do you guys implement this process?
Maybe this will be helpful: http://joelkallman.blogspot.ca/2010/07/where-did-my-saved-interactive-reports.html
If you import the APEX application through the builder then you are able to change the ID, however that of course isn't very good for a production instance.
Is there any particular reason why you have developers all working in separate schemas? I'd be tempted to re-think that approach.
I could be wrong however I think your only "safe" option would be to import into your dev instance using the application builder (as this has the ability to change the app_id) and then export from there to get a script which you can release to prod with sqlplus.