我们如何从ACCE调试批量操作javascript?

时间:2017-09-15 18:40:28

标签: filenet-p8 filenet filenet-content-engine

有人可以介绍我们如何调试我们从ACCE的批量操作脚本编写的javascript吗?我知道警报或调试语句可能无法在那里工作。我们还有其他选择吗?

1 个答案:

答案 0 :(得分:2)

我所做的就是用java编写脚本。

进口几乎相同。变量需要重新声明为var而不是String等。其他所有内容都差不多。

您可能需要注意的一些事项: 您可能需要立即在ceobject上调用刷新。 您可能希望设置一个java类,其方法可以像JavaScript一样引入ceobject。

IBM提供了Setting document properties.的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); 
    }  

可以注意到以下差异:

  1. import语句略有不同。
  2. JavaScript不需要CEObject导入,但Java需要导入。但它可以包含在JavaScript中。在这种情况下,我们导入文档import com.filenet.api.core.Document;,但是可以使用其他类型的CEObject而不是Document。
  3. 您的Java类需要一个有效的类定义。
  4. 您必须在Java方法中声明CEObject。此外,java中的任何声明(即String someString)都需要更改为JavaScript声明(var someString)
  5. Java“public void OnCustomProcess(Document CEObject)”简单地变成“函数OnCustomProcess(CEObject)”。 ACCE只接受“函数OnCustomProcess(CEObject)”作为被调用函数。