2. Formulare (Formdata)
Grundidee
Formulare ermöglichen es, strukturierte Informationen direkt während der Auftragsausführung über die Driver App zu erfassen.
Typische Beispiele sind:
-
Unterschriften
-
Fotos
-
Checkboxen
-
Auswahlfelder
-
Texteingaben
-
zusätzliche Bemerkungen
Diese Informationen werden im Auftrag im Feld formdata gespeichert und können anschließend über die API ausgelesen werden.
Damit lassen sich Rückmeldungen aus der Ausführung automatisiert in externe Systeme übernehmen, z. B.:
-
ERP-Systeme
-
Dokumentationssysteme
-
Abrechnungssysteme
-
Qualitätskontrolle
Aufbau von formdata
Das Feld formdata enthält eine Liste von Formularfeldern.
"formdata": [
{
"id": "string",
"id_Text": "string",
"id_Guid": "string",
"field": "string",
"field_Text": "string",
"field_Guid": "string",
"value": "string",
"value_Text": "string",
"value_Id": "string",
"value_Guid": "string",
"value_Additional": "string",
"file_Data": "string",
"file_Name": "string"
}
]
Jeder Eintrag beschreibt ein einzelnes Formularfeld und dessen Antwort.
Herkunft der Formulardaten
Formulardaten können auf zwei Arten entstehen.
1️⃣ Vorgabe beim Anlegen des Auftrags
Bereits beim Order/Create können Formulare oder Formularwerte definiert werden.
Typische Beispiele:
-
Pflichtfelder für den Fahrer
-
vorgefüllte Informationen
-
strukturierte Eingabemasken
2️⃣ Rückmeldung aus der Driver App
Während der Durchführung eines Auftrags kann der Mitarbeiter in der Driver App Formularfelder ausfüllen.
Typische Beispiele:
-
Unterschrift des Empfängers
-
Foto einer Lieferung
-
Auswahl eines Lieferstatus
-
Eingabe von Bemerkungen
Diese Werte werden anschließend im Feld formdata gespeichert und können über die API abgerufen werden.
Bedeutung der wichtigsten Felder
Formularidentifikation
id
Technische ID des Formulars.
id_Text
Lesbarer Name des Formulars.
id_Guid
Interne GUID des Formulars.
Diese wird hauptsächlich systemintern verwendet.
Formularfeld
field
Technische ID des Formularfeldes.
field_Text
Lesbarer Name des Feldes.
field_Guid
Interne GUID des Feldes.
Feldwert
Die tatsächliche Antwort des Mitarbeiters wird über mehrere mögliche Felder übergeben.
value
Rohwert des Formularfeldes.
Dieser Wert wird in der Regel automatisch gesetzt.
value_Text
Textliche Antwort des Mitarbeiters.
Beispiel:
value_Id
ID einer Auswahloption.
Wird verwendet, wenn das Formularfeld eine vordefinierte Auswahl enthält.
value_Guid
GUID einer Auswahloption.
value_Additional
Zusätzlicher Textwert, falls vorhanden.
Beispiel:
Dateien und Bilder
Formulare können auch Dateien oder Fotos enthalten.
Typische Beispiele:
-
Unterschrift
-
Lieferfoto
-
Dokumentation eines Schadens
file_Data
Base64-kodierte Datei.
file_Name
Dateiname der übermittelten Datei.
Beispiel: Rückmeldung aus der Driver App
"formdata": [
{
"id": "DELIVERY_CONFIRMATION",
"id_Text": "Lieferbestätigung",
"field": "SIGNATURE",
"field_Text": "Unterschrift Empfänger",
"value_Text": "OK",
"file_Name": "signature.png",
"file_Data": "<BASE64_DATA>"
}
]
Lieferscheinformular (Typ „LV“)
Besonderheit des Lieferscheinformulars
Neben den allgemeinen Formularen unterstützt DeDeFleet ein spezielles Formular vom Typ „LV“ (Lieferschein).
Dieses Formular dient dazu, Artikelpositionen eines Lieferscheins in der Driver App anzuzeigen und zu bearbeiten.
Im Gegensatz zu normalen Formularfeldern wird der Inhalt hier nicht als einzelne Formularfelder übergeben, sondern als strukturierte XML-Daten innerhalb von formdata.
Diese XML-Struktur beschreibt die einzelnen Positionen des Lieferscheins.
Darstellung in der Driver App
Wenn ein Auftrag ein Formular vom Typ LV enthält:
-
erscheint in der Driver App ein zusätzlicher Button in der Menüleiste
-
über diesen Button kann der Fahrer den Lieferschein öffnen
Der Lieferschein enthält typischerweise:
| Spalte | Bedeutung |
|---|---|
| Bezeichnung | Artikelbezeichnung |
| Be. | Bestandsmenge (optional) |
| Li. | zu liefernde Menge |
| Rü. | Rücknahmemenge |
Zusätzlich können vorhanden sein:
-
zwei Bemerkungsfelder
-
Unterschriftsfeld
-
Bearbeitungsmöglichkeit für Mengen
Bearbeitbarkeit der Mengen
Für jede Position kann gesteuert werden, ob der Fahrer die Menge verändern darf.
Dies erfolgt über folgende Felder:
RueckReadOnly
| Wert | Bedeutung |
|---|---|
| 0 | Feld kann vom Fahrer geändert werden |
| 1 | Feld ist schreibgeschützt |
Aufbau der Formdata-Struktur
Das Lieferscheinformular wird über mehrere formdata-Einträge gesteuert.
"formdata": [
{
"id": "LV",
"field": "VBLEN",
"value": "122345657978"
},
{
"id": "LV",
"field": "UNTERSCHRIFT_PFLICHT",
"value": false
},
{
"id": "LV",
"field": "FORCE",
"value": 0
},
{
"id": "LV",
"field": "LV",
"value": "<XML Struktur>"
}
]
Bedeutung der wichtigsten Felder
VBLEN
Referenznummer des Lieferscheins.
UNTERSCHRIFT_PFLICHT
Steuert, ob eine Unterschrift erforderlich ist.
| Wert | Bedeutung |
|---|---|
| true | Unterschrift erforderlich |
| false | Unterschrift optional |
FORCE
Steuert das Verhalten des Formulars.
Typischerweise:
XML-Struktur des Lieferscheins
Die eigentlichen Positionen werden über eine XML-Struktur übergeben.
Jede Position wird durch einen <row> Block beschrieben.
Beispiel XML mit mehreren Positionen
<row>
<Lieferkopf></Lieferkopf>
<Liefernr>122345657978</Liefernr>
<Bezeichnung>Artikel_1</Bezeichnung>
<Liefern>500</Liefern>
<LiefernReadOnly>1</LiefernReadOnly>
<Rueck>0</Rueck>
<RueckReadOnly>0</RueckReadOnly>
<Zusatztext>Beschreibung zu Artikel_1</Zusatztext>
<LiefNr>122345657978</LiefNr>
<LiefPos>00010</LiefPos>
<Bestand>KT</Bestand>
</row>
<row>
<Lieferkopf></Lieferkopf>
<Liefernr>122345657979</Liefernr>
<Bezeichnung>Artikel_2</Bezeichnung>
<Liefern>200</Liefern>
<LiefernReadOnly>1</LiefernReadOnly>
<Rueck>0</Rueck>
<RueckReadOnly>0</RueckReadOnly>
<Zusatztext>Beschreibung zu Artikel_2</Zusatztext>
<LiefNr>122345657979</LiefNr>
<LiefPos>00020</LiefPos>
<Bestand>KT</Bestand>
</row>
Rückmeldung eines ausgefüllten Lieferscheins
Wenn der Fahrer den Lieferschein in der App bearbeitet, werden die aktualisierten Daten über formdata zurückgegeben.
Dies kann über folgende Endpunkte erfolgen:
-
Order/Get -
Order/GetStatus -
Order/ListStatus
Beispiel Rückmeldung
{
"orderStatus": {
"orderGuid": "d9a5d9f3-2c67-4c8b-a7a5-2f6f1a6e1b01",
"tourGuid": "01b97dd0-ba2d-4e1a-a6d2-6aba17143d2b",
"orderState": 2,
"formdata": [
{
"id": "LV",
"field": "VBLEN",
"value": "122345657978"
},
{
"id": "LV",
"field": "LV",
"value": "<row>...</row>"
},
{
"id": "LV",
"field": "UNTERSCHRIFT",
"file_Name": "signature.png",
"file_Data": "iVBORw0KGgoAAAANSUhEUgAA..."
}
]
}
}
Typischer Integrationsablauf
1️⃣ ERP erzeugt Auftrag mit Lieferschein
2️⃣ XML wird über formdata übergeben
3️⃣ Fahrer öffnet Lieferschein in der Driver App
4️⃣ Fahrer bestätigt oder verändert Mengen
5️⃣ Fahrer unterschreibt
6️⃣ Rückmeldung wird über API abgefragt und verarbeitet
No comments to display
No comments to display