如何使用 JScript 设置列表值

How to set a List value with JScript

在 FileNet 中,使用 FEM 或 ACCE,可以使用 JScript 为对象设置属性值。官方 IBM 指南提供了这个示例(对于字符串):

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);
}

但是有没有可能对更复杂的对象做同样的事情呢?我特别指的是 StringList 类型。网上没有例子,定义类JS的数组也不行

对于更复杂的对象,绝对可以这样做。其中大部分只是遵循使用 Java 遵循的路径,但将变量类型的名称更改为 var。因此设置多值字符串属性的值的代码如下:

importClass(Packages.com.filenet.api.constants.RefreshMode);
importClass(Packages.com.filenet.api.core.Factory);

function OnCustomProcess (CEObject)
{
   CEObject.refresh();
   var list = Factory.StringList.createList();
   list.add("Value 1");
   list.add("Value 2");
   CEObject.getProperties().putObjectValue("TestMultiValueProperty1", list);
   CEObject.save(RefreshMode.REFRESH);
}

我经常使用 putObjectValue() 方法而不是 putValue() 方法,因为 Java脚本有时会在确定它应该使用 putValue() 的哪个类型安全版本时出现问题。

对于很多示例,您可以转到 ACCE 的域选项卡中的 全局配置 > 数据设计 > 附加组件 部分。不同加载项的预导入和 post 导入脚本包含大量相关的 Java 脚本代码。