找不到IBM Filenet P8更改预处理器Java实现
在我当前使用Filenet P8内容平台引擎5.2.1和WebSphere 8.5.5.3、IBM RAD 9.5和Apache Maven 3.3.1的项目中
我正在尝试部署一个链接到某个文档类的更改预处理器。 每次将文档添加到此类或子类时,我都希望CP更改一些属性
我以代码模块的形式上传了操作处理程序的类,与订阅的方式相同:
其中,“更新文档属性CP对象内容元素”选项卡显示如下:
我已经在文档类更改预处理器定义选项卡中使用ACCE正确配置了预处理器定义:
动作的Javascript实现是有效的
// Set NumeroContratto property to certain value when a new document is created.
importClass(Packages.com.filenet.api.action.Create);
function preprocessObjectChange (sourceObj)
{
// Verify that the pending action is a create action.
var actions = sourceObj.getPendingActions();
for ( var i = 0; i < actions.length; i++ )
{
if ( actions[i] instanceof Create )
{
// Set NumeroContratto property to "777"
sourceObj.getProperties().putValue("NumeroContratto", "777");
return true;
}
}
return false;
}
这是Java实现:
package com.finmeccanica.spc.ecm.filenet.cp.actionhandler;
import com.filenet.api.action.*;
import com.filenet.api.core.IndependentlyPersistableObject;
public class AddPropertiesToObjectCP implements
com.filenet.api.engine.ChangePreprocessor {
public boolean preprocessObjectChange(
IndependentlyPersistableObject sourceObj) {
try {
PendingAction actions[] = sourceObj.getPendingActions();
for (int i = 0; i < actions.length; i++) {
if (actions[i] instanceof Create) {
sourceObj.getProperties()
.putValue("NumeroContratto", "777");
return true;
}
}
return false;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
有什么问题
我无法让预处理器在Java中实现它。尽管如此,我还是用Java类处理程序的名称和代码模块标题填充字段
当我单击保存更改预处理器操作时,系统总是告诉我它找不到类:
FNRAC1005E The 'PDGOV CP Add PropertiesToDocument Action' object was not saved.
User response: Refresh the object, reenter your changes, and try again, or contact your system administrator.
Exception details: Unable to load event handler class from either associated code module or system classpath: com.finmeccanica.spc.ecm.filenet.cp.actionhandler.AddPropertiesToObjectCP. Message was: com.finmeccanica.spc.ecm.filenet.cp.actionhandler.AddPropertiesToObjectCP
我上传的jar包含正确包中的类,代码模块的内容没有损坏
我错过什么了吗?我必须配置其他东西吗
# 1 楼答案
代码中没有遗漏任何内容。我复制了您的步骤,并在尝试将现有更改预处理器操作从JavaScript类型转换为Java类类型时收到了相同的错误。它找不到代码模块
然而,当我使用相同的CodeModule创建一个新的更改预处理器操作时,它工作得很好。不同之处在于,创建新模块时,系统会提示您浏览代码模块,而不是键入其名称
要修复此问题,请不要将现有操作从JavaScript类型转换为JavaScript类型。而是创建一个新的更改预处理器操作,从一开始就选择Java类型