48 KiB
Dokumentation: Fachliche Prozesse der Legacy-PHP-Anwendung
Stand: 2026-03-31
1. Ziel und Leselogik
Dieses Dokument beschreibt die produktiv erreichbaren fachlichen Prozesse der Legacy-PHP-Anwendung unter html/.
Der Aufbau ist bewusst fuer fachliche Leser optimiert. Jeder fachliche Vertikalschnitt folgt derselben Reihenfolge:
- Was passiert fachlich?
- Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- Welche Eingabefelder sind zu fuellen?
- Woher kommen die Daten?
- Was passiert mit den Daten?
- Wohin werden die Daten geschrieben?
- Wodurch wird der Ablauf gesteuert?
Die Beschreibung basiert auf den real erreichbaren Legacy-Pfaden und den zentralen Includes, insbesondere:
index.php,admin/start.php,admin/menu.phpinclude/auth.inc.php,include/dbglobal.inc.php,include/mcglobal.inc.php,include/caglobal.inc.phphtml/index_php_reachable_paths.txt,html/index_php_call_graph.txtMIGRATION_BACKLOG.md,LEGACY_SIDEPATH_AUDIT.md
Nicht im Fokus stehen rein technische Drittbibliotheken unter lib/, PEAR_XXXX/, js/, css/ sowie bewusst archivierte Altpfade ohne regulaeren Fachzugriff.
2. Systemrahmen
2.1 Einstieg und organisatorischer Kontext
Die Anwendung startet ueber index.php und leitet auf admin/start.php weiter. Fachlich ist das System ein Multi-Tenant-Portal mit gemeinsamem Code, aber HQ-bezogener Daten- und Parametersteuerung.
Zentrale fachliche Scope-Felder:
md_id: Mandanthq_id: Niederlassung / Standortemp_id: Mitarbeiterkontextusr_type: Benutzertyp
Benutzertypen:
usr_type |
Rolle | Hauptprozesse |
|---|---|---|
1 |
HQ-Benutzer | Verwaltung, Auftraege, Listen, Rechnungen, Vertrieb, Nachrichten, Datentransfer, Statistik, Formulare |
2 |
Kundenbenutzer | Kostenstellen, Auftragserfassung, Auftragslisten, Datenexport, Statistik, Rechnungen |
3 |
Kurierbenutzer | Eigene Auftraege, Passwort, mobile Kommunikation |
4 |
Lagerbenutzer | Lagerverwaltung |
2.2 Parameter- und Konfigurationslogik
Die zentrale Steuerung liegt in der Tabelle parameter und in den Funktionen aus include/dbglobal.inc.php.
Wesentliche Zugriffsfunktionen:
getParameterArray($empId, $hqId)defineGlobalParameters($hqId)getParameterValue($empId, $key, $hqId)getObjectBasedParameterValue($key, $objId, ...)setParameterValue(...)
Typische Parameterfamilien:
MASK_*: Masken-, Anzeige- und ProzesssteuerungCUSTOMER_*,CS_*: KundenlogikCR_*,CRVH_*: Kurier- und FahrzeuglogikRANKING_*,AUTORANKING_*,LONGHAUL_*: DispositionEXPORT_*,FTP_*,DATATRANSFER_*: Export und DatentransferMAIL_*,AUTOMAILER_*: Mail- und VersandlogikLOCATING_*,GEO_*,PZM_*: Geocoding, Ortung und Routing
Viele Regeln liegen nicht als feste Tabellenfelder, sondern als dynamische Parameterschluessel vor, zum Beispiel:
CUSTOMER_MASK_JOBLIST_CANCELLATION_ENABLED_<cs_id>ORDER_REQUEST_VHT_ID_DEFAULT_<cs_id>TRACKING_ENABLED_CS_<cs_id>EXPORT_SPECIAL_FUNCTIONNAME_SUFFICES_CS_<cs_id>
2.3 Zentrale Datenbereiche
| Bereich | Typische Tabellen / Schemas |
|---|---|
| Benutzer und Organisation | user, employee, headquarters, mandatorheadquarters, company, rights, employeerights |
| Kunden und Kostenstellen | customer, costcenter, costcenteraddress, customercourier |
| Transporteure und Fahrzeuge | courier, couriervehicle, messagegroup |
| Auftraege | job, tour, tourservice, jobprice, invoice, jobbatch, jobbatchlist |
| Preise und Services | service, servicetype, servicehistory, servicecustomer, serviceplz*, serviceplzarea*, serviceradius, servicezone* |
| Kommunikation und Vertrieb | phoenix_group.appointment, phoenix_group.report_process, phoenix_group.tickerforum, phoenix_log.messageforum |
| Logging und technische Steuerung | phoenix_log.log, phoenix_log.semaphor, phoenix_log.locating, phoenix_log.route, phoenix_pda.commandexec |
| Flexible Zusatzdaten | genericdatacontainer, metafield*, metatype |
| Geo- und Adressdaten | address, phoenix_special.street, address_geo.address_geo, address_geo.distance, serviceplztraveltime, publicholiday |
| Lager | stock, stockarticle, article, articlegroup*, articleitem, stockmove |
| Externe Identitaeten | meta_object.metaobject |
2.4 Dateibasierte Speicherorte
Neben der Datenbank nutzt die Anwendung mehrere fachlich relevante Verzeichnisse:
html/import/upload/: Uploads und Importstaginghtml/export/download/: erzeugte Exportehtml/temp/download/: temporaere Downloadshtml/temp/pdf/: PDF-Zwischenablagehtml/temp/photos/: Stations- und POD-Fotoshtml/temp/signs/: Signaturenhtml/images/external/: Logos und externe Bilderhtml/log/: XML-, Prozess-, Export- und Mail-Logs
3. Fachliche Vertikalschnitte
3.1 Authentifizierung, Session und Startseite
Was passiert?
Benutzer melden sich an, werden einem HQ- und Mitarbeiterkontext zugeordnet, durchlaufen bei Bedarf 2FA und landen anschliessend auf einer rollenabhaengigen Startseite.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- gueltige Zugangsdaten eingeben
- den richtigen Benutzer- und HQ-Kontext verwenden
- bei aktivierter 2FA den Code bestaetigen
- einen geforderten Passwortwechsel oder Reset vollstaendig abschliessen
Welche Eingabefelder sind zu fuellen?
- Benutzerkonto oder Anmeldename (
f_chk_account) - Passwort (
f_chk_password) - bei SSO-Faellen die Kontoauswahl (
sso_selected_account) - bei aktivierter Zusatzsicherung 2FA-Code oder Geraetebestaetigung
Woher kommen die Daten?
- aus
user,employee,headquarters,mandatorheadquarters - aus
parameterfuer Login- und Spracheinstellungen - aus
genericdatacontainerfuer Passwortwechselpflicht - aus den HTTP-Parametern und der PHP-Session
Was passiert mit den Daten?
- Zugangsdaten werden geprueft.
- HQ,
emp_id,usr_typeund Mandant werden aufgeloest. - Sessiondaten werden aufgebaut oder verworfen.
- TOTP-Status wird geprueft.
- Bei Passwort-Reset wird ein Einmalpasswort erzeugt und per Mail versendet.
- Die Startseite liest Geburtstage, offene Mitteilungen, Reporthinweise und Suchdaten nur zur Anzeige aus.
Wohin werden die Daten geschrieben?
- in die PHP-Session
- bei Passwort-Reset nach
user.usr_passwordunduser.usr_password_modify - indirekt in Mailversand und Mail-Logs
Wodurch wird der Ablauf gesteuert?
LOGIN_FORGOT_PASSWORD_ENABLEDMAXIMUM_LOGIN_TRIALSSYSTEM_LANGUAGE_DEFAULTHEADQUARTERS_MULTIPLE_ACCESS_EMPLOYEESHTTP_VARS_SEC_STATEHTTP_VARS_SEC_SEQ
3.2 HQ-, Mitarbeiter- und Rechteverwaltung
Was passiert?
HQ-Benutzer, Kundenbenutzer und Lagernutzer werden angelegt, gepflegt und mit Rechten, HQ-Freigaben, Kostenstellenrechten, Lagerrechten und individuellen Maskeneinstellungen versehen.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- Benutzerkonto und Mitarbeiterstammdaten vollstaendig erfassen oder oeffnen
- den richtigen Benutzertyp festlegen
- Rechte, HQ-Freigaben, Kostenstellen- und Lagerzugaenge passend setzen
- Aenderungen speichern und bei Bedarf Passwort oder 2FA-Status initialisieren
Welche Eingabefelder sind zu fuellen?
- HQ-, Mitarbeiter- und Benutzerkontext (
f_hq_id,emp_id_act, Benutzertyp) - Name, Vorname, E-Mail, Telefon, Zusatztelefon und Geburtsdatum (
usr_name,usr_firstname,usr_email,usr_phone,usr_phone2,f_usr_birthdate_*) - Benutzerkonto, Passwort und Passwortwiederholung (
usr_account,usr_password,usr_password2) - Rechte-, HQ-, Kostenstellen-, Lager- und Listenparameter (
emp_rights,par_*,par_stock_access)
Woher kommen die Daten?
- aus
user,employee,headquarters,rights,employeerights,costcenter - aus
parameterfuer Layout-, Listen- und Lagerkonfiguration - aus
meta_object.metaobjectfuer externe Objektkopplungen
Was passiert mit den Daten?
- Benutzerkonten und Mitarbeiterdatensaetze werden erstellt oder geaendert.
- Passwortaenderungen werden ausgefuehrt.
- HQ-Freigaben und Rechtebits werden gesetzt.
- Lagerzugriffe und Kostenstellenzugriffe werden auf Mitarbeiterebene verdrahtet.
- Mitarbeiterbezogene Listen- und Maskenparameter werden gesetzt.
Wohin werden die Daten geschrieben?
- nach
user - nach
employee - nach
employeerights - nach
parameter - nach
meta_object.metaobject
Wodurch wird der Ablauf gesteuert?
EMP_BITSTR_MAXLENMASK_EMP_CSC_MATRIX_ENABLEDGLOBAL_CUSTOMER_READONLY_DISABLEDUSERTYPE_2FA_ENABLEDUSER_2FA_NO_DEACTIVATIONHEADQUARTERS_MULTIPLE_ACCESS_EMPLOYEESMASK_JOBLIST_*MASK_CS_LIST_*MASK_CR_LIST_*MASK_STK_*LOCATING_PDA_ENABLEDLOCATING_PDA_INTERVAL
3.3 Kundenstammdaten, Kostenstellen und Kundenspezifika
Was passiert?
Kundenfirmen, Kunden, Root- und Unterkostenstellen, Rechnungs- und Lieferadressen sowie kundenspezifische Verhaltensregeln werden gepflegt. Ausserdem werden bevorzugte Kuriere und Servicezuordnungen hinterlegt.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- Firma, Kunde und Kostenstelle im richtigen organisatorischen Kontext anlegen oder auswaehlen
- Pflichtdaten wie Namen, Kennungen, Kontakt- und Adressdaten vollstaendig pflegen
- Rechnungs-, Liefer- und Abrechnungsbezug korrekt zuordnen
- kundenspezifische Regeln, Favoritenkuriere und Services speichern
Welche Eingabefelder sind zu fuellen?
- Firmenname, Zusatznamen und Identifikatoren (
f_cmp_comp,f_cmp_comp2,f_cmp_comp3,f_cmp_comp4,f_cs_eid_old) - Ansprechpartner-, Login- und Kommunikationsfelder (
f_usr_name,f_usr_firstname,f_usr_email,f_usr_phone,f_usr_phone2,f_usr_fax,f_usr_inv_email,f_usr_reminder_email,f_usr_account) - Steuer-, Bank- und Zahlungsfelder (
f_cmp_tax_idno,f_cmp_stax_idno,f_cmp_bank*,f_cmp_iban,f_cmp_swift,f_cmp_bankmode) - Adressfelder fuer Haupt-, Rechnungs-, Leistungs- und Abhol-/Lieferadressen (
f_ad_street,f_cmp_hsno,f_ad_zipcode,f_ad_city,f_ad_country,f_cscad_*) - Kundenoptionen wie Tracking, Statusmail, Foto, Newsletter, DSGVO, POD und Zeitsteuerung (
f_cs_tracking[],f_cs_jbstatusmail*,f_cs_photo_*,f_cmp_newsletter,f_cmp_dsgvo,f_cmp_proof_delivery,f_cs_charging_time)
Woher kommen die Daten?
- aus
company,customer,costcenter,costcenteraddress,address - aus
customercourier - aus
service,servicetype,customerservice,customerservicetype - aus
serviceradius,servicezone,servicezonemapping - aus
genericdatacontainer - aus
parameter
Was passiert mit den Daten?
- Firmen- und Kundendaten werden validiert.
- Root- und Unterkostenstellen werden erzeugt oder geaendert.
- Rechnungs- und Lieferadressen werden auf bestehende Adressen gemappt oder neu angelegt.
- Kundenspezifische Regeln fuer Joblisten, Tracking, Mailsprache, Standardpreisunterdrueckung und Self-Service-Verhalten werden gepflegt.
- Favoritenkuriere und Services werden dem Kunden zugeordnet.
Wohin werden die Daten geschrieben?
- nach
user - nach
employee - nach
company - nach
customer - nach
costcenter - nach
costcenteraddress - nach
customercourier - nach
customerservice - nach
customerservicetype - nach
genericdatacontainer - bei externer Kopplung nach
meta_object.metaobject
Wodurch wird der Ablauf gesteuert?
CS_EID_PREFIXCS_PHONE_MINIMUM_LENGTHCS_TRACKING_ENABLEDMASK_CS_SPECIAL_TAX_IDS_CHANGE_MSGCS_JB_JAM_WAITTIME_*MASK_CS_NEW_SIMILARITY_SEARCHMASK_CS_CHECK_INTERNAL_BOOKING_ACCOUNTMASK_CS_PROV_RANGE_*MASK_CS_SHOW_LAST_JOBCUSTOMER_MASK_JOBLIST_*CUSTOMER_MASK_CALCULATOR_USAGE_ONLY_<cs_id>MASK_CS_DONT_MAKE_STANDARD_PRICE_<cs_id>JOBDETAILS_EMAIL_LANGUAGE_<cs_id>JOB_MAIL_STATION_ARRIVAL_TIME_<cs_id>
3.4 Kundenservice-Konfiguration: Delivery Reasons und Acceptance Protocols
Was passiert?
Pro Kunde und Service werden mobile Abliefergruende, Codes, Mailregeln, Fragen fuer Abnahmeprotokolle und Textbausteine gepflegt.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- den richtigen Kunden und den betroffenen Service auswaehlen
- Abliefergruende, Codes und Textbausteine fachlich vollstaendig pflegen
- Fragen und Mailstatus fuer das Abnahmeprotokoll definieren
- die Konfiguration speichern und je Service pruefen
Welche Eingabefelder sind zu fuellen?
- Kunden- und Serviceauswahl
- Abliefercode und Abliefergrund je Zeile (
f_code_XX,f_reason_XX) - Mailkennzeichen je Grund oder Frage (
f_mail_XX) - Fragen des Abnahmeprotokolls (
f_question_XX) - Freitextbausteine fuer Delivery Reasons und Acceptance Protocols
Woher kommen die Daten?
- aus
genericdatacontainer - aus
metatypefuer die Serviceauswahl - aus Formulardaten der Admin-Masken
Was passiert mit den Daten?
- Abliefergruende werden je Liste oder Service gesammelt.
- Fragen und Mailstatus fuer Abnahmeprotokolle werden je Service verdichtet.
- Texte werden nicht als einzelne Tabellenfelder, sondern als serialisierte Objektzusaetze abgelegt.
Wohin werden die Daten geschrieben?
- nach
genericdatacontainer
Verwendete gdc_gen_fieldname-Werte:
service_delivery_reasonsservice_delivery_reasons_mail_stateservice_delivery_reasons_textservice_acceptance_protocol_questionsservice_acceptance_protocol_mail_state_questionservice_acceptance_protocol_text
Wodurch wird der Ablauf gesteuert?
CUSTOMER_SERVICE_DELIVERY_REASONS- die allgemeine Kundenservice-Konfiguration des Kunden
3.5 Transporteur-, Fahrer- und Fahrzeugstammdaten
Was passiert?
Transporteur-Firmen, Fahrerkonten, Fahrzeugstammdaten, mobile Geraetemerkmale, Nachrichtengruppen und Kundenzuordnungen werden gepflegt.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- Transporteur, Fahrer oder Fahrzeug im richtigen Pflegebereich auswaehlen oder neu anlegen
- Kennungen, Accountdaten, Fahrzeugmerkmale und mobile Eigenschaften vollstaendig erfassen
- Kundenzuordnungen und Nachrichtengruppen fachlich passend hinterlegen
- die Stammdaten speichern und bei Bedarf Dokumentbezug oder Lagerbezug ergaenzen
Welche Eingabefelder sind zu fuellen?
- Transporteurstammdaten wie Firmenname, EID/SID, Vertragsdatum und Bemerkungen (
f_cmp_comp*,f_cr_eid,f_cr_sid,f_cmp_contract_date_*,f_cmp_remark*) - Fahrer- und Loginfelder (
f_usr_name,f_usr_firstname,f_usr_country,f_usr_phone*,f_usr_email,f_usr_inv_email,f_usr_account,f_usr_password*,f_usr_birthdate_*) - Adress-, Bank- und Steuerfelder (
f_ad_*,f_cmp_hsno,f_cmp_bank*,f_cmp_iban,f_cmp_swift,f_cmp_tax_idno,f_cmp_stax_idno) - Mobile und Verfuegbarkeitsfelder (
f_cr_imei,f_cr_serialno,f_cr_mobile_pda,f_cr_disposition[],f_cr_price_show[],f_cr_app_blocked[],f_cmp_no_longhaul[]) - Fahrzeug- und Beziehungsfelder wie Typ, SID, Kennzeichen, Masse, Versicherungen, Partnerkonditionen und Kundenrelation (
f_vht_id,f_crvh_sid,f_crvh_vh_sign,f_crvh_payload,f_crvh_totalweight,f_crvh_length,f_crvh_width,f_crvh_height,f_crvh_*insurance*,f_crvh_partner_*,f_cscr_description_new,f_relationStatus,f_msggrp)
Woher kommen die Daten?
- aus
company,courier,couriervehicle,user,address - aus
customercourier - aus
messagegroup - aus
stock - aus
genericdatacontainer - aus
parameter
Was passiert mit den Daten?
- neue Fahrer und Transporteurkonten werden erzeugt
- EID, SID und Accountdaten werden validiert
- Fahrzeuge werden mit Typ, Groessen, Provisionen und Dokumentbezug gepflegt
- Nachrichtengruppen werden einem Kurier zugeordnet
- Kunden und Transporteure werden als Favoritenbeziehung verdrahtet
Wohin werden die Daten geschrieben?
- nach
user - nach
company - nach
courier - nach
couriervehicle - nach
customercourier - nach
courier.cr_msggrp - indirekt in Uploadverzeichnisse fuer Fahrzeugdokumente
Wodurch wird der Ablauf gesteuert?
CR_EID_PREFIXCR_SID_PREFIXMASK_COURIER_EID_LENGTHMASK_COURIER_EID_MAX_LENGTHMASK_CR_MOBILE_PDA_EDITMASK_HIDE_CR_VHT_INVMASK_CR_CARTAGE_LINKS_DISABLEDGLOBAL_VEHICLE_COURIER_RELATIONGLOBAL_VEHICLE_STOCK_RELATIONVEHICLE_STOCK_PARENT_IDMASK_CRVH_TOTALWEIGHT_MANDATORYMASK_CRVH_PARTNER_PROV_RANGE_*DATATRANSFER_DIRECTORY_CRVHDPF_CR_ENABLEDMASK_EXCLUDE_VHT_IDS
3.6 Service-, Preis-, Rabatt- und Gebietsverwaltung
Was passiert?
Standardpreise, kundenbezogene Preise, Kurierpreise, Rabatte, PLZ-Matrizen, Bereichsmatrizen und Nachbargebiete werden gepflegt. Diese Stammdaten sind die Basis fuer die operative Preisfindung im Auftrag.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- den richtigen Service, Kundenbezug oder Gebietsbezug auswaehlen
- Preis-, Rabatt- oder Gebietszeilen mit allen Pflichtwerten erfassen
- Gueltigkeiten, Historie und Fahrzeugtypbezug korrekt pflegen
- die Pflege speichern und die betroffene Preislogik fachlich gegenpruefen
Welche Eingabefelder sind zu fuellen?
- Gueltigkeitsdatum und Arbeitsmodus (
day_from,month_from,year_from, Preis-/Rabattmodus) - Service- und Servicetyppflege (
f_service_id,f_service_new,f_servicetype_id,f_servicetype_new) - Preis- und Rabattmatrix je Service/Servicetyp (
service_<srv>_<srvt>,service_cr_<srv>_<srvt>) - Kundenservices, Zeitfenster und Rabattmodi (
f_cs_service[],f_cs_servicetype[],f_day_time_*,f_delivery_time_*,f_sms_time_*,f_cartage_time_*,f_discount_mode_*) - Radius-, PLZ- und Zonenfelder (
f_radius_zipcode_new,f_radius_district_new,f_radius_zone_new,f_zone_name_new,f_zone_zipcode_new,f_zone_zone_new)
Woher kommen die Daten?
- aus
service,servicetype - aus
servicehistory,servicecustomer - aus
serviceplz,serviceplzhistory,serviceplzcustomer,serviceplzneighbour - aus
serviceplzarea,serviceplzareahistory,serviceplzareacustomer,serviceplzareamapping,serviceplzareaneighbour - aus
serviceradius - aus
parameterundmetatype
Was passiert mit den Daten?
- Preis- und Rabattzeilen werden gelesen, geaendert oder neu historisiert.
- Kundenoverrides werden getrennt von der allgemeinen Historie gepflegt.
- PLZ- und Bereichszuordnungen werden fuer die spaetere Preisaufloesung vorbereitet.
- Fahrzeugtyp-Mapping und Nachbarrelationen beeinflussen die spaetere Preis- und Dispositionslogik.
Wohin werden die Daten geschrieben?
- nach
servicehistory - nach
servicecustomer - nach
serviceplzhistory - nach
serviceplzcustomer - nach
serviceplzneighbour - nach
serviceplzareahistory - nach
serviceplzareacustomer - nach
serviceplzareamapping - nach
serviceplzareaneighbour - nach
serviceradius
Wodurch wird der Ablauf gesteuert?
MANDATOR_SERVICE_ENABLEDMANDATOR_SERVICE2_ENABLEDSERVICE_DISPLAY_MODE_DEFAULTSERVICE_VEHICLE_TYPE_ENABLEDRIGHTS_TABLE_SERVICEMASK_EXCLUDE_VHT_IDSCUSTOMER_SERVICE_RADIUS_INTERVALS_<cs_id>
3.7 Adress-, Geo-, Feiertags-, Anfahrtszeit-, Gruppen-, Filter- und Formularpflege
Was passiert?
Stammadressen, Strassenkatalog, Fahrzeiten je PLZ und HQ, Feiertage, Gruppenkataloge, Kurierfilter und dynamische Formulare werden gepflegt.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- den passenden Pflegebereich fuer Adresse, Fahrzeit, Feiertag, Gruppe, Filter oder Formular oeffnen
- die Stammdaten mit eindeutigen und vollstaendigen Werten erfassen oder bereinigen
- bei Filtern und Formularen die spaetere Nutzung fuer Kunden, Kuriere oder Fahrzeuge beachten
- Aenderungen speichern und bei Filterloeschungen die Folgen fuer bestehende Zuordnungen pruefen
Welche Eingabefelder sind zu fuellen?
- allgemeine Adressfelder wie Strasse, Hausnummer, PLZ, Ort und Land
- Fahrzeitfelder je Start-/Ziel-PLZ oder Matrixzelle (
zipcodeFrom,zipcodeTo,f_<plz>) - Feiertagsfelder wie Datum, Zeitraum und Bezeichnung (
f_year,f_month,f_day,f_time_from,f_time_to) - Filterfelder (
f_crf_type,f_crf_status,f_crf_short,f_crf_text,f_crf_sort) - Metafeld- und Formularfelder (
f_mtfc_mnemonic,f_mtfc_description,f_mtfk_type,f_mtfk_name,f_mtft_name,f_filter_mtfk_name)
Woher kommen die Daten?
- aus
address - aus
phoenix_special.street - aus
serviceplz,serviceplztraveltime - aus
publicholiday - aus
groups,courierfilter - aus
metafieldcategory,metafieldkey,metafieldtemplate,metafieldcategorykey,metafieldvalue - aus
customer,courier,company
Was passiert mit den Daten?
- Adressen und Strassen werden angelegt, bereinigt oder gesucht.
- Anfahrtszeiten werden HQ-bezogen gepflegt.
- Feiertage werden jahresbezogen gepflegt.
- Gruppen und Filter werden als Stammdaten fuer andere Module bereitgestellt.
- Metafeldkategorien, Templates und Werte definieren flexible Formulare und Sondermasken.
- Beim Loeschen von Filtern werden bestehende Kunden-, Kurier- und Fahrzeugzuordnungen bereinigt.
Wohin werden die Daten geschrieben?
- nach
address - nach
serviceplztraveltime - nach
publicholiday - nach
groups - nach
courierfilter - nach
metafieldcategory - nach
metafieldkey - nach
metafieldtemplate - nach
metafieldcategorykey - nach
metafieldvalue - bei Filterbereinigung zusaetzlich nach
customer.cs_filter,courier.cr_filter,couriervehicle.crvh_filter
Wodurch wird der Ablauf gesteuert?
MASK_ZIP_CHK_SYNTAX_DISABLEDFILTER_TO_BE_DELETEDMASK_CONTACT_*MTFC_TPL_MODEMASK_FORMS_CRSIMILARITY_SEARCH_FILTER_HQ
3.8 Auftragserfassung, Auftragsaenderung und Batch-Erfassung
Was passiert?
Auftraege werden einzeln oder als Batch angelegt, geaendert, storniert, kopiert oder als Kinder-/Kettenauftrag fortgeschrieben. Dabei werden Stationen, Services, Preise, Artikel, Zahler und Status verdrahtet.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- Auftraggeber, Kostenstelle und Abrechnungsbezug korrekt auswaehlen
- alle benoetigten Stationen, Zeiten, Services, Artikel und Zusatzinformationen erfassen
- Pflichtpruefungen fuer Adresse, Preis, Zahlart und Status aufloesen
- den Auftrag speichern und bei Bedarf direkt disponieren, kopieren oder als Batch verarbeiten
Welche Eingabefelder sind zu fuellen?
- Auftraggeber- und Zahlerfelder (
csc_id_orderer,csc_id_payer,jb_orderer,jb_commission_no) - Termin- und Ablaufdaten (
tag,monat,jahr,stunde,minute,endetag,endemonat,endejahr,jb_warn*,jb_waittime_*) - Fahrzeug-, Sendungs- und Leistungsdaten (
vht_id,jb_weight,jb_crvh_length,jb_crvh_width,jb_crvh_height,jb_crvh_position, Services, Artikel) - Preis- und Zusatzkostenfelder (
jb_fixprice,jb_serviceprice,jb_cr_price,jb_cr_serviceprice,jb_discount,jb_discount_rate,jb_markup,jb_cr_markup,jb_toll,jb_km,jb_value_of_goods,jb_insurance_rate) - Steuerungsfelder fuer Status und Abwicklung (
jb_type,jb_globaljob,jb_status,jb_status_manual,jb_freetext_1,jb_hiddenFreetext_1,jb_costsplit,jb_permanent,jb_multi_factor,jb_cash,jb_offer,jb_origin,jb_origin_other,jb_dispoinfo) - Stationsfelder in den Tourmasken wie Name, Person, Strasse, Hausnummer, PLZ, Ort, Land, Bemerkung, Kommissionsnummer und Stationsstatus
Woher kommen die Daten?
- aus
job,tour,tourservice,jobprice - aus
jobbatch,jobbatchlist - aus
customer,costcenter,costcenteraddress,address - aus
service*,serviceplz*,serviceplzarea* - aus
metatype,tax,headquarters - aus
genericdatacontainer - aus
phoenix_log.semaphor,phoenix_log.log
Was passiert mit den Daten?
- Auftragskopf, Stationen und Preispositionen werden validiert und zusammengesetzt.
- Adressen werden wiederverwendet oder neu angelegt.
- Preise werden ueber Service-, PLZ-, Bereichs- und Spezialregeln berechnet.
- Jobstatus, Langstreckenflag und Dispositionsrelevanz werden gesetzt.
- Kundenseitige Stornos erzeugen Statuswechsel, Gegenbelege und Logeintraege.
- Batch-Erfassung verdichtet Listenvorlagen zu mehreren Auftraegen.
Wohin werden die Daten geschrieben?
- nach
address - nach
job - nach
tour - nach
tourservice - nach
jobprice - nach
jobbatch - nach
jobbatchlist - nach
genericdatacontainer - nach
phoenix_log.semaphor - nach
phoenix_log.log - in Einzelfaellen nach
user.usr_inv_email - in Einzelfaellen nach
company.cmp_postage
Wodurch wird der Ablauf gesteuert?
MASK_SINGLE_JOBEDITMASK_MANUAL_DISPOSITIONMASK_MANUAL_DISPOSITION_CUSTOMER_MANDATORYMODE_COPY_JOBMODE_LATER_JOBGLOBAL_USE_RELATED_CUSTOMERCUSTOMER_MASK_JB_CREATOR_DISCOUNT_<cs_id>MASK_CS_SELF_SERVICE_DISCOUNTMASK_MANDATORY_FILTERSMASK_CS_DONT_MAKE_STANDARD_PRICE_<cs_id>CUSTOMER_MASK_CALCULATOR_USAGE_ONLY_<cs_id>COSTCENTER_INV_MODE_<csc_id>EU_COUNTRYCODESMASK_CR_PRICE_MODEMASK_CR_PRICE_MODE_DATEINV_SERVICEPRICE_DISCOUNTCS_JB_JAM_WAITTIME_*MASK_INSERTADDRESS_DISTRICT_<cs_id>MASK_TR_PHOTO_FORCEMASK_MIN_MAX_TR_PHOTO_FORCEJB_EDITBATCH_*LONGHAUL_ACTIVELONGHAUL_KM
3.9 Disposition, Ranking, Favoriten, Push und Longhaul
Was passiert?
Offene Auftraege werden manuell oder automatisch Kuriere zugeordnet. Dabei spielen Fahrzeugtyp, Verfuegbarkeit, Favoriten, Sperren, Gebiete, Ortung und Langstreckenlogik zusammen.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- einen offenen Auftrag und einen fachlich passenden Kurier auswaehlen
- Ranking, Favoriten, Sperren, Fahrzeugtyp und Verfuegbarkeit pruefen
- die Zuordnung, Rueckgabe oder Vermittlung bewusst bestaetigen
- bei Bedarf Push oder Autoranking ausloesen und das Ergebnis kontrollieren
Welche Eingabefelder sind zu fuellen?
- Auftragsreferenz (
jb_id) - Kurierauswahl und Reihenfolge (
cr_id_order,cr_id_orders,cr_sid) - Filter- und Favoritensteuerung (
jb_cr_filter,jb_cr_filter_opt,ignore_fav_only) - manuelle Dispositionsangaben (
jb_status_manual,jb_dispoinfo,jb_jam_waittime) - Push-, Rueckgabe- oder Vermittlungsaktion im jeweiligen Dispositionsfenster
Woher kommen die Daten?
- aus
job,tour,address - aus
courier,couriervehicle - aus
customercourier - aus
serviceplz,serviceplzneighbour,serviceplzarea,serviceplzareamapping,serviceplzareaneighbour - aus
metatype,headquarters - aus
phoenix_log.locating - aus
parameter
Was passiert mit den Daten?
- offene Jobs werden nach Rankingregeln bewertet
- Favoriten- und Sperrbeziehungen werden geprueft
- manuelle Rueckgabe in die Vermittlung oder in manuelle Disposition wird ausgefuehrt
- bei Langstrecken werden zusaetzliche HQ- und Distanzregeln geprueft
- fuer entfernte oder unplausible PDA-Zustaende werden Warnungen abgeleitet
Wohin werden die Daten geschrieben?
- nach
job.cr_id - nach
job.cr_id_order - nach
job.cr_sid - nach
job.jb_status - nach
job.jb_globaljob - nach
job.jb_longhaul - nach
genericdatacontainermitjb_ignore_fav_only - nach
autoranking - nach
phoenix_pda.commandexec - nach
phoenix_log.log
Wodurch wird der Ablauf gesteuert?
AUTORANKING_*RANKING_*MODE_INTERMEDIATIONMASK_COURIER_SORT_BY_OCCUPIEDMASK_MANDATORY_FILTERSLOCATING_*LONGHAUL_ACTIVELONGHAUL_ACTIVE_REMOTE_DBLONGHAUL_KMBWV_CR_PRICE_RETOUR
3.10 Karten, Ortung, Strecken und Tracking-Ausgaben
Was passiert?
Kartenansichten, Kurierortung, Distanzberechnung, Toursortierung, Trackingabfragen und partnerbezogene Trackingformate werden bereitgestellt.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- den richtigen Auftrag, Kurier, Zeitraum oder Trackingkontext auswaehlen
- Karten-, Ortungs- oder Routenansicht gezielt aufrufen
- bei Sortierung oder Distanzpruefung die vorgeschlagenen Ergebnisse fachlich kontrollieren
- die benoetigte Ausgabe oder Trackingansicht fuer den weiteren Prozess verwenden
Welche Eingabefelder sind zu fuellen?
- Auftrags- oder Kurierreferenz (
jb_id,cr_sid) - Trackingcode und Sprache (
trackingID,selectedLanguage) - Kartenkontext oder Aktualisierungsaktion fuer die Live-Ansicht
- bei Routenneuberechnung die Auswahl der betroffenen Tour oder Anzeigevariante
Woher kommen die Daten?
- aus
headquarters,courier,job,tour,address,stock - aus
phoenix_log.route - aus
tourarticle,tourarticleprocess - aus
address_geo.address_geo,address_geo.distance - aus
genericdatacontainer
Was passiert mit den Daten?
- HQ- und Kurierpositionen werden auf Karten verdichtet.
- Adressen werden geocodiert oder aus dem Cache gelesen.
- Entfernungen und Fahrzeiten werden berechnet oder aus dem Distanzcache gelesen.
- Tourreihenfolgen werden optimiert und umgeschrieben.
- Trackingformate fuer verschiedene Partner werden aus Job- und Stationsdaten erzeugt.
Wohin werden die Daten geschrieben?
- nach
address - nach
address_geo.address_geo - nach
address_geo.distance - nach
address_geo.distance_osm - nach
tour.tr_sort - nach
tourarticle.tr_sort - nach
job.jb_tourdata - nach
jobpricemitmt_sort = 11 - nach
courier.cr_gps_*
Wodurch wird der Ablauf gesteuert?
MASK_JB_MAP_VIEW_ENABLED_<cs_id>MASK_JB_MAP_VIEW_COURIERS_<cs_id>GEOCACHE_LIFETIMELOCATING_MODELOCATING_LBS_*LOCATING_ZIPCODE_COMPARISON_MODELOCATING_PLAUSIBLE_VELOCITYPZM_ROUNDTRIPKMPZM_SHORTESTGEO_EARTH_RADIUSCO2_FORMULAR_*
3.11 Auftragsdetail, POD, Signatur, Mail und PDF-Detailausgabe
Was passiert?
Im Auftragsdetail werden alle fachlichen Detaildaten angezeigt, Signaturen und Fotos verarbeitet, Statusmails erzeugt und PDF-Ausgaben pro Auftrag oder Rechnungsnummer erzeugt.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- den richtigen Auftrag oder die richtige Rechnungsnummer oeffnen
- POD-Daten, Fotos und Signaturen pruefen oder nachreichen
- bei Mailversand Empfaenger, Sprache und Inhalt fachlich kontrollieren
- die gewuenschte Detail-, Mail- oder PDF-Aktion aktiv ausloesen
Welche Eingabefelder sind zu fuellen?
- Auftragsreferenz und Historienkontext (
job_id,dbhistory) - Empfaenger- und Buchungsfelder (
f_email,f_crvh_sid_book,f_crvh_sid_order,f_jbp_*) - Detail- und Zusatzfelder (
f_tourname,f_jb_incomplete,f_jb_freetext_3_new,f_jb_finishtime4booking) - interne Bemerkung, POD-/Foto-/Signaturbezug und ausgeloeste Mail- oder PDF-Aktion (
f_int_rem_text)
Woher kommen die Daten?
- aus
job,tour,tourservice,jobprice - aus
courier,customer,costcenter,company - aus
genericdatacontainer - aus
phoenix_log.route,phoenix_log.log - aus
invoice - aus vorhandenen Bild- und Signaturdateien
Was passiert mit den Daten?
- Detaildaten werden fuer Anzeige, Mail und PDF zusammengesetzt.
- Signaturen und POD-Fotos werden dem Auftrag zugeordnet.
- Mails werden mit kundenspezifischen Texten, Logos und Sprachregeln aufgebaut.
- PDF-Ausgaben aggregieren mehrere Auftraege ueber eine Rechnungsnummer.
Wohin werden die Daten geschrieben?
- in
html/temp/signs/ - in
html/temp/photos/ - in temporaere PDF- und Downloadpfade
- in Mail- und Automailer-Logs
- in Einzelfaellen nach
genericdatacontainer
Wodurch wird der Ablauf gesteuert?
MASK_JOBDETAILS_*MAIL_*JOBDETAILS_EMAIL_LANGUAGE_<cs_id>JOB_MAIL_STATION_ARRIVAL_TIME_<cs_id>AUTOMAILER_*
3.12 Rechnungswesen und Rechnungszuordnung
Was passiert?
Auftraege werden Rechnungsnummern und Rechnungsdaten zugeordnet. Aus diesen Zuordnungen entstehen Rechnungsuebersichten, Kurieransichten und PDF-Sammelausgaben.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- die abzurechnenden Auftraege oder die Zielrechnung eindeutig auswaehlen
- Rechnungsnummer, Rechnungsdatum und Zusatzangaben korrekt pflegen
- bei Bedarf Kurierbemerkungen oder Zahlungsbezug ergaenzen
- die Zuordnung speichern und die Rechnungs- oder PDF-Ausgabe pruefen
Welche Eingabefelder sind zu fuellen?
- Datumsbereich (
day_from,month_from,year_from,day_to,month_to,year_to) - Kostenstellen- oder Kurierbezug (
jb_costcenter,cr_sid) - Kundenfilter (
cs_eid,cmp_name) - Status- und Anzeigeoptionen (
jb_status,show_invoice_text) - in der Detailpflege zusaetzlich Rechnungsnummer, Rechnungsdatum und Bemerkungen
Woher kommen die Daten?
- aus
invoice - aus
job,tour,jobprice - aus
costcenter,customer,employee,user,courier - aus
jobpayment,jobpaymentcollection
Was passiert mit den Daten?
- mehrere Jobs werden einer Rechnungsnummer zugeordnet
- Rechnungsdatum und Rechnungsnummer werden je Job gesetzt oder aktualisiert
- Kurierbemerkungen koennen gepflegt werden
- fuer die PDF-Ausgabe werden alle Jobs einer Rechnungsnummer geladen
Wohin werden die Daten geschrieben?
- nach
invoice - nach
job.jb_cr_remark
Wodurch wird der Ablauf gesteuert?
INV_*JB_PAYMODE_CASHJB_TAX_RATE_SIGN
3.13 Statistik und Kennzahlen
Was passiert?
Die Statistik stellt Kennzahlen zu Jobs, Kunden, Kurieren, Services, Preisen, Surveys und Umsaetzen bereit. Der Schwerpunkt liegt auf Selektion, Aggregation und Gruppierung.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- Zeitraum, HQ-Kontext und die fachlich passenden Filter setzen
- die benoetigte Kennzahlensicht oder Gruppierung auswaehlen
- die Auswertung starten und auf Plausibilitaet pruefen
- das Ergebnis bei Bedarf exportieren oder fuer Folgeprozesse verwenden
Welche Eingabefelder sind zu fuellen?
- Zeitraum mit Datum und optional Uhrzeit (
day_*,month_*,year_*,hour_*,minute_*) - Statistiktyp, Kategorie, Sortierung und Datumsmodus (
f_category,f_statistic,f_sort,f_direction_sort,f_dateMode,f_statusMode,f_priceMode) - Objektfilter fuer Kunde, Kurier, Fahrzeug und HQ (
g_cs_eid,g_cr_eid,f_crvh_sid,f_hq_id,f_filter*) - Leistungs-, Service-, Gruppen- und Groessenfilter (
f_service,f_servicetype,f_jb_service,f_jb_specifics,f_group,f_staticGroup,f_filter_jb_*) - Ausgabefelder fuer Datei, Diagramm, Netto/Brutto und Zusatzdaten (
fileOutput,f_type_chart,f_net_gross,f_show_*)
Woher kommen die Daten?
- aus
job,tour,jobprice - aus
courier,couriervehicle - aus
customer,costcenter,company,branch - aus
user - aus
genericdatacontainer - aus
phoenix_log.log - aus Archivtabellen ueber
getDBNames
Was passiert mit den Daten?
- Zeitraeume und HQ-Filter werden aufgeloest.
- Auftraege, Kunden und Kuriere werden nach vielen Kriterien gefiltert.
- Kennzahlen werden gruppiert, summiert und fuer UI oder Dateioutput aufbereitet.
- Survey-, Preis- und Zusatzdaten werden optional in die Statistik eingeblendet.
Wohin werden die Daten geschrieben?
- standardmaessig nirgends in die Datenbank
- optional in Dateioutput fuer Exporte oder Druckausgabe
Wodurch wird der Ablauf gesteuert?
GLOBAL_USE_RELATED_CUSTOMERMASK_STATISTIC_*STATISTIC_DATE_MODESTATISTIC_INTERVALS_*STATISTIC_YEAR_OF_BEGIN_HISTORYSTATISTIC_NO_STORNOJOBSSTATISTIC_EXCLUDED_CSSTATISTIC_CSEIDS_EXCLUDED*STATISTIC_CREIDS_EXCLUDED*STATISTIC_CRVHSIDS_EXCLUDEDSTATISTIC_PREFERED_CATEGORY_INDEX_JB
3.14 Vertrieb, Termine, Aufgaben und Berichte
Was passiert?
Termine, Wiedervorlagen, Aufgaben und Vertriebsberichte fuer Kunden, Transporteure und Interessenten werden geplant, angezeigt und abgeschlossen.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- den richtigen Objektbezug wie Kunde, Transporteur oder Interessent auswaehlen
- Termin, Aufgabe oder Bericht mit Datum, Teilnehmern und Inhalt pflegen
- den Bearbeitungsstatus aktuell halten und offene Punkte dokumentieren
- nach Abschluss den Termin oder Bericht sauber abschliessen
Welche Eingabefelder sind zu fuellen?
- Termin- und Wiedervorlagefelder (
f_day,f_month,f_year,f_hour,f_minute,f_day_to,f_month_to,f_year_to,f_hour_to,f_minute_to) - Kategorien und Verantwortliche (
f_ap_cat_1bisf_ap_cat_4,f_selUsrId,f_grp_id) - Objekt- und Kundenbezug (
g_cs_eidsowie Objektreferenzen aus Kunde, Transporteur oder Interessent) - Inhalt und Teilnehmer (
f_text, Teilnehmerauswahl, Gruppenwahl) - Benachrichtigungsfelder (
f_sendmail[],f_sendmail_cs[],f_emailAdrCs,f_mail_salutation,f_mail_greetings)
Woher kommen die Daten?
- aus
phoenix_group.appointment - aus
phoenix_group.report_process - aus
user,employee - aus
customer,courier,company,headquarters - aus
metatype
Was passiert mit den Daten?
- Termine werden angelegt, aktualisiert oder geloescht.
- Teilnehmerlisten und Sichtbarkeiten werden ausgewertet.
- Aufgaben sind fachlich Sonderfaelle von Terminen.
- Berichte werden objektspezifisch gespeichert und koennen gleichentags offene Termine auf erledigt setzen.
Wohin werden die Daten geschrieben?
- nach
phoenix_group.appointment - nach
phoenix_group.report_process
Wodurch wird der Ablauf gesteuert?
MASK_AP_BTN_*MASK_AP_CATEGORY_*MASK_AP_CAT_*MASK_AP_WARNING_DISABLE_QUESTION_NO_REPORT_OF_SAME_DAYMASK_CS_REPORT_*MASK_CR_REPORT_*MASK_PT_REPORT_*MASK_RP_ENABLE_DEACTIVATION_APPOINTMENT_WARNING_OF_SAME_DAYIMG_LOGO_*
3.15 Kommunikation, Mitteilungen und Endgeraetehistorie
Was passiert?
HQ-interne Ticker-Meldungen, Kuriernachrichten, Zustellbestaetigungen, Antworten und Nachrichtengruppenzuordnungen werden verwaltet.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- die passende Zielgruppe, den Kurier oder die Nachrichtengruppe auswaehlen
- den Nachrichtentext fachlich eindeutig formulieren
- Versand oder Veroeffentlichung gezielt ausloesen
- Rueckmeldungen, Antworten und Lesestatus im Nachgang kontrollieren
Welche Eingabefelder sind zu fuellen?
- Tickerfelder wie Geltungszeitraum, Betreff, Text und Sichtbarkeit (
day_from,month_from,year_from,day_to,month_to,year_to,f_tif_subject,f_tif_text,f_tif_unerasable,f_hq_id_insert,f_emp_id_insert) - Nachrichtenfilter wie Zeitraum, Prioritaet, Status und Empfaengertyp (
day_*,month_*,year_*,f_prio,f_state,f_usr_type,f_filter) - Gruppen- und Einzelnachrichtenfelder (
f_msggrp,f_subject_group,f_body_group,f_usr_sender,f_usr_receiver,f_cr_sid_msg) - Zuordnung von Nachrichtengruppen zu Kurieren (
f_msggrpin der Kurierpflege)
Woher kommen die Daten?
- aus
phoenix_group.tickerforum - aus
phoenix_log.messageforum - aus
messagegroup - aus
courier,user,company,headquarters,employee
Was passiert mit den Daten?
- Ticker-Nachrichten werden erstellt, ausgesteuert und abgelaufene Eintraege geloescht.
- Nachrichten an Fahrer oder Fahrergruppen werden erzeugt.
- Lese- und Antwortstatus werden nachgefuehrt.
- Nachrichtengruppen werden einzelnen Kurieren zugewiesen.
Wohin werden die Daten geschrieben?
- nach
phoenix_group.tickerforum - nach
phoenix_log.messageforum - nach
courier.cr_msggrp
Wodurch wird der Ablauf gesteuert?
NEWSTICKER_MAX_BODY_LENGTHMESSAGE_MAX_BODY_LENGTHMESSAGE_MIN_DAYS_BEFORE
3.16 Datenexport, Datentransfer, Dokumente und Dateistaging
Was passiert?
Stamm- und Bewegungsdaten werden exportiert, Dokumente werden hochgeladen oder heruntergeladen, FTP/SFTP-Transfers werden ausgefuehrt und Importdateien werden bereitgestellt.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- das richtige Exportprofil, Zielsystem oder Uploadziel auswaehlen
- Dateien oder Objektmengen fachlich korrekt zusammenstellen
- bei externem Transfer Zugangsdaten, Zielpfade und Dateinamenskonventionen beachten
- den Transfer starten und Ergebnis, Protokolle und Ablage pruefen
Welche Eingabefelder sind zu fuellen?
- Exportkategorie, Exportmodus und Parameterprofil (
f_exp_category,f_export_mode,f_parname,f_parname_export,f_expp_id) - Dateiaufbau und Dateiname (
f_fileName,f_delimiter,f_fillUpChar,f_headline,f_bolchars,f_eolchars,f_bofchars,f_eofchars) - Datenfilter (
day_from,month_from,year_from,day_to,month_to,year_to,f_cs_eid_filter,f_status_filter,f_vht_filter,f_jbp_filter,f_csId,f_grpId) - Administrationsfelder fuer Parameterpflege und Dateiloeschung (
f_parname_new,f_exportFileToDelete,adminInterfacePassword)
Woher kommen die Daten?
- aus
exportparameters,exportfiles,exportcategory* - aus
job,jobpayment,jobpaymentcollection - aus
company,couriervehicle,customer - aus dem lokalen Dateisystem unter
import/upload/ - aus entfernten FTP-/SFTP-Verzeichnissen
Was passiert mit den Daten?
- Exportprofile bestimmen Struktur und Inhalt der Dateien.
- Exportdateien werden generiert und archiviert.
- Uploads werden objektbezogen in statische oder HQ-bezogene Verzeichnisse einsortiert.
- FTP-Serverlisten und Remoteziele werden aus Parametern aufgeloest.
- Exportmarkierungen an Firmen, Fahrzeugen und Jobs verhindern Doppelverarbeitung oder dokumentieren den Exportzeitpunkt.
Wohin werden die Daten geschrieben?
- in
html/export/download/ - in
html/import/upload/... - nach
exportfiles - nach
company.cmp_export_time - nach
couriervehicle.crvh_export_time - nach
job.jb_export_time - nach
jobpayment.jbp_export_time - nach
jobpaymentcollection.jbpc_export_time
Wodurch wird der Ablauf gesteuert?
EXPORT_PATHEXPORT_FILES_ON_SERVEREXPORT_FILES_ON_SERVER_CUSTOMEREXPORT_SEMAPHORE_*EXPORT_CSV_HEADLINE_CS_<cs_id>EXPORT_CAT_09_FILE_EXTENSIONEXPORT_MASK_FTP_*EXPORT_FTP_FILE_EXTENSIONS_ENABLEDFTP_IMPORT_SERVERLISTFTP_SERVER_*FTP_USER_*FTP_PASSWORD_*FTP_REMOTEPATH_*DATATRANSFER_DIRECTORY_*DATATRANSFER_HQ_PATH_*_ENABLEDDATATRANSFER_MAX_*DATATRANSFER_UPLOAD_PREFIX_RENAMEMASK_DATATRANSFER_NAV2ROOTDIR_ENABLED
3.17 XML-, Mobile- und Partner-Schnittstellen
Was passiert?
Externe Systeme koennen Kunden, Transporteure, Auftraege, Stationen, Preise, Filter, Metadaten, Groupware-Daten und mobile Zeit- oder Positionsmeldungen ueber XML austauschen.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- als technischer Benutzer den richtigen Endpunkt und den passenden Mandantenkontext verwenden
- Requests mit korrekten IDs, Hashes, Pflichtfeldern und Nutzdaten senden
- Rueckmeldungen fachlich auswerten und Fehlerfaelle sauber behandeln
- bei Produktivnutzung die erzeugten XML-Logs und Seiteneffekte kontrollieren
Welche Eingabefelder sind zu fuellen?
- Request-Nutzlast als XML (
orderReq,customerReq,contractorReq) - Sprach- und Aktionsfelder (
selectedLanguage,f_act) - Authentifizierungsfelder in XML wie
auth_type,auth_id,auth_eid,account,password,session_id - Objektfelder in XML wie Kunde/Kostenstelle, Transporteur/Fahrzeug, Station, Gruppe, Service, Trackingcode oder Operation
Woher kommen die Daten?
- aus XML-Requests ueber
service/*.php - aus
customer,costcenter,costcenteraddress,company - aus
courier,couriervehicle,user,address - aus
job,tour,tourservice,jobprice - aus Preis- und Gebietsstammdaten
- aus
courierfilter - aus
phoenix_group.timetracking - aus
meta_object.metaobject
Was passiert mit den Daten?
- Requests werden geparst, authentifiziert und in Fachobjekte zerlegt.
- Fachlich relevante IDs wie
cs_id,cr_id,csc_id,jb_idoder externe Hashes werden aufgeloest. - Je nach Endpunkt werden Objekte gelesen, angelegt, aktualisiert, geloescht oder angereichert.
- Alle Requests werden zusaetzlich in XML-Logdateien protokolliert.
Wohin werden die Daten geschrieben?
Je nach Endpunkt unter anderem:
- nach
company,customer,costcenter,costcenteraddress - nach
courier,couriervehicle,user,address - nach
job,tour,tourservice,jobprice - nach
courierfilter - nach
phoenix_group.timetracking - nach
meta_object.metaobject - in
html/log/*.log
Wodurch wird der Ablauf gesteuert?
GLOBAL_USE_RELATED_CUSTOMERGLOBAL_UNIQUE_DB_INSTANCE_NOHQ_INSTANCEDISPOSITION_JB_STATUS_MODEFDS_CUSTOMER_ENABLED_CS_<cs_id>ORDER_REQUEST_VHT_ID_DEFAULT_<cs_id>ORDER_REQUEST_INVTEXT_DAYTIME_DISABLEDORDER_REQUEST_NO_PRICE_CS_<cs_id>TRACKING_ENABLED_CS_<cs_id>ORDER_REQUEST_ERR_115_DISABLEDORDER_REQUEST_AUTORESPONSE_ENABLED_CS_<cs_id>STATION_REQUEST_ERROR_HANDLER_DISABLED*STATION_REQUEST_CHECK_EXISTENCE_COMMISSION_NOSTATION_REQUEST_CHECK_OPERATION_EXISTENCE_COMMISSION_NOSYSTEM_FORM_SINGLE_HQ*MAXIMUM_LOGIN_TRIALSCR_ADD_TO_ASSET_ENABLED
3.18 Lager und Artikelwirtschaft
Was passiert?
Lagerstrukturen, Artikel, Bestandsmengen, Serien- bzw. Scanvorgaenge, Lagerjournale und Lageradressen werden gepflegt.
Was muss der Benutzer tun, um den Schritt erfolgreich abzuschliessen?
- das richtige Lager, Unterlager oder den betroffenen Artikel auswaehlen
- Mengen, Bewegungsart, Bezug und gegebenenfalls Scan- oder Serieninformationen erfassen
- die Buchung oder Stammdatenpflege speichern
- das Ergebnis im Lagerjournal oder Bestandsbild fachlich kontrollieren
Welche Eingabefelder sind zu fuellen?
- Lagerstammdaten wie Maximalbestand, Barcode und Adressdaten (
f_stk_maxquantity,f_stk_barcode,f_ad_*,f_stk_hsno) - Such- und Filterfelder fuer Artikel und Lager (
f_stkat_search_at_misc,f_stkat_search_atg,f_displayModeStockArticle,f_mv_mode*) - Bewegungsfelder (
f_mv_stk_from,f_mv_stk_to,f_mv_at,f_mv_stk_itemquantity,f_mv_tan,f_mv_remark,f_mv_serialno,f_mv_jb_id) - frei konfigurierbare Zusatzfelder fuer Lagerbewegungen (
f_mv_datafield_01bisf_mv_datafield_15) - Scan- und Journalfelder (
f_scan,f_stkat_scanmode,f_store,f_mv_search_*, Datumsfilter)
Woher kommen die Daten?
- aus
stock,stockarticle,article,articlegroup,articlegroupitem - aus
address - aus
customer,company - aus
parameter
Was passiert mit den Daten?
- Lagerbaeume und Unterlager werden aufgelistet und gefiltert.
- Artikelzugriffe werden je Mitarbeiter und Lagerkontext eingeschraenkt.
- Bestandsbewegungen erzeugen Journal- und Bewegungsdaten.
- Lageradressen werden ueber die allgemeine Adresslogik gelesen oder gepflegt.
Wohin werden die Daten geschrieben?
- nach
stock - nach
stockarticle - nach
articleitem - nach
stockmove - bei Lageradresspflege nach
address
Wodurch wird der Ablauf gesteuert?
MASK_STK_ROOT_ACCESSMASK_STK_READONLYMASK_STK_READONLY_WHERE_DEFINED_WRITEACCESSMASK_STK_ARTICLE_ACCESSMASK_STK_SUBSTOCK_ACCESSMASK_STKAT_SHOW_PERMANENT_<stk_id>MASK_STK_JOURNAL_*MASK_STK_DATAFIELDS_*MASK_LINK_DISPOSITION_STKTO_EQ_STKFROM_<stk_id>MASK_AT_LIST_COLS
4. Wichtigste fachliche Schreibziele im Ueberblick
Wenn die Frage nicht pro Prozess, sondern uebergreifend gestellt wird, schreibt die Legacy-PHP-Anwendung fachlich vor allem in diese Speicherbereiche:
- Stamm- und Bewegungsdaten:
user,employee,company,customer,costcenter,courier,couriervehicle,job,tour,tourservice,jobprice,invoice,stock* - Konfiguration:
parameter - flexible Objektzusaetze:
genericdatacontainer - Audit und technische Steuerung:
phoenix_log.log,phoenix_log.semaphor,phoenix_log.locating,phoenix_log.route,phoenix_pda.commandexec - Kommunikation und Vertrieb:
phoenix_group.appointment,phoenix_group.report_process,phoenix_group.tickerforum,phoenix_log.messageforum - Geo- und Routingcache:
address_geo.address_geo,address_geo.distance,address_geo.distance_osm - externe Objektkopplung:
meta_object.metaobject - Dateisystem:
import/upload/,export/download/,temp/download/,temp/pdf/,temp/photos/,temp/signs/,images/external/,log/
5. Zusammenfassung
Die Legacy-PHP-Anwendung ist fachlich ein komplettes Betriebsportal und kein einzelner Auftragserfassungsdialog. Die Fachlogik verteilt sich ueber:
- klassische relationale Tabellen
- die Parametrisierung in
parameter - flexible Zusatzdaten in
genericdatacontainer - Protokoll- und Nebensteuerung in
phoenix_log.* - Dateiablagen, Exportpfade und XML-Endpunkte
Fuer Migration und Analyse ist deshalb entscheidend, jeden Vertikalschnitt nicht nur ueber seine Haupttabellen, sondern immer auch ueber Parameter, Zusatzspeicher, Logs und Dateipfade zu betrachten.