oracle-apex – Oracle APEX应用程序导入混乱页面插件显示点

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

>我们开发了一个开发DB.
>我们将整个应用程序从开发DB导出到SQL * Plus脚本文件.
>我们将整个脚本文件导入(通过SQL * Plus或APEX管理前端,无关紧要)到另一个(测试/产品)数据库.
>所有页面插件的五个(每次相同)使得他们的显示点在导入的应用程序中搞砸了.

export-from-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重新定位添加的插件内容,这种方式将应用程序传输到运行时你不会看到问题

点赞