modern features with plex and websydian...

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

Upload: doanthuan

Post on 17-Dec-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

© AXSOS AG

2009

Modern features with Plex and Websydian ExtJS

Olaf Flemming Project Manager AXSOS AG

© AXSOS AG

2009

Agenda

1. The Application

2. Google like Search

3. Pivot Table

4. BI Integration

© AXSOS AG

2009

Agenda

The Application

© AXSOS AG

2009

Application

MODAB - Worker Association Online Member Administration

Web 2.0 Application based on CA:Plex and Websydian ExtJS

© 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

© AXSOS AG

2009

The Application

Contacts

(natural persons and legal persons)

• Contact module handling

• Roles

• Relations

• Data

Filter dialogs to lookup contacts ???

© 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?

© AXSOS AG

2009

Agenda

Google like Search

© AXSOS AG

2009

Google like Search

Searching in AXSOS style

Lucene/ Solr

Plex/ Websydian

ExtJs

AXSOS Search

© 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

© 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

© AXSOS AG

2009

Google like Search

Database

Lucene Apache

Plex

Analysing Tools

Websydian Web Application

Solr

Architectur of AXSOS solution

© 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

© 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

….

© 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

© 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

© AXSOS AG

2009

Agenda

Pivot Table

© 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

© 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 …

© 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

© 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

© 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 },

{ ... ]

© 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

© 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

© AXSOS AG

2009

Agenda

BI Integration

© 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

© AXSOS AG

2009

BI Integration

Two scenarios

Reports with preset parameters

Reports with

user entered

filter options

© 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

© 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

© 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

© 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

© 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

© 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 !