PartyRole (strona w roli)
PartyRole (strona w roli) opisuje przypisanie roli do strony w danym kontekście – np. „Strona X jako klient", „Strona Y jako dostawca w zamówieniu Z", „Strona X jako płatnik w systemie FK". Rozszerza DomainResource i uzupełnia Party: Party to podmiot (kto), PartyRole to ten podmiot w konkretnej roli, opcjonalnie z okresem ważności i kontekstem.
1. Zakres i zastosowanie
PartyRole jest używany do:
- Rola w kontekście – ta sama Party może mieć wiele PartyRole (klient w FK, dostawca w WMS, płatnik w dokumencie), każdy z własnym okresem lub kontekstem
- Okres ważności – rola „klient" dla Party X może być ważna od–do (umowa, uprawnienia)
- Kontekst – rola może być przypisana do dokumentu, umowy, systemu lub „globalnie" (brak kontekstu = systemowo)
Typowe role: klient (customer), dostawca (supplier), płatnik (payer), odbiorca płatności (payee), przewoźnik (carrier), wystawca (issuer), odbiorca dokumentu, członek grupy VAT. Wartości jako CodeableConcept (np. system https://api-erp.kamsoft.pl/ns/party-role).
2. Struktura (pola)
Poza polami z DomainResource (id, meta, text, name, attribute, contained):
| Nazwa | Kard. | Typ | Opis |
|---|---|---|---|
| party | 1..1 | Reference(Party) lub contained Party | Strona, której dotyczy rola („kto" w roli – klient, dostawca, płatnik itp.) |
| role | 1..1 | CodeableConcept | Rola (np. customer, supplier, payer – system https://api-erp.kamsoft.pl/ns/party-role) |
| period | 0..1 | Period | Okres ważności roli (validFrom, validTo) |
| status | 0..1 | CodeableConcept | Status (np. active, inactive) |
| context | 0..1 | Reference lub Identifier | Kontekst przypisania (dokument, umowa, system) – opcjonalny |
Uwaga: PartyRole referuje do pojedynczej Party przez party (wymagane). Party nie zawiera PartyRole. Relacja między dwiema stronami w rolach jest opisana przez PartyRelationship (partyFrom, partyTo). Jeśli osobny zasób Party nie jest potrzebny, party może być osadzony w contained (inline).
3. Relacja Party – PartyRole
- Party – dane główne o podmiocie (identyfikatory, nazwa, adresy, kontakty). Party NIE zawiera referencji do PartyRole. Aby uzyskać role strony, należy odpytać PartyRole z filtrem np.
party=Party/id. - PartyRole – referuje do Party przez party (strona w roli). Przypisanie „Party X w roli Y [w kontekście] [w okresie]": party → Party, role → CodeableConcept, period, status, context. Relacja między dwiema stronami (np. klient do dostawcy) jest opisana przez PartyRelationship (partyFrom, partyTo).
W dokumentach (faktura, zamówienie) można użyć referencji do Party + referencji do PartyRole (z odpowiednią role), lub tylko referencji do Party i CodeableConcept role w dokumencie. PartyRole jako osobny obiekt jest przydatny gdy role są rejestrowane, wersjonowane lub mają okres ważności (np. „kartoteka klienta" = PartyRole z role=customer, party=Party X; relacja do sprzedawcy w PartyRelationship).
4. Mapowanie na systemy ERP
| System | Odpowiednik | Uwagi |
|---|---|---|
| SAP HCM / S/4HANA | Customer master (role), vendor master (role), business partner | Party = BP master; PartyRole = przypisanie roli BP |
| SAP SuccessFactors | Employee role | Employee (Party) + przypisanie roli (PartyRole) |
| Oracle HCM Cloud | Person, assignment | Person (Party); assignment zawiera rolę (PartyRole) |
| Workday | Worker, assignment | Worker (Party); assignment (PartyRole) z datami obowiązywania |
5. Powiązane zasoby
→ Party — Informacje o podmiocie
→ PartyRelationship — Relacja między PartyRole
→ Core Master Data Overview — Wspólne dane główne