【问题标题】:Lotus Notes - @Transform - Workaround available for XPages?Lotus Notes - @Transform - 可用于 XPages 的解决方法?
【发布时间】:2013-01-09 22:28:38
【问题描述】:

我目前正在将一个 Lotus Notes 应用程序迁移到 XPages。该应用程序包含几个使用“@Transform”的公式,并且由于没有与“@Transform”等效的 SSJS,我想知道如何最好地在 XPages 中对这些公式进行编码。目前我正在尝试使用 session.evaluate。这是最好的选择还是有人可以推荐其他方法?

【问题讨论】:

    标签: xpages lotus


    【解决方案1】:

    如果您有现有的@Formula 代码,session.evaluate 会很方便。在 SSJS 中你可以使用:

    for (var i in array_variable) {
      print(array_variable[i]);
    }
    

    for (var element in vector_or_list) {
      print(element);
    }
    

    【讨论】:

    • 我也使用过这种方法。将您的 @Transform 逻辑转换为 SJSS,您可以在其中使用循环。
    • 谢谢。我会对此进行研究,但我在迁移到 XPages 的遗留应用程序中有很多 @Transform 公式,所以我担心这种方法需要大量编码。
    • 我让它工作了: var tmpVar1 = @Replace(tmpVar, @Word(r5,"#",3), @Word(r5,"#",1)); var ids = 新数组(); for (var i in tmpVar1) { ids[i] = @If(@Length(tmpVar1[i]) > 1,tmpVar1[i],"(empty)"); } - 比使用 session.evaluate 容易得多(见下面的评论)
    【解决方案2】:

    我建议您使用 session.evaluate(),就像您当前尝试做的那样。

    既然你写了“trying”——你有什么问题吗?如果您在多个地方使用此功能,我建议您创建一个自定义 Java 类来处理评估(并确保正确输入)。它可以很容易地从您的 SSJS 中调用 - 它会成为 XSnippet 或扩展库扩展的理想候选者;-)

    /约翰

    【讨论】:

    • 谢谢。我有一个 SSJS 公式 - var tmpVar1 = @Replace(tmpVar, @Word(r5,"#",3), @Word(r5,"#",1)); - 给出以下结果: BDBF5A50E76DCDEDC1257AC5004C0188,2.0,3.0,4.0,5.0,6.0,7.0 我使用以下代码将其添加到 session.evaluate: var eval = session.evaluate("@Transform("+tmpVar1+";@If (@Length(entry)>1;entry;\"(空)\"))");但是,这会导致错误 500 HTTP Web 服务器:命令未处理异常。知道这里有什么问题吗?
    • 硬编码 - var eval = session.evaluate("List:=\"BDBF5A50E76DCDEDC1257AC5004C0188\":\"2\":\"3\":\"4\":\"5\" :\"6\":\"7\";@Transform(List;\"entry\";@If(@Length(entry)>3;entry;\"(empty)\"))"); eval - 确实有效并给出了预期的结果。
    • 我想你回答了你的问题。要将公式理解为列表,您需要将结果转换为该格式。当你已经有一个 SSJS 数组时,不使用公式可能更容易。
    • 我尝试使用 - var tmpVar2:string = @Implode(tmpVar1,":"); 将 SSJS 变量转换为正确的格式var tmpVar3 = '"' + @ReplaceSubstring(tmpVar2,":",'":"') + '"'; - 但它给了我一个 500 错误。在这种情况下 tmpVar3 等于 - "BDBF5A50E76DCDEDC1257AC5004C0188":"2":"3":"4":"5":"6":"7" - 我认为这是正确的格式?
    • 您是否尝试过将要评估的字符串放到一个变量中并打印出来?然后,您可以将其放入公式编辑器以确保没有错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    相关资源
    最近更新 更多