有人可以提出他们关于如何调试我们从 ACCE 的批量操作脚本编写的 javascript 的想法吗?我了解警报或调试语句可能在那里不起作用。我们还有哪些其他选择?
问问题
885 次
1 回答
2
我所做的是用java编写脚本。
进口几乎一样。变量需要重新声明为 var 而不是 String 等。其他一切都差不多。
您可能需要注意的一些事项:您可能需要立即在 ceobject 上调用 refresh。您可能想要设置一个 java 类,该类具有一个引入 ceobject 的方法,就像 JavaScript 所做的那样。
IBM 提供了一个设置文档属性的 JavaScript 示例。 同一页面上还有其他示例演示了从 ACCE JavaScript 中使用 Java api。
这是一个特别好的示例,因为它显示了批量更新功能最常见的用途之一:
importClass(Packages.com.filenet.api.property.Properties);
importClass(Packages.com.filenet.api.constants.RefreshMode);
function OnCustomProcess (CEObject)
{
CEObject.refresh();
CEObject.getProperties().putValue("DocumentTitle", "Test1");
CEObject.save(RefreshMode.REFRESH);
}
用 Java 编写的完全相同的代码:
import com.filenet.api.property.Properties;
import com.filenet.api.constants.RefreshMode;
import com.filenet.api.core.Document;
public class Java2JavaScript {
public void OnCustomProcess (Document CEObject)
{
CEObject.refresh();
CEObject.getProperties().putValue("DocumentTitle", "Test1");
CEObject.save(RefreshMode.REFRESH);
}
可以注意到以下差异:
- import 语句的语法略有不同。
- JavaScript 不需要 CEObject 导入,但 Java 需要。但是它可以包含在 JavaScript 中。在这种情况下,我们导入 Document
import com.filenet.api.core.Document;
,但是可以使用其他类型的 CEObject 来代替 Document。 - 您的 Java 类将需要一个有效的类定义。
- 您必须在 Java 方法中声明 CEObject。此外,java 中的任何声明(即 String someString)都需要更改为 JavaScript 声明(var someString)
- Java“public void OnCustomProcess (Document CEObject)”简单地变成了“function OnCustomProcess (CEObject)”。ACCE 将只接受“function OnCustomProcess (CEObject)”作为被调用函数。
于 2017-09-15T18:53:28.653 回答