03.05.2017, 13:02 | #1 |
Участник
|
AX2012R3: задание P-0001: Проводки канала
Доброго времени суток!
Установлено: HQ: AX2012R3, MSSQL2012 Store: POS 6.3.00, MSSQL2008 Обмены с магазинами в части проводок магазинов настроены 1 раз в час. Далее в рамках этого часа создаются журналы операций и разносятся. Периодически имеем следующую проблему: в таблице RetailTransactionTable приходит чек, но в связанной таблице оплат RetailTransactionPaymentTrans записей по этому чеку нет. Аналогично со связанной таблицей продаж товара RetailTransactionSalesTrans - чек приходит, а в таблице продаж товара записей к этому чеку нет. Не пришедшие записи, приходят через 1 час, в соответ-ии с установленным интервалом обмена. Но за этот час создаются журналы и разносятся и чек получает статус "Разнесено" и платежи и товар остаются не разнесенными. Если кто-то сталкивался с подобным, прошу подсказать пути решения проблемы. Спасибо! |
|
03.05.2017, 14:39 | #2 |
Участник
|
какой интересный случай...
а приложение чистое или модифицированное. понятно, что записи в RetailTransactionPaymentTrans создаются отдельной транзакцией. причем процедура подготовки данных для p-джоба уже успела схватить RetailTransactionTable. но в стандарте между этими проводками должен быть минимальный временной разрыв. и вроде в одной транзакции все RetailTransaction* создаются... не помню уже для ax2012... 1. диагностика в таблице RetailTransactionPaymentTrans попробуйте посмотреть на поля TransDate+TransTime и сравнить их с CREATEDDATETIME, MODIFIEDDATETIME совпадают? отличаются по существу? отличаются на часовой пояс? если на часовой пояс, то были проблемы с часовыми поясами. вроде для акс2012 решили. попробуйте поискать в апдейтах. или посмотрите что с часовым поясом магазина в коде происходит. 2. попытка решить проблему. создавайте журнал не по "ближайшим" проводкам, а по проводкам, которые пришли больше часа назад. да, так снижается оперативность. альтернатива - повышать частоту обмена. |
|
03.05.2017, 20:12 | #3 |
Участник
|
Цитата:
Сергей, не подскажешь где в периодической операции по Созданию строк журнала операций есть данная настройка(чтобы создавать строки по проводкам, которые пришли больше часа назад)? |
|
03.05.2017, 20:17 | #4 |
Участник
|
Цитата:
в базе данных магазина в таблице RetailTransactionPaymentTrans попробуйте посмотреть на поля TransDate+TransTime и сравнить их с CREATEDDATETIME, MODIFIEDDATETIME хотя... может это я с акс7 путаю... Цитата:
с отдельными полями дата-время подходящий фильтр настроить не получится. |
|
|
За это сообщение автора поблагодарили: AvrDen (1), PTG (1). |
03.05.2017, 20:30 | #5 |
Участник
|
В БД магазина сравнивали TransDate+TransTime и они совпадают с CREATEDDATETIME. Но факт, остается фактом)) Например, если задание P-0001 выполняется в 12:00:00, а записи в RetailTransactionTable, RetailTransactionSalesTrans были созданы в 11:59:59, а RetailTransactionPaymentTrans в 12:00:01, то RetailTransactionTable, RetailTransactionSalesTrans придут с пакетом в 12:00, а RetailTransactionPaymentTrans в 13:00. Соответственно возникают ошибки при создании журнала.
Такое чувство, что при заборе данных из POS в пакете стоит фильтр, что забирать данные из таблиц, с датой создания меньше определенного времени. |
|
03.05.2017, 21:31 | #6 |
Участник
|
Цитата:
скорее забирает все закомиченное на момент начала забора данных. |
|
04.05.2017, 08:40 | #7 |
Участник
|
Через профайлер видно, что забирает по счетчику из поля репликации, последнее забранное значение которого хранится в таблице логирования репликаций базы POS.
Через профайлер также увидели, что очередность выгрузки данных из таблиц определяется порядком следования подзаданий в задании P-0001 Проводки. И подзадание RetailTransactionTable выполнялось позже RetailTransactionPaymentTrans и RetailTransactionSalesTrans. Изменили название подзадания на 1RetailTransactionTable и оно теперь выполняется первым. Надеемся на положительный результат. |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
04.05.2017, 11:47 | #8 |
Участник
|
Цитата:
KB 3164451Payment transaction not getting pulled with transaction
PROBLEM When you run the P-Jobs, the data of payment transaction is not getting created in the same RPF file of sales transaction. Another RPF is generated for the payment transaction with the same transaction ID of sales. DESCRIPTION OF CHANGE The changes in the hotfix make sure the data of payment transaction will get created in the same RPF file of sales transaction when you run the P-Jobs. Кажется в CU10 был еще один фикс для SyncLibrary...давно было, могу врать. P-0001 обычно выполняется очень шустро. Как вариант можно выполнять чаще (если все остальное не помогает). Вопрос, а зачем каждый час разносить? Мы делаем раз в день.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|
|
За это сообщение автора поблагодарили: AvrDen (1). |
06.05.2017, 20:53 | #9 |
Участник
|
Цитата:
Таковы потребности бизнеса - необходимо в течении дня иметь как можно более актуальные остатки в магазине. Когда списание происходило раз в день, такой проблемы конечно не было. |
|