У меня три оператора EXECUTE, выполняющиеся с использованием psycopg2
. Первый INSERT видим после обновлений, а третий INSERT видим, но второй INSERT не происходит.
OpenERP
дает моей функции открытый курсор, который я использую для всех трех операторов;OpenERP
затем фиксирует после того, как моя функция возвращается. Я пытался поймать любые исключения (их нет), я пытался использовать отладочные отпечатки, чтобы найти подсказки (нет) - есть идеи? Ниже приведены утверждения.
работает:
cr.execute("""\
INSERT INTO ir_act_report_xml
(
id, header, report_type, type, model, name, report_name,
create_uid, create_date, write_uid, write_date,
auto, multi, attachment_use
)
VALUES
(
%s, 't', 'pdf', 'ir.actions.report.xml', '%s', '%s', '%s',
1, now() AT TIME ZONE 'UTC', 1, now() AT TIME ZONE 'UTC',
false, false, false
)
"""
% (action_id, model_name, title_name, report_xml_id)
)
не работает, ошибок не дано
cr.execute("""\
INSERT INTO ir_model_data
(
module, name, model, res_id, date_init, date_update,
create_uid, create_date, write_uid, write_date,
noupdate
)
VALUES
(
'%s', '%s', '%s', %s, now() AT TIME ZONE 'UTC', now() AT TIME ZONE 'UTC',
1, now() AT TIME ZONE 'UTC', 1, now() AT TIME ZONE 'UTC',
false
)
"""
% (module, imd_xml_id, model_name, action_id)
)
работает:
cr.execute("""\
INSERT INTO ir_values
(
id, key, key2, value, model, name, res_id,
create_uid, create_date, write_uid, write_date
)
VALUES
(
%s, 'action', 'client_print_multi', 'ir.actions.report.xml,%s', '%s', '%s', 0,
1, now() AT TIME ZONE 'UTC', 1, now() AT TIME ZONE 'UTC'
)
"""
% (iv_id, action_id, model_name, title_name),
)
Всетри обрабатываются последовательно без промежуточных фиксаций или отката.