ir.cron¶
** Создание автоматизированных действий в Odoo **
Планировщики - это автоматизированные действия, которые выполняются автоматически в течение определенного периода времени и могут выполнять множество задач. Они дают возможность выполнять действия базы данных без необходимости ручного взаимодействия. Odoo облегчает запуск фонового задания: просто вставьте запись в таблицу `` ir.cron`` и Odoo выполнит ее в соответствии с определением.
** 1. Создание модели и метод этой модели. **
class model_name(models.Model):
_name = "model.name"
# fields
def method_name(self, cr, uid, context=None): # method of this model
# your code
** 2. Создание автоматизированного действия **
`Если вы хотите создавать новые модули в руководствах от Odoo, вы должны добавить код для автоматизированного действия в yourDefaultModule / data / в отдельный файл XML.
При использовании автоматических действий важно отметить, что они всегда должны быть определены в поле noupdate, поскольку их не следует обновлять при обновлении модуля.
<openerp>
<data noupdate="1">
<record id="unique_name" model="ir.cron">
<field name="name">Name </field>
<field name="active" eval="True" />
<field name="user_id" ref="base.user_root" />
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field name="doall">1</field>
<!--<field name="nextcall" >2016-12-31 23:59:59</field>-->
<field name="model" eval="'model.name '" />
<field name="function" eval="'method_name '" />
<field name="args" eval="" />
<!--<field name="priority" eval="5" />-->
</record>
</data>
</openerp>
Первое, что вы заметите, это data `` noupdate = "1" ``, это говорит Odoo, что весь код в этом теге не должен обновляться при обновлении вашего модуля.
<record id="unique_name" model="ir.cron">
Идентификатор является уникальным идентификатором для Odoo, чтобы знать, какая запись связана с каким идентификатором. Модель под названием ("ir.cron") - это модель, специально созданная Odoo для всех автоматизированных действий. Эта модель содержит все автоматизированные действия и всегда должна быть указана.
<field name="name">Name </field>
Следующая строка - это имя.
<field name="active" eval="True" />
Логическое значение, указывающее, активно ли задание cron.
<field name="user_id" ref="base.user_root"/>
Этот идентификатор пользователя относится к конкретному пользователю, в большинстве случаев это будет base.user_root.
<field name="interval_number">1</field>
Количество раз, которое планировщик должен быть вызван на основе "interval_type"
<field name="interval_type">days</field>
Интервальный блок.
В списке должно быть одно значение: `` minutes``, `` hours``, `` days``, `` days``, `` months``.
<field name="numbercall">-1</field>
Целочисленное значение, указывающее, сколько раз задание выполняется. Отрицательное значение означает отсутствие ограничений.
<field name="doall">1</field>
Логическое значение, указывающее, следует ли выполнять пропущенные вхождения при перезапуске сервера.
<field name="nextcall" >2016-12-31 23:59:59</field> <!-- notice the date/time format -->
Следующая запланированная дата выполнения для этой работы.
<field name="model" eval="'model.name '" />
Поле `` модель`` указывает, по какой модели должно вызываться автоматическое действие.
<field name="function" eval="'method_name '" />
Имя метода, вызываемого при обработке этого задания.
<field name="args" eval="" />
Аргументы для передачи в метод.
<field name="priority" eval="5" />
Приоритет задания, как целое число: 0 означает более высокий приоритет, 10 означает более низкий приоритет.
** Значения по умолчанию. **
имя | Определение |
---|---|
nextcall | `` лямбда * a: time.strftime (DEFAULT_SERVER_DATETIME_FORMAT`` |
приоритет | 5 |
ID пользователя | `` лямбда-объект, cr, uid, context: uid`` |
interval_number | 1 |
interval_type | месяцы |
numbercall | 1 |
активный | 1 |
сделай все | 1 |