Collega Oracle Cloud HCM (Fusion) a Spark per sincronizzare anagrafiche, struttura organizzativa, posizioni, sedi e (se previsto) assenze/PTO: obiettivi e valutazioni usano i dati HR ufficiali senza export manuali.
Cosa sincronizziamo
Dipendenti / worker anagrafica (Oracle → Spark, notturno)
Organigramma / manager chain (Oracle → Spark, notturno)
Unità organizzative / business unit / legal entity (Oracle → Spark, notturno)
Posizioni, job, grade/level (Oracle → Spark, notturno)
Sedi / location e assignment (Oracle → Spark, notturno)
Cost center (Oracle → Spark, notturno)
Status rapporto (hire/termination) (Oracle → Spark, notturno)
Assenze/PTO (se abilitati) (Oracle → Spark, orario/notturno)
Campi DFF/Custom (se esposti) (Oracle → Spark, notturno)
Eventi/Delta (opzionale) (Oracle → Spark, near-real-time via HCM Events/Integration Cloud)
A cosa serve
Onboarding/Offboarding automatico: creazione/sospensione utenti e ruoli in Spark basata su hire/termination e assignment.
MBO con dati reali: struttura, manager chain, cost center e sedi sempre allineati.
Governance: permessi in Spark basati su BU/OU/Cost Center Oracle.
Reporting: avanzamento obiettivi e payout coerenti con la master data HR.
Riduzione errori: niente “export CSV” manuali per aggiornare organigrammi e assegnazioni.
Come si configura (3 step)
1) Prerequisiti
Tenant Oracle Cloud HCM attivo e accesso a REST APIs / BI Publisher.
Utente tecnico con permessi su: worker, assignments, org structures, positions, locations, cost centers, absences (se necessario).
(Opz.) Oracle Integration Cloud (OIC) o middleware aziendale per orchestrare flussi e/o delta events.
(Opz.) IdP aziendale per SSO su Spark; IP allowlist se richiesta.
2) Lato Oracle
Scegli una modalità (in ordine di preferenza):
A. REST APIs (consigliata)
Abilita/usa gli endpoint per: worker, assignments, supervisor, organizations, positions, jobs, locations, cost centers, absences.
Crea un utente tecnico con policy/ruoli minimi necessari.
B. BI Publisher / Extract (alternativa robusta)
Pubblica report standardizzati (es. Workforce Structures, Worker Extract, Absence Extract).
Pianifica output CSV su SFTP/Object Storage.
C. OIC / Event-driven (opzionale)
Usa OIC + HCM Events per delta quasi real time (hire/termination/change manager).
3) Lato Spark
Inserisci tenant Oracle, modalità (REST o file), credenziali, e mappa campi.
Esegui import pilota su un’OU/BU di test.
Abilita sync notturno (core) e orario/15’ per assenze se necessario.
Sicurezza & controllo accessi
Autenticazione: OAuth2 / token (Oracle REST) oppure SFTP key-based (per extract).
SSO: SAML/OIDC su Spark tramite IdP (Microsoft Entra / Okta / Google Workspace) — opzionale.
Provisioning: SCIM (opz.) tipicamente via IdP; in alternativa provisioning interno basato su feed Oracle.
Cifratura in transito/a riposo, audit log, least privilege su utenti tecnici e permessi API.
Mappature chiave
| Campo Oracle (API/Extract) | Campo Spark | Tipo | Note |
|---|---|---|---|
| WorkEmail / Email | string | chiave primaria per login | |
| PersonNumber / WorkerNumber | employee_code | string | chiave tecnica secondaria |
| AssignmentId | assignment_id | string | utile per storicizzare cambi |
| Supervisor (PersonNumber/Email) | manager | reference | risolto su email/employee_code |
| BusinessUnit / Department / Org | org_unit | string | gerarchia (fino a 6 livelli) |
| LegalEmployer / LegalEntity | legal_entity | string | compliance/reporting |
| LocationName / LocationCode | site | string | normalizzare denominazioni |
| CostCenter / CostCenterCode | cost_center | string | permessi e reporting |
| Job / JobCode | job_title | string | opzionale |
| Position / PositionCode | position | string | organigramma position-based |
| Grade / Level | grade | string | utile per policy bonus |
| WorkerType / AssignmentType | contract_type | enum | FT/PT/Fixed Term/Intern |
| HireDate | hire_date | date | ISO 8601 |
| TerminationDate | termination_date | date | auto-deprovisioning |
| AbsenceBalance / AbsenceEntries | attendance_hours | number | se incluso nei permessi/report |
| DFF/Custom Attributes | custom_fields | mixed | se esposti/estratti |
Endpoints / integrazione (alto livello)
Oracle Cloud HCM REST APIs: worker, assignments, supervisors, organizations, positions, jobs, locations, cost centers, absences (copertura dipende da moduli e permessi).
BI Publisher / HCM Extract: output schedulati (CSV) verso SFTP/Object Storage.
Oracle Integration Cloud (opzionale): orchestrazione, mapping, retry, e (se disponibile) eventi/delta.
(Inserisci link/doc del tuo tenant; in assenza: “opzionale / non disponibile”.)
Direzione, frequenza, limiti
Direzione: Pull Oracle → Spark (default). Push Spark → Oracle (opzionale / di norma non usato).
Frequenza: notturno (core HR), orario/15’ (assenze) se necessario.
Rate limits/quote: rispettare limiti API; paginazione, batch, retry/backoff su errori di throttling.
Limitazioni & note
Campi custom (DFF) disponibili solo se esposti via API o inclusi in extract/report.
Assenze/PTO dipendono dai moduli abilitati (Absence Management) e dalle policy di accesso.
Alias email: normalizza i domini; la chiave primaria resta l’email (fallback PersonNumber).
Gerarchie: supportate fino a 6 livelli in Spark (oltre, si usa appiattimento o mapping ad OU).
Position-based org: consigliato includere PositionCode + AssignmentId per evitare ambiguità.
Troubleshooting rapido
401/403: credenziali/token o ruoli Oracle insufficienti → verifica ruoli HCM REST/BI e policy.
Throttling/rate limit: riduci batch, sposta job fuori orario, abilita retry esponenziale.
Manager non risolto: supervisor mancante o ordine import errato → importa prima i manager o usa PersonNumber stabile.
Record scartati: email mancante/duplicata → chiave email con fallback PersonNumber; regole merge configurabili.
Org incoerente: assignment multipli o storicizzazione → filtra per primary assignment/active.
FAQ
È bidirezionale? Default solo lettura da Oracle a Spark.
Quanto impiega il primo sync? Dipende dal metodo (API/Extract) e dalla popolazione; per migliaia di dipendenti tipicamente nell’ordine di decine di minuti.
Come gestite i duplicati? Chiave email con fallback PersonNumber; regole merge configurabili.
Supportate delta/eventi? Sì, opzionale via OIC/middleware e/o HCM events (se disponibili).









