从 Oracle APEX 触发电子邮件时隐藏具有 NULL 值的项目

Hide the item with NULL value while triggering Email from Oracle APEX

我正在使用 APEX 5.0 开发应用程序

当我们点击一​​个按钮时会触发一封电子邮件。很少有项目具有空值,但仍然出现在电子邮件中,因为我已经链接了它们。如何在触发来自 Oracle APEX 的电子邮件时隐藏具有 NULL 值的项目。谢谢

根据您的要求使用 PLSQL 格式化电子邮件正文文本,然后将其设置为页面项目,然后可以使用替换字符串在电子邮件流程中引用。

根据您的评论,看起来您正在使用 PL/SQL 代码 流程类型而不是 发送电子邮件 流程输入您的提交流程。

假设您有 3 个可能具有 NULL 值的页面项目。按照以下方式修改您的代码以在正文中显示具有值的项目。

DECLARE
  L_BODY   VARCHAR2(32767);
  L_FOOTER VARCHAR2(32767);
  FUNCTION FORMAT_TEXT(
      P_INPUT    IN VARCHAR2,
      P_TEMPLATE IN VARCHAR2)
    RETURN VARCHAR2
  IS
  BEGIN
    IF P_INPUT IS NOT NULL THEN
      RETURN P_TEMPLATE;
    ELSE
      RETURN NULL;
    END IF;
  END FORMAT_TEXT;
BEGIN
  L_BODY   := '<html> Here I give the HTML Code For Example <p>';
  L_BODY   := L_BODY || FORMAT_TEXT(:P1_ITEM, 'My Text 1: ' || :P1_ITEM || '<br>');
  L_BODY   := L_BODY || FORMAT_TEXT(:P2_ITEM, 'My Text 2: ' || :P2_ITEM || '<br>');
  L_BODY   := L_BODY || FORMAT_TEXT(:P3_ITEM, 'My Text 3: ' || :P3_ITEM || '<br>');
  L_BODY   := L_BODY || '</p> </html>';
  L_FOOTER := '</br></br> Go to Link <a href="URL">link</a>';
  APEX_MAIL.SEND(P_TO => '' || :P1_ITEM || ',' || 'abc@abc.com', P_FROM => 'abc.abc@abc.com', P_BODY => L_BODY || L_FOOTER, P_BODY_HTML=> L_BODY || L_FOOTER, P_SUBJ => 'Text ' || :P1_ITEM || ' ] ');
END;