Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Initial Data Load Extension Module Webinar February 4th, 2009."— Presentation transcript:

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

2 Page 2 Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita Agenda Functionality and Demo15 min. Process and Tools10 min. Development Technique5 min. Q & A 30 min.

3 Page 3 Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita Agenda Functionality and Demo Process and Tools Development Technique Q & A

4 Page 4 Initial 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 Highlights Initial 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.

5 Page 5 Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita Functional Highlights Initial 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 Validate Configure default values Import – Open Receivables – Assets – Journal Entries – Standard Cost – On hand quantity / Stock

6 Page 6 Initial 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 step Fix structure.

7 Page 7 Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita DEMO Initial Data Load Demo Functional Highlights Initial Data Load

8 Page 8 Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita Future plans. Initial Data Load More entities to import: Balance sheet Payrolls. More integration capabilities Import from other data formats. (XML, Excel,...)‏ Import from other third party applications. Improvements for consultants: Flexibility: ability to customize templates adding new fields.

9 Page 9 Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita Agenda Functionality and Demo Process and Tools Development Technique Q & A

10 Page 10 Initial 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 fit operational needs (which can include quality levels) Loading it into the end target (database or data warehouse) Extract Transform and Load (ETL) is a process in database usage and especially in data warehousing that involves:

11 Page 11 Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita Process and tools. Load process structure Initial Data Load Talend job * CSV file parsing * Data validation Openbravo load process & REST web service * Data transformation * Data load using DAL ExtractingTransformingLoading Validate button Process button

12 Page 12 Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita Process and tools: Talend Open Studio overview Initial 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

13 Page 13 Initial 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

14 Page 14 Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita Functionality and Demo Process and Tools Development Technique Q & A Agenda

15 Page 15 Initial 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 protocol and in virtually all cases, the HTTP protocol is used. Definition of a REST web service: * The base URI: for example http://example.com/resourceshttp://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

16 Page 16 Initial 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.1 Host: localhost rma 5.5 (...)‏ response request <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"> FF808181266B867701266B8E6AE4008B 2010-01-26T17:54:40.616Z (...)‏

17 Page 17 Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita Development technique. Code snipets, defining a new web service Initial Data Load process org.openbravo.idl.service.IdlWebService true 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();

18 Page 18 Initial 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 one final 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);

19 Page 19 Initial 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); }

20 Page 20 Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita DEMO Development technique. REST Web Service demonstration REST Web Service execution Initial Data Load

21 Page 21 Initial Data Load Module Webinar-Openbravo, Adrian Romero & Mikel Irurita Functionality and Demo Wrap-Up Process and Tools Development Technique

22 Page 22 Initial 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: 18 th February Modularity Status Update Achievements in modularity during 2009 and roadmap -in regards of modularity- for 2010 mikel.irurita@openbravo.com Initial Data Load adrian.romero@openbravo.com

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


Download ppt "Initial Data Load Extension Module Webinar February 4th, 2009."

Similar presentations


Ads by Google