# HG changeset patch # User Vincent Hatakeyama <vincent.hatakeyama@xcg-consulting.fr> # Date 1584012190 -3600 # Thu Mar 12 12:23:10 2020 +0100 # Node ID 9559e8b292df9bef3fc6fd79d12e0d62c3714dd5 # Parent 1e540bc281fb2c922b05239251e21e756b25da44 ✨ improve error handling in import_jsonrpc to help finding problems in import file diff --git a/odoo_scripts/import_jsonrpc.py b/odoo_scripts/import_jsonrpc.py --- a/odoo_scripts/import_jsonrpc.py +++ b/odoo_scripts/import_jsonrpc.py @@ -7,6 +7,8 @@ import sys from typing import Callable, Dict, List, Tuple, Union +from odoorpc.error import RPCError + from . import logging_from_verbose, odoo_connect_parser, odoo_login from .importing import add_importing_file_parsing, extract_info_from_parsed @@ -54,6 +56,8 @@ imf_ids = imf.search( [("model", "=", model), ("name", "=", field_name)] ) + if not imf_ids: + raise Exception("No field {} in {}".format(field_name, model)) return imf.browse(imf_ids)[0] def _convert_identity(value): @@ -157,11 +161,19 @@ write_id = _ref(xmlid, False) if write_id: _logger.debug("Write %s (%d)", model, write_id) - o.env[model].write(write_id, values) + try: + o.env[model].write(write_id, values) + except RPCError: + _logger.error("Current values: %s", values) + raise wrote.append(write_id) else: _logger.debug("Creating a %s", model) - created_id = o.env[model].create(values) + try: + created_id = o.env[model].create(values) + except RPCError: + _logger.error("Current values: %s", values) + raise created.append(created_id) if xmlid: _logger.debug(