---
title: "Field Service"
description: "Kohdetyöt asiakkaan luona. Jokainen sovellus on moduuli samalla tietomallilla."
canonical: "https://obop.dev/fi/apps/field-service/"
lang: "fi"
---

# Field Service

## Mihin se on tarkoitettu

Schedule on-site jobs for customers: who does the work, where, when, which parts were used and whether the customer must sign off. Site addresses and contacts are personal data and treated as such.

## Mitä paketti tekee ja mitä ei

On-site jobs for customers, done by a technician: scheduled, en route, in progress, done or cancelled. A job records the customer, the site, the technician, the planned day and start (minutes since midnight), the parts used and whether the customer must sign off. Site address and contact details are personal data. Needs the Human Resources and Products packages.

## Mallit

### `field_service_job`

An on-site job for a customer

Lukuryhmä: `field_service.user`. Kirjoitusryhmä: `field_service.user`.

| Kenttä | Tyyppi | Tietoluokka | Henkilötieto | Ryhmä | Agentit näkevät | Kuvaus |
|---|---|---|---|---|---|---|
| `name` | text | `none` | ei | `field_service.user` | selkoisena | Short title of the job, for example Replace boiler pump |
| `customer_id` | ref → party | `none` | ei | `field_service.user` | selkoisena | The customer the job is for |
| `site_name` | text | `none` | ei | `field_service.user` | selkoisena | Name of the site, for example Main warehouse |
| `site_address` | longtext | `internal` | kyllä | `field_service.user` | maskattu | Street address where the work is done; often a person's home |
| `site_city` | text | `internal` | kyllä | `field_service.user` | maskattu | City of the site |
| `site_postcode` | text | `internal` | kyllä | `field_service.user` | maskattu | Postcode of the site |
| `site_country` | text | `none` | ei | `field_service.user` | selkoisena | Country of the site |
| `site_contact_name` | text | `internal` | kyllä | `field_service.user` | maskattu | Name of the person to meet on site |
| `site_contact_phone` | text | `internal` | kyllä | `field_service.user` | maskattu | Phone number of the person to meet on site |
| `technician_id` | ref → hr_employee | `internal` | kyllä | `field_service.user` | maskattu | Technician assigned to the job |
| `priority` | select (low, normal, high, urgent) | `none` | ei | `field_service.user` | selkoisena | How urgent the job is: low, normal, high, urgent |
| `description` | longtext | `none` | ei | `field_service.user` | selkoisena | What has to be done and what the customer reported |
| `scheduled_on` | date | `none` | ei | `field_service.user` | selkoisena | Planned day of the visit (YYYY-MM-DD) |
| `scheduled_start_minute` | number | `none` | ei | `field_service.user` | selkoisena | Planned start in minutes since midnight (540 is 09:00) |
| `planned_minutes` | number | `none` | ei | `field_service.user` | selkoisena | Planned duration in minutes |
| `signature_required` | bool | `none` | ei | `field_service.user` | selkoisena | Whether the customer has to sign off the work before it counts as done |
| `signed_by` | text | `internal` | kyllä | `field_service.user` | maskattu | Name of the person who signed off the work |
| `signed_on` | date | `none` | ei | `field_service.user` | selkoisena | Day the customer signed off (YYYY-MM-DD) |
| `work_report` | longtext | `none` | ei | `field_service.user` | selkoisena | What was done, written by the technician |
| `state` | select (scheduled, en_route, in_progress, done, cancelled) | `none` | ei | `field_service.user` | selkoisena | Job status: scheduled, en_route, in_progress, done, cancelled |

### `field_service_part`

A part or product used on a job

Lukuryhmä: `field_service.user`. Kirjoitusryhmä: `field_service.user`.

| Kenttä | Tyyppi | Tietoluokka | Henkilötieto | Ryhmä | Agentit näkevät | Kuvaus |
|---|---|---|---|---|---|---|
| `job_id` | ref → field_service_job | `none` | ei | `field_service.user` | selkoisena | The job the part was used on |
| `product_id` | ref → product | `none` | ei | `field_service.user` | selkoisena | The product that was used |
| `quantity` | number | `none` | ei | `field_service.user` | selkoisena | How many units were used |
| `unit_price` | money | `none` | ei | `field_service.user` | selkoisena | Price per unit charged to the customer (minor currency units, e.g. cents) |
| `note` | text | `none` | ei | `field_service.user` | selkoisena | Remark about the part, for example serial number |

## Työnkulut

### `field_service_job`

| Toiminto | Siirtää | Kuka voi suorittaa | Hyväksyntä |
|---|---|---|---|
| `field_service_job.depart` | state: scheduled → en_route | `field_service.user` | ei |
| `field_service_job.start` | state: en_route → in_progress | `field_service.user` | ei |
| `field_service_job.complete` | state: in_progress → done | `field_service.user` | ei |
| `field_service_job.cancel` | state: scheduled → cancelled | `field_service.manager` | ei |

## Käyttöoikeusryhmät

Tämän sovelluksen käyttämät ryhmät:

- `field_service.manager`
- `field_service.user`

## Hyväksyntävaiheet

Mikään tämän sovelluksen vaihe ei vaadi hyväksyntää tietueiden poistamista lukuun ottamatta.

## Mitä agentit voivat ja eivät voi tehdä

Agentti voi lukea, hakea, luoda ja päivittää tämän sovelluksen tietueita sekä suorittaa toiminnot, jotka eivät vaadi hyväksyntää, tunnisteensa käyttöoikeusryhmien rajoissa.

Se voi vain ehdottaa näitä vaiheita, ja ihmisen on hyväksyttävä ne: `field_service_job.delete`, `field_service_part.delete`.

Henkilötiedot maskataan paikkamerkeiksi: `field_service_job.site_address`, `field_service_job.site_city`, `field_service_job.site_postcode`, `field_service_job.site_contact_name`, `field_service_job.site_contact_phone`, `field_service_job.technician_id`, `field_service_job.signed_by`.

## Riippuvuudet

- `base`
- `product`
- `hr`

## Asennus

Asenna se Customize-sovelluksesta (Marketplace) tai komentoriviltä:

```bash
obop modules install-from field_service
```

Vaatii tietokannan ja ylläpitäjän oikeudet.

## Tee oma

[Moduulioppaassa näytetään, miten tällaiset sovellukset kirjoitetaan](/fi/docs/reference/module-manifest/)
