Mae cwmni sy’n gwsmer wedi symud ymlaen, mae’r contract wedi dod i ben, ac rydych am ei archifo yn Odoo. Mae Odoo yn ymateb â neges gwall: “Ni allwch archifo cysylltiadau sy’n gysylltiedig â defnyddiwr gweithredol. Archifwch y defnyddiwr cysylltiedig yn gyntaf.” Os oes gan y cwmni sawl cyfrif porth, mae hynny’n golygu chwilio am bob defnyddiwr ar wahân, ei archifo ar wahân, dychwelyd at y cwmni, a rhoi cynnig arall ar ei archifo.
I ddatrys hyn, rydym wedi ysgrifennu’r modiwl bach Archifo cwmni ynghyd â’i ddefnyddwyr porth (partner_archive_users) ar gyfer Odoo 19. Yn lle’r neges gwall, ceir cais am gadarnhad, ac os dewisir “Ydw”, caiff y defnyddwyr porth a’r cwmni eu harchifo mewn un cam. Mae’r modiwl ar gael fel meddalwedd rydd o dan y drwydded AGPL-3 ar GitHub:
github.com/Alex0176/odoo-partner-archive-users
Rydym yn defnyddio’r modiwl yn system gynhyrchu Biricon IT Services ers 3 Tachwedd 2026. Mae’n newydd, felly prin yw ein profiad ohono hyd yma. Dylai unrhyw un sy’n ei fabwysiadu ddarllen yr adrannau ar Gwmpas a Chyfyngiadau .
Y broblem yn Odoo safonol
Wrth archifo cyswllt, mae Odoo yn gwirio a oes defnyddiwr yn gysylltiedig ag ef, ac yn atal y weithred os oes. Mae’r gwiriad yn gwneud synnwyr, gan fod angen cyswllt ar bob defnyddiwr. Ar gyfer defnyddwyr mewnol, sef gweithwyr, mae’r rhwystr hwn yn fwriadol hefyd. Ond yn achos defnyddwyr porth cwsmeriaid, mae’n golygu gwaith llaw yn bennaf. Mae angen dilyn yr un camau wrth archifo pob cwmni sy’n gwsmer ac sydd â mynediad i’r porth, er enghraifft i weld anfonebau a thocynnau cymorth:
- dod o hyd i ddefnyddwyr y cwmni a’i bobl gyswllt,
- archifo pob un ar wahân,
- dychwelyd at y cwmni,
- archifo’r cwmni.
Yr ateb: cais am gadarnhad
Mae’r modiwl yn ymestyn y weithred Gweithred → Archifo ar y cyswllt, yn y ffurflen ac yn y rhestr. Os oes defnyddwyr porth gweithredol yn gysylltiedig â’r cwmni a ddewiswyd neu â’i bobl gyswllt, mae blwch deialog yn agor gyda’r cwestiwn “Ydych chi’n siŵr eich bod am archifo’r cwmni? Mae defnyddwyr gweithredol yn y system o hyd.” O dan y cwestiwn, rhestrir y defnyddwyr dan sylw gyda’u henwau, eu henwau mewngofnodi a’u cysylltiadau.
- Ydw, archifo’r cwmni a’r defnyddwyr: Caiff y defnyddwyr eu harchifo yn gyntaf, ac yna’r cwmni.
- Canslo: Nid oes dim yn newid.
- Dim defnyddwyr porth: Mae Odoo yn ymddwyn fel o’r blaen, ac nid oes blwch deialog yn ymddangos.
Beth sy’n cael ei archifo a beth sydd ddim
Mae’r cwmpas wedi’i gyfyngu’n fwriadol:
- Dim ond defnyddwyr porth a defnyddwyr cyhoeddus (
share = True). Ni chaiff defnyddwyr mewnol byth eu harchifo drwy’r llwybr hwn. Os oes cyfrif gweithiwr yn gysylltiedig â’r cyswllt, mae neges gwall Odoo yn dal i ymddangos. Fel hyn, ni fydd neb yn rhwystro gweithiwr ar ddamwain drwy archifo cwmni. - Mae pobl gyswllt yn aros yn weithredol fel cysylltiadau. Dim ond eu cyfrifon porth sy’n cael eu harchifo. Mae hyn yn cyfateb i ymddygiad safonol Odoo, nad yw chwaith yn newid is-gysylltiadau wrth archifo cwmni.
- Dim ond y weithred Archifo yn y rhyngwyneb. Mae galwad uniongyrchol i
write({'active': False}), er enghraifft mewn mewnforiad neu sgript, yn dal i fynd drwy wiriad Odoo fel o’r blaen.
Gweithrediad technegol
Nid yw’r modiwl yn ychwanegu meysydd newydd at fodelau presennol. Mae’n cynnwys estyniad i res.partner.action_archive a dewin (partner.archive.users.wizard) sy’n ymddangos fel blwch deialog.
| Cydran | Swyddogaeth |
|---|---|
action_archive ar y cyswllt | Yn chwilio am ddefnyddwyr gweithredol â share = True sy’n gysylltiedig â’r cyswllt neu, yn achos cwmnïau, â chysylltiadau’r cwmni. Os oes rhai, dychwelir y blwch deialog yn lle archifo. |
| Dewin | Yn storio’r cwmni a’r defnyddwyr a ganfuwyd, yn eu dangos ac, os dewisir “Ydw”, yn cyflawni’r archifo gyda’r allwedd cyd-destun archive_linked_users. |
Cyd-destun skip_archive_users_wizard | Yn diffodd y blwch deialog. Yna mae gwiriad Odoo yn berthnasol eto. |
| Mynediad | Gall defnyddwyr mewnol (base.group_user) greu a defnyddio’r dewin. |
| Cyfieithiad | Mae cyfieithiad Almaeneg (de.po) a thempled (.pot) wedi’u cynnwys. |
Defnyddir breintiau uwch i chwilio am y defnyddwyr ac i’w harchifo (sudo). Mae hyn yn galluogi’r blwch deialog i weithio hefyd ar gyfer defnyddwyr heb fynediad at reoli defnyddwyr. Disgrifir yr anfantais o dan Chyfyngiadau.
Darganfyddiad: pasiodd y prawf, ond roedd y blwch deialog wedi torri o hyd
Roedd gwall yn y modiwl pan gafodd ei ddefnyddio gyntaf, ac ni chafodd ei ganfod gan y profion awtomatig. Ar y clic cyntaf ar “Archifo” yn y rhyngwyneb, ymddangosodd sgrin gwall Odoo yn lle’r blwch deialog, gyda Cannot read properties of undefined (reading 'map').
Yr achos: mae’r cleient gwe yn galw action_archive yn uniongyrchol ac yn cyflawni gweithred a ddychwelir heb unrhyw brosesu pellach. Wrth wneud hynny, rhaid iddo ddarllen allwedd views y weithred. Dim ond view_mode oedd gan ein gweithred ni. Mae’r gweinydd yn cwblhau gweithredoedd o fotymau â type="object" ymlaen llaw (clean_action yn call_button), ond nid yw’n gwneud hynny ar gyfer galwad uniongyrchol i action_archive. Dim ond yn Python yr oedd y profion yn galw’r dull, ac ni ddaeth y maes coll i’r amlwg yno.
Un llinell yw’r ateb ("views": [(False, "form")]), ynghyd â gwiriad yn y prawf sy’n mynnu bod yr union allwedd hon yn bresennol. Ni chafodd dim ei archifo yn ystod y gwall. Y wers: wrth ddychwelyd gweithred o ddull y mae’r cleient yn ei alw’n uniongyrchol (action_archive, action_unarchive a dulliau tebyg), dylid cynnwys views bob amser.
Gosod
git clone https://github.com/Alex0176/odoo-partner-archive-users.git
ln -s /pfad/odoo-partner-archive-users/partner_archive_users /pfad/addons/
odoo-bin -c odoo.conf -d <datenbank> -i partner_archive_users --stop-after-init
Y dibyniaethau yw base a contacts. Ar ôl gosod, rhaid ailgychwyn gwasanaeth Odoo gan fod y modiwl yn cynnwys cod Python. Os ydych yn rhedeg system gynhyrchu, gosodwch y modiwl ar gopi o’r gronfa ddata yn gyntaf.
Chyfyngiadau
- Caniatadau. Gan fod y defnyddwyr yn cael eu harchifo â breintiau uwch, gall unrhyw un sydd â chaniatâd i archifo cyswllt hefyd archifo cyfrifon porth y cwmni hwnnw drwy’r blwch deialog. Nid yw hyn yn berthnasol i ddefnyddwyr mewnol. Os oes angen rheolaeth fanylach dros gyfrifon porth, rhaid addasu’r modiwl.
- Dim adfer awtomatig. Os caiff y cwmni ei ailysgogi’n ddiweddarach, bydd y defnyddwyr yn aros wedi’u harchifo. Rhaid eu hailysgogi â llaw.
- Cysylltiadau yn unig. Mae’r modiwl yn ymwneud â chwmnïau fel cysylltiadau (
res.partner). Mae archifo cwmni Odoo (res.company) yn cynnwys gwiriadau gwahanol, er enghraifft os yw’n dal i fod yn gwmni diofyn defnyddwyr. Nid yw’r modiwl wedi’i fwriadu ar gyfer hynny. - Dim ond gydag Odoo 19.0 Community y profwyd ef. Nid ydym wedi’i wirio ar gyfer fersiynau eraill.
Cwestiynau cyffredin
Pam nad yw gweithwyr yn cael eu harchifo hefyd?
Mae gan ddefnyddiwr mewnol hawliau yn y system ac fel arfer mae’n gysylltiedig â’i ddata, ei dasgau a’i ganiatadau ei hun. Yn ein barn ni, mae ei rwystro fel sgil-effaith i archifo cwmni yn ormod o risg. Felly, mae neges gwall Odoo yn parhau yn yr achos hwnnw.
A allaf ddiffodd y cais am gadarnhad?
Yn y cod, drwy’r cyd-destun skip_archive_users_wizard. Nid oes gosodiad yn y rhyngwyneb. Mae dadosod y modiwl yn adfer ymddygiad safonol Odoo.
O dan ba drwydded y mae ar gael?
O dan AGPL-3. Mae croeso i adroddiadau am wallau ac awgrymiadau am welliannau fel materion yn yr ystorfa GitHub .
Cymorth gan Biricon IT Services
Rydym yn gofalu am osodiadau Odoo ar gyfer busnesau bach a chanolig: o’u cyflwyno, drwy addasiadau a mudo, i’w gweithredu o ddydd i ddydd. Os ydych am symleiddio prosesau fel archifo cwmnïau sy’n gwsmeriaid yn Odoo, sefydlu porth ar gyfer eich cwsmeriaid neu gyflwyno modiwl yn ddiogel i’ch amgylchedd cynhyrchu, byddwn yn falch o helpu. Datblygiadau mewnol eraill: Rhifau dogfennau o ragddodiad, blwyddyn a rhifydd, Cofrestr gwmnïau a gwirio cyfeiriadau ar gyfer cwsmeriaid o Awstria a Setiau cynhyrchion fel adran yn y dyfynbris.
Diweddarwyd: 3 Tachwedd 2026. Fersiwn y modiwl: 19.0.1.0.0 gyda’r cywiriad o’r un diwrnod. Mae’r holl enwau ac enwau mewngofnodi yn y delweddau wedi’u dewis at ddibenion enghreifftiol.