C ервер Oracle Некоторые возможности интеграции. Сервер Oracle – некоторые возможности интеграции Работа с COM- объектами на сервере Формирование документа.

Презентация:



Advertisements
Похожие презентации
Work with databases in Java. JDBC Tutorial for students of universities Author: Dudnik Oxana.
Advertisements

PL/SQL Пакеты. Определение Пакет – это объект схемы данных, объединяющий набор типов, объектов и подпрограмм PL/SQL.
Пример реализации приложения Программа отправки и анализа SMS-сообщений (через с WEB-интерфейсом.
Work with server by XMLRPC – library in Java For students Author: Dudnik Oxana.
1/27 Chapter 9: Template Functions And Template Classes.
Oracle Application Express Некоторые приемы работы при реализации WEB- доступа к Парус 8.
Параллельная работа сокетов в C#. Потоки в C# using System; using System.Threading; public class ThreadExample { public static void ThreadProc() { for.
© 2009 Avaya Inc. All rights reserved.1 Chapter Nine, Voic Pro in SCN Module Four – Distributed Voic Pro.
Обработка исключительных ситуаций, работа с файлами Исключительные ситуации Классы File, InputStream, RandomAccessFile, FileReader, BufferedReader, BufferedWriter,
Copyright 2003 CCNA 1 Chapter 9 TCP/IP Transport and Application Layers By Your Name.
Object-Oriented Programme 1 SSD3: Object-Oriented Programming and Design.
PL/SQL Хранимые процедуры и функции. Процедуры [CREATE [OR REPLACE]] PROCEDURE procedure_name[(parameter[, parameter]...)] {IS | AS} [local declarations]
Standard I/O and Pipes. Standard Input and Output Linux provides three I/O channels to Programs Standard input (STDIN) - keyboard by default Standard.
© 2009 Avaya Inc. All rights reserved.1 Chapter Three, Voic Pro Advanced Functions Module Two – Database and IVR.
© 2009 Avaya Inc. All rights reserved.1 Chapter Three, Voic Pro Advanced Functions Module One – Text to Speech.
Test 14 Вопрос 1. class Main { public void method() { static class One { public One() { System.out.println("From one"); } } public static void main(String...
Отчеты с типом «Двоичные данные» «Парус-Предприятие 8» Материалы вебинара можно скачать по ссылке:
Designing Enterprise Edge Connectivity © 2004 Cisco Systems, Inc. All rights reserved. Reviewing the Enterprise Edge Network Design Methodology ARCH v
Сокеты TCP/IP Лекция Понятие сокета Если требуется получить доступ к сетевым операциям низкого уровня (класс URL обеспечивает выполнение только.
A class is just a collection of variables--often of different types--combined with a set of related functions. The variables in the class are referred.
Транксрипт:

C ервер Oracle Некоторые возможности интеграции

Сервер Oracle – некоторые возможности интеграции Работа с COM- объектами на сервере Формирование документа MS-Excel Формирование PDF документа Как без COM? Работа с функциями ОС сервера Принципиальная схема работы Пример выполнения команды ОС Отправка (SMTP) с вложением

Работа с COM- объектами на сервере Установка Oracle COM Automation Feature Схема работы Установка математического обеспечения Конфигурирование служб Oracle Net Настройка серверной части Установка надстроек для работы с COM- серверами MS Word, MS Excel, MS Power Point, MAPI Документация

СЕРВЕР Внешние проецессыОбласть процессов экземпляра БД Oracle Работа с COM- объектами на сервере – Схема работы Экземпляр БД Хранимые PL/SQL объекты Oracle Listener Обработчик RPC Oracle COM Feature Данные БД Внешние COM серверы COM/DCOM Oracle Net RPC

Работа с COM- объектами на сервере – Установка математического обеспечения

Работа с COM- объектами на сервере – Конфигурирование служб Oracle Net LISTENER = (ADDRESS_LIST= … (ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC0) ) … ) LISTENER.ORA EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC0)) (CONNECT_DATA = (SID = plsextproc))) ) TNSNAMES.ORA

Работа с COM- объектами на сервере – Настройка серверной части SQL> CONNECT \COM\COMWRAP.SQL Компиляция объектов Oracale COM Automation Feature

Работа с COM- объектами на сервере – Установка надстроек для работы с COM- серверами MS Word, MS Excel, MS Power Point, MAPI SQL> CONNECT \COM\DEMOS\EXCELSOL.SQL \COM\DEMOS\WORDSOL.SQL \COM\DEMOS\PPTDSOL.SQL \COM\DEMOS\MAPISOL.SQL Компиляция объектов надстроек для Excel, Word, PowerPoint, MAPI

Работа с COM- объектами на сервере - Документация Oracle COM Automation Feature Developer's Guide Oracle COM Automation PL/SQL Demos

Работа с COM- объектами на сервере – Формирование документа MS-Excel declare N binary_integer := 2; I binary_integer; FILENAME varchar2(255); CELLINDEX varchar2(40); CELLCOLUMN varchar2(40); begin FILENAME := 'd:\excel'; I := ORDEXCEL.CREATEEXCELWORKSHEET(''); I := ORDEXCEL.INSERTDATA('A1', ' Номер ', 'BSTR'); I := ORDEXCEL.INSERTDATA('B1', ' Мнемокод ', 'BSTR'); I := ORDEXCEL.INSERTDATA('C1', ' Наименование ', 'BSTR'); I := ORDEXCEL.INSERTDATA('D1', ' Сумма ', 'BSTR'); for C1_REC in (select AG.AGNABBR, AG.AGNNAME from AGNLIST AG where ROWNUM

Работа с COM- объектами на сервере – Формирование документа PDF Apache FOP (Formatting Objects Processor) + XSL Formatting Objects (XSL-FO) PL/PDF

Работа с COM- объектами на сервере – Как без COM? XML - XLS

Работа с COM- объектами на сервере – Как без COM? POI-HSSF (Poor Obfuscation Implementation - Horrible SpreadSheet Format) и POI-XSSF (Poor Obfuscation Implementation – XML SpreadSheet Format) Java Excel API

Работа с функциями ОС сервера – Принципиальная схема работы СЕРВЕР Внешние проецессыОбласть процессов экземпляра БД Oracle Экземпляр БД Oracle JVM PL/SQL- обёртка Java Class ОС Прикладные PL/SQL объекты

Работа с функциями ОС сервера – Пример выполнения команды ОС create or replace and compile java source named "OsUtils" as import java.io.IOException; import java.io.InputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; class StreamGobbler extends Thread { InputStream is; String type; StreamGobbler (InputStream is, String type) { this.is = is; this.type = type; } public void run () { try { InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line; while ((line = br.readLine()) != null) OsUtils.result.append(line).append("\n"); } catch (IOException ioe) {ioe.printStackTrace();} } public class OsUtils { public static StringBuffer result; public static int runCommand (String command) throws Throwable { result = new StringBuffer(); Runtime rt = Runtime.getRuntime(); Process proc = rt.exec(command); StreamGobbler errorGobbler = new StreamGobbler(proc.getErrorStream(), "ERROR"); StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(), "OUTPUT"); errorGobbler.start(); outputGobbler.start(); proc.waitFor(); return proc.exitValue(); } 1. Java Class, выполняющий команду операционной системы Runtime.getRuntime() Runtime.exec( ) runCommand Экспортируемая функция интерфейса класса

Работа с функциями ОС сервера – Пример выполнения команды ОС create or replace function udo_f_run_os_command (p_cmd in varchar2) return number as language java name 'OsUtils.runCommand (java.lang.String) return int'; 2. PL/SQL- обёртка declare result number; begin result := udo_f_run_os_command('C:\WINNT\system32\cmd.exe /c dir'); end; 3. Использование для прикладных целей exec dbms_java.grant_permission(user, 'SYS:java.io.FilePermission', 'C:\WINNT\system32\cmd.exe', 'execute' ); 4. Назначение дополнительных прав доступа

Отправка (SMTP) с вложением conn:=utl_smtp.open_connection(MAIL_SERVER, MAIL_PORT); utl_smtp.ehlo(conn, MAIL_SERVER); utl_smtp.command(conn, 'AUTH LOGIN'); utl_smtp.command(conn, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(MAIL_USER)))); utl_smtp.command(conn, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(MAIL_USER_PASS)))); utl_smtp.mail(conn, MAIL_SENDER); utl_smtp.open_data(conn); write_mime_header(conn, 'To', MAIL_RECIVIER); write_mime_header(conn, 'Subject', MAIL_SUBJECT); write_mime_header(conn, 'Sender', MAIL_SENDER); write_mime_header(conn, 'From', MAIL_SENDER); write_mime_header(conn, 'Content-Language', 'ru'); write_mime_header(conn, 'Content-Type', 'text/plain; charset=Windows-1251'); write_mime_header(conn, 'Content-Transfer-Encoding', '8bit'); utl_smtp.write_data(conn, utl_tcp.crlf); utl_smtp.write_raw_data(conn, utl_raw.cast_to_raw(MESSAGE)); utl_smtp.write_data(conn, utl_tcp.crlf); utl_smtp.write_data(conn, utl_tcp.crlf); utl_smtp.write_data(v_Mail_Conn, '--'|| MAIL_SEPARATOR || utl_tcp.crlf ); utl_smtp.write_data(conn, 'Content-Type: '||ATT_MIME_TYPE||';'|| utl_tcp.crlf ); utl_smtp.write_data(conn, ' name="'||ATT_NAME||'"'|| crlf ); utl_smtp.write_data(conn, 'Content-Transfer-Encoding: base64'|| utl_tcp.crlf ); utl_smtp.write_data(conn, 'Content-Disposition: attachment;'|| utl_tcp.crlf ); utl_smtp.write_data(conn, ' filename="'||ATT_FILE_NAME||'"' || utl_tcp.crlf); utl_smtp.write_data(conn, crlf ); ps:=1; LOOP BEGIN dbms_lob.read(ATT_BLOB_DATA, 48, ps, att_raw_data); ps := ps + 48; utl_smtp.write_raw_data(conn, utl_encode.base64_encode(att_raw_data)); EXCEPTION WHEN no_data_found THEN EXIT; END; END LOOP; utl_smtp.write_data(conn, '--' || MAIL_SEPARATOR || '--'); utl_smtp.write_data(conn, crlf ); utl_smtp.write_data(conn, crlf ); utl_smtp.close_data(conn); utl_smtp.rset(conn); utl_smtp.quit(conn);

Примеры применения 1. Эмуляция сервера печати для формирования тяжелых отчетов ( Пользовательская процедура Парус 8 + DBMS_JOB, DB Scheduler + ORDExcel + PrNotifier) create procedure UDO_P_START_PRINTING as NJOB binary_integer; begin dbms_job.submit(job => NJOB,what => 'begin UDO_P_DO_PRINTING; end;'); end; create procedure UDO_P_DO_PRINTING as begin I := ORDEXCEL.CREATEEXCELWORKSHEET(''); I := ORDEXCEL.INSERTDATA('A1', ' Номер ', 'BSTR'); I := ORDEXCEL.SAVEEXCELFILE(FILENAME); I := ORDEXCEL.EXITEXCEL();... P_NOTQUEUE_BASE_INSERT(nMSG_ID => GEN_ID,nADDR_COMPANY => GET_SESSION_COMPANY,sADDR_USER =>... ); end;

Примеры применения 2. Автоматическая рассылка отчетности (DBMS_JOB, DB Scheduler + ORDExcel + UTL_SMTP) 3. Ускорение печати тяжелых отчетов (XML – XLS, ORDExcel) 4. Реализация конвертеров ( Исполнение команд ОС (UDO_F_RUN_OS_COMMAND) + UTL_FILE + PL/SQL + Парус 8 API)

Спасибо Ваши вопросы