请帮助我如何将Apex现有应用程序中的页面复制到Apex应用程序的另一个工作区。
答案 0 :(得分:4)
你不能开箱即用。
除了工作区ID之外,应用程序ID也很重要。如果您有2个不同的工作区和相同的应用程序但具有不同的ID,则这会使事情变得更加复杂
您可以随时执行的操作是导出整个应用程序,导入它但使用不同的ID,这样您就不会覆盖现有的应用程序,然后创建一个新页面作为新导入的应用程序页面的副本。
Antoher的方式是编辑导出的 PAGE SQL文件,但是,让我强调一下,不建议这样做。正如在OTN论坛中如此慷慨地陈述,如果你需要支持应用程序/顶点问题,他们会发现你在sql文件中乱七八糟,你不会得到支持。 只有当你理解并知道你将要做什么时才这样做!如果你改变代码而不理解你在做什么,你可能会比你开始时更糟糕的情况。其他情况下,请按照应用程序导出/导入/复制行。
无论如何,我处于工作区ID不同但应用程序ID不同的位置。在这种情况下,更改导出的文件非常简单,只需要编辑1(一)行并关注这段代码:
begin
-- Assumes you are running the script connected to SQL*Plus as the Oracle user APEX_040200 or as the owner (parsing schema) of the application.
wwv_flow_api.set_security_group_id(p_security_group_id=>nvl(wwv_flow_application_install.get_workspace_id,27000294100083787867));
end;
/
这是导出的页面文件中的第一批代码之一。如您所见,工作区ID在此处设置。如果尝试导入应用程序(即使应用程序ID与您尝试导入的应用程序ID匹配),您也会收到错误消息。然后将ID更改为与工作区匹配的ID,它将起作用。当然,您需要知道工作区ID,并且可以通过在apex环境中执行此选择来找到它们(s?)
select workspace, workspace_display_name, workspace_id from apex_workspaces
一些好的建议:
如果您仍处于apex安装的启动阶段,则可能需要确保工作区ID相同。例如,具有相同工作空间和应用程序ID的测试和生产环境非常有趣。您有2个实例(在2个不同的服务器上安装2个数据库),但希望ID相同
要确保这一点,您可以从一个环境导出工作区,然后将其导入另一个环境。您可以从顶点中的实例管理(即内部工作区)执行此操作。
答案 1 :(得分:2)
APEX版本4.2现在支持 - 每个Oracle doc ...
7.3.4复制数据库应用程序页面
您可以从当前应用程序或其他应用程序复制页面。在复制过程中,您还可以复制共享组件或将映射更改为目标应用程序中的共享组件。
复制页面:
导航到要复制到的应用程序:
导航到Workspace主页。
单击Application Builder图标。
选择一个应用程序。
选择一个页面。
出现页面定义。
在树状视图中:
在“页面渲染”下,选择页面名称。
右键单击并选择复制。
在组件视图中:
在“页面”下,单击“复制”图标。
对于“复制页面选项”,请选择以下选项之一:
此应用程序中的页面
另一个应用程序中的页面
按照屏幕上的说明操作。
答案 2 :(得分:1)
在APEX 4.0中从任何应用程序复制页面: