【问题标题】:Deploy one Oracle APEX application to multiple schemas将一个 Oracle APEX 应用程序部署到多个模式
【发布时间】:2016-12-07 09:10:15
【问题描述】:

我有一个 oracle apex 应用程序最初驻留在模式“A”中,并希望将其部署在两个单独的模式“Z1”和“Z2”中,当部署时间到来时,我们可以动态更改关联的模式(解析模式)部署时到 Z1 还是 Z2?

应用程序中还有特定于模式的逻辑,需要在应用程序安装在 Z1 或 Z2 时执行。我们如何处理这种情况?

【问题讨论】:

    标签: oracle schema oracle-apex


    【解决方案1】:

    解析架构

    安装应用程序时,您可以将解析模式设置为安装步骤之一。 通过脚本完成后,您可以使用apex_application_install.set_schema。 请注意,架构应该已经映射到工作区。
    Documentation on apex_application_install.set_schema

    处理特定功能

    通过使用构建状态

    要处理特定功能,您可以在应用程序中使用构建选项。例如:在您的开发环境的应用程序中,在页面上创建进程,并为每个进程设置构建选项。您自己创建构建选项,因此您可以命名一个“Z1”和另一个“Z2”。然后,您可以导出应用程序的基线版本并导出构建状态以打开或关闭选项 - 在应用程序安装后运行。 (注意:导出组件并期望安装它们需要具有相同 ID 的工作区...)
    Documentation on build options (application builder user guide > deploying an application)

    通过使用条件/项目

    如果由于某种原因构建状态不能满足您的要求,您仍然可以有条件地处理此问题。最后,构建状态是 apex 在评估要渲染或运行的内容时检查的条件。
    因此,您仍然可以使用,例如,在所有特定组件的条件下检查的应用程序项。
    例如,当用户登录并从参数表中检索时,可以填写此项。我建议不要对应用程序中的值进行硬编码并进行不同的导出。
    条件可能看起来像这样(类型 = PLSQL 表达式)::AI_ENVIRONMENT = 'Z1'

    这两个选项都有一个案例 - 这取决于您的偏好或

    【讨论】:

    • 假设我们有 4 个区域,1 和 3 应该在 Z1 环境中显示,2 和 4 应该在 Z2 环境中显示。我们怎样才能实现这样的场景?
    • 创建两个构建选项:Z1 和 Z2。将它们分配到各自的区域。像往常一样导出应用程序。转到您的构建状态并根据需要进行切换:将 Z1 构建状态设置为包含,并将 Z2 设置为排除。导出构建状态。在目标环境中导入您的应用程序。导入导出的构建状态:将使用 Z1,不使用 Z2。对于您的 Z2 环境,您必须将构建状态与其他包含状态一起导出,然后按原样导入它们。这有点摆弄,但它有效。最好玩一下!
    • 除了构建状态还有其他方法吗,比如在应用程序加载时初始化应用程序项?并在区域中检查条件中的应用项目。
    • 当然!例如,如果您有一个带有参数的表,您可以在应用程序项目中加载此参数并在条件下测试此项目。你也可以很容易地概括这一点!这在一定程度上取决于您的偏好和设置。
    • 谢谢汤姆,真的很感激。
    猜你喜欢
    • 2014-06-27
    • 2013-02-24
    • 1970-01-01
    • 2020-11-09
    • 2016-07-22
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多