[Nuxeo World 2013] Workshop - Implement your Business Logic
-
Upload
nuxeo -
Category
Technology
-
view
252 -
download
1
description
Transcript of [Nuxeo World 2013] Workshop - Implement your Business Logic
Implement your business logic
Oct 10th, 2013 Benjamin Jalon & Frédéric Vadon
Implement Business Logic ?
2
= Make sure your system enforce your business constraints
Example of business Logic
3
- My documents should have a topic field
- Documents should be moved to another department when they are validated
- They should become obsolete after one year
- Only the group “validators” can see it while the document is not published ....
....
Technical translation
4
It is usually means the system (Nuxeo) will do things for you, like:
- Updating one or more metadata of a document
- Creating a document automatically
- Changing the lifecycle of a document (done this morning)
- Doing a conversion of a document
- Setting an ACL automatically on the document
- Assigning tasks to users on the resources
How can this be done ?
5
Automation
Automation - an operation
6
Category
oInput/outpout
Parameters
oDescription
Automation - a chain
7
Document on which we will
work
Update of a metadata
Log in Nuxeo Audit
How to use an chain?
8
• Bind it to a button
• Bind it to an event handler
• To Workflow
• Call it as a webservice
Let’s try !
9
1. Create a button that updates the description property with “Hello world” value
2. Use the latter chain so that each time you create a document, the description is equal to “Hello World”.
3. Create a button that moves the current document just under /default-domain/workspaces
I want more !
10
Use MVEL @{ }
Referencing a metadata
11
@{ Document[“dc:title] }
Let’s try !
12
1. On the previous button that adds “Hello world”, make sure it logs in the audit an entry with a comment that prints the value of the dc:title, dc:description, dc:creator
I want more !
13
Use Automation Context
A context for the whole chain
14
• Context is useful to “store” objects/information during the time of the execution of the chain
• Store a value at 2nd step of your chain, use it at the 5th step
• Store document, list of documents, metadata value, any value !
Tools to play with the context
15
• A “map of objects” called “Context” for accessing the context from MVEL: @{Context[“my_variable”}
• Some operations in the category “Execution context”
Tools to play with the context
16
Very useful !
Tools to play with the context
17
Very useful !
Let’s try !
18
1. When creating a File document, make sure you get automatically the same “coverage” than the one that is on the workspace.
2. Add a button that creates beside a given file a note called “Review of document XXX” where XXX is the title of the first document
Next
19
Automation is so cool, eh, why do I need workflow ?
Why Using Workflows
20
• Bring you time based automation
• Offers interaction with users, asking them their input (forms, buttons)
• Produces a very maintainable business logic implementation!
What Is a Workflow in Nuxeo
21
• A set of nodes linked on a graph
• References to automation chains to define what is automated at each nodes
• Definition of forms and buttons to defined what a user should contribute at a given node
Starting with workflows
22
Let’s go iterative
Create users on your instance
23
Create Users on Your Instance
24
• john/john , group: members
• jack/jack , group: members
• group: nxworld
Assign a task to john
25
• Drop a task node
• Make sure there is one or two buttons
• Link the transitions
• Deploy and test
More assignments cases
26
• assign to a group (group:nxworld)
• assign to the workflow initiator (“workflowInitiator”)
Play with the security
27
• Make sure John can read the document when he is assigned the task.
Plug an automation chain on your workflow
28
• Write a new automation chain
• Plut it to the workflow, for example for updating the title of the document, right at the end of the workflow.
#NxWor
ld13
!Thank you