Всем привет.
Делаю проводку пакетов платежей с помощью BAPI-функции 'BAPI_CTRACPAYMINC_SCHEDULE'. Она позволяет запускать проводку пакета в фоновом режиме через создание job-а и я использую именно такой режим запуска, чтобы потом дождаться в программе окончания этого job-а и проверить статус пакета (провелся или нет).
Когда проводится один пакет платежей, то всё ок - для каждой его позиции создается документ платежа, внутренний номер которого формируется на основе настроенного диапазона номеров. Но вот когда проводки запускауются несколькими пользователями, почти одновременно, то корректно проводится только один пакет (первый), а для остальных же возникает ошибка в позициях пакета:
"The document type you are using is used for a mass processing session that runs in several parallel processes. A separate number range is required for each process. The system has been unable to find a free number range, the reason being that there are more processes active than the permitted number ranges available." И "Procedure:
Assign further number ranges for mass processing to this document type."
Т.е. получается, то для каждого процесса фоновой проводки пакета, а по сути для каждого пользователя, нужно настроивать отдельный диапазон номеров. Но ведь это же не реально... А если пользователей несколько сотен?...
Получается, что при проводке пакета платежей система занимает (блокирует) первый свободный диапазон номеров и начинает создавать документы платежей, выделяя следующий свободный номер, а всех остальных пользователей, тоже проводяших пакеты в этот момент, отсекает, говоря им, что диапазон блокирован в данный момент первым пользователем.
Как можно разрулить такую ситуацию?
|
|