有人可以对我们如何从ACCE从批量操作脚本编写的JavaScript提出想法?我知道警报或调试声明可能在那里不起作用。我们有哪些其他选择?
我要做的是在java中写下脚本。
进口几乎相同。变量需要重新定义为var而不是字符串等。其他所有内容几乎相同。
您可能想注意的一些事情:您可能需要立即在CEOBject上致电刷新。您可能想设置一个Java类,其方法像JavaScript一样带有CeObject。
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);
}
可以注意以下差异:
- 导入语句语法略有不同。
- JavaScript不需要ceObject导入,而是Java所需的。但是,它可以包含在JavaScript中。在这种情况下,我们导入文档
import com.filenet.api.core.Document;
,但是可以使用其他类型的CeObject代替文档。 - 您的Java类需要有效的类定义。
- 您必须在Java方法中声明CeObject。此外,Java中的任何声明(即字符串)都需要更改为JavaScript声明(var somestring)
- java" public void oncustomprocess(document ceobject)"简单地成为"函数oncustomprocess(ceObject)"。ACCE只会接受"函数oncustomprocess(ceObject)"作为所谓的函数。