
Как создать Java Concurrent Program:
- Создать директорию $FND_TOP/java/cp/request (желательное, но не обязательное место)
- Скопировать java класс
- Скомпилировать java класс
- Регистрируем Concurrent Program Executable
- Метод выполнения: Параллельная программа JAVA
- Имя исполняемого файла указываем без формата файла
- Регистрируем Concurrent Program
- Поле формат = Текст
- Для параметров заполняем также идентификаторы (token)
Шаблон java класса
================= Template.java===========================
package oracle.apps.fnd.cp.request;
// Change the package name to the required one.
// import all the other required classes/packages.
import oracle.apps.fnd.util.*;
import oracle.apps.fnd.cp.request.*;
// Change the name of the class from Template to your concurrent program
// class name
public class Template implements JavaConcurrentProgram
{
/** Optionally provide class constructor without any arguments.
* If you provide any arguments to the class constructor then while
* running the program will fail.
*/
public void runProgram(CpContext pCpContext)
{
ReqCompletion lRC = pCpContext.getReqCompletion();
String CompletionText = "";
/* Code your program logic here.
* Use getJDBCConnection method to get the connection object for any
* JDBC operations.
* Use CpContext provided commit,rollback methods to commit/rollback
* data base transactions.
* Don't forget to release the connection before returning from this
* method.
*/
/* Call setCompletion method to set the request completion status and
* completion text.
* Status values are ReqCompletion.NORMAL,ReqCompletion.WARNING,
* ReqCompletion.ERROR.
* Use Completion text message of length 240 characters. If it is more
* than 240 then full string will appear in log file and truncated 240
* characters will be used as request completion text.
*/
lRC.setCompletion(ReqCompletion.NORMAL, CompletionText);
}
}
==================End of Template.java===========================
LogFile и OutFile
Для вывода в лог или out:
// get LogFile object from CpContext
LogFile lLF = pCpContext.getLogFile();
lLF.writeln("APPS-ORACLE.RU", LogFile.STATEMENT);
// get OutFile object from CpContext
OutFile lOF = pCpContext.getOutFile();
lOF.writeln("APPS-ORACLE.RU");
Код завершения
Для типа завершения канкарента (ошибка, предупреждение) используем
ReqCompletion lRC = pCpContext.getReqCompletion(); lRC.setCompletion(ReqCompletion.NORMAL, ""); lRC.setCompletion(ReqCompletion.WARNING, ""); lRC.setCompletion(ReqCompletion.ERROR, "");
Получение входных параметров
// считываем входные параметры
ParameterList l_params = p_cp_context.getParameterList();
NameValueType l_param;
while (l_params.hasMoreElements()) {
l_param = l_params.nextParameter();
if (l_param.getName().equals("p_name_param1")) {
lParam1 = l_param.getValue();
} else if (l_param.getName().equals("p_name_param2")) {
lParam2 = l_param.getValue();
}
}
Connection
Connection con = p_cp_context.getJDBCConnection();
Environment
p_cp_context.getEnvironmentStore().getEnv("JAVA_TOP")
Ссылка на metalink:How To Create a Java Concurrent Program? [ID 827563.1]

oracle.apps.fnd.util — нет такого пакета