| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/edi |
| GIT | |
| GIT | https://github.com/OCA/edi.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/edi/tree/13.0/edi |
| VERSION | |
| VERSION | 1.24.0 |
| CATEGORY | |
| CATEGORY | Uncategorized |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), ACSONE |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), ACSONE |
| COMMITTERS | |
| COMMITTERS | Enric Tobella, Lois Rilo, JordiMForgeFlow, oca-travis, OCA-git-bot, Simone Orsi, oca-ci, Alba Riera, Jaume Bernaus |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/edi |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:13 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/connector: - component_event - component OCA/edi: - base_edi OCA/queue: - queue_job odoo/odoo: - base - base_setup - web - bus - web_tour - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
pyyaml cachetools requests |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
assets_backend |
assets_backend | ir.ui.view | qweb | Inherits web.assets_backend |
edi_backend_type_view_form |
edi.backend.type | form | New | |
edi_backend_type_view_search |
edi.backend.type | search | New | |
edi_backend_type_view_tree |
edi.backend.type | tree | New | |
edi_backend_view_form |
edi.backend | form | New | |
edi_backend_view_search |
edi.backend | search | New | |
edi_backend_view_tree |
edi.backend | tree | New | |
edi_exchange_consumer_mixin_buttons |
edi_exchange_consumer_mixin_buttons | ir.ui.view | qweb | New |
edi_exchange_record_create_form_view |
edi.exchange.record.create.form (in edi) | edi.exchange.record.create | form | New |
edi_exchange_record_view_form |
edi.exchange.record | form | New | |
edi_exchange_record_view_search |
edi.exchange.record | search | New | |
edi_exchange_record_view_tree |
edi.exchange.record | tree | New | |
edi_exchange_type_view_form |
edi.exchange.type | form | New | |
edi_exchange_type_view_search |
edi.exchange.type | search | New | |
edi_exchange_type_view_tree |
edi.exchange.type | tree | New | |
message_edi_exchange_link |
message_edi_exchange_link | ir.ui.view | qweb | New |
active
Boolean
default=True
backend_type_id
Many2one → edi.backend.type
comodel_name='edi.backend.type'
ondelete='restrict'
required=True
string='EDI Backend type'
name
Char
required=True
output_sent_processed_auto
Boolean
help='\n Automatically set the record as processed after sending.\n Usecase: the web service you send the file to processes it on the fly.\n '
create_record(self, type_code, values)
exchange_create_ack_record(self, exchange_record)
exchange_generate(self, exchange_record, store=True, force=False, **kw)
exchange_process(self, exchange_record)
exchange_receive(self, exchange_record)
exchange_record_model(self)
exchange_send(self, exchange_record)
code
Char
inverse='_inverse_code'
required=True
name
Char
required=True
No public methods.
edi_auto_disabled
Boolean
help='When marked, EDI could be avoided'
readonly=True
exchange_record_count
Integer
compute='_compute_exchange_record_count'
exchange_record_ids
One2many → edi.exchange.record
domain=<expr>
inverse_name='res_id'
args: 'edi.exchange.record'
has_expected_edi_configuration
Boolean
compute='_compute_expected_edi_configuration'
action_view_edi_records(self)
edi_create_exchange_record(self, exchange_type_id)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_edi_access(self, doc_ids, operation, model_name=False)
ack_exchange_id
Many2one → edi.exchange.record
comodel_name='edi.exchange.record'
compute='_compute_ack_exchange_id'
help='ACK for this exchange'
store=True
string='ACK exchange'
ack_expected
Boolean
compute='_compute_ack_expected'
ack_received_on
Datetime
related='ack_exchange_id.exchanged_on'
string='ACK received on'
backend_id
Many2one → edi.backend
comodel_name='edi.backend'
required=True
direction
Selection
related='type_id.direction'
edi_exchange_state
Selection
default='new'
readonly=True
selection=[('new', 'New'), ('validate_error', 'Error on validation'), ('output_pending', 'Waiting to be sent'), ('output_error_on_send', 'error on send'), ('output_sent', 'Sent'), ('output_sent_and_processed', 'Sent and processed'), ('output_sent_and_error', 'Sent and error'), ('input_pending', 'Waiting to be received'), ('input_received', 'Received'), ('input_receive_error', 'Error on reception'), ('input_processed', 'Processed'), ('input_processed_error', 'Error on process')]
string='Exchange state'
exchange_error
Text
readonly=True
string='Exchange error'
exchange_file
Binary
attachment=True
exchange_file_auto_generate
Boolean
related='type_id.exchange_file_auto_generate'
exchange_filename
Char
compute='_compute_exchange_filename'
readonly=False
store=True
exchanged_on
Datetime
compute='_compute_exchanged_on'
help='Sent or received on this date.'
readonly=False
store=True
string='Exchanged on'
external_identifier
Char
index=True
readonly=True
identifier
Char
index=True
readonly=True
required=True
model
Char
index=True
readonly=True
required=False
name
Char
compute='_compute_name'
parent_id
Many2one → edi.exchange.record
comodel_name='edi.exchange.record'
help='Original exchange which originated this record'
related_exchange_ids
One2many → edi.exchange.record
comodel_name='edi.exchange.record'
inverse_name='parent_id'
string='Related records'
res_id
Many2oneReference
index=True
model_field='model'
readonly=True
required=False
string='Record'
retryable
Boolean
compute='_compute_retryable'
help='The record state can be rolled back manually in case of failure.'
type_id
Many2one → edi.exchange.type
auto_join=True
comodel_name='edi.exchange.type'
ondelete='cascade'
required=True
string='Exchange type'
action_exchange_generate(self)
action_exchange_process(self)
action_exchange_receive(self)
action_exchange_send(self)
action_open_related_exchanges(self)
action_open_related_record(self)
action_retry(self)
check_access_rule(self, operation)
create(self, vals)
name_get(self)
needs_ack(self)
read(self, fields=None, load='_classic_read')
record(self)
write(self, vals)
backend_id
Many2one → edi.backend
required=True
args: 'edi.backend'
backend_type_id
Many2one → edi.backend.type
related='exchange_type_id.backend_type_id'
args: 'edi.backend.type'
exchange_type_id
Many2one → edi.exchange.type
required=True
args: 'edi.exchange.type'
model
Char
required=True
res_id
Integer
required=True
create_edi(self)
ack_type_id
Many2one → edi.exchange.type
comodel_name='edi.exchange.type'
help='Identify the type of the ack. If this field is valued it means an hack is expected.'
ondelete='set null'
string='Ack exchange type'
advanced_settings_edit
Text
help='\n Advanced technical settings as YAML format.\n The YAML structure should reproduce a dictionary.\n The backend might use these settings for automated operations.\n\n Currently supported conf:\n\n components:\n generate:\n usage: $comp_usage\n work_ctx:\n opt1: True\n validate:\n usage: $comp_usage\n check:\n usage: $comp_usage\n send:\n usage: $comp_usage\n receive:\n usage: $comp_usage\n process:\n usage: $comp_usage\n\n In any case, you can use these settings\n to provide your own configuration for whatever need you might have.\n '
string='Advanced YAML settings'
backend_id
Many2one → edi.backend
comodel_name='edi.backend'
ondelete='set null'
string='Backend'
backend_type_id
Many2one → edi.backend.type
comodel_name='edi.backend.type'
ondelete='restrict'
required=True
string='Backend type'
code
Char
required=True
direction
Selection
required=True
selection=[('input', 'Input'), ('output', 'Output')]
enable_domain
Char
help='Filter domain to be checked on Models'
string='Enable on domain'
enable_snippet
Char
help='Snippet of code to be checked on Models,\n You can use `record` and `exchange_type` here.\n It will be executed if variable result has been defined as True\n '
string='Enable on snippet'
exchange_file_auto_generate
Boolean
help='Auto generate output for records missing their payload. If active, a cron will take care of generating the output when not set yet. '
exchange_file_ext
Char
exchange_filename_pattern
Char
default='{record_name}-{type.code}-{dt}'
job_channel_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
model_ids
Many2many → ir.model
help='Modules to be checked for manual EDI generation'
args: 'ir.model'
name
Char
required=True
get_settings(self)