AEPX24加载excel时新增批次列

场景

在将 APEX 从版本 19.2 升级至 24.2 后,发现新版本提供了直接导入 Excel 文件的功能。为充分利用这一新特性,我们计划调整现有的上传流程以支持此功能。

操作

  1. 数据库表结构调整 首先,对目标表 REAGENT_CHARGING_AUTH 进行表结构扩展,添加一个新的字段 INSERT_FLAG,用于标识数据插入时的特定标记或状态。
1
ALTER TABLE REAGENT_CHARGING_AUTH add INSERT_FLAG varchar2(200);
  1. 应用程序全局配置项创建 接下来,在应用层面(应用程序 104 >>>共享组件 >>> 应用程序项),通过共享组件部分新增一个全局配置项 GLOBAL_INSERT_FLAG。此设置旨在存储每次数据批量加载操作中使用的唯一标识符。

OsXM1-2025-11-12-15-42-21

  1. 数据加载定义更新

    1. 配置文件调整:进入“数据加载定义”模块针对 REAGENT_CHARGING_AUTH 表进行相应配置,确保新增的 INSERT_FLAG 字段能够正确映射到上传的数据源中。应用程序 104 >>>共享组件 >>> 数据加载定义 >>> REAGENT_CHARGING_AUTH

    OsXM1-2025-11-12-15-44-17 OsXM1-2025-11-12-15-46-30

    1. 默认值设定:对于 INSERT_FLAG 字段,其默认值应基于会话状态中的全局变量 GLOBAL_INSERT_FLAG 动态生成,可通过调用 apex_util.get_session_state(‘GLOBAL_INSERT_FLAG’) 方法实现。 利用apex_util.get_session_state('GLOBAL_INSERT_FLAG')获取之前设定的全局变量

    OsXM1-2025-11-12-15-47-49

  2. 文件上传页面配置优化
    重新计算逻辑添加:于文件上传界面内,引入重新计算机制,确保每次上传过程中均能自动生成新的记录标识符,并将其与当前会话关联起来。例如,可以使用 to_number(sys_guid(),‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’) 函数来产生独一无二的数字序列。 OsXM1-2025-11-12-16-01-45

    1. 重计算该标识符 例如:to_number(sys_guid(),'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')

    OsXM1-2025-11-12-16-04-23

    1. 环境变量记录:每当执行完一次有效的数据导入后,需将此次操作对应的 INSERT_FLAG 值保存至 REAGENT_CONF_ENV 表中,作为后续查询或审计依据。
    1
    
    INSERT INTO  REAGENT_CONF_ENV( env_type,env_value) VALUES ('ins',:GLOBAL_INSERT_FLAG );
    

    OsXM1-2025-11-12-16-05-45

  3. 批量导入结果验证
    最后,通过以下 SQL 查询语句检查并确认所有带有特定 INSERT_FLAG 标签的数据条目是否已成功写入数据库:

1
2
3
4
SELECT INSERT_FLAG,
       count(1) as  x
FROM REAGENT_CHARGING_AUTH  where  INSERT_FLAG in (SELECT env_value  from  REAGENT_CONF_ENV where env_type='ins' )
GROUP BY INSERT_FLAG ;

OsXM1-2025-11-12-16-07-27 以上步骤确保了在利用 APEX 新增的 Excel 导入功能时,不仅能够高效地完成数据迁移任务,同时还能保持良好的数据管理和追踪能力。

Licensed under CC BY-NC-SA 4.0
最后更新于 2025-12-03 14:33
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计