【问题标题】:Lotus Notes: Multiple @MailSend in relation with @DBlookupLotus Notes:与@DBlookup 相关的多个@MailSend
【发布时间】:2014-02-24 09:26:14
【问题描述】:

这是我的场景:有一个应用程序在“今天”之前的 X 天通知一些用户。

这些用户和天数被引入一个配置区。这是列出它们的视图:(顺便说一句,可以有更多的天数,只要管理员想要)

Days | Persons |
______________
30
      Name1
      Name2
      Name3
60
      Name4
      Name5

在创建此配置区之前,我只在代理中使用了一个简单的公式(计划每天运行),如下所示:(只有 30 天固定 - 现在用户可以在配置区中设置为他想要多少天)

@If(@Date(@Adjust(@Date(@Now);0;0;30;0;0;0)) = @Date(final_date)); 
    (@MailSend("Name1":"Name2":"Name3";"";"";"This document expires in 30 days!";"";"";
[IncludeDoclink]) );

我知道使用 @DBLookup@Dbcolumn 我可以从视图中的 2 列中获取值。但是,如何根据配置区域上建立的天数大小创建尽可能多的 @MailSend 函数?我应该创建一个长度 = 第一列中 @DbColumn 元素的“长度”的数组吗?

另外,是否必须只创建一个代理(使用多个 @MailSend )或多个?如果有机会,我想在公式语言中执行此操作,或者,如果它更易于理解和更简单,在 LotusScript 中。

任何帮助将不胜感激。感谢您的宝贵时间!

【问题讨论】:

    标签: view lotus-notes formula


    【解决方案1】:

    计算@Date(final_date)@Today 之间的天数差,并将其用作@DbLookup(... [FAILSILENT]) 的键以获取@MailSend 的名称列表。如果列表为空,您不必发送邮件。

    【讨论】:

    • 谢谢。如果从 DbLookup 返回的名称超过 1,我应该使用任何 @Functions 还是只使用字段名称?
    • @DbLookup 的结果是@MailSend 的第一个参数 - 没有任何进一步的@Function,因为它已经是一个名称列表。
    • 对于不同的日子:(@Date(final_date)-@Today)/86400 应该可以工作,对吧?
    • 我的日期字段条件不起作用。我有这样的事情:days := @If(txt_case="";(@Date(date1)-@Today)/86400; txt_case2="Case2";(@Date(date2)-@Today)/86400; txt_case3 ="Case3";(@Date(date3)-@Today)/86400;@Return(""));字段名称和字符串都可以,但结果始终为空。
    • 尝试通过@Prompt 找出问题所在。先尝试一些简单的公式,然后继续前进。
    【解决方案2】:

    只需用 Lotusscript 编写即可。在我看来要容易得多。

    使用 NotesView 类的 AllEntries 属性获取包含视图中所有条目的 NotesDocumentCollection 对象,然后使用 GetFirstEntry/GetNextExtry 循环遍历集合。

    使用 NotesViewEntry 对象的 ColumnValues 属性获取第一列和第二列(比实际打开/访问 NotesDocument 对象快得多),然后简单地向用户发送邮件。

    比较日期也会容易得多。只需使用今天的日期创建一个 NotesDateValue 对象,将其设置为未来的 n 天——其中 n 是 ColumnValues(0) 中的值——并将其与最终日期(您还应该将其放在视图中的列中以便快速查找)。

    我还建议您进行 >= 比较。如果代理在某一天未能运行,则不会与您的代码一起发送任何通知。如果通知发送成功,则在文档上设置一个标志,并排除具有该标志的任何文档在视图中显示。

    【讨论】:

    • 谢谢你,卡尔-亨利。我也会尝试用 Lotus Script 编写它。感谢您的提示!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多