Код: Выделить всё
tally_connectНа данный момент я создал только DocTypes (пока нет логики Python), и мне нужны отзывы о дизайне и о том, как соединить их с помощью перехватчиков и фоновых заданий.
Цель приложения — интегрировать ERPNext с Tally (основные элементы и транзакции) с полным протоколированием и повторными попытками.
Текущие типы документов
- Настройки интеграции Tally (отдельные, в модуле «Tally Connect»)
- Содержит глобальную конфигурацию:
URL-адрес/порт Tally - Название компании Tally и ссылку на компанию ERPNext
- Настройки повторных попыток (включить автоматический повтор, максимальное количество попыток, интервалы)
- Дни хранения данных
- Содержит глобальную конфигурацию:
- Имеет дочернюю таблицу Сопоставление полей подсчета.
- Сопоставление полей подсчета (дочерняя таблица)
- Поля, подобные: [/b],
Код: Выделить всё
erpnext_field[/b],Код: Выделить всё
tally_xml_tag[/b] (ПРЯМОЙ/ПРОСМОТР),Код: Выделить всё
transformation_type[/b],Код: Выделить всё
lookup_json[/b].Код: Выделить всё
default_value - В дальнейшем он будет использоваться разработчиком XML для сопоставления документов ERPNext с Tally XML без полей жесткого кодирования.
- Поля, подобные:
- Журнал синхронизации (главный)
- Предназначен для хранения одного строка на попытку синхронизации с:
[/b],Код: Выделить всё
document_type[/b],Код: Выделить всё
document_name[/b] (МАСТЕР/ТРАНЗАКЦИЯ),Код: Выделить всё
sync_type[/b] (В очереди/Выполнение/Успех/Ошибка)Код: Выделить всё
sync_status - метки времени, [/b],
Код: Выделить всё
error_message[/b],Код: Выделить всё
retry_count[/b]Код: Выделить всё
max_retries - снимки полезной нагрузки: [/b],
Код: Выделить всё
erpnext_data_snapshot[/b],Код: Выделить всё
request_xml[/b].Код: Выделить всё
response_xml
- Предназначен для хранения одного строка на попытку синхронизации с:
- Tally Retry Job (Master)
- Предназначается как очередь планировщика:
[/b] ссылкаКод: Выделить всё
sync_log - [/b]
Код: Выделить всё
document_reference - [/b],
Код: Выделить всё
scheduled_retry_time[/b],Код: Выделить всё
retry_attempt_number[/b],Код: Выделить всё
max_retry_attempts[/b] (ожидание/обработка/успех/не удалось),Код: Выделить всё
retry_status[/b].Код: Выделить всё
previous_error
- Предназначается как очередь планировщика:
Что я планирую создать дальше
- События документа:
[/b] иКод: Выделить всё
Customer.after_insert[/b] должен создатьКод: Выделить всё
Sales Invoice.on_submit[/b] строку и поставьте в очередь фоновое задание для отправки XML в Tally.Код: Выделить всё
Tally Sync Log
- Чтение [/b], использует
Код: Выделить всё
Tally Integration Settings[/b] строки для построения XML, публикации в Tally, обновленияКод: Выделить всё
Tally Field Mapping[/b].Код: Выделить всё
Tally Sync Log - При ошибке создается [/b] строка.
Код: Выделить всё
Tally Retry Job
- Каждые 5 минут ожидается чтение [/b] записывает, где
Код: Выделить всё
Tally Retry JobКод: Выделить всё
scheduled_retry_time Подробнее здесь: [url]https://stackoverflow.com/questions/79843662/how-to-design-frappe-custom-app-tally-integration-around-4-doctypes-before-wri[/url]
Мобильная версия