Title: CAS2842 Maximizing Livelink Workflow at JohnsonDiversey
1CAS2842Maximizing Livelink Workflow at
JohnsonDiversey
- Greg Griffiths Technical Development
Lead.JohnsonDiversey International IT - High
Wycombe U.K.
2Agenda
- Introductions
- Programming model
- Clientside validation
- Serverside interaction DB connectivity
- Q A
- Sharing
3About Me
- Graduate from Aberystwyth University (Wales).
- Over 4 years experience of Livelink - primarily
workflow. - Frequent contributor to the Knowledge Centre.
- Manager of Livelink Resource site
http//www.greggriffiths.org/livelink/ - Currently a Technical Development Lead within
JohnsonDiverseys global Development Group.
4About JohnsonDiversey
JohnsonDiversey
NEW COMPANY
JWP
DL
- 15,000 employees
- 60 countries
5Current Programming Model
6New Programming Model
Custom Code simply processes Form data and / or
populates Form with new data.
- But
- Increased complexity of overall solution, many
scripts, ODBC connectors etc instead of a single
Oscript module. - Can be more difficult for OpenText to support
as they may not have the ASP / Perl skills.
- No direct interaction with Livelink means
- No OScript code, easier to upgrade.
- Leverage in existing skillsets, Serverside -
ASP, Perl etc Clientside - Javascript, VBScript
etc
7Working with WebForms
- Basically a HTML form.
- Field names are simple to spot, but not easy to
relate to their content ltINPUT TYPE"text"
NAME"_1_1_2_1" VALUE"LL_FormTag_1_1_2_1 /"
SIZE"32" MAXLENGTH"32" ONCHANGE"markDirty()"gt
- Clientside Scripting can be used to add
functionality - Javascript, CSS, DHTML etc.
8Server Side DB Connectivity
- Just as on the web.
- Two general approaches
- new window
- IFrame
- Serverside scripting in any language you want
e.g. ASP, Perl, PHP. - Database connectivity, file interaction and the
like are also possible - WebForm DB Lookup Functionality
9Frequently Changing Data
- How do we handle data that could change on a
regular basis, such as a list of customer names
or Order Numbers from your ERP system ?
- Create the field as a simple text field on the
form and then create the lookup in a separate
window that can be opened from the form and
populates the form with the selected value.
10Managing Active Workflows
- How do we apply a change to multiple active
workflows ? - Change the value of VAT and recalculate total.
- Change customer name.
- Employee IDs should now be four not three
digits. - Patches to resolve bugs etc.
- What if we are using SQL Storage ?
11Managing Active Workflows
- We could have our code on each form that need it.
However - difficult to manage and maintain.
- repetition of functionality, constants etc.
- increased size of download to user.
- for every change many form views would need to be
reloaded - We could get the users or an Administrator to
update each workflow in turn. However - Is this acceptable to the business
- High chance of missing one or more workflows
We need a simpler, quicker, programmatic and
more generic approach
12Library Files
Library Files reduce complexity, redundancyand
overall file size
13An Example
While some functionality will be used on all
steps,some may only be used on one, so we can
further refine our library files by having a
single globals file and one or more form
specific files.
14Patches
- If you are doing an update, you may want the
patch to run only once, for example - Give a specific customer a 10 reduction
- Complex update function
- In these case you can add an additional hidden
field - patchLevel - so that you only run the
patches that you have not yet run.
15Demonstration
- Applying patches to running Workflows
16Simplifying Routing Management
- If we have an Evaluate step defined as follows
If CustomerA and total gt 10,000 dollars then
goto step1Else if CustomerB and total gt 150,000
then goto step 2Else if CustomerB and total
lt100,000 and salesman is Tony then goto step
1Else if CustomerC then goto step 3Else goto
step 4 - This becomes very hard to manage if we need to
update this, especially in active workflows !!!
17Simplifying Routing Management II
- Implement business logic routing in the Library
file, then set a value to represent the result,
so our routing is now simplified to If
nextStep 1 then goto step 1Else if nextStep
2 then goto step 2Else if nextStep 3 then goto
step 3Else goto step 4 - Changes and corrections are now much simpler.
18Workflow Data
- Workflow data is stored within the Livelink
system, but is not very useable. - SQL Storage can be used, but is wasteful and can
only handle a limited number of fields. - Why not use a relational database design and
simply load / save data as required ?
19Reporting on Workflows
- There are several ways to report on Workflows
including - Workflow Status
- Live Reports
- Change Agents
- WebReports
- However Workflow data is not easily accessible in
the Livelink Database - - Workflow Tables
- Attributes
- SQL Table Storage
- WebForms
20Demonstration
- Livelink Workflow Database Tables
21Putting this into Practice
- PNABS
- Labelling Change Control System
- Multilingual user interface (17 countries, 13
languages) - Must meet regulatory requirements
- Able to handle changes in Master Data
22Putting this into Practice II
- Bill of Information
- Corporate level Master Data change control system
for management of products SKUs. - Linked to other key systems.
- Complex validation, data and routing models.
23BOI Process Details
- User opens Workflow HTML form and enters an SSKU
Number. - ASP / ODBC / Oracle Views are used to load the
relevant data from the database into the workflow
form. - Change moves through the workflow.
- Javascript manages validation, relationships and
routing. CSS manages presentation. - Additional ASP pages provide connectivity to
other datasources for validation and / or sharing
of data. - On completion ASP and Oracle Stored Procedures
create a new version of the SSKU in the database.
24How does this help JohnsonDiversey work more
efficiently ?
- Improved clientside validation and popups reduce
data entry errors. - Database connectivity ensures that we have
correct and consistent data throughout the system
and that we are in synch with other systems using
the same data elements. - Improved reporting functionality allows
management and users to see data in real time - Generic modular approach decreases time to make a
change and risk of problems. - Mass Updates, validation and Business Logic
changes are now simple to implement and low risk. - Allows us to leverage existing development
skillsets such as ASP, Javascript, SQL.
25Conclusion
- Workflows are a very powerful tool.
- Enhancing workflows to suit your business needs
is relatively simple and can be done using
existing skillsets. - External datasources and systems can be simply
linked into a workflow. - Workflow applications can be built so that they
can be easily managed, updated and maintained
during their lifetime.
26More information can be found at
http//www.greggriffiths.org/livelink/