Please disable Adblockers and enable JavaScript for domain CEWebS.cs.univie.ac.at! We have NO ADS, but they may interfere with some of our course material.
[Info]
Workflow Execution
Use the following workflow engine:
-
- «http://cpee.org:9298/» (Backend)
Make sure all software you write runs on:
- almighty.cs.univie.ac.at, abgabe.cs.univie.ac.at
- Protokoll: ssh/sftp
- Login: Unet Account name (wie username bei wlan)
- Pass: Unet Passwort
Use one (or many) of the following technologies – your choice:
- JAVA, please create standlone microservices (no tomcat, jboss, …), e.g.
- jetty (JAR)
- use abgabe.cs.univie.ac.at:9000-10000
- PHP (subdirectory public_html on almighty.cs.univie.ac.at)
- access the PHP under «http://wwwlab.cs.univie.ac.at/~userid»
- Ruby (abgabe.cs.univie.ac.at:9000-10000)
- Javascript (nodejs) (abgabe.cs.univie.ac.at:9000-10000)
For UI’s ist HTML/JS is obligatory (subdirectory public_html on almighty.cs.univie.ac.at).
Assignment 4a - Modell
Port your process to CPEE (including data flow) und use the timeout servive.
Include the data flow from Aristaflow 3a, as shown on tuesday and thursday.
Solution approach 1 (~ 2 minutes):
- modeltype to signavio
- "Load Model" signavio.bpmn
- If the import is not successful, proceed to solution approach 2.
- Whereever you use the endpoint timeout (tip everywhere) add the parameter timeout (value 2).
Solution approach 2 (~ 10 minutes):
- Modelling by hand
- Do step 4 of solution approach 1
Submit the following files:
- Signavio Modell as PDF
- CPEE Template
WARNING: 0 POINTS if Matnr is not included in Attribute info.
Assignment 4b - Runtime
For every task write a Web-Service.
2nd Edition: Really do what it says above.
- Jedes Service soll etwas tun!
- Services fuer Tasks die im Signavio ein User Icon oder eine Hand haben, sollen random werte zurueckgeben.
- Services fuer Tasks die im Signavio ein Zahnrad haben sollen ETWAS TUN (entscheiden, daten lesen, …, KEIN RANDOM)
- Alle Services haben INPUT PARAMETER. Sonst wissen sie nicht was zu tun ist. Services fuer User Eingaben haben zumindest folgende Parameter:
- Rolle
- Organisation
- Link auf die URL mit dem HTML Formular in das die Eingabe rein soll.
- Es muss nicht immer was zurueck kommen (aber es macht sinn dass immer was zurueck kommt).
- Wenn da steht Mail senden, dann soll ein Mail gesendet werden.
p.s. man kann jederzeit sein Signavio Modell anpassen (Labels duerfen nicht umbenannt werden, aber Tasks entfernt oder Manual/Automatic Label veraendert werden).
Important:
- Tasks have Input ($_REQUEST in PHP).
- Tasks have Output which can be used in finalize to fill data elements (e.g. data.x = result.y).
- How often to run through loops is typically the result of data coming from process tasks.
- use rand() stuff from services, so that not all instances are the same.
Abzugebende Dateien:
- Signavio Modell as PDF
- CPEE Template
- Source Code as ZIP
WARNING 1: 0 POINTS if Matnr is not included in Attribute info.
WARNING 2: 0 POINTS if it is not runnable on one of the servers mentioned above.
Assignment 4c - Worklist
A Worklist is a program that allows process actors (i.e. humans) to interact with a process (the person that klicks execute in the CPEE Cockpit is not a process actor).
To realize a worklist, every human task (at least 4 tasks with a hand or a human in your Signavio model!) is REQUIRED to have EXACTLY the following additional
parameters:
- role, that is intended to deliver the data da is intended to be returned by the task.
- form, that should be filled out by the user.
Of course there is MOST POSSIBLY additional input parameters. Each task should be realized as asynchronous task:
- When the task is called, save all parameters and tell the CPEE that you will answer later.
- Show the Task List for the users (assigned to the role).
- When a user takes the task, show him or her the form (with the additional parameters so that he/she has context information).
- Gather the users input and send it back to the CPEE.
Write the following files (only these files):
- organisation.xml - containts all the units, roles and users (YOU HAVE TO USE THE FORMAT described below).
- activity.php - called by the CPEE, saves Role, Form and Parameters.
- worklist.php - show all tasks for certain user (parameter user required).
- work.php - when the user clicks a task in the worklist.php, the form is to be shown.
- final.php - when the user clicks SUBMIT in work.php, final.php (1) gets the data, (2) sends it via PUT to cpee, and (3) redirects () to worklist.php.
Additional rules:
- All people whose matnrs end 1,2,3: random assign tasks to a user who has the role. Repeat when a task is given back.
- All people whose matnrs end 4,5,6: assign tasks to a user who has the least tasks. Repeat when a task is given back.
- All people whose matnrs end 7,8,9,0: show rules to all users in the role. As soon as a user takes the task, the others no longer see it.
- Use the following XML format for describing your organization (example): «http://cpee.org/~demo/orgviz/organisation_studentmanagement.xml»
How to tell CPEE that you want to answer later?
<?
$headers = apache_request_headers() ;
# save $headers['CPEE_CALLBACK'], plus all $_REQUEST parameters
header('CPEE_CALLBACK: true');
exit;
?>
How to send data back to CPEE (by PUT'ing it to the url in $headers['CPEE_CALLBACK'])?
<?
$opts = array('http' =>
array(
'method' => 'PUT',
'header' => 'Content-type: application/json',
'content' => JSON_DATA
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://...', false, $context);
exit;
?>
Submit the following 4 files:
- Signavio Modell as PDF
- CPEE Template
- Source Code as ZIP
- text file with url to the working example
WARNING 1: 0 POINTS if Matnr is not included in Attribute info.
WARNING 2: 0 POINTS if it is not runable on one of the servers mentioned above.
WARNING 3: Assume that you need several days, including interaction with others (e.g. Forum) to do this.
Assignment 4d - Logging
Write a logging facility, which saves all information as «XES 2.x.» file.
Add the follwing aspect to your testset file (just copy it in below handlerwrapper):
<handlers>
<handler url="http://wwwlab.cs.univie.ac.at/~XXXXXX/logging/logging.php">
<events topic='activity'>calling,failed,manipulating,done</events>
</handler>
</handlers>
http:// has to point to your logging service in your account (use EXACTLY the format given above, just change XXXXXX to your username).
Pro TIP: Save all incoming information as you did for the worklist (headers and $_REQUEST) in a random file. Then you can check what data you get.
Tailor the list of <events> so that it suits your needs. Possible events can be found under «http://cpee.org:9298/1/notifications/topics»
Use your testset from Assignment 4c. The result should be a valid XES File.
Add event dispersing (hardcoded location) to the worklist so that it contributes to the events in the XES File. The worklist should send the following events:
- A task is assigned to a user.
- A task is finished.
- A task is given back (if this is possible for your solution).
The events from the worklist should also show up in the XES File.
Additional rules:
- All people whose matnrs end 1,2,3,4,5: the XES file should be in the «YAML format» (NOT XML) but noetheless follow exactly the XES format (same fields, same structure).
- All people whose matnrs end 6,7,8,9,0: the XES file should be in the XML format.
Submit the following 3 files:
- CPEE Template
- Source Code as ZIP
- One example LOG in .yaml or .xml format
Last Change: 17.01.2017, 12:10 | 1221 Words