Создание Enitiy Object c переопределенной логикой операций DML. Подход обычно применяется в случае наличия API для таблицы.
Для создания PL/SQL EO потребуется сделать две вещи:
Для создания PL/SQL EO потребуется сделать две вещи:
- Унаследовать класс EO от класса OAPlsqlEntityImpl (пакет oracle.apps.fnd.framework.server.OAPlsqlEntityImpl);
- В модуле имплементации EO написать собственные функции
- protected void insertRow();
- protected void updateRow();
- protected void deleteRow();
В переопределенных функциях можно разместить вызов необходимого PL/SQL API. Пример:
protected void insertRow() { try { OADBTransactionImpl oadbtran = (OADBTransactionImpl)getDBTransaction(); StringBuffer sBuf = new StringBuffer(); sBuf.append("begin API_PKG.CREATE_ITEM("); sBuf.append("prm_id => :1,"); sBuf.append("prm_name => :2,"); sBuf.append("prm_desc => :3); end;"); String queryStr = sBuf.toString(); OracleCallableStatement oraCStmnt = (OracleCallableStatement)oadbtran.createCallableStatement(queryStr, -1); oraCStmnt.setNUMBER(1, 1); oraCStmnt.setString(2, "Test"); oraCStmnt.setString(3, "Test Description"); oraCStmnt.execute(); } catch(SQLException sqlexception) { throw OAException.wrapperException(sqlexception); } catch(Exception exception) { throw OAException.wrapperException(exception); } }Переопределенные функции будут вызываться при фиксации транзации.
Комментариев нет :
Отправить комментарий