PartyRelationship (relacja między stronami)
PartyRelationship (relacja między stronami) opisuje relację biznesową między dwiema stronami w rolach (PartyRole) – np. pracodawca–pracownik, przełożony–podwładny. Rozszerza DomainResource. Relacja łączy dwa PartyRole (partyFrom, partyTo); strona (podmiot) pochodzi z PartyRole.party. Typ relacji biznesowej określa dziedziczone pole type (z DomainResource); odczyt odwrotny wynika z definicji typu.
1. Zakres i zastosowanie
PartyRelationship jest używany do:
- Relacje biznesowe między dwoma PartyRole – dwie referencje: partyFrom i partyTo (każda do PartyRole). Strona pochodzi z PartyRole.party. Typ relacji określa type (z DomainResource).
- Dwukierunkowość – ta sama para ról może być opisana przez jeden zasób; kierunek „od–do" jest ustalony (partyFrom → partyTo); interpretacja odwrotna wynika z definicji type.
- Okres ważności – relacja może mieć period (start, end).
- Status – dziedziczony status z DomainResource.
Wartości type ze słownika hr/party-relationship-type: employer-employee (używany w Employment), subordinate-supervisor, supervisor-subordinate.
2. Struktura (pola)
Poza polami z DomainResource (id, resourceType, meta, owner, comment, category, status, type, contained, attribute):
| Nazwa | Kard. | Typ | Opis |
|---|---|---|---|
| partyFrom | 0..1 | Reference(PartyRole) | Strona źródłowa relacji (od) – strona w roli |
| partyTo | 0..1 | Reference(PartyRole) | Strona docelowa relacji (do) – strona w roli |
| period | 0..1 | Period | Okres relacji (start, end) |
Typ relacji biznesowej – dziedziczone type z DomainResource (system https://api-erp.kamsoft.pl/vs/hr/party-relationship-type). Status – dziedziczony status z DomainResource. PartyRelationship nie ma własnego pola identifier; cechy relacji (np. direct, employment-id, order-path) niesie attribute[] ze słownika hr/party-relationship-attribute-type.
Uwaga: partyFrom i partyTo wskazują różne zasoby PartyRole (lub elementy w contained). Party jest dostępny przez PartyRole.party. Zasoby PartyRole (lub Party w contained) mogą w razie potrzeby być osadzone i referowane przez Reference (#id).
3. Operacje
Odpowiedź to koperta { "items": [...], "nextToken": null }, stronicowana parametrami count (domyślnie 20) i offset (domyślnie 0).
| Operacja | Parametry | Odpowiedź |
|---|---|---|
GET /v1/party-relationships |
type (wymagany, system|value; obsługiwane wartości: employer-employee, supervisor, subordinate), partyFrom, partyTo (system|value, przestrzeń wewnętrzna Party), attribute[] (code|value: employment-id, direct-only), count, offset |
200 koperta z PartyRelationship[] |
Zasób jest tylko do odczytu; brak POST/PATCH i tras z {id}.
4. Relacja Party – PartyRole – PartyRelationship
- Party – podmiot (identyfikatory, nazwa, adresy, kontakty). Party NIE zawiera referencji do PartyRole ani PartyRelationship; relacje i role są w zasobach PartyRole i PartyRelationship.
- PartyRole – referuje do Party przez party (strona w roli). PartyRelationship – „PartyRole A w relacji Z z PartyRole B" (partyFrom, partyTo → PartyRole; typ relacji w type). Strona pochodzi z PartyRole.party.
Relacje odpytuje się po typie relacji i stronie (type=…&partyTo=<przestrzeń>|<wartość>), a role strony – po PartyRole (GET /v1/party-roles?role=…&party=…).
5. Mapowanie na systemy ERP
| System | Odpowiednik | Uwagi |
|---|---|---|
| SAP HCM / S/4HANA | Relacja klient–dostawca, relacja organizacyjna | Type określa relację biznesową; period i status zarządzają ważnością |
| SAP SuccessFactors | Relacja zatrudnienia, relacja raportowania | Typ relacji (employment, reporting, delegation itp.) |
| Oracle HCM Cloud | Relacja zatrudnienia, hierarchia organizacyjna | Employment = pracodawca–pracownik; hierarchia org przez relacje jednostek org |
| Workday | Relacja zatrudnienia, relacja org, relacja menedżer | Typ relacji ustala kierunek i naturę (employment, reporting itp.) |
6. Powiązane zasoby
→ Party — Informacje o podmiocie
→ PartyRole — Strona w roli
→ Core Master Data Overview — Wspólne dane główne