a first ofbiz applicationpeople.cs.aau.dk/~dolog/courses/erp2007/lecture2_technology.pdf · a first...

14
A First OFBiz Application ERPsystems, Aalborg University, Information Systems Klemens Schwarz (Upper Austria University of Applied Sciences, Hagenberg)

Upload: others

Post on 20-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

  • A First OFBiz Application

    ERP‐systems, Aalborg University, Information SystemsKlemens Schwarz (Upper Austria University of Applied Sciences, Hagenberg)

  • ERP Systems

    Building a complete Application with OFBiz(in order to understand the structure of the OFBiz layers)

    What are we going to build? A simple site for administrating the students‘ progress („StudentProgress“). 

    Data Model: Two main tablesOne connecting table

    Services: Create new studentsCreate new connections between students and their finished subjects/courses(we assume, that subjects already exist within the application)

    During your work it may be necessary to reuse existing data tables and services, but maybe also create new ones. 

    [email protected]

  • ERP Systems

    1. Define the tables in entitygroup.xml in the /entitydef‐directory

    2. Define the colums and primary and foreign keys in entitymodel.xml[...]

    [...]

    Create the data model

    [email protected]

  • ERP Systems

    Required change to some files

    component‐load.xml in /hot‐deploy[...]

    [...]

    ofbiz‐component.xml in /hot‐deploy/studentProgress

    [...]

    [...]

    • You can copy these files from existing applications.• Starting ofbiz.jar would already generate these tables (but nothing else yet).

    [email protected]

  • ERP Systems

    Insertion: The OFBiz Webtools application

    On http://localhost:8080/webtools you will find an important application for your development process. 

    [email protected]

    Important entries

    http://localhost:8080/webtools

  • ERP Systems

    Creating the business logic

    2 Steps: 1. Define your services in general in an XML file (with parameters and 

    where to find the service, Java, OFBiz minilang or other scripting languages).

    2. Implement the service either in Java, OFBiz minilang, or others.

    Step 2 might be the more difficult part.

    [email protected]

  • ERP Systems

    Step 1: Define Services

    Inside /servicedef directory: services.xml

  • ERP Systems

    Step 2a: Java service in /src directorypublic class MyServices {

    public static Map createMyStudent(DispatchContext dctx, Map context) {

    GenericDelegator delegator = dctx.getDelegator();

    try {

    String studentId = delegator.getNextSeqId("MyStudent");

    Debug.logInfo("myStudentId = " + studentId, module);

    GenericValue student =

    delegator.makeValue("MyStudent", UtilMisc.toMap("myStudentId", studentId));

    student.setNonPKFields(context);

    delegator.create(student);

    Map result = ServiceUtil.returnSuccess();

    result.put("myStudentId", studentId);

    return result;

    } catch (GenericEntityException ex) {

    return ServiceUtil.returnError(ex.getMessage());

    }

    }

    The services written in Java code have to be compiled (using ant and a build.xml file see next slide).

    [email protected]

  • ERP Systems

    Build Java files with ant (or similar)

    Buildfile: D:\opentaps\opentaps\hot-deploy\studentProgress\build.xml

    init:

    clean-lib:

    [delete] Deleting directory D:\opentaps\opentaps\hot-deploy\studentProgress\build\lib

    prepare:

    [mkdir] Created dir: D:\opentaps\opentaps\hot-deploy\studentProgress\build\lib

    classpath:

    classes:

    [javac] Compiling 1 source file to D:\opentaps\opentaps\hot-deploy\studentProgress\build\classes

    jar:

    [jar] Building jar: D:\opentaps\opentaps\hot-deploy\studentProgress\build\lib\ofbiz-party.jar

    BUILD SUCCESSFUL

    Total time: 42 seconds

    Buildfile: D:\opentaps\opentaps\hot-deploy\studentProgress\build.xml

    init:

    clean-lib:

    [delete] Deleting directory D:\opentaps\opentaps\hot-deploy\studentProgress\build\lib

    prepare:

    [mkdir] Created dir: D:\opentaps\opentaps\hot-deploy\studentProgress\build\lib

    classpath:

    classes:

    [javac] Compiling 1 source file to D:\opentaps\opentaps\hot-deploy\studentProgress\build\classes

    jar:

    [jar] Building jar: D:\opentaps\opentaps\hot-deploy\studentProgress\build\lib\ofbiz-party.jar

    BUILD SUCCESSFUL

    Total time: 42 seconds

    [email protected]

    Example output:

    Results: class‐ and jar‐files used by the framework

  • ERP Systems

    Step 2b: Minilang service in /script directory

  • ERP Systems

    In the end: create the web application!Differ between usage of screens, forms, ftl files and standard html files!

    See: MyStudentScreens.xml: defines the appearance of each screen in forms of labels, calling forms, …

    StudentEntryForms.xml: defines parts of a screen, e.g. the insertion part of the student site in forms of fields, drop‐down lists, …

    controller.xml: defines, how the framework has to react on request and view mappings. Its the heart of your application, so to speak. 

    footer.ftl, header.ftl, main.ftl, … define parts of your website

    [email protected]

  • ERP Systems

    Creating seed/demo data

    [email protected]

  • ERP Systems

    Results:

    [email protected]

    Use CSS for better results.

  • ERP Systems

    How to work on?

    See http://www.opensourcestrategies.com/ofbiz/tutorials.phpfor further tutorials, examples, help, …

    Just start ;‐)

    [email protected]

    http://www.opensourcestrategies.com/ofbiz/tutorials.php

    A First OFBiz ApplicationBuilding a complete Application with OFBiz�(in order to understand the structure of the OFBiz layers)Create the data modelRequired change to some files Insertion: The OFBiz Webtools applicationCreating the business logicStep 1: Define ServicesStep 2a: Java service in /src directoryBuild Java files with ant (or similar)Step 2b: Minilang service in /script directoryIn the end: create the web application!Creating seed/demo dataResults: How to work on?