sage erp x3 workbench how the version 7 workbench brings productivity in developing software

40
Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Upload: elmer-kelly

Post on 21-Dec-2015

259 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Sage ERP X3 Workbench

How the version 7workbench bringsproductivity in developing software

Page 2: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation 2

INTRODUCTION

• This presentation has been done in order to demonstrate the version 7 technology benefits

• It runs with a dedicated demo VM that will be supplied by the pre-sales team

• A detailed document will be added to explain the complete scenario

• Different level of details can be given

• Here, we will use the most detailed level (for developers)

Page 3: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation 3

Agenda

1. Why a development workbench inside an ERP?

2. The platform at a glance

3. Let’s see a demo

4. Conclusion

Page 4: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

What are the needs of mid market companies?

Mid Market Company

Complex Processes

Integration to other solutions

Easy to use & efficient

Low cost & scalable

Mobility

Easy, reliable Personalisation

4

Page 5: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Version 7 workbench definition

Simple dictionaries

Get more done and faster with

the development tool when

adaptations are needed

Generated code

Object orientation gives reusable

code everywhere

Mid Market Company

Complex Processes

Easy, reliable Personalisation

Integration to other solutions

Low cost & scalable

Easy to use & efficient

Mobility

5

Page 6: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Mid Market Company

Complex Processes

Easy, reliable Personalisation

Integration to other solutions

Low cost & scalable

Easy to use & efficient

Mobility

Dedicated web clients for mobile

and tabletsGo mobile

because the customers want to go where their business takes

them

The same code for mobile, tablet,

desktop

Local storage in disconnected

mode with drafts

Version 7 workbench definition

6

Page 7: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Mid Market Company

Complex Processes

Easy, reliable Personalisation

Integration to other solutions

Low cost & scalable

Easy to use & efficient

Mobility

Easy integration with web services

Have a better automation in

your development process

Clear separation between UI and business logic

QA tools ensures a better quality from beginning

Version 7 workbench definition

7

Page 8: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Mid Market Company

Complex Processes

Easy, reliable Personalisation

Integration to other solutions

Low cost & scalable

Easy to use & efficient

Mobility

Inbuilt requests and statistics toolPredefined KPIs

Give the users of your solutions the real time insight

Process mapsand relevant KPIs

for every user

An integrated data warehouse for BI solutions

Version 7 workbench definition

8

Page 9: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Mid Market Company

Complex Processes

Easy, reliable Personalisation

Integration to other solutions

Low cost & scalable

Easy to use & efficient

Mobility

Power users can set page layouts

No more dev skillsServe better the users of your solutions and enhance the

customer service to grow their

business

A full web UI with simplicity in mind

Web dashboards and search based

web navigation

Version 7 workbench definition

9

Page 10: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Mid Market Company

Complex Processes

Easy, reliable Personalisation

Integration to other solutions

Low cost & scalable

Easy to use & efficient

Mobility

Eclipse debugger and editor eases

code management

Save costs in development and

maintenance process

Code simpler and more reliable saves costs

Cohabitation of specific & vertical

easier

Version 7 workbench definition

10

Page 11: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Mid Market Company

Complex Processes

Easy, reliable Personalisation

Integration to other solutions

Low cost & scalable

Easy to use & efficient

Mobility

Less RDBMS cost with search & document DBExpand the

business to more people including occasional users

and scale seamlessly the solution when

they grow

Scalable and cloud optimized

technologies

Stateful/stateless mode decrease lock bottlenecks

Version 7 workbench definition

11

Page 12: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

How did evolve the architectureto answer to all these needs?

Mid Market Company

Complex Processes

Integration to other solutions

Easy to use & efficient

Low cost & scalable

Mobility

Easy, reliable Personalisation

12

Page 13: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Meta-data

DB requesterstatistics

4GL IDE LDAP authentication

Web client Windows clientUser portal &

visual processes Office integration

The platform evolution at a glance

Multi endpoint web server (node.js)

Multi-browser(Chrome, Firefox, IE, Opera, Safari)

Classic pages Mobile & tablets MS-Office client

Administration tools Workflow engine Reports

Import / Export Batch server BI datawarehouse

Web application server

Multi-OS engine (AIX, Linux, Windows)

4GL IDE LDAP authenticationDB requester

statistics

Meta-dataMeta-data

Page personalization Common servicesSearch, web services…

Storage & Collaboration area

Drafts, UI personalization,shared documents

AuthenticationUser administration

Users, roles, teams

13

Page 14: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

A scalable and cloud ready architecture

Load balancer

14

Page 15: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Stateless protocolCRUD management

A query page is displayedSelection and sorting criteria can

be refined, and paging done

A detail page is displayed

Click on a create link

Click on another detail link(zoom, “tunnel”…)

Click on an edit link

An edit page is displayed

statelessmode

Read instance on server

Query execution on server

Click on a detail link

Page display

User action

Events available

15

Page 16: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Input done on page : Modification returned

Click on a create link Click on an edit link

Stateful mode

Updates done on the instance(triggers control, propagate rules…)modified properties are sent back

Click on the save link

Global control are done, if errors, they are returnedUpdate is performed if everything is ok

Return to stateless mode (query or detail)

INIT event

An edit page is displayed

Stateful protocolCRUD management

Page display

User action

Events available

16

Page 17: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Native Architecture

V6 Safe X3 Web Server

Safe X3 Java Bridge Server

Syracuse servers (Node.JS)

Clients

Syracuse Global Architecture

X3 Process servers

EXTERNAL SOAP WS

X3SOAP WS

Safe X3Print Server

VT Terminal(s) Third party application

Database server

Collaborative database(MongoDB)

Search Engine(Elastic)

X3 Application server

VT Connectors

SMTP Server

❸ ❹

V6 and V7 technology can be used simultaneously

17

Page 18: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Security is a main topic on web environments

Web server security- Able to run in http or https- Able to use authentication based on Oauth 2 (google account, Microsoft live account),

Sage ID, but also LDAP directories- Identity is stored in a connection cookie

No password is sent over the network- Certificates based on private/public key are used to secure the connection between

the web server and the application serversThe X3 server runs in a sandbox

- An X3 process can only have access to a list of locationsA complete security test has been successfully passed

- Performed in the US on the cloud platform by an external security company

18

Page 19: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

User and rights management

A user can have access to- Several roles- Multiple endpoints

A user is member of- Several groups- Several teams as owner, author,

or reader

Control access rights can be done- By function, company, site- With access code filtering- With security profiles for administration data

19

Page 20: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Do you want to know more?

Let’s have a demo !

Page 21: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Definition of the development we realizedA simple sales order management…

Sales order(header/line)

CRUD operations

Filter on status(created/shipped)

QA procedure

Test script

Random generation of

orders

See generation result

Simple request

Excel integration

Create / update orders with

A desktop UI

A mobile UI

Handle shipments

Shipment operation

Web service integration

Manage Test Inquire Handle UI

Expand1 2 3 4 5

21

Page 22: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

What are the dictionary entities?

22

Page 23: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Class definition

A DICTIONARY THAT DESCRIBES DATA STRUCTURES

MAIN CHARACTERISTICS

DATABASE PERSISTENCEMAPPING INFORMATIONINDEXATION CONDITIONS

ASSOCIATED SCRIPTS HANDLING EVENTS

LIST OF PROPERTIES

SINGLE PROPERTIESCHILDREN INSTANCESCOLLECTIONSRICH DATA

LIST OF METHODS / OPERATIONS

STANDARD CRUDADDITIONAL STATEFUL METHODSADDITIONAL STATELESS OPERATIONS

ASSOCIATED SCRIPTS HANDLING EVENTS

23

Page 24: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Classes managementWriting code in classes

A class catches the whole business logic of an entity- A class is usable to manage consistent entities directly in a script without user

interaction- This is used when performing unit tests and must be considered as the first step (best

practices)- This means that in the script associated to a class, there is no reference to user

interactionThe user interface code can be written later

- The representation will refer to classes- Additional properties dedicated to UI will follow (data required for easing the data

entry: : assistants related data, additional information…)- Links will be defined to trigger class methods or operations, or additional UI operation.

24

Page 25: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Classes managementWriting code in classes

What code is generated for persistent classes?- All the code related to the read, write, update, delete operations- On header, lines, sub-lines, sub-sub-lines if necessary- All the code that has already be associated to the data types

(references, additional controls, default values can be defined once).- So dictionary descriptions can be enough the run a complex entity

What is the code we will have to add?- Complex operations or methods that cannot be described in meta data (shipping an

order, computing the total amount of an invoice by a simple formula…)- Controls or default values that are specific to a property in a class instance

25

Page 26: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

EVENTS

CRUD related operationsClasses managementWriting code in classes

The additional code iswritten in events

DEFAULT VALUES

INITIALIZATION

Read an instanceCreate a new instanceREAD EVENTS

Assign / compute values in the class instance

Insert / Delete linesassign values on children instances

Call global methods

METHODS

EXECUTION

RULES (CONTROL,

PROPAGATE)

COLLECTION EVENTS

DEFAULT VALUES (LINES)

RULES (CONTROL, PROPAGATE) ON LINES

Trigger database insertion, deletion or update

EVENTS TRIGGEREDDURING THE DATABASE

UPDATE

CONTROL BEFORE / AFTER UPDATES EVENTS

CONTROL

INIT

ASSIGN or INPUTVALUES

TRIGGER UPDATE

26

Page 27: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

The code associated to a class: Two labels present in the script

$PROPERTIES

Case CURPRO

When "CUSTOMER"

When "LINES.ITEM"

Case ACTION

When "INIT"

When "CONTROL"When "PROPAGATE"

$METHODSCase CURPTH

When ""

When "LINE"

Case ACTION

When "MY_POST"

When "AINSERT_CONTROL_BEFORE"

When "AINSERT_AFTER"

When "ADDLINE_AFTER"

When "AINSERT_BEFORE"

When "MYLINE_OPERATION"

Default values, controls, and

values propagation after an update

Global methods for the class &

CRUD related events

Lines class, collection methods &

CRUD related events

Rules triggered on properties of the class

Global methods associated to the class or to a children class

When "LINE.SUBLINE"

Grand children events if any…

Case ACTION

27

Page 28: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

The code associated to a class: The context available in the events

$PROPERTIES

Case CURPRO

When "CUSTOMER"

When "LINES.ITEM"

$ACTIONCase CURPTH

When ""

When "LINES"

Rules triggered on properties of the class

Global methods associated to the class or to a children class

this = the header

this .CUSTOMER = the current value

this .snapshot.CUSTOMER = initial value

this .LINES(INDEX).ITEM = a line property

this = the current line

this .ITEM = the current value on the current line

this .snapshot.ITEM = initial value

this .APARENT.CUSTOMER = header value

When "CUSTOMER"

When ""

LET’S SEE IT28

Page 29: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

How can we create a sales order ?

Examples:• QA test• Random order generator• Let’s see it

IN SERVICE MODEIN A SCRIPT:• USE AND FILL CLASS INSTANCES• CALL STANDARD CRUD METHODS

29

Page 30: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Language evolution :create an entity in service mode

The same language is still used, but with extensions:The same language is still used, but with extensions:Local Instance MY_ORD Using C_ORDER # Class pointer

declaration

MY_ORD = Newinstance Using C_ORDER… # Class instantiation

The same language is still used, but with extensions:Local Instance MY_ORD Using C_ORDER # Class pointer

declaration

MY_ORD = Newinstance Using C_ORDER… # Class instantiation

OK=Fmet MY_ORDER.AINIT # Call of a method

MY_ORD.CUSTOMER="MARTIN" # Property assignment

The same language is still used, but with extensions:Local Instance MY_ORD Using C_ORDER # Class pointer

declaration

MY_ORD = Newinstance Using C_ORDER… # Class instantiation

OK=Fmet MY_ORDER.AINIT # Call of a method

MY_ORD.CUSTOMER="MARTIN" # Property assignment

NUMLI=Fmet MY_ORDER.ADDLINE("LINES", [V]CST_ALASTPOS) # Line insertionMY_ORDER.LINES( NUMLI) .ITEM="CD100" # Property assignmentOK=Fmet MY_ORDER.AINSERT # Call of creation method

The same language is still used, but with extensions:Local Instance MY_ORD Using C_ORDER # Class pointer

declaration

MY_ORD = Newinstance Using C_ORDER… # Class instantiation

OK=Fmet MY_ORDER.AINIT # Call of a method

MY_ORD.CUSTOMER="MARTIN" # Property assignment

NUMLI=Fmet MY_ORDER.ADDLINE("LINES", [V]CST_ALASTPOS) # Line insertionMY_ORDER.LINES( NUMLI) .ITEM="CD100" # Property assignment

The same language is still used, but with extensions:Local Instance MY_ORD Using C_ORDER # Class pointer

declaration

MY_ORD = Newinstance Using C_ORDER… # Class instantiation

OK=Fmet MY_ORDER.AINIT # Call of a method

30

Page 31: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Requester : Main principles of V7

GENERATED EXTRACTION SCRIPT

DATABASE

EXECUTION TIME

Data is extracted from database

and stored in JSON (text format)

[{ "cust_id":"JOHNDOE","balance":2000,…},{ "cust_id":"MARTIN","balance":4000,…},{ "cust_id":"JIMMY","balance":6500,…},]

DISPLAY TIME

“classical” requester(GESALH)

“graphical” requester(GESALT)

SETUP TIME

31

Page 32: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

How can we create a sales order ?

Examples:• QA test• Random order generator• Let’s see it

IN SERVICE MODEIN A SCRIPT:• USE AND FILL CLASS INSTANCES• CALL STANDARD CRUD METHODS

LET’S USE A PAGEIN CLIENT MODE BY CREATING A REPRESENTATION

32

Page 33: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

The principles of page personalization

BROWSER

A link to a new page is triggered

The page layout is displayed

The page is filledwith data

WEB SERVER (NODE.JS)

Is there a personalized page for the user and the

role

The page personalization applies on the prototype

SAGE ERP X3 SUPERVISOR

DICTIONARIES

GENERATED SCRIPT

DATABASE CLASS LOGIC

A prototype is requested

The corresponding data is sent

Yes

No

The prototype is returned

33

Page 34: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Representation definition

A NEW DICTIONARY THAT DESCRIBES THE USER INTERFACE

MAIN CHARACTERISTICS

EMBEDDED CLASS AND METHODSFACETS (“use cases”) available: lookup, query, details, edit, summaryTARGET DEVICE (mobile, tablet, desktop)

SCRIPTS HANDLING UI EVENTS

ADDITIONAL PROPERTIES USED FOR UI PURPOSE ONLY

LINKS DEFINITION CALL OF METHODS AND OPERATIONSLINKS ON NEW PAGES…

PAGE ORGANIZATIONDEFAULT BLOCKS AND SECTIONSPROPERTIES PRESENCE PER FACETCHANGEABLE BY PAGE PERSONALIZATION

34

Page 35: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Representation dictionary:UI organization

The organization of the representation is hierarchical:- A set of sections containing blocks, every block contains fields that can be member of a collection- The widget chosen and the geographic place of the elements is done by authoring- Links can be placed at

Section A

Block A1 Block A2

FIELD F01

FIELD F02 CLOB FIELD F07FIELD F03

COLLECTION F04,F05,F06

Section B

Block B1

Block B2

FIELD F08

FIELD F09

COLLECTION FIELD F11

FIELD F10

L

L

L

L

L

L global level field level grid level grid line level

L

L

LL

35

Page 36: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Mobile development principlesWhat is required to define a mobile application?

- The same class than for the desktop development- A dedicated simplified representation- A dashboard with a menu including menu items

And now, we can install the application…

…. and use it

36

Page 37: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Mobile features

A dedicated user interface- With the ability to manage a

local cache (favorites)- With a local storage of

pending drafts and further synchronization

- With a dedicated

personalization mode

37

Page 38: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Advanced features

Create a shipment- Define shipment classes with no code

- Create a simple representation with links

- Call a shipment operation that executes two CRUD methods in a single transaction:

- Update the order document

- Create the shipment document

Call external REST web services- In GET mode (get the price from a service)

- In PUT mode (publish the shipment on external web server)

Use various APIs- Example: create a text document in the document database

38

Page 39: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

Version 7 technology – presentation

Let’s summarize

We can create, edit, delete, and ship our order

We created 4 tables, 6 other dictionary items, and 6 scripts (less than 400 lines)

We can personalize our UI, use MS-Office as client, use the mobile…

39

Page 40: Sage ERP X3 Workbench How the version 7 workbench brings productivity in developing software

ConclusionA development tool that goes

faster

Robust code usable for mobile, desktop, web services…

Additional tools: QA, Eclipse Editor/Debugger…

An optimized and scalable platform to help our customers to grow

And a great web user experience !