Top Banner
© AXSOS AG 2009 Modern features with Plex and Websydian ExtJS Olaf Flemming Project Manager AXSOS AG
33

Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

Dec 17, 2018

Download

Documents

doanthuan
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Modern features with Plex and Websydian ExtJS

Olaf Flemming Project Manager AXSOS AG

Page 2: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Agenda

1. The Application

2. Google like Search

3. Pivot Table

4. BI Integration

Page 3: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Agenda

The Application

Page 4: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Application

MODAB - Worker Association Online Member Administration

Web 2.0 Application based on CA:Plex and Websydian ExtJS

Page 5: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

The Application

MODAB - Application to maintain

• Members

• Personal data

• Salary and membership fee calculation

• Binding in administrational and honorary structures

• Labor Agreements

• Individual labor agreements

• Dynamic criteria, condition and table arrangement

• Pivot table maintenance

• Organization structure

• Individual organization units

• Individual unit relations

• Administrational and honorary structures

Page 6: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

The Application

Contacts

(natural persons and legal persons)

• Contact module handling

• Roles

• Relations

• Data

Filter dialogs to lookup contacts ???

Page 7: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

The Application

Filter dialogs to lookup contacts ???

No

, why?

• Torture for the developer

• 25+ filter dialogs to cover all needs

• High complexity due to dynamic multiple table filtering

• No fun at all

• Torture for the user

• Learning 25+ filter logics

• Working through multilevel filter dialogs

• Earning no points for reaching level 4

What to do?

Page 8: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Agenda

Google like Search

Page 9: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Google like Search

Searching in AXSOS style

Lucene/ Solr

Plex/ Websydian

ExtJs

AXSOS Search

Page 10: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Google like Search

Apache Lucene

• Lucene open source Java library to create and search text indexes

(Information-Retrieval-System)

• Full text search for documents and databases

• Plenty of tools and interfaces to access the search

• High performance

• Tailoring defined filters and interface for own filters

Page 11: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Google like Search

Solr

• Open Source Java full text search engine based on Lucene

• Executable in all major servlet container (we use Apache Tomcat)

• Access to the search index through web interface by JSON, XML, PHP,

Ruby, Python, XSLT …

• Solr allows multiple applications to access the same search index

• Clustering

• Flexibel configuration

• Since 2010 Solr und Lucene are developed by the same team

Page 12: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Google like Search

Database

Lucene Apache

Plex

Analysing Tools

Websydian Web Application

Solr

Architectur of AXSOS solution

Page 13: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Google like Search

Search index

• JDBC interface to the database

• View representing data to be searched

• A unique identifier is required like contact_id

• Filter (trimming, replacing, deleting of non significant information)

• Tokenizer (splitting in partial strings, intervalls)

• Data are converted to documents

Database

Filter

Analyzer

Tokenizer

Documents

Page 14: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Google like Search

Filter and Tokenizer

„Documents“

Text Files

Database Views

Web Pages

Filter

and

Tokenizer

AXSOS, AXSO, AXS, AX, A,

axsos, axso, axs, ax, a

axsos, xsos, sos, os, s

….

Page 15: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Result set 3+ somehow

„Smith Andrew contact_id 51“

„Smith Helena contact_id 23“

„Blacksmith Jo contact_id 635“

Google like Search

Search

• Returns documents, ranking, unique identifier

Search string : Smith

Database

Search index

Retrieve data from database:

Smith, Andrew, contact_id 51

Page 16: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Google like Search

What is the user‘s experience

• Simple entry mask – Speedy – Flexible – Simple syntax

• =Birthdate: 24.12.

• =Name:Petersen AND Localoffice:Hamburg

• Queries without limits

• familiar from internet search engines

• Powerful

• Fast

Page 17: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Agenda

Pivot Table

Page 18: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Labor Agreements

are the essential results of the labor union work

negotiated individually with employers

ruling work conditions and salary of the employees

adapted to specialities of employers and work

In brief

• No standards

• No comparability

Pivot Table

Page 19: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Pivot Table

Labor agreements

• Having all sorts of criteria

• Capturing all conceivable exceptions

• Dealing with dates, figures and strings

• Changing appearance and contents each year

• Worrying the programmers

Possible solutions

• Ignore labor agreements

• If you are not allowed to ignore …

Page 20: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Pivot Table

Half solve the problem by

• Making it a table using the two major criteria to indicate

• Rows and

• Columns by the criteria values

• Put a path of all other criteria and exceptions to lookup the table

Page 21: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Pivot Table

But how handle varying number of criteria values especially for columns ?

• Create your own pivot table by generating grid definition depending on

• Column criterion values

• Row criterion values

Page 22: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Pivot Table

• Generate the Model for EXT.Grid

depending on number of column criterion values

• Generate column headings from column criterion values

• Load data according to row and column criteria

Model

=====

fields: [ { name: „rowId1", type: "text", defaultValue: "" },

{ name: "rowId2", type: "text", defaultValue: "" },

{ name: „row", type: "text", defaultValue: "" },

{ name: "columnId1", type: "text", defaultValue: "" },

{ name: "columnV1", type: "numeric", defaultValue: 0.0},

{ name: "columnId2", type: "text", defaultValue: "" },

{ name: "columnV2", type: "numeric", defaultValue: 0.0},

{... ]

Grid

=====

columns:[ { text: "", dataIndex: „row"},

{ text: "0-4", dataIndex: "columnV1"},

{ text: "5-10", dataIndex: "columnV2"},

{ ... ]

Grid

=====

data: [ { „rowId1": "1", "rowId2": "1", „row": "Apprentice", "columnId1": "1", "columnV1": 111.00,

"columnId2": "2", "columnV2": 222.00 },

{ „rowId1": "1", "rowId2": "2", „row": "Mechanist", "columnId1": "1", "columnV1": 666.00,

"columnId2": "2", "columnV2": 777.00 },

{ ... ]

Page 23: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Pivot Table

How it looks like

Criteria and exception path

loaded from

row criterion

values

loaded from

column

criterion

values

Editing in grid Use Dirty Flag

Page 24: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Pivot Table

What is the user‘s experience

• Total overview – Familiar due to names and descriptions like in contract

• Editing in grid – Speedy and fail-safe

Page 25: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Agenda

BI Integration

Page 26: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

BI Integration

Reporting and Printing

is required in most applications

programming own reporting and printing tools is too much of an effort

reporting tools often are integrated with the database

What to do

• Evaluate reporting tools

• Decide for one

• Integrate the reporting tool into your application

Using MS SQL Server we decided for MS SQL Server Reporting Services

Integration was unexpectedly simple

Page 27: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

BI Integration

Two scenarios

Reports with preset parameters

Reports with

user entered

filter options

Page 28: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

BI Integration

Reports with preset parameters

• ExtJS source code

• Executed link when pressing the button

http://MyReportServer/ReportServer/Pages/ReportViewer.aspx?/MODAB_Betrieb/Stammdatenblatt&rs:Command=Render&MitgliedsNr

=7473251&Stichtag=07.11.2013

Report name Parameters Server name

Page 29: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

BI Integration

Rendering the report in reporting services portal

• Print report

• Download report in format

• XML, PDF, MHTML,

TIFF, EXCEL, WORD,

CSV

Page 30: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

BI Integration

Reports with user entered filter options

• Configure Websydian URL Menu item

• Executed link when clicking the menu item

http://MyReportServer/ReportServer/Pages/ReportViewer.aspx?/MODAB_Betrieb/MODAB&rs:Command=Render

Report name Server name

Page 31: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

BI Integration

Rendering the report in reporting services portal

• Filter your report

• Search your report

• Print report

• Download report in format

• XML, PDF, MHTML,

TIFF, EXCEL, WORD,

CSV

Page 32: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

Pivot Table

What is the user‘s experience

• Professional

• Flexible

• Up to most demands

What is the programmers experience

• Reporting and Printing can be so easy

Page 33: Modern features with Plex and Websydian ExtJSplex2e.com/conference/wp-content/uploads/2014/03/MODAB.pdf · Modern features with Plex and Websydian ExtJS ... XML, PHP, Ruby, Python,

© AXSOS AG

2009

© AXSOS AG

2009

AXSOS AG

Zettachring 8A · D-70567 Stuttgart

Telefon +49 711.901196 0 · Fax -49 711.901196 111

www.axsos-ag.de

V i e l e n D a n k !