El cas: una petició d'accés en una gestoria
Exemple Cas il·lustratiu: l'empresa i les seves dades són inventades per explicar el flux.
Asesoría Ribera, una gestoria inventada per a aquest exemple, rep la petició d'una persona que vol saber quines dades seves consten a la facturació d'un client. La responsable de privadesa de la gestoria treballa a Odoo amb VeriFactu Espanya (AEAT RRSIF Compliance) i ha de treure aquesta informació del mòdul.
El botó és a les branques 17, 18, 19 i 20 del mòdul, publicat a Odoo Apps per a aquestes quatre versions. El que segueix descriu el codi d'Odoo 20.0.

Com arriba ella al botó
La fitxa s'obre des de Verifactu / SIF › Privadesa / RGPD › Assistent DSAR (Verifactu / SIF › Privacy / GDPR › DSAR Wizard). Cada tram del menú demana permisos i, si no en tens un, no veus aquell tram: Privadesa / RGPD (Privacy / GDPR) ho veuen Responsable de Privadesa (Privacy Officer) i Gestor SIF (SIF Manager); Verifactu / SIF ho veuen també Comptable (Accountant), Operador d'Assessoria (Asesoría Operator) i Auditor (només lectura) (Auditor (read-only)).
Una vegada a la fitxa, el botó no depèn de cap condició de la vista: es veu a les quatre versions. Els seus passos són aquests:
- Obre el menú i entra a la fitxa de l'
Assistent DSAR. Els camps de la sol·licitud són al grupDetalls de la Sol·licitud(Request Details). - Mira el camp
Empresa(Company). Per defecte porta l'empresa activa, i la cerca només es fa dins l'empresa que hi consti. - Escriu a
NIF / Nom de l'Interessat(Data Subject NIF / Name) el NIF de la persona o el seu nom. - Si la gestoria porta un número d'expedient, l'anota a
Referència de la Sol·licitud(Request Reference). - Prem
Generar Exportació d'Accés (art.15).
El rètol del botó canvia amb l'idioma d'Odoo. Amb Odoo en castellà és Generar Exportación de Acceso (art.15); amb Odoo en català, el de dalt.

Què fa el botó, en ordre
En prémer-lo, el codi fa això, un darrere l'altre:
- Pren el text escrit a
NIF / Nom de l'Interessat, li lleva els espais dels extrems i cerca amb ell a l'empresa triada. - Munta el resultat, que porta el text que vas escriure, el nom de l'empresa i dues llistes: els registres i les anul·lacions trobats.
- Desa aquest resultat com a fitxer JSON a l'assistent, amb el nom
dsar_access_export_seguit dels primers vint caràcters del que vas escriure i l'extensió.json. - Intenta generar a més un PDF (més avall, què fa el codi si no surt).
- Registra un esdeveniment (següent secció).
- Torna a obrir la mateixa fitxa de l'assistent en una finestra emergent, amb el mateix registre.
El codi descriu aquesta extracció com una lectura dels camps de dades personals sense alterar cap registre de la cadena.
Què cerca i què exporta
| Bloc | On cerca | Quines dades n'extreu |
|---|---|---|
| Registres | Identificador o nom de la contrapart | Número de sèrie, data d'expedició, nom, tipus d'identificador, identificador i total |
| Anul·lacions | Només l'identificador de la contrapart | Número de sèrie, data d'expedició i identificador |
La coincidència és «conté», sense distingir majúscules. Si Asesoría Ribera escriu només un tros d'un nom, entren tots els registres d'aquella empresa el nom o identificador dels quals contingui aquest tros. I si escriu un nom, les anul·lacions no es busquen per ell, només per identificador.
Què queda registrat
Després de generar el fitxer, el botó crea un esdeveniment al registre d'esdeveniments del mòdul, per a l'empresa triada. L'esdeveniment porta la data i hora, l'usuari que va prémer el botó, una descripció amb el NIF o nom escrit, el NIF o nom i la referència de la sol·licitud com a context (la referència queda buida si no la vas omplir), una empremta calculada sobre aquestes dades i un número de seqüència propi de l'empresa.
La referència de la sol·licitud viatja a l'esdeveniment; el fitxer JSON de l'exportació no l'inclou. I l'ordre importa: si la generació del fitxer s'atura amb un error, el codi no arriba a registrar l'esdeveniment.
Altres accions que deixen esdeveniments
L'esdeveniment del botó no és l'únic que es registra d'aquesta manera. En desar la fitxa d'una empresa, si s'ha canviat l'entorn de l'AEAT, el responsable del SIF o l'àmbit de VeriFactu, també queda un esdeveniment. A més, el botó estàndard de cancel·lar una factura, que el mòdul amplia, i la tasca programada Verifactu: Comprovació del Desfasament del Rellotge (Verifactu: Clock Drift Check), que corre cada hora i està activa en instal·lar, arriben a aquest mateix registre. Per al que el mòdul afegeix a les factures, mira aquest article.
El PDF que intenta desar el codi
A més del JSON, el codi intenta generar un PDF amb el mateix assistent i, si ho aconsegueix, el desa amb el nom dsar_access_export_ més els primers vint caràcters del que s'ha escrit i l'extensió .pdf. Si aquesta generació falla, el codi captura l'error, anota un avís al registre del servidor i continua amb el JSON i l'esdeveniment.
Què aprendre del cas
- Confirma el camp
Empresaabans de prémer: la cerca es limita a ella. - Escriu el NIF complet quan el tinguis; un nom parcial pot portar més registres dels esperats, i les anul·lacions només surten per identificador.
- Anota la
Referència de la Sol·licitudsi vols que l'esdeveniment la porti: el JSON exportat no la inclou.
Com ajuda FlexigoTech
FlexigoTech implanta Odoo 17, 18, 19 i 20 i desenvolupa connectors i integracions a mida. Si vols revisar qui ha de tenir els permisos del menú de privadesa, o ajustar el mòdul al vostre procés, escriu-nos.
Continua llegint
Comprovat al codi del mòdul (versió 20.0) i a les fonts enllaçades
Fonts
- Codi del mòdul: flexigo_spain_verifactu 20.0 (1fdc980f): wizards/verifactu_dsar_wizard_views.xml
- Codi del mòdul: flexigo_spain_verifactu 20.0 (1fdc980f): wizards/verifactu_dsar_wizard.py
- Codi del mòdul: flexigo_spain_verifactu 20.0 (1fdc980f): models/res_company.py
- apps.odoo.com/apps/modules/20.0/flexigo_spain_verifactu
- flexigotech.com/en/services.html
