initial data load extension module webinar february 4th, 2009

23
Initial Data Load Extension Module Webinar February 4th, 2009

Upload: isabella-chandler

Post on 27-Dec-2015

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Initial Data Load Extension Module Webinar February 4th, 2009

Initial Data Load

Extension Module Webinar

February 4th, 2009

Page 2: Initial Data Load Extension Module Webinar February 4th, 2009

Page 2Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Agenda

Functionality and Demo 15 min.

Process and Tools 10 min.

Development Technique 5 min.

Q & A 30 min.

Page 3: Initial Data Load Extension Module Webinar February 4th, 2009

Page 3Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Agenda

Functionality and Demo

Process and Tools

Development Technique

Q & A

Page 4: Initial Data Load Extension Module Webinar February 4th, 2009

Page 4Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Goal:Provide a set of automated data import processes to quickly load core ERP

data into Openbravo.QuickStart customers: predefined templates (simplicity).Support full “new-install-to-production-ready” instance.

Functional HighlightsInitial Data Load

Solution Approach:Deliver as a extension module. Included in QuickStart.Spanish Translation.

Benefits: Enable end users to manage the process.Minimize considerably time of migration.Ensure fully-integrated set of validated ERP data.Complete and detailed documentation.

Page 5: Initial Data Load Extension Module Webinar February 4th, 2009

Page 5Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Functional HighlightsInitial Data Load

Supported entities:– Products– Price Lists– Bank Accounts– Business Partners– Open Payables

Data validation prior to import. Concise, easy-to-understand error log. Default value definition. REST Web service interface.

Simple and effective process

Define CSV ValidateConfiguredefault values

Import

– Open Receivables– Assets– Journal Entries– Standard Cost– On hand quantity / Stock

Page 6: Initial Data Load Extension Module Webinar February 4th, 2009

Page 6Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Functional Highlights

Fill several Openbravo entities from one CSV file

Business partners

Initial Data Load

Business partners

Addresses

Contacts

Templates: Simplicity.Intermediary stepFix structure.

Page 7: Initial Data Load Extension Module Webinar February 4th, 2009

Page 7Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

DEMO

Initial Data Load Demo

Functional HighlightsInitial Data Load

Page 8: Initial Data Load Extension Module Webinar February 4th, 2009

Page 8Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Future plans.Initial Data Load

More entities to import:Balance sheetPayrolls.

More integration capabilitiesImport from other data formats. (XML, Excel, ...)Import from other third party applications.

Improvements for consultants: Flexibility: ability to customize templates adding new fields.

Page 9: Initial Data Load Extension Module Webinar February 4th, 2009

Page 9Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Agenda

Functionality and Demo

Process and Tools

Development Technique

Q & A

Page 10: Initial Data Load Extension Module Webinar February 4th, 2009

Page 10Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Process and tools. Extract, Transform and Load.Initial Data Load

Extract Transform and Load (ETL) takes part part in:* Synchronization or replication of databases* Right-time or batch exchanges of data* Data warehousing* Data migration* Data quality

Extracting data from outside sources

Transforming it to fitoperational needs(which can includequality levels)

Loading it intothe end target (database or data warehouse)

Extract Transform and Load (ETL) is a process in database usage and especially in data warehousing that involves:

Page 11: Initial Data Load Extension Module Webinar February 4th, 2009

Page 11Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Process and tools. Load process structureInitial Data Load

Talend job* CSV file parsing* Data validation

Openbravo load process& REST web service* Data transformation* Data load using DAL

Extracting Transforming Loading

Validate button

Process button

Page 12: Initial Data Load Extension Module Webinar February 4th, 2009

Page 12Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Process and tools: Talend Open Studio overviewInitial Data Load

Graphical designer

Open source

Metadata-driven solution

Talend Open Studio is a project for data integration based on Eclipse RCP

Operates as a code generator

Large list of integration components

Page 13: Initial Data Load Extension Module Webinar February 4th, 2009

Page 13Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

DEMO

Process and tools: Talend Open Studio demonstration

Quick Talend Open Studio review.

Initial Data Load

Page 14: Initial Data Load Extension Module Webinar February 4th, 2009

Page 14Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Functionality and Demo

Process and Tools

Development Technique

Q & A

Agenda

Page 15: Initial Data Load Extension Module Webinar February 4th, 2009

Page 15Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Development technique. REST web services for Openbravo ERP.Initial Data Load

REST stands for Representational State Transfer. It relies on a stateless, client-server, cacheable communications protocoland in virtually all cases, the HTTP protocol is used.

Definition of a REST web service:* The base URI: for example http://example.com/resources* The MIME type of the data supported by the web service, XML, JSON, ...* The set of operations supported using HTTP methods. POST, GET, PUT, DELETE

Page 16: Initial Data Load Extension Module Webinar February 4th, 2009

Page 16Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Development technique. REST web services for Openbravo ERP.Initial Data Load

POST /openbravo/ws/org.openbravo.idl.process/Costing HTTP/1.1Host: localhost

<?xml version="1.0" encoding="UTF-8"?><ob:Openbravo xmlns:ob="http://www.openbravo.com"> <Costing> <Product>rma</Product> <Cost>5.5</Cost>(...)

response

request

<?xml version="1.0" encoding="UTF-8"?><ob:Openbravo xmlns:ob="http://www.openbravo.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <MaterialMgmtCosting id="FF808181266B867701266B8E6AE4008B" identifier="Raw material A Thu Jan 01 00:00:00 CET 2009"> <id>FF808181266B867701266B8E6AE4008B</id> <creationDate transient="true">2010-01-26T17:54:40.616Z</creationDate>(...)

Page 17: Initial Data Load Extension Module Webinar February 4th, 2009

Page 17Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Development technique. Code snipets, defining a new web serviceInitial Data Load

<?xml version="1.0" encoding="UTF-8" ?><provider> <bean> <name>process</name> <class>org.openbravo.idl.service.IdlWebService</class> <singleton>true</singleton> </bean></provider>

package org.openbravo.idl.service;

public class IdlWebService implements WebService {

@Override public void doPost(String path, HttpServletRequest request, HttpServletResponse response) throws Exception {

final String firstsegment = WebServiceUtil.getInstance().getFirstSegment(path); final VariablesSecureApp vars = new VariablesSecureApp(request); final ConnectionProvider conn = new DalConnectionProvider();

Page 18: Initial Data Load Extension Module Webinar February 4th, 2009

Page 18Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Development technique. Reading XML from request.Initial Data Load

final SAXReader reader = new SAXReader();final Document document = reader.read(request.getInputStream());

// check that the rootelement is the openbravo onefinal Element rootElement = document.getRootElement();if (!rootElement.getName().equals(XMLConstants.OB_ROOT_ELEMENT)) { throw new OBException("Root tag of the xml document should be: " + XMLConstants.OB_ROOT_ELEMENT + ", but it is " + rootElement.getName());}

// check that there exit one element to import.if (rootElement.elements() == null || rootElement.elements().size() != 1) { throw new OBException("Root tag of the xml document should have one child element.");}

Element entityelement = (Element) rootElement.elements().get(0);

Page 19: Initial Data Load Extension Module Webinar February 4th, 2009

Page 19Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Development technique. Writing XML to response.Initial Data Load

BaseOBObject obj = service.doInternalProcess(impent.getValues());

try { final StringWriter sw = new StringWriter(); final EntityXMLConverter exc = EntityXMLConverter.newInstance(); exc.setOptionEmbedChildren(true); exc.setOptionIncludeChildren(true); exc.setOptionIncludeReferenced(false); exc.setOptionExportClientOrganizationReferences(true); exc.setOutput(sw); exc.process(obj); String xml = sw.toString();

response.setContentType("text/xml"); response.setCharacterEncoding("UTF-8"); response.setHeader("Content-Encoding", "UTF-8"); final Writer w = response.getWriter(); w.write(xml); w.close();} catch (final Exception e) { throw new OBException(e);}

Page 20: Initial Data Load Extension Module Webinar February 4th, 2009

Page 20Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

DEMO

Development technique. REST Web Service demonstration

REST Web Service execution

Initial Data Load

Page 21: Initial Data Load Extension Module Webinar February 4th, 2009

Page 21Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Functionality and Demo

Wrap-Up

Process and Tools

Development Technique

Page 22: Initial Data Load Extension Module Webinar February 4th, 2009

Page 22Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita

Q & A

Interesting Links: http://forge.openbravo.com/projects/xidl

http://forge.openbravo.com/projects/idlspanish

Next Webinar:18th February Modularity Status Update

Achievements in modularity during 2009 and roadmap -in regards of modularity- for 2010

[email protected]

Initial Data Load

[email protected]

Page 23: Initial Data Load Extension Module Webinar February 4th, 2009

Page 23Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita