Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lotus Notes-@Transform-可用于XPages的变通方法?_Xpages_Lotus - Fatal编程技术网

Lotus Notes-@Transform-可用于XPages的变通方法?

Lotus Notes-@Transform-可用于XPages的变通方法?,xpages,lotus,Xpages,Lotus,我目前正在将LotusNotes应用程序迁移到XPages。该应用程序包含几个使用“@Transform”的公式,由于“@Transform”没有等价的SSJS,我想知道如何最好地在XPages中编写这些公式。目前我正在尝试使用session.evaluate。这是最好的选择还是有人可以推荐其他方法?我建议您使用session.evaluate(),就像您当前尝试的那样 既然你写了“尝试”-你有什么问题吗?如果您在多个地方使用此功能,我建议您创建一个自定义Java类来处理评估(并确保正确的输入)

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

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

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


/John

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

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


/John

会话。如果您有@Formula代码,则评估
非常方便。在SSJS中,您可以使用:

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


会话。如果您有@Formula代码,则评估
非常方便。在SSJS中,您可以使用:

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


谢谢我有一个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;\“(empty)\”);但是,这会导致错误500 HTTP Web服务器:命令未处理异常。知道这里出了什么问题吗?硬编码-var eval=session.evaluate(“列表:=”BDBF5A50E76DCDEDC1257AC5004C0188\”:“2\”:“3\”:“4\”:“5\”:“6\”:“7\”;@Transform(列表;“条目\”;@If(@Length(条目)>3;条目;\“(空)”);评估-有效并给出预期结果。我想你回答了你的问题。要使公式理解为列表,您需要将结果转换为该格式。当您已经有了SSJS数组时,不使用公式可能更容易一些;变量tmpVar3='''''+@ReplaceSubstring(tmpVar2,“:”,“:”)+';-但它给了我一个500的误差。在这种情况下,tmpVar3等于“BDBF5A50E76DCDEDC1257AC5004C0188”:“2”:“3”:“4”:“5”:“6”:“7”-我认为这是正确的格式?您是否尝试将要计算的字符串放入一个变量并打印出来?然后,您可以将其放置到公式编辑器以确保没有错误。谢谢。我有一个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;\“(empty)\”);但是,这会导致错误500 HTTP Web服务器:命令未处理异常。知道这里出了什么问题吗?硬编码-var eval=session.evaluate(“列表:=”BDBF5A50E76DCDEDC1257AC5004C0188\”:“2\”:“3\”:“4\”:“5\”:“6\”:“7\”;@Transform(列表;“条目\”;@If(@Length(条目)>3;条目;\“(空)”);评估-有效并给出预期结果。我想你回答了你的问题。要使公式理解为列表,您需要将结果转换为该格式。当您已经有了SSJS数组时,不使用公式可能更容易一些;变量tmpVar3='''''+@ReplaceSubstring(tmpVar2,“:”,“:”)+';-但它给了我一个500的误差。在这种情况下,tmpVar3等于“BDBF5A50E76DCDEDC1257AC5004C0188”:“2”:“3”:“4”:“5”:“6”:“7”-我认为这是正确的格式?您是否尝试将要计算的字符串放入一个变量并打印出来?然后,您可以将其放置到公式编辑器以确保没有错误。我也使用了这种方法。将@Transform逻辑转换为SJS,在SJS中使用循环。谢谢。我将对此进行研究,但我在迁移到XPages的遗留应用程序中有很多@Transform公式,因此我担心这种方法需要大量的编码。我使用var-tmpVar1=@Replace(tmpVar,@Word(r5,“#”,3),@Word(r5,“#”,1));var id=新数组();对于(tmpVar1中的变量i){ids[i]=@If(@Length(tmpVar1[i])>1,tmpVar1[i],“(empty)”;}-比使用session.evaluate(见下面的注释)简单得多,我也使用了这种方法。将@Transform逻辑转换为SJS,在SJS中使用循环。谢谢。我将对此进行研究,但我在迁移到XPages的遗留应用程序中有很多@Transform公式,因此我担心这种方法需要大量的编码。我使用var-tmpVar1=@Replace(tmpVar,@Word(r5,“#”,3),@Word(r5,“#”,1));var id=新数组();对于(tmpVar1中的变量i){ids[i]=@If(@Length(tmpVar1[i])>1,tmpVar1[i],“(empty)”;}-比使用session.evaluate容易得多(请参见下面的注释)