Automatisierung von Schritten in Geschäftsprozessen als Einstieg in SOA Ein datengesteuerter E-Mail-Service
Vorstellung
Der Anstoß Der Geschäftsprozeß Das (Grob-)Konzept Agenda Datengesteuerter E-Mail-Service Basis für (WEB-)Services Aufbau APEX-Oberfläche (Demo) Der erste Schritt in Richtung SOA? Was bedeutet SOA (m)eine Definition SOA startet mit Diensten für Fachanwender
Der Anstoß Der Geschäftsprozeß Das (Grob-)Konzept
Der Geschäftsprozeß: Fahrzeugbereitstellung
Fahrzeugbereitstellungsdisposition Tankdatenaufnahme "Kennzeichen", "ID",..., "LL-Endstand", "Kraftstoff [l]",...
Werkstattdisposition
Dispo-Inspektion-Wartung Inspektion (HU,AU, SP) Wartung (Öl, Bremsen,...) Vorschlag: E-Mail von der FahrzeugDB mit Nummern aller Fahrzeuge, deren KM-Stand Intervallbedingung erfüllt.
Grobkonzept für weiteres DB-Package für E-Mail-Versand als Oracle- Job Job einrichten, ändern, löschen E-Mail-Text aus Query erstellen E-Mail versenden Query erstellen Vorgehen APEX-Seite für Job- und Query-Parameter
Grobkonzept für weiteres Vorgehen DB-Package für E-Mail-Versand als Oracle- Job und warum daraus nicht gleich noch einen WEB-Service generieren? und unter einer eigenen APEX-Oberfläche für Job- und Query- Parameter gleich einen E-Mail-Service für alle Datenbanken zur Verfügung stellen. SOA?
Datengesteuerter E-Mail-Service Basis für (WEB-)Services Aufbau APEX-Oberfläche (Demo)
Datengesteuerter E-Mail-Service Package EMail_Service (1) function Query2EMail_Text(cQuery IN varchar2, ctext OUT clob, cparam IN varchar2 default null) return number; /* Procedures */ procedure EMail_Senden_DB(cPlanung IN varchar2,...); procedure EMail_Senden(cVerteiler IN varchar2,...); procedure EMail_Planung(cPlanung IN varchar2 default NULL,... ctext IN varchar2, ctext_typ IN char,...); procedure EMail_Planung_loeschen(nJobNr IN OUT number, cplanung IN varchar2 default NULL); procedure EMail_aendern(cPlanung IN varchar2 default NULL, njobnr IN number default NULL,...);
Datengesteuerter E-Mail-Service Package EMail_Service (2) ----- function EMail_Planung_Alle_Planungen return varchar2; procedure EMail_Planung_Lesen(cPlanung IN varchar2, nabsatz IN number, njobnr OUT number,...); procedure EMail_Konfig(cServer IN varchar2 default NULL, nport IN number default NULL, cdomaene IN varchar2 default NULL); END;
Datengesteuerter E-Mail-Service Tabelle E_MAIL_PLANUNG
Datengesteuerter E-Mail-Service Tabelle KONFIGURATION
Datengesteuerter E-Mail-Service Package-Procedure EMail_Senden (1)... if ( csender is null ) then select NAME '@' cdef_domaene into cdef_sender from V$DATABASE; end if; if ( ctext_typ = 'Q' ) then nsqlerror := Query2EMail_Text(cText, cemail_text, cparam);... end if; if ( nzustellenwennleer = 1 or rtrim(cemail_text) is not null ) then /*-----------------------------------------------------------*/ /* E-Mail senden */ /*-----------------------------------------------------------*/... end if;
Datengesteuerter E-Mail-Service Package-Procedure EMail_Senden (2) /* E-Mail senden */ /*-----------------------------------------------------------*/ rsmtp_con := UTL_SMTP.OPEN_CONNECTION(cDef_Server, ndef_port); rsmtp_rpl := UTL_SMTP.HELO(rSMTP_Con, cdef_domaene); csmtp_kommando := 'MAIL'; rsmtp_rpl := UTL_SMTP.MAIL(rSMTP_Con, cdef_sender); if ( rsmtp_rpl.code/10 <> 25 ) then raise utl_smtp.transient_error; end if;... rsmtp_rpl := UTL_SMTP.OPEN_DATA(rSMTP_Con); UTL_SMTP.WRITE_DATA(rSMTP_Con, 'From: ' cdef_sender UTL_TCP.CRLF);... UTL_SMTP.WRITE_DATA(rSMTP_Con, cemail_text); csmtp_kommando := 'CLOSE_DATA';...
Datengesteuerter E-Mail-Service Package-Procedure EMail_Planung (1) begin if ( cplanung is not null ) then nsqlerror := InsertPlanung(cPlanung, cverteiler, ctext, ctext_typ, 1, cparam, nzustellenwennleer); caufruf := 'EMail_Service.EMail_Senden_DB(''' cplanung ''',''' csender ''',''' cbetreff ''');'; if ( nsqlerror = 1 ) then select distinct JOB_NR into njobnr from E_MAIL_PLANUNG where PLANUNGS_BEZ = cplanung; if ( njobnr >0 ) then EMail_Planung_loeschen(nJobNr); end if; nsqlerror := 0; end if; else...
Datengesteuerter E-Mail-Service Package-Procedure EMail_Planung (2) else caufruf := 'EMail_Service.EMail_Senden(''' cverteiler ''',''' csender ''',''' cbetreff ''',''' ctext ''',''' ctext_typ ''',''' cparam ''',''' nzustellenwennleer ''',''' cserver ''',''' nport ''',''' cdomaene ''');'; end if;
Datengesteuerter E-Mail-Service Package-Procedure EMail_Planung (3) /*----------------------------------------------------------*/ /* Job starten */ /*----------------------------------------------------------*/ njobnr := 0; DBMS_JOB.SUBMIT(nJobNr, caufruf, to_date(nstarttag to_char(nstartzeit, '99.99'), 'yyyymmddhh24.mi'), cinterval, force => TRUE); COMMIT; if ( cplanung is not null ) then update E_MAIL_PLANUNG set JOB_NR = njobnr where PLANUNGS_BEZ = cplanung; COMMIT; end if; end;
Der E-Mail-Service und seine Operationen
Demonstration der APEX-Oberfläche Aufruf des Web-Service aus APEX Konfiguration von Servicen Planungen durchführen
Der erste Schritt in Richtung SOA? Was bedeutet SOA (m)eine Definition SOA startet mit Diensten für Fachanwender
Was bedeutet SOA (m)eine Definition Da es sich um einen zusammengesetzten Begriff handelt, beginnen wir mit der Bedeutung der einzelnen Wörter und zwar als Übersetzung aus dem Englischen ins Deutsche: Service: Bedienung, Dienstleistung, [Kunden]dienst,... Oriented: bezogen, orientiert Architecture: Architektur, Baufach, Baukunst, Bauweise,...
CW 07.12.2005: In zehn Schritten zur SOA SOA ist eine Idee, keine Technik. Diese Botschaft kommuniziert die IT-Industrie schon seit längerem.... Das große Ziel ist eine an Geschäftsprozessen ausgerichtete IT-Infrastruktur, die schnell auf veränderte Anforderungen reagiert. Weil Services mehrfach verwendet werden können, verspricht SOA zudem Kostenvorteile.
Werkstattdisposition mit E-Mail- Service
SOA startet mit Diensten für Fachanwender IT-Dienste zur Verfügung stellen, die er selbst in unterschiedlichen Geschäftsprozessen nach Bedarf einsetzen kann. Für Fachanwender geeignete Dialog- Oberfläche für (WEB-)Service anbieten UDDI-Registry, Orchestrierung, ESB...? Ein Orchester braucht einen Dirigenten, ein Flötenquartett aber nicht!
Vielen Dank für Ihre Aufmerksamkeit F Fragen & Antworten A