Update AVS User Update Prozedur

Steffen Jost 2024-07-01 10:44:41 +00:00
parent 1ff6453ac4
commit 3fcc992c1f

@ -1,76 +1,85 @@
_Hinweis: Bezieht sich auf die Situation nach der Implementierung von CR3_
## Postadressen
Personen haben entweder eine fest eingestellte Postadresse, welche im Gegensatz zu früher **nicht** mehr aktualisiert wird, oder es wird die Post-Adresse der höchst-priorisierten Firmenangehörigkeit verwendet, falls vorhanden, oder ein internes Department, falls vorhanden.
_Hinweis: Dabei ist es durchaus möglich, dass die Höchst-Priorisierte Firma keine Adresse besitzt, was z.B. bei Fraport Angehörigen der Fall sein sollte; wodurch als Adresse das interne Department aus dem LDAP verwendet wird - nicht aus dem AVS._
## Firmen
Es wird angenommen, dass folgende AVS Daten immer einzigartig sind:
- Firmennummer
- Firmenkürzel
- Firmenname
Sollte dies nicht der Fall sein, z.B. zwei Firmen mit identischem Namen, so kann FRADrive die Firmen immer wieder neu in zufälliger Reihenfolge verwechseln. Der Vorteil des Verfahrens ist aber, dass Änderungen der drei genannten Merkmal korrekt verarbeitet werden.
### Beispiel
Firma {55, "Shrt", "Short Enterprises"} wird im AVS neu angelegt als Firma {155, "Short", "Short Enterprises"} so wird FRADrive keine neue Firma anlegen, sondern lediglich Nummer und Kürzl aktualisieren. Sollte jedoch später noch mal die alte Firma gemeldet werden, so wird diese Aktualisierung eventuell rückgängig gemacht; spätere Updates können wieder erfolgen.
# AVS Person Concact Info Update Procedure
We use the following terms:
- New (Avs) Company: company id currently received from AVS for this user
- Old (Avs) Company: company id previously received from AVS for this user
- (Old) Primary Company: company id currently selected in FRADrive for this user. In some rare cases, a driving licence is manually associated with another company, if a user belongs to multiple companies. After the update the new AVS company is likely the new primary company, unless another company association with a higher priority existed for this user, which was unequeal to both new and old AVS company.
```mermaid
flowchart TD;
S([Update AVS Person Contact])
S-->FU0[[★Upsert Firm with \n AVS Firm details]]
FU0-->FU[/If new company:\n Notify FA/]
FU-->CF{Firm changed?}
CF-->|No|UU
CF-->|Yes|CA{"`Firm Address **or**
Email unchanged?`"}
CA-->|Yes|SCS
CA-->|No|CP{New Company Id\n == Primary Company Id}
CP-->|Yes|NPS
CP-->|No|CCS
subgraph UserCompany
SCS[Update User/CompanyId\n default association\n keeping parameters\n]
SCE[If user was default\n company supervisor:\n Become default company\n supervisor in new company]
SCS-->SCE
NPS[Delete User/OldCompanyId\n default association]
CCS[Update User/CompanyId\n default association\n resetting parameters,\n but keeping priority]
CC1[/If user was default\n company supervisor:\n Notify FA /]
CCS-->CC1
end
CC1-->CCE[If old Company Id\n == Primary Company Id\n ★Reset user postal preference]
subgraph UserSupervision
UKS[Keep all supervision unchanged;\n but user being company supervisor \nis associated with new company]
CC2[Reset company \n associated supervisors\n for this user]
CC3[/If supervised user has\n no superviser any more:\n Notify FA /]
NP1[Delete all supervision\n associated with old company]
UU[[Ensure any AVS superior is supervisor to user.\n Inserts superior from LDAP, if possible]]
end
SCE-->UKS-->UU
NPS-->NP1-->UU
CCE-->CC2-->CC3-->UU
UU-->UUE([★Update other \n user details])
```
★: Conditional update: each individual field is only updated if its actual value is identical to previous avs value and it is changed in new avs data. This means that any edited field is no longer updated automatically, unless AVS later delivers a value that happens to be identical value to the edited values.
*Note:* Within this entire process supervision is only changed if UserSupervisorCompany is equal to Old AVS Company or empty and UserSupervisorReason "company default" or empty. Note the **consequence** that Supervisionships having no annotations will eventually be deleted.
_Hinweis: Bezieht sich auf die Situation nach der Implementierung von CR3_
## Postadressen
Personen haben entweder eine fest eingestellte Postadresse, welche im Gegensatz zu früher **nicht** mehr aktualisiert wird, oder es wird die Post-Adresse der höchst-priorisierten Firmenangehörigkeit verwendet, falls vorhanden, oder ein internes Department, falls vorhanden.
_Hinweis: Dabei ist es durchaus möglich, dass die Höchst-Priorisierte Firma keine Adresse besitzt, was z.B. bei Fraport Angehörigen der Fall sein sollte; wodurch als Adresse das interne Department aus dem LDAP verwendet wird - nicht aus dem AVS._
## Email Adressen
Das AVS kann für einen Nutzer bis zu vier verschiedene Email Adressen liefern. FRADrive verwendet aber nur eine Email, mit folgender Priorität:
1.die Firmen Kommunikations Email
2. die allgemeine Firmen Email
3. die persönliche Email verwenden
4. die Firma Superior Email
Dabei werden ungültige Emails ignoriert; Emails der Form `E1234567@fraport.de` werden als ungültig betrachtet.
## Firmen
Es wird angenommen, dass folgende AVS Daten immer einzigartig sind:
- Firmennummer
- Firmenkürzel
- Firmenname
Sollte dies nicht der Fall sein, z.B. zwei Firmen mit identischem Namen, so kann FRADrive die Firmen immer wieder neu in zufälliger Reihenfolge verwechseln. Der Vorteil des Verfahrens ist aber, dass Änderungen der drei genannten Merkmal korrekt verarbeitet werden.
### Beispiel
Firma {55, "Shrt", "Short Enterprises"} wird im AVS neu angelegt als Firma {155, "Short", "Short Enterprises"} so wird FRADrive keine neue Firma anlegen, sondern lediglich Nummer und Kürzl aktualisieren. Sollte jedoch später noch mal die alte Firma gemeldet werden, so wird diese Aktualisierung eventuell rückgängig gemacht; spätere Updates können wieder erfolgen.
# AVS Person Concact Info Update Procedure
We use the following terms:
- New (Avs) Company: company id currently received from AVS for this user
- Old (Avs) Company: company id previously received from AVS for this user
- (Old) Primary Company: company id currently selected in FRADrive for this user. In some rare cases, a driving licence is manually associated with another company, if a user belongs to multiple companies. After the update the new AVS company is likely the new primary company, unless another company association with a higher priority existed for this user, which was unequeal to both new and old AVS company.
```mermaid
flowchart TD;
S([Update AVS Person Contact])
S-->FU0[[★Upsert Firm with \n AVS Firm details]]
FU0-->FU[/If new company:\n Notify FA/]
FU-->CF{Firm changed?}
CF-->|No|UU
CF-->|Yes|CA{"`Firm Address **or**
Email unchanged?`"}
CA-->|Yes|SCS
CA-->|No|CP{New Company Id\n == Primary Company Id}
CP-->|Yes|NPS
CP-->|No|CCS
subgraph UserCompany
SCS[Update User/CompanyId\n default association\n keeping parameters\n]
SCE[If user was default\n company supervisor:\n Become default company\n supervisor in new company]
SCS-->SCE
NPS[Delete User/OldCompanyId\n default association]
CCS[Update User/CompanyId\n default association\n resetting parameters,\n but keeping priority]
CC1[/If user was default\n company supervisor:\n Notify FA /]
CCS-->CC1
end
CC1-->CCE[If old Company Id\n == Primary Company Id\n ★Reset user postal preference]
subgraph UserSupervision
UKS[Keep all supervision unchanged;\n but user being company supervisor \nis associated with new company]
CC2[Reset company \n associated supervisors\n for this user]
CC3[/If supervised user has\n no superviser any more:\n Notify FA /]
NP1[Delete all supervision\n associated with old company]
UU[[Ensure any AVS superior is supervisor to user.\n Inserts superior from LDAP, if possible]]
end
SCE-->UKS-->UU
NPS-->NP1-->UU
CCE-->CC2-->CC3-->UU
UU-->UUE([★Update other \n user details])
```
★: Conditional update: each individual field is only updated if its actual value is identical to previous avs value and it is changed in new avs data. This means that any edited field is no longer updated automatically, unless AVS later delivers a value that happens to be identical value to the edited values.
*Note:* Within this entire process supervision is only changed if UserSupervisorCompany is equal to Old AVS Company or empty and UserSupervisorReason "company default" or empty. Note the **consequence** that Supervisionships having no annotations will eventually be deleted.