modern features with plex and websydian...
Post on 17-Dec-2018
226 Views
Preview:
TRANSCRIPT
© AXSOS AG
2009
Modern features with Plex and Websydian ExtJS
Olaf Flemming Project Manager AXSOS AG
© 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
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
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
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
top related