You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apex 22.2表单保存后触发邮件发送流程的实现问询

解决Apex 22.2模态表单保存后触发邮件发送的问题

核心思路

你之前在保存按钮加动态动作无效,是因为触发时机在表单提交之前,数据还没写入数据库。正确的做法是在表单数据成功保存后,执行检查和邮件发送逻辑,再自动关闭对话框。

具体实现步骤

1. 在模态表单页面添加后置检查与邮件发送过程

  • 打开你的模态表单页面,进入左侧菜单的页面处理(Page Processes)
  • 点击「创建」,选择PL/SQL过程:
    • 名称:比如CHECK_ASSIGNMENT_SEND_MAIL
    • 执行时机:选择After Submit
    • 触发条件:选择当按下按钮时,然后选你的表单保存按钮(比如默认的SAVE)
    • PL/SQL代码(替换占位符为你的实际页面项和函数名):
      DECLARE
          l_created_by VARCHAR2(100) := :PXX_CREATED_BY; -- XX替换为你的模态表单页面号
          l_assigned_to VARCHAR2(100) := :PXX_ASSIGNED_TO;
      BEGIN
          -- 检查创建者与被指派者是否不同
          IF l_created_by <> l_assigned_to THEN
              -- 调用你已有的邮件发送函数
              your_existing_mail_function(); -- 替换为实际函数名
          END IF;
      END;
      
    • 保存这个过程

2. 配置保存成功后自动关闭对话框

  • 进入模态表单页面的页面分支(Page Branches)
  • 点击「创建」:
    • 名称:比如CLOSE_DIALOG_ON_SUCCESS
    • 执行时机:选择After Submit
    • 触发条件:选择当按下按钮时,选保存按钮,同时勾选仅当前一步骤成功
    • 分支类型:选择关闭对话框(Close Dialog)
    • 如果需要刷新父页面的Interactive Grid,可以在「对话框返回值」里填REFRESH,然后在父页面给IG加一个监听对话框关闭的动态动作,但核心需求只需要关闭对话框的话,这一步可以忽略
  • 保存分支

关键注意事项

  • 确保Created By字段在提交前已正确赋值:如果是自动取当前用户,可设置页面项的默认值为:APP_USER,并将页面项的「提交时包含」设为是
  • 你的邮件发送函数已经稳定运行,只需确保这个过程有足够权限调用它
  • 可在PL/SQL过程中添加日志(比如插入到自定义日志表),方便调试是否执行了邮件逻辑

内容的提问来源于stack exchange,提问作者listix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 13:50:12