-
Notifications
You must be signed in to change notification settings - Fork 16
Mapping NHR
De NHR Dataservice kan bevraagd worden op de volgende sleutels:
- bsn
- rsin
- kvkNummer
- vestigingsnummer
Verwachte productrespons: natuurlijkPersoon met volledige elementen, waaronder isEigenaarVan maatschapplijkeActiviteit. De elementen van maatschappelijkeActiviteit zijn mogelijk minder volledig dan bij het direct opvragen op basis van kvk (nog te bepalen).
Mogelijke productrespons:
- buitenlandseVennootschap (deze heeft een rsin, naast nog buitenlands inschrijfnummer)
- eenmanszaakMetMeerdereEigenaren
- rechtspersoon
- rechtspersoonInOprichting
- samenwerkingsverband
Mogelijke productrespons:
- maatschappelijkeActiviteit
- onderneming (?) In voorbeelden van maatschappelijkeActiviteit heeft deze een manifesteertZichAls onderneming met hetzelfde kvkNummer.
Mogelijke productrespons:
- commercieleVestiging
- nietCommercieleVestiging
Het ontvangen product bevat naast het element met de gevraagde sleutel ook gerelateerde objecten die zelf als producten kunnen worden opgevraagd. Dit is niet altijd comfort-data.
Het probleem is dat deze objecten niet compleet zijn. Dit kan ook niet, want dan zou je een enorme boom van objecten krijgen (van onderneming naar eigenaar die weer eigenaar is van andere onderneming, en die relaties weer volledig volgen...) en circulaire referenties.
Hiervoor is in de NHR Dataservice voor een bepaalde oplossing gekozen die niet erg handig is. Deze is voorzover ik weet ook niet gedocumenteerd.
De blijkbaar gekozen oplossing is dat bij een object die een relatie heeft met een ander object (zoals maatschappelijkeActiviteit en vestiging) het vestigingsobject wordt meegeleverd, inclusief een aantal eigenschappen, maar niet volledig. Zo kan een maatschappelijkeActiviteit zich manifesteren als onderneming die wordt uitgeoefend in een 0..n commercieleVestiging. Dit commercieleVestiging element is niet compleet. Echter blijkt dat een maatschappelijkeActiviteit ook geleid wordt vanuit een (niet)commercieleVestiging. In veel voorbeelden is dit exact dezelfde vestiging, maar dan completer (maar niet volledig compleet, anders krijg je circulaire relaties doordat vestiging wordtUitgeoefendDoor weer terug zal leiden naar de onderneming die zich manifesteert als de originele maatschappelijkeActiviteit).
Het kan dus voorkomen dat in een productrespons van een maatschappelijkeActiviteit een complete en incomplete vestigingen voorkomen, afhankelijk van waaruit de maatschappelijkeActiviteit wordt geleid.
Betere oplossingen zouden xlink's, alleen ID's of duidelijkheid met xsd:restrictions zijn geweest.
In de BRMO wordt uitgegaan van één bericht per update van een authentiek basisregistratie-object. Dit wordt gebruikt om wijzigingen bij updates toe te passen door bij een nieuw bericht de vorige versie erbij te zoeken en zo database-inserts, updates en deletes (en archivering) door te voeren.
Om deze werkwijze te behouden zal bij het inlezen van NHR productrespons het bericht worden gesplistst. Dit houdt wel in dat er complete en incomplete versies van authentieke berichten kunnen voorkomen. Zonder meer kan dit ertoe leiden dat indien eerst een complete versie wordt verwerkt en daarna een incomplete, de ontbrekende eigenschappen worden verwijderd.
Bij enkele eigenschappen is dit mogelijk nog overkomelijk, maar ook relaties kunnen incompleet zijn.
Splitsen wordt gedaan door deze XSL stylesheet.
De commercieleVestiging en nietCommercieleVestiging objecten worden afgesplitst in aparte berichten. Bij de afgesplitste elementen wordt een wordtUitgeoefendDoor element toegevoegd met de onderneming met kvkNummer (commercieleVestiging) of maatschappelijkeActiviteit met kvkNummer (nietCommercieleVestiging) om de RSGB-relatie naar maatschappelijkeActiviteit te leggen.
Bij het transformeren van een maatschappelijkeActiviteit worden geen vestigingen omgezet in RSGB, omdat deze afgesplitst zijn. Onderneming, alhoewel ook als los product opvraagbaar, is altijd (?) gekoppeld aan een maatschappelijkeActiviteit met hetzelfde kvkNummer. Deze wordt voorlopig niet opgesplitst. De subelementen van heeftAlsEigenaar worden afgesplitst.
Zie deze XSL stylesheet.
De NHR gebruikt geen unieke identifiers met namespace zoals in de BRK. Dit kan tot een clash leiden in gemeenschappelijke superclass tabellen zoals subject. Daarom wordt bijvoorbeeld een vestigingsnummer geprefixed met de zelf verzonnen namespace 'nhr.comVestg.' of 'nhr.nietComVestg', omdat in subject ook andere classes met andere keys kunnen komen. Zonder prefix zouden deze clashen. Hier wordt niet de code 31 voor gebruikt zoals in RSGB 2.2 pagina 441, een namespace is duidelijker dan een numerieke code en de BRK gebruikt al namespaces.
Een authentiek NHR-object zal dus een ander ID hebben dan hetzelfde object als comfort-data uit de BRK, ook al hebben ze hetzelfde kvk nummer. Het object kan dus ook niet geupgrade worden van comfort naar authentiek.
Het is wel mogelijk om de lijst met kvk nummers van comfort-data te gebruiken om authentieke objecten bij de NHR Dataservice op te halen en in te laden. Via een view kan bij een zakelijk recht van een kadastraal object de authentieke NHR-objecten gejoined worden.
De mapping naar RSGB wordt gedaan door deze XSL stylesheet.
RSGB 2.2 pagina 55
RSGB 3.0 pagina 128
Eigenschappen:
NHR element | BRMO kolom | Opmerking |
---|---|---|
registratie/datumAanvang | datum_aanvang | Speciale kolom |
registratie/datumEinde | datum_einde_geldig | Speciale kolom tbv archivering |
kvkNummer | kvk_nummer | PK |
nonMailing | ||
hoofdSbiActiviteit | ||
nevenSbiActiviteit | ||
incidenteelUitlenenArbeidskrachten | ||
bezoekLocatie | ||
postLocatie | ||
communicatiegegevens | ||
naam | ||
wordtUitgeoefendIn | ||
wordtGeleidVanuit | ||
indicatie economisch actief | RSGB 3.0, true indien manifesteertZichAls |
Relaties:
NHR element | BRMO kolom | Opmerking |
---|---|---|
manifesteertZichAls | fk_3ond_kvk_nummer | ondrnmng.kvk_nummer |
heeftAlsEigenaar | fk_mac_as_4 | subject.sc_identif (TODO) |
manifesteertZichAls wordt in NHR via het OndernemingRelatieRegistratieType geregistreerd met datum aanvang en datum einde, in RSGB 2.2 niet.
RSGB 2.2 pagina 62
RSGB 3.0 niet aanwezig
Een onderneming kan een hoofelement zijn, maar ook worden meegeleverd als onderdeel van een maatschappelijke activiteit. Indien kvkNummer ontbreekt, leidt dit tot een transformatiefout.
Onderneming is niet aanwezig in RSGB 3.0, vervangen door incidactie economisch actief.
Eigenschappen:
NHR element | BRMO kolom | Opmerking |
---|---|---|
registratie/datumAanvang | datum_aanvang | Speciale kolom |
registratie/datumEinde | datum_einde_geldig | Speciale kolom tbv archivering |
kvkNummer | kvk_nummer | PK |
hoofdSbiActiviteit | TODO, koppeltabel maken | |
nevenSbiActiviteit | TODO, koppeltabel maken | |
fulltimeWerkzamePersonen | ||
parttimeWerkzamePersonen | ||
totaalWerkzamePersonen |
Relaties:
NHR element | BRMO kolom | Opmerking |
---|---|---|
fk_4mac_kvk_nummer | “is voortgezet door” niet aanwezig in NHR | |
handeltOnder | Niet in RSGB, alleen voor vestiging | |
wordtUitgeoefendIn | vestg.fk_15ond_kvk_nummer | 0..n commercieleVestiging |
wordtUitgeoefendDoor | maatschappelijkeActiviteit | |
heeftOvergenomenVan | ||
0..n onderneming / Niet meer in RSGB 3.0 | ||
isOvergedragenAan | fk_1ond_kvk_nummer | 1) |
- isOvergedragenAan wordt in NHR via het OndernemingRelatieRegistratieType geregistreerd met datum aanvang en datum einde, in RSGB 2.2 niet. In RSGB 3.0 is dit afwezig. Geen testcase voor aanwezig, alleen een kvk_nummer in de kolom zetten is niet voldoende. Dus of de foreign key verwijderen of, indien de onderneming waaraan is overgedragen in het product is opgenomen (is niet duidelijk zonder testcase), deze onderneming eerst (recursief) inserten. Voorlopig wordt dit genegeerd.
NHR elementen nietCommercieleVestiging en commercieleVestiging.
Eigenschappen subject:
NHR element | BRMO kolom | Opmerking |
---|---|---|
vestigingsnummer | identif | PK, extra namespace prefix |
clazz | waarde 'VESTIGING' | |
typering | waarde 'VESTIGING' | |
bezoekLocatie/binnenlandsAdres/ | adres_binnenland | Alleen de waarde van volledigAdres wordt ingevuld indien aanwezig. Geen losse elementen of BAG id's |
bezoekLocatie/buitenlandsAdres | adres_buitenland | Alleen de waarde van volledigAdres wordt ingevuld indien aanwezig. |
naam | Zie vestg.verkorte_naam | |
communicatiegegevens | emailadres | Alleen het eerste emailadres |
communicatiegegevens | telefoonnummer | Alleen het eerste telefoonnummer |
communicatiegegevens | fax_nummer | Alleen het eerste faxnummer |
communicatiegegevens | website_url | Alleen de eerste domeinNaam |
postLocatie | pa_postadres_* | Alleen ingevuld indien postbusnummer element aanwezig is. |
postLocatie//bagId | fk_15aoa_identif | Alleen binnenlands adres |
postLocatie/buitenlandsAdres | Ontbreekt |
Eigenschappen vestg:
NHR element | BRMO kolom | Opmerking |
---|---|---|
registratie/datumAanvang | datum_aanvang | Speciale kolom, mogelijk leeg |
registratie/datumEinde | datum_einde_geldig | Speciale kolom, geen archivering |
vestigingsnummer | sc_identif | PK, extra namespace prefix |
datumVoortzetting | datum_voortzetting | |
nietCommercieleVestiging | typering | 'Niet-commerciele vestiging' |
commercieleVestiging | typering | 'Commerciele vestiging' |
activiteiten/omschrijving | activiteit_omschr | |
activiteiten/import | ||
activiteiten/export | ||
activiteiten/hoofdSbiActiviteit | TODO, koppeltabel maken | |
activiteiten/sbiActiviteit | TODO, koppeltabel maken | |
eersteHandelsnaam | Geen testcase | |
verkorte_naam | Eerste 45 tekens van eersteHandelsnaam (indien aanwezig) of eerste handeltOnder | |
handeltOnder | vestg_naam.naam | 0..n (BRMO 500 lang, NHR 625). In BRMO geen volgorde, is dit belangrijk? |
fulltimeWerkzamePersonen | fulltime_werkzame_mannen | 1) |
fulltime_werkzame_vrouwen | 1) | |
parttimeWerkzamePersonen | parttime_werkzame_mannen | 1) |
parttime_werkzame_vrouwen | 1) | |
totaalWerkzamePersonen | fulltime_werkzame_mannen | 1) |
bezoekLocatie/toevoegingAdres | toevoeging_adres | |
ookGenoemd | Niet in RSGB |
- In het NHR wordt aantal werkzame personen niet uitgesplitst in mannen en vrouwen zoals in RSGB, daarom worden alleen de mannelijke kolommen gevuld. Indien fulltimeWerkzamePersonen en parttimeWerkzamePersonen beide aanwezig zijn worden de fulltime_werkzame_mannen en parttime_werkzame_mannen kolommen gevuld, indien totaalWerkzamePersonen aanwezig is wordt alleen fulltime_werkzame_mannen gevuld.
Relaties vestiging:
NHR element | BRMO kolom | Opmerking |
---|---|---|
wordtUitgeoefendDoor | fk_15ond_kvk_nummer | Foreign key naar onderneming, 1) |
fk_16tgo_identif | Nee, 2) | |
fk_17mac_kvk_nummer | ||
fk_18ves_sc_identif | TODO 'is samengevoegd met' | |
fk_19mac_kvk_nummer | TODO 'is hoofdvestiging van' (wordtGeleidVanuit) | |
activiteit | 3) | |
isBijeengevoegdMet | TODO Wat is het verschil met samengevoegd? |
- fk_15ond_kvk_nummer wordt alleen gehaald uit parent element van vestiging, niet uit wordtUitgeoefendDoor. NHR berichten met Vestiging als hoofdelement van inhoud worden dus niet ondersteund.
- 'heeft hoofdlocatie in of op' als koppeling naar een BAG benoemd_obj is leuk bedacht maar kan niet worden gevuld vanuit de NHR gegevenscatalogus
- Koppeltabel vestg_activiteit(fk_vestg_nummer, fk_sbi_activiteit_code, indicatie_hoofdactiviteit)
Dit werk valt onder een Creative Commons Naamsvermelding-GelijkDelen 2.0 Nederland-licentie.