common-gateway/xxllnc-zgw-bundle
The XxllncZGWBundle is a Symfony bundle that provides functionality for the CommonGateway about handling synchronizations between the xxllnc zaaksysteem standard and the ZGW standard. So it fetches and send xxllnc objects from and to their ZGW object equilevants.
For more information on ZaakGerichtWerken and XXLNC, please visit here
The XxllncZGWBundle currently utilizes the following bundles:
While the ZGW and CoreBundle can still be installed as standalone components (please refer to their respective installation guides), the XxllncZGWBundle now defaults to installing these bundles as additional plugins on the same gateway.
The XxllncZGWBundle backend codebase utilizes the Common Gateway as an open-source installation framework. This means that the XxllncZGWBundle library, in its core form, functions as a plugin on this Framework. To learn more about the Common Gateway, you can refer to the documentation here.
The CommonGateway Gateway UI frontend comes with te CommonGateway.
To install the backend, follow the steps below:
Open a php terminal and run the following command to install the XxllncZGWBundle:
```cli
$ composer require common-gateway/xxllnc-zgw-bundle
```
To load all the data without any specific content (like testdata), execute the following command:
```cli
$ bin/console commongateway:initialize
```
OR
To load all the data along with specific content (like testdata), run:
```cli
$ bin/console commongateway:initialize -data
```
With these steps completed, the backend setup for the XxllncZGW project should be ready to use. If you encounter any issues during the installation process, seek assistance from the development team. Happy coding!
Once the backend is up and running, the XxllncZGWBundle can be configured. To ensure proper functionality, the sources and Security Group (Default Anonymous user) need to be modified. Other adjustments are optional.
Users
Security Group
Sources
Cronjob
Once you have completed these steps, the XxllncZGW Gateway UI should be fully configured and the project is ready to be used.
To execute commands you need access to a PHP terminal.
There are some commands which can be used to synchronize some single or all objects from the xxllnc api. The first you might want to use is the ZaakTypeCommand, it synchronizes a casetype to a ZGW ZaakType:
$ bin/console xxllnc:zaakType:synchronize id
If you need a certain case to a ZGW ZaakType you can also just execute the ZaakCommand and it will also synchronize its casetype to a ZGW ZaakType:
$ bin/console xxllnc:zaak:synchronize id
If you synchronized some zaaktypen and want to synchronize some specific besluittypen and link these to your earlier synchronized zaaktypen, you can first synchronize the casetypes to besluittypen with the ZaakTypeCommand (it will auto detect if its a ZaakType or BesluitType):
$ bin/console xxllnc:zaakType:synchronize id
And then you can link them to your earlier synchronized zaaktypen as besluittypen with the following command:
$ bin/console xxllnc:zaakType:connect:besluittype
These are all current commands, you can fetch your synchronized objects through the ZGW standard endpoints:
/api/zrc/v1/zaken
/api/ztc/v1/zaaktypen
/api/ztc/v1/besluittypen
There are a lot of objects being synced from and to the xxllnc zaaksysteem to zgw objects. Here is a table of them.
Syncs from the zaaksysteem:
| ZGW | Zaaksysteem | Mapping |
|---|---|---|
| BesluitType | casetype | View on GitHub |
| ZaakType | casetype | View on GitHub |
| StatusType | phase | View on GitHub |
| RolType | role | View on GitHub |
| ResultaatType | result | View on GitHub |
| Eigenschap | field | View on GitHub |
| InformatieObjectType | field | View on GitHub |
| Zaak | case | View on GitHub |
| Status | milestone | View on GitHub |
| Resultaat | outcome | View on GitHub |
| Rol | role.requestor | View on GitHub |
| ZaakEigenschap | attribute | View on GitHub |
| InformatieObject | document | View on GitHub |
All above synchronizations are triggered by cronjob or command. Note that all child objects you see from Zaak and ZaakType are synced during synchronization of Zaak or ZaakType. Also read commands on how to execute certain synchronizations.
Syncs to the zaaksysteem:
| Zaaksysteem | ZGW | Trigger | Mapping |
|---|---|---|---|
| case | Zaak | POST/PUT /zrc/zaken | View on GitHub |
| case | Besluit | POST/PUT /brc/besluiten | View on GitHub |
| document | InformatieObject | POST/PUT /zrc/zaken/id/zaakinformatieobject | View on GitHub |
Note: casetypes can't be created yet on the zaaksysteem api so we do not sync back ZaakTypen.
Special noted decisions made in this project are:
How can I help you explore Laravel packages today?