Manager ID verweist ueber die Cornerstone-ID, nicht ueber die Personalnummer
Im Feld Manager stand die Personalnummer der vorgesetzten Person -- also der Wert, der in derselben Zeile als Local System ID gefuehrt wird. Cornerstone verknuepft aber ueber die User ID. Der Verweis lief damit entweder ins Leere oder, schlimmer, auf jemand anderen, dessen User ID zufaellig aussieht wie eine Personalnummer. Leer, wenn die vorgesetzte Person selbst keine Cornerstone-ID traegt. Aus demselben Grund wie bei User ID und Username: eine Kennung der falschen Art ist schlimmer als keine, weil niemand ihr ansieht, dass sie falsch ist. Bei 435 von 785 Personen fehlt die Kennung noch -- das ist eine Luecke in der Zuordnungstabelle, kein Fehler im Export. Die Abbildung im Kontext heisst entsprechend managerKennung und traegt jetzt Zeichenketten, damit der Typ selbst keine Nummer mehr zulaesst.
This commit is contained in:
@@ -58,8 +58,8 @@ export async function ladeExportMitarbeiter(
|
||||
lookups: OrgLookups;
|
||||
orgMaps: OrgMaps;
|
||||
managerName: Map<string, string>;
|
||||
/** Personalnummer je Kennung — für Exporte, die über Nummern verweisen. */
|
||||
managerNummer: Map<string, number>;
|
||||
/** Cornerstone-ID je Kennung — für Exporte, die über die Kennung des Zielsystems verweisen. */
|
||||
managerKennung: Map<string, string | null>;
|
||||
dependentsCounts: Map<string, number>;
|
||||
}> {
|
||||
const statuses = parseStatuses(filters.status);
|
||||
@@ -86,7 +86,9 @@ export async function ladeExportMitarbeiter(
|
||||
const [employees, lookupResult, allEmployees, dependentsCounts, placements, lines] = await Promise.all([
|
||||
employeeQuery().execute(),
|
||||
loadOrgLookups(tx),
|
||||
tx.selectFrom("employees").select(["id", "first_name", "last_name", "personnel_number"]).orderBy("id").execute(),
|
||||
// Absichtlich schmal: die Liste umfasst **alle** Personen, nicht nur die
|
||||
// gefilterten, und dient nur dazu, einen Verweis aufzulösen.
|
||||
tx.selectFrom("employees").select(["id", "first_name", "last_name", "cornerstone_id"]).orderBy("id").execute(),
|
||||
loadDependentsCounts(tx),
|
||||
loadPlacements(tx, { asOf: stichtag }),
|
||||
loadReportingLineMap(tx, stichtag),
|
||||
@@ -119,7 +121,7 @@ export async function ladeExportMitarbeiter(
|
||||
lookups: lookupResult.lookups,
|
||||
orgMaps,
|
||||
managerName: new Map(allEmployees.map((e) => [e.id, fmtName(e.first_name, e.last_name)])),
|
||||
managerNummer: new Map(allEmployees.map((e) => [e.id, e.personnel_number])),
|
||||
managerKennung: new Map(allEmployees.map((e) => [e.id, e.cornerstone_id])),
|
||||
dependentsCounts,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user