2016-06-24 4 views
1

В моем текущем проекте с использованием FileNet P8 Content Platform 5.2.1 Двигатель с WebSphere 8.5.5.3, IBM RAD 9.5 и Apache Maven 3.3.1реализация IBM FileNet P8 Изменение Препроцессор Java не может быть найден

Пытаюсь разверните препроцессор изменений, связанный с определенным классом документа. Каждый раз, когда документ добавляется к этому классу или подклассу, я хотел бы, чтобы 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 'PDGOV CP Добавить PropertiesToDocument действие' объект был не сохранен.

Ответ пользователя: обновите объект, повторите ввод изменений и повторите попытку или обратитесь к вашему системному администратору.

Сведение об исключении: не удалось загрузить класс обработчика событий либо из связанных кода модуля или системы: классов com.finmeccanica.spc.ecm.filenet.cp.actionhandler.AddPropertiesToObjectCP. Сообщение было: com.finmeccanica.spc.ecm.filenet.cp.actionhandler.AddPropertiesToObjectCP

Сосуд Я загрузил содержит класс в нужном пакете и содержание код модуля является не поврежден.

Я что-то упустил? Мне нужно настроить что-то еще?

ответ

3

В коде отсутствует код. Я повторил ваши шаги и получил ту же ошибку, когда попытался преобразовать существующее действие препроцессора изменения из типа JavaScript в тип класса Java. Он не смог найти модуль кода.

Однако, когда я создал новое действие препроцессора изменения, используя тот же CodeModule, он работал нормально. Разница заключается в том, что при создании нового вам предлагается выбрать для своего модуля кода, а не вводить его имя.

Чтобы исправить, не конвертируйте существующее действие из типа JavaScript. Вместо этого создайте новое действие для изменения препроцессора, выбрав тип Java с самого начала.

+0

Это сработало! Я применил ваши предложения, и вы были совершенно правы. – abarisone