使用Oracle Application Express 4.2.5.00.08,我们会遇到以下重复出现的问题:


我们在开发数据库上进行开发。
我们将整个应用程序从开发数据库导出到SQL * Plus脚本文件。
我们将整个脚本文件导入(通过SQL * Plus或APEX管理员前端,这无关紧要)到另一个(测试/生产)数据库中。
所有页面插件中的五个(每次相同)在导入的应用程序中弄乱了它们的显示点。


从DEV导出页面插件创建片段如下所示:

declare
  s varchar2(32767) := null;
  l_clob clob;
  l_length number := 1;
begin
s:=s||'Revision Comments';

wwv_flow_api.create_page_plug (
  p_id=> 36035377787100554 + wwv_flow_api.g_id_offset,
  p_flow_id=> wwv_flow.g_flow_id,
  p_page_id=> 68,
  p_plug_name=> 'Toolbar3',
  p_region_name=>'',
  p_parent_plug_id=>36001157224505179 + wwv_flow_api.g_id_offset,
  p_escape_on_http_output=>'Y',
  p_plug_template=> 35698556626931435+ wwv_flow_api.g_id_offset,
  p_plug_display_sequence=> 105,
  p_plug_new_grid         => false,
  p_plug_new_grid_row     => true,
  p_plug_new_grid_column  => true,
  p_plug_display_column=> null,
  p_plug_display_point=> 'REGION_POSITION_02',
  p_plug_item_display_point=> 'ABOVE',
  p_plug_source=> s,
  p_plug_source_type=> 'STATIC_TEXT',
  p_translate_title=> 'Y',
  p_plug_query_row_template=> 39496105155901584+ wwv_flow_api.g_id_offset,
  p_plug_query_headings_type=> 'QUERY_COLUMNS',
  p_plug_query_num_rows => 15,
  p_plug_query_num_rows_type => 'NEXT_PREVIOUS_LINKS',
  p_plug_query_row_count_max => 500,
  p_plug_query_show_nulls_as => ' - ',
  p_plug_display_condition_type => 'SQL_EXPRESSION',
  p_plug_display_when_condition => ':P68_ID_BUS_DQI_DATA IS NOT NULL',
  p_pagination_display_position=>'BOTTOM_RIGHT',
  p_plug_customized=>'0',
  p_plug_caching=> 'NOT_CACHED',
  p_plug_comment=> '');
end;
/


当我们再次从测试/生产中导出整个应用程序(从脚本文件导入后)并进行逐行比较时,页面插件的创建代码片段如下所示:

declare
  s varchar2(32767) := null;
  l_clob clob;
  l_length number := 1;
begin
s:=s||'Revision Comments';

wwv_flow_api.create_page_plug (
  p_id=> 36035377787100554 + wwv_flow_api.g_id_offset,
  p_flow_id=> wwv_flow.g_flow_id,
  p_page_id=> 68,
  p_plug_name=> 'Toolbar3',
  p_region_name=>'',
  p_parent_plug_id=>36001157224505179 + wwv_flow_api.g_id_offset,
  p_escape_on_http_output=>'Y',
  p_plug_template=> 35698556626931435+ wwv_flow_api.g_id_offset,
  p_plug_display_sequence=> 105,
  p_plug_new_grid         => false,
  p_plug_new_grid_row     => true,
  p_plug_new_grid_column  => true,
  p_plug_display_column=> null,
  p_plug_display_point=> 'BODY_3',
  p_plug_item_display_point=> 'ABOVE',
  p_plug_source=> s,
  p_plug_source_type=> 'STATIC_TEXT',
  p_translate_title=> 'Y',
  p_plug_query_row_template=> 39496105155901584+ wwv_flow_api.g_id_offset,
  p_plug_query_headings_type=> 'QUERY_COLUMNS',
  p_plug_query_num_rows => 15,
  p_plug_query_num_rows_type => 'NEXT_PREVIOUS_LINKS',
  p_plug_query_row_count_max => 500,
  p_plug_query_show_nulls_as => ' - ',
  p_plug_display_condition_type => 'SQL_EXPRESSION',
  p_plug_display_when_condition => ':P68_ID_BUS_DQI_DATA IS NOT NULL',
  p_pagination_display_position=>'BOTTOM_RIGHT',
  p_plug_customized=>'0',
  p_plug_caching=> 'NOT_CACHED',
  p_plug_comment=> '');
end;
/


...唯一的区别是...

p_plug_display_point=> 'BODY_3',


...行。

当然,可以通过APEX前端为五个页面插件中的每一个手动修复此问题,但是当安装了6个环境并且每个月都要更新几次时,这是不可想象的。对于所有数据库开发,都有自动部署工具,只有该APEX前端必须手动处理。

前端驱动的手动修复程序之前和之后的apex_040200.wwv_flow_page_plugs数据比较表明,只有apex_040200.wwv_flow_page_plugs.plug_display_point'BODY_3'更新回了'REGION_POSITION_02'。但是我们没有权限直接更新APEX表。

我尝试搜索某种update_page_plug() API过程,但未找到任何过程。

所以,我对


直接从APEX API查找update_page_plug()过程,
或直接在应用程序中修复此问题,以使问题不再发生(因为我认为原始应用程序的开发人员没有正确执行此操作,只是不知道这可能是什么)。


有什么建议吗?

最佳答案

我还没有遇到更新版本的Apex的问题,因此希望您可以将系统升级到Apex 18,而不会遇到很多麻烦。

或者,您可以尝试将原始插件的初始字母“ p_plug_display_point =>'REGION_POSITION_02'”修改为“
p_plug_display_point =>'BODY_3'“,
在开发环境中,并使用JS来重新定位添加的插件内容,这样,当将应用程序转移到运行时时,您将不会看到问题

关于oracle-apex - Oracle APEX应用导入使页面插件显示点困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46644392/

10-11 00:48