Oracle Data Integrator in der Praxis Anbindung von SAP ERP und Essbase Andreas Ballenthin Solution Architect OPITZ CONSULTING Gummersbach GmbH Oracle Business Intelligence und Data Warehouse Konferenz Königswinter bei Bonn, 22. März 2012 OPITZ CONSULTING GmbH 2012 Seite 1
Ihr Oracle Center of Excellence OPITZ CONSULTING GmbH 2012 Seite 2
Mission Wir entwickeln gemeinsam mit allen Branchen Lösungen, die dazu führen, dass sich diese Organisationen besser entwickeln als ihr Wettbewerb. Unsere Dienstleistung erfolgt partnerschaftlich und ist auf eine langjährige Zusammenarbeit angelegt. Leistungsangebot Business IT Alignment Business Information Management Business Process Management Anwendungsentwicklung SOA und System-Integration IT-Infrastruktur-Management Märkte Branchenübergreifend Über 600 Kunden 29% Industrie / Versorger / Telekommunikation Eckdaten Gründung 1990 400 Mitarbeiter 8 Standorte 29% Handel / Logistik / Dienstleistungen 42% Öffentliche Auftraggeber / Banken und Versicherungen / Vereine und Verbände <Präsentationstitel bitte im Folienmaster ändern> OPITZ CONSULTING GmbH 2012 Seite 3
Agenda 1. Motivation 2. Anbindung von SAP ERP als Quellsystem 3. Anbindung von Oracle Essbase als Zielsystem 4. Anbindung von Oracle Essbase als Quellsystem OPITZ CONSULTING GmbH 2012 Seite 4
1 Motivation OPITZ CONSULTING GmbH 2012 Seite 5
Motivation SAP ERP kommt im deutschsprachigen Raum als Datenquelle häufig vor. Negative Vorerfahrungen mit SAP-Anbindungen sind häufig. Essbase dient als Backend für Hyperion Planning u. ä. Essbase wird als Aggregat zu ROLAP-Implementierungen genutzt, insbesondere im Kontext der OBIEE. OPITZ CONSULTING GmbH 2012 Seite 6
Kundenszenario SAP ODI Essbase Transformations-DB Standalone Cube 1 Standalone Cube 2 SAP ERP Hyperion Planning Planning Application 1 Planning Application 2 (Oracle 11.2) OPITZ CONSULTING GmbH 2012 Seite 7
2 Anbindung von SAP ERP als Quellsystem OPITZ CONSULTING GmbH 2012 Seite 8
Rückblende: OWB-SAP-Connector (30.09.2009) Halbautomatisches Deploymentverfahren Mapping definieren Entwicklung 0 Entwickeln OWB SAP R/3 1 Deployen 2 SAP- Transport 3 Benannten ABAP-Code ausführen SAP R/3 Produktion OWB 4 Datenfile transferieren und laden 1. ABAP generieren und per RFC (RFC_ABAP_INSTALL_AND_RUN) an SAP senden 2. Transport des ABAP-Reports über SAP-Transportsystem 3. ABAP-Report ausführen 4. Datenfile per FTP abholen und per SQL-Loader laden OPITZ CONSULTING GmbH 2012 Seite 9
Rückblende: OWB-SAP-Connector (30.09.2009) Erfahrungen (I) Der Einsatz unter Nicht-Windows-Umgebungen ist mühsam, da wenig dokumentiert. Für große Datenmengen ist dieser eher ungeeignet. Einsatz der automatisierten Version scheitert an rechtlichen Rahmenbedingungen und Erfordernissen der Revisionssicherheit. Meist muss der ABAP-Code nachbearbeitet werden. Klammerungen in Filtern wie (( AND ) OR ( AND )) oder (( OR ) AND ( OR )) sorgen für Fehlermeldungen. Datenfile muss auf OWB-Host umbenannt werden. Schlägt der Filetransfer vom SAP-Host auf den FTP-Host fehl, erhält man keine Fehlermeldung. OPITZ CONSULTING GmbH 2012 Seite 10
Rückblende: OWB-SAP-Connector (30.09.2009) Erfahrungen (II) Aus dem Rootverzeichnis des FTP-Servers kann nicht transferiert werden. Die Konstellation "Mapping generiert nach /tmp/xxx" und "FTP-Directory = xxx" und "FTP-Server-Root="/tmp/" funktioniert jedoch. Reportnamen sind nicht übersteuerbar (setzen sich immer aus den Namen der verwendeten Tabellen zusammen). Die Namenslänge ist dem OWB-Connector, nicht aber SAP egal. Es wird nicht nach 30 Zeichen (= Längenbeschränkung eines ABAP-Reportnamens) abgeschnitten. OPITZ CONSULTING GmbH 2012 Seite 11
SAP ABAP ERP Adapter ODI-SAP-Connector Wird von Oracle Deutschland verantwortet Basis: SAPJCo3 (sapjco3.jar, sapjco3.dll) Java-EE-Applikation (odi-sap.jar) Wird dem Oracle Data Integrator als Open Tool bekannt gemacht Gliedert sich nahtlos in die SAP-Transportprozesse ein Genügt rechtlichen Rahmenbedingungen und Erfordernissen der Revisionssicherheit ODI SDK odi-sap.jar OPITZ CONSULTING GmbH 2012 Seite 12
Topologie und Reverse Engineering OPITZ CONSULTING GmbH 2012 Seite 13
Funktionsweise LKM SAP ERP to Oracle (SQLLDR) ODI SAP _OdiSAPAbapExecute odi-sap.jar sapjco3.jar sapjco3.dll Function Group ABAP Program ZODI_FGR LKM SAP ERP to Oracle (SQLLDR) SAP-FTP-Server SAPFTPA Anlieferungsverzeichnis ODI-Work-Table C$_0 OPITZ CONSULTING GmbH 2012 Seite 14
Funktionsweise LKM SAP ERP to Oracle (SQLLDR) OPITZ CONSULTING GmbH 2012 Seite 15
3 Anbindung von Oracle Essbase als Zielsystem OPITZ CONSULTING GmbH 2012 Seite 16
Essbase: Rule Files Daten werden nach Essbase geladen. Rule File wird i. d. R. im Essbase Server definiert. Rule File hat Files oder Datenbanken als Datenquelle. Rule File wird meist von Fachabteilung oder Hyperion- Entwicklern definiert. Rule File liegt üblicherweise in der Verantwortung der Fachabteilung. Es ist wesentlich sinnvoller, ein vorhandenes Rule File anzusprechen, als im ODI ein Rule File zu generieren und ausführen zu lassen. OPITZ CONSULTING GmbH 2012 Seite 17
IKM Essbase Data Load using Rule Files Basis: IKM SQL to Hyperion Essbase (DATA) Optionen und Defaultwerte sind identisch Schritte: IKM SQL to Hyperion Essbase (DATA) Lock journalized table Prepare for loading Load data into essbase Report statistics Cleanup journalized table IKM Essbase Data Load using Rules Files Prepare for loading OPITZ CONSULTING GmbH 2012 Seite 18
Funktionsweise IKM Essbase Data Load using Rule Files ODI-Agent ODI-Agent-lokaler Essbase-Client Essbase IKM Essbase Data Load using Rule Files Prepare for loading (Jython) odihapp_common.jar essmsh OPITZ CONSULTING GmbH 2012 Seite 19
Verwendung shell touch '...\load_essbase.err'; shell rm '...\load_essbase.err'; import database <App>.<Database> dimensions / data connect as 'xxx' identified by 'xxx' using server rules_file 'xxx.rul' on error write to '...\load_essbase.err'; iferror 'exitabort'; shell touch '...\load_essbase.err'; exit 0; define label 'exitabort'; exit; OPITZ CONSULTING GmbH 2012 Seite 20
Parameterübergaben PRE_LOAD_MAXL_SCRIPT wird vollständig als Filename interpretiert. Das Setzen von Essbase-Server-Variablen ist je nach Anwendung nötig. Lösung: 1. Parameterfile maxlparam.msh exportieren (IKM SQL To File Append) set YEAR = FY11; 2. Im maxl-script aufrufen msh ' \maxlparam.msh'; 3. Servervariablen setzen alter database set variable 'YEAR' "$YEAR" ; 4. Servervariable in Calc Scripts, Rules Files u.ä. verwenden OPITZ CONSULTING GmbH 2012 Seite 21
Möglichkeiten alter database set variable ; alter database clear data in region physical; import database data import database dimensions shell msh execute calculation OPITZ CONSULTING GmbH 2012 Seite 22
4 Anbindung von Oracle Essbase als Quellsystem OPITZ CONSULTING GmbH 2012 Seite 23
Essbase: Report Scripts / Calc Scripts Daten aus Essbase extrahieren Report Scripts / Calc Scripts werden i. d. R. im Essbase Server definiert Werden meist von Fachabteilung oder Hyperion-Entwicklern definiert Liegen i. d. R. in der Verantwortung der Fachabteilung Es ist sinnvoll, ein vorhandenes Report Script / Calc Script anzusprechen. OPITZ CONSULTING GmbH 2012 Seite 24
Funktionsweise LKM Hyperion Essbase DATA to SQL Essbase ODI-Agent Ziel (Oracle RDBMS) LKM Hyperion Essbase DATA to SQL Begin Essbase Data Extract (Jython) Extract Data (Jython) odihapp_common.jar odihapp_essbase.jar C$ OPITZ CONSULTING GmbH 2012 Seite 25
Verwendung EXTRACTION_QUERY_FILE Ohne Pfadangabe: Server Report Script Mit Pfadangabe: Client Report Script (agentenlokal) Weiterverarbeitung mit Standard- IKMs z. B. IKM SQL Control Append { DECIMAL v } { SUPALL } { NAMESON } { TABDELIMIT } { ROWREPEAT } { NOINDENTGEN } { SUPMISSINGROWS } { MISSINGTEXT "0" } <Supshare <Row (Year,Period) <DimBottom Year <DimBottom Period! OPITZ CONSULTING GmbH 2012 Seite 26
Wichtige Hinweise Customizing war notwendig. (Schritt Begin Essbase Data Extract ) Column Data des Ziels wird mit UD1 markiert und soll an das Ende des Extrakts gestellt werden. stagcols = ' <%=odiref.getcollist("", "[CX_COL_NAME]=[COL_NAME] ", ", ", "", "!UD1")%> <%=odiref.getcollist(",", "[CX_COL_NAME]=[COL_NAME] ", ", ", "", "UD1")%>' Reihenfolge der Dimensionen ist beliebig, aber reproduzierbar. Nach erstem Extrakt wird Reihenfolge im Report Script an Definition der C$-Tabelle angeglichen. OPITZ CONSULTING GmbH 2012 Seite 27
Wenn das zu langsam ist: LKM Essbase Data Extract using Calc Script Vorlage IKM Essbase Data Load using Rule Files verwenden. Konvertierung zu LKM über Repository-Update vornehmen. UPDATE snp_trt SET trt_type='kl',km_src_techno = 'HYPERION_ESSBASE',km_techno = NULL WHERE i_trt =... Zusätzlich wird ein leeres IKM benötigt. OPITZ CONSULTING GmbH 2012 Seite 28
Exportieren mit Calc Script SET DATAEXPORTOPTIONS { DataExportLevel "ALL"; DataExportRelationalFile ON ; DATAEXPORTOVERWRITEFILE ON; }; FIX (&Servervariable 1, @MATCH ("<Dimension 1>","<Maske>"), <Festes Attribut 1" <Festes Attribut 2" &Servervariable 2 @RELATIVE("YearTotal",0)); DATAEXPORT "DSN" "<DSN>" "<Zieltabelle>" "user" "passwort"; ENDFIX; Bis zu 100x schneller als Report Script Am ODI vorbei OPITZ CONSULTING GmbH 2012 Seite 29
Kontakt Andreas Ballenthin OPITZ CONSULTING Gummersbach GmbH andreas.ballenthin@opitz-consulting.com +49 2261 6001 0 Diese Präsentation finden Sie auf http://www.slideshare.net/opitzconsulting. OPITZ CONSULTING GmbH 2012 Seite 30