Project

Profile

Help

Workflows standardisieren » History » Revision 2

Revision 1 (Thomas Carney, 05/25/2016 04:59 PM) → Revision 2/51 (Thomas Carney, 06/03/2016 02:21 PM)

# Workflows standardisieren Create a custom workflow for recurring tasks 

 Eine der Stärken Planios: Immerwiederkehrende Aufgaben zu Workflows machen. Planio is not only great for [one-off projects](https://plan.io/project-management/). It really shines when it comes to [recurring tasks](https://plan.io/task-management/) that follow a certain workflow within your organization. 

 Wir erklären wie’s geht. Am Beispiel eines einfachen Workflows für Urlaubsanträge. Das Schöne ist auch hier gilt: Einmal gelernt, immer verstanden. Für Ihren persönlichen Workflow. Follow along this guide to create a simple vacation approval workflow for your team members - and apply what you've learned to create your own custom workflows. 

 {{>toc}} 

 ## Die Planio Workflow-Basics workflow basics 

 Die Idee dahinter: Jede Aufgabe gehört zu einem Tracker, der den Workflow definiert. Am besten wir schauen uns das mal genauer an: In Planio, every issue must belong to a tracker which defines its workflow. Let's look at this in more detail: 

 ### Tracker Trackers 

 Für uns sind Tracker so etwas wie eine Art Überaufgabe. Deswegen gehört jede Einzel-Aufgabe immer zu **einem** Tracker. Sie ist somit Teil der Überaufgabe. Kleines Beispiel? **Supportanfragen**, **Software-Bugs** oder – richtig geraten – **Urlaubsanträge**. We'd like to see trackers as special issue types. An issue must belong to exactly one tracker. **Task**, **Support incident**, **Software bug**, or -- you guessed it -- **Vacation request** would be great examples for a tracker. 

 ### Status Issue statuses 

 Der Status beschreibt die einzelnen Zustände einer Aufgabe Issue statuses describe the different states, that an issue in Planio – z. B. **Offen**, can have at any given moment. For instance, an issue can be **Open**, **In Bearbeitung** oder **Erledigt**. Jede Aufgabe kann immer nur einen Status haben, der sich dabei im Zuge der Aufgabenbearbeitung verändert. progress**, **Waiting for review**, or **Closed**. An issue will always have exactly one status and the status will likely change over time as people work on the issue. 

 ### Rollen Roles 

 Nutzer haben ihren eigenen Users in Planio Zugang. Für die Teilnahme an Projekten. Dabei nimmt jeder eine oder mehrere Rollen gleichzeitg ein – z. B. von **Manager** und **Mitarbeiter** bis hin zu anderen Rollen wie **Kunden**. Die Rolle gibt die Berechtigungen vor. Die Berechtigungen wiederum, was jeder einzelne Nutzer sehen und nicht sehen kann. Innerhalb eines Projektes definieren sie damit auch den Workflow der Nutzer. have their own user account using which they take part in projects using one or more roles: While some users may take part as *Manager*, others may be regular *Staff* or e.g. *Client*. The role defines what a user can and cannot see or do in a given project. It also defines the user's workflow. 

 ### Workflows 

 Innerhalb eines Workflows kommt alles zusammen: Die auswählbaren Tracker, alle erlaubten Rollen sowie jeder mögliche Aufgaben-Status. Der Workflow gibt als vor, welchen der verfügbaren Status ich wählen kann. Oder welche Teile einer Aufgabe für mich sichtbar oder unsichtbar sind. The workflow brings it all together: A workflow defines for every possible combination of tracker and role which issue statuses are available. It defines for all its tracker's issues which status changes are allowed and which issue properties are visible and/or changeable. 

 Kompliziert? Keine Sorge. Wir führen Sie Say what!? This is arguably the most complex (and powerful) part of Planio, but don't worry -- we will walk you through it and you will be a workflow expert in Ruhe durch. Damit auch Sie in den Genuss einer der größten Stärken von Planio kommen. Los geht’s! no time! 

 ## Die Schritte zum Urlaubsantrag Technicalities of going on a vacation 

 Sie träumen vom perfekten Strand We knew you would love this section. Dreaming of that deserted beach in der Karibik? Wunderbar! Dann beantragen wir doch gemeinsam Ihren Urlaub: the Caribbean? Let's request some vacation days and off we go. 

 In den meisten Unternehmen wird der Urlaub üblicherweise vom Vorgesetzten genehmigt. In der Regel bedeutet das: Wir füllen den vorgedruckten Urlaubsantrag aus. Geben ein Start- und Enddatum an. Anschließend wird der Urlaub entweder genehmigt oder abgelehnt. Wenn der Antrag durch ist, können die Daten nicht mehr beliebig geändert werden. Falls der Urlaubsantrag abgelehnt wurde, ändern wir das Datum, hoffen das alles glatt geht und schwupp sind wir many companies, taking a vacation requires approval by a manager. Employees must submit a request mentioning the start and end date of the requested vacation and managers will approve or disapprove the request. Upon approval, the dates of that vacation can not be altered, and the vacation request is final. If disapproved, employees can alter their requested dates and re-request approval until -- hopefully -- they will be allowed their well-deserved days in der Karibik. Herrlich! the Caribbean. 

 Und jetzt zeigen wir Ihnen wie dieser Prozess We will now build this workflow in Form eines Workflows mit Planio umsetzen lässt. Natürlich mit Anzeige im Planio Kalender. Damit jeder weiß, wann jeder Urlaub hat. allowing for actual vacation requests being made and approved. We will also show you how to visualise them on Planio's calendar, so you can get a great overview on who is on vacation at which point in time. 

 ## Die Werkzeuge: Tracker, Status, Rollen und Statuses, Roles, and Workflow 

 Wir brauchen folgende Zutaten: Ein To implement this, we will create a **Tracker** namens **Urlaubsantrag**. Den jeweils passenden Status – **Offen**, **Genehmigt** und **Abgelehnt**. Zwei Rollen: **Manager** und **Angestellte**. Und los! called *Vacation request*, three **Issue statuses** called *Open*, *Approved*, and *Rejected*, and two **Roles**, called *Manager* and *Staff*. 

 Finally, we will tie all those together using a custom **Workflow** in Planio. 

 ### Tracker anlegen Create the tracker 

 First things first. Let's get down to business: 

   - Bitte unter **Administration → Tracker** – Klick auf **Neuen Tracker** mit Namen Urlaubsantrag. Navigate to **Administration** -\> **Trackers**, then click on **New tracker**. 
   - **In der Roadmap** anzeigen bitte Häkchen weg, da wir keine Urlaube nicht Enter *Vacation request* as **Name**. 
   - Uncheck the **Issues displayed in der Projekt-Roadmap benötigen. roadmap** checkbox since we do not want to see vacation days on our project roadmaps. 
   - Häkchen weg Uncheck all **Standard fields** checkboxes except the ones for **Start date** and **Due date**. We'll actually use those for the start and end of our vacations. 
   - Do not select anything in allen Standardfeldern, bis auf **Beginn** und **Abgabedatum**, die wir für Anfang und Ende unseres Urlaub nutzen werden.  
   the **Copy workflow from** drop down. 
   - **Workflow kopieren von** – bitte nichts auswählen. Dann auf **Anlegen**. Click **Create**. 

 ![](creating_a\_new_tracker.png)   
 *So sieht Ihr Tracker jetzt aus* *Your tracker should look like this.* 

 ### Aufgabenstatus anlegen Create issue statuses 

 Jetzt legen wir den passenden Status an für **Offen**, **Genehmigt** und **Abgelehnt:** 

   - Bitte unter **Administration → Aufgaben-Status** 
   - *Offen* – gefunden? Dann bitte Klick auf den Status. Und darauf achten, dass ein Häkchen gesetzt ist unter **Standardeinstellung**. Damit jede neue Aufgabe immer mit dem Status *Offen* beginnt.  
   - Offen – nicht gefunden? Dann bitte Klick auf **Neuer Status**, *Offen* in das Feld **Name** eintragen, Häkchen unter **Standardeinstellung** setzen. Kein Häkchen bei **Zu allen Workflows hinzufügen**, wir wollen ja hier speziell den *Urlaubsantrags-Workflow* anlegen. 
   - Klick auf Anlegen oder bzw. auf Neuer Status. 
   - Status für Genehmigt und Abgelehnt genauso wie bei Offen anlegen und darauf achten, dass bei Genehmigt ein Häkchen gesetzt ist unter Aufgabe erledigt. Und darauf achten: Genehmigt oder Abgelehnt nicht als Standardeinstellung speichern. 

 <!-- end list --> The steps are similar but slightly different for the three statuses *Open*, *Approved*, and *Rejected*. 

   - Navigate to **Administration** -\> **Issue statuses**. 
   - Do you see a status called *Open*? Great, click on it, and make sure that the **Default value** checkbox is checked. This will make *Open* the default status that's always the first status for a newly created issue. 
   - Do not see the status? Simply click on **New status**, enter *Open* in the **Name** field, and check the **Default value** checkbox. Uncheck the **Add to all workflows** checkbox since we only want it for our *Vacation request* workflow. 
   - Click on **Save** or **Create** respectively. 
   - Create the remaining statuses *Approved* and *Rejected* following the same pattern and make sure the *Approved* status has the **Issue closed** checkbox checked. Do not check the **Default value** checkbox for *Approved* and *Rejected*. 

 ![](create_an_issue_status.png)   
 *This is what your "Approved" status will look like.* 

 ### Create a role 

 This one should be easy: 

   - Navigate to **Administration** -\> **Roles and permissions**. 
   - Do you see the roles *Manager* and *Staff* already? Great. You're done with this step. Those are actually the two basic roles your Planio account came with. 
   - Do not see the roles? Create them by clicking on **New role**. Enter the role's **Name** and ignore the rest for now, just be sure that the check boxes for permissions **View calendar**, **Edit issues**, **View issues**, and **Add issues** are checked. Repeat this for both the *Manager* and *Staff* roles. 

 ![](how_to_add_a\_role.png)   
 *Adding a role* 

 ### Define the workflow 

 This is the fun part. Here is where it all comes together. 

   - Navigate to **Administration** -\> **Workflow**. 
   - Select the *Staff* role and your *Vacation request* tracker. 
   - Uncheck the **Only display statuses that are used by this tracker** checkbox and click on **Edit**. 
   - The checkbox matrix that appears lets you configure all allowed status transitions for a given role and tracker. For instance, the *Staff* workflow should have the checkbox at the lower left checked. This means that members having the role *Staff* can set an issue having a **current status** of *Rejected* back to *Open*. 
   - Now, let's configure the *Staff* workflow according to the following screenshot:   
     ![](vacation_request_workflow_for_staff.png)   
     *Workflow for Staff role* 
   - Click on **Save**. 
   - Next, select *Manager* as a role, make sure the **Only display statuses that are used by this tracker** checkbox is unchecked click on **Edit** again. 
   - Configure the *Manager* workflow according to the following screenshot:   
     ![](vacation_request_workflow_for_manager.png)   
     *Workflow for Manager role* 
   - Click on **Save**. 

 Wait, what did we just do? Have a look at the screenshots again. What we defined is: 

   - *Managers* can set an open vacation request to *Approved* or *Rejected* and a *Rejected* vacation request to *Approved* (in case they changed their mind).  
   - *Staff* can only set a *Rejected* vacation request back to *Open*. (This is for when they change their dates and want to re-request approval.) 

 ### Adapt fields permissions 

 Now, let's customize the issue form fields a bit according to the issue status. 

   - Still on the **Workflow** screen, select the **Fields permissions** tab. 
   - For *Manager*, set everything to *read-only* except the **Subject**:   
     ![](fields_permissions_manager.png)   
     *Fields permissions for Manager role* 
   - For *Staff*, do the same except for the **Start date** and **Due date** fields:   
     ![](fields_permissions_staff.png)   
     *Fields permissions for Staff role*   
     This makes sure only *Staff* can actually set the dates for a vacation request and that those dates cannot be changed anymore, once approved. 

 ## Put it all to work in an actual project 

 That's enough of prep work. Let's try it out. 

   - Start by creating a new project via **Projects** -\> **New project**. 
   - Give your project a name, e.g. **Vacation planning**. 
   - Disable all modules but **Issue tracking** and **Calendar**. 
   - Select only your **Vacation request** tracker and nothing else. 
   - Click **Create**. 

 That's it, you're done. Your users can now use this project for your new vacation request planning workflow. In order to submit a vacation request, all they'd have to do is create a new issue. Selecting a **start date** and a **due date** will be required when creating *vacation request* issues and all other useless fields will be hidden. 

 ![](new_issue_form.png)   
 *Stripped down issue form for vacation requests* 

 In order to try it out for yourself and play around with it, we recommend you create two users that have no administrator privileges and add the as *Staff* and *Manager* to your project respectively. 

 (If you try it out as an administrator, don't be alarmed by the fact that you can always choose from all statuses when updating an issue. That's normal if you're an admin. Regular users will only see the statuses as defined by their workflow.) 

 ### Bonus: The calendar view 

 What's up with the **Calendar** module we've enabled in the roles and your project, you ask yourself? Well, after adding a couple of vacation requests, check out the **Calendar** tab in your project. The Planio calendar will give you a nice monthly overview of all vacation requests which have been tracked. 

 ![](vacation_calendar.png)   
 *Vacation calendar view in Planio* 

 By using a [custom query](http://plan.io/blog/post/25072622222/trackers-viewing-and-grouping), you can even create a calendar view that displays only approved vacation requests. Or create a query for your managers that shows only *Open* requests that have to be approved still.