有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

找不到IBM Filenet P8更改预处理器Java实现

在我当前使用Filenet P8内容平台引擎5.2.1和WebSphere 8.5.5.3、IBM RAD 9.5和Apache Maven 3.3.1的项目中

我正在尝试部署一个链接到某个文档类的更改预处理器。 每次将文档添加到此类或子类时,我都希望CP更改一些属性

我以代码模块的形式上传了操作处理程序的类,与订阅的方式相同:

Code modules folder

其中,“更新文档属性CP对象内容元素”选项卡显示如下:

Code module content elements

我已经在文档类更改预处理器定义选项卡中使用ACCE正确配置了预处理器定义:

Document class' Change Preprocessor Definition tab

动作的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类处理程序的名称和代码模块标题填充字段

Change preprocessor action Java class

当我单击保存更改预处理器操作时,系统总是告诉我它找不到类:

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) 个答案

  1. # 1 楼答案

    代码中没有遗漏任何内容。我复制了您的步骤,并在尝试将现有更改预处理器操作从JavaScript类型转换为Java类类型时收到了相同的错误。它找不到代码模块

    然而,当我使用相同的CodeModule创建一个新的更改预处理器操作时,它工作得很好。不同之处在于,创建新模块时,系统会提示您浏览代码模块,而不是键入其名称

    要修复此问题,请不要将现有操作从JavaScript类型转换为JavaScript类型。而是创建一个新的更改预处理器操作,从一开始就选择Java类型