Текущее время: Чт, мар 28 2024, 14:50

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Создание собственного документа FI в MIRO
СообщениеДобавлено: Вс, ноя 10 2019, 23:42 
Начинающий
Начинающий

Зарегистрирован:
Вт, ноя 28 2006, 00:24
Сообщения: 18
Добрый день,
Необходимо при сохранении документа в MIRO дополнительно создавать свой собственный FI-документ, прописывая в него номер создаваемого логистического документа из MIRO (RBKP-BELNR), а в документ MIRO - номер этого создаваемого FI-документа.

Тут несколько раз обсуждалась тема использования BADI Invoice Update, однако, вроде бы, для решения этой задачи не подходит.
В методе CHANGE_AT_SAVE еще нет номера документа RBKP-BELNR, но там можно создать документ FI через ФМ без COMMIT и его номер через ASSIGN прописать в RBKP (плохой способ, но S_RBKP_NEW не структура для изменения).

В методе CHANGE_BEFORE_UPDATE номер уже есть, но поля поменять нельзя. Кроме того, при создании документа FI могут быть ошибки, которые нужно показать и не создавать ни один документ в этом случае.

Все остальное подходит еще меньше.

Заранее спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание собственного документа FI в MIRO
СообщениеДобавлено: Пн, ноя 11 2019, 12:02 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 09:59
Сообщения: 1578
Откуда: Москва, Минск
Пол: Мужской
Может процесс пересмотреть?
Например, так:
1) Пользователь создает документ счета, программно ставите блокировку для бух. проводок.
2) Отдельная Z-программа, которая будет запускаться в фоновом режиме.
Она будет выбирать нужные вам логистические документы, на их основе делать fi-документы, сохранять ссылки между ними.
Если FI-документ создался, делаете проводку блокированного логистического счета. Можно в одном коммите.
+ нормальный журнал ошибок

_________________
Лучше быть умным и иногда тупить, чем быть тупым и постоянно умничать!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: создание собственного документа FI в MIRO
СообщениеДобавлено: Чт, ноя 14 2019, 11:34 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 09:59
Сообщения: 1578
Откуда: Москва, Минск
Пол: Мужской
Можете такой вариант рассмотреть:

1) В конце ФМ MRM_FINAL_CHECK делаете неявную расширения энхансмент.
Если ФМ вызывается с флагом i_xpost_prepare = 'X' и в журнале сообщений нет ошибок(t_errprot) с помощью ФМ BAPI_ACC_DOCUMENT_CHECK выполняете эмуляцию создания нужного вам FI-документа. Если при его создании возникли ошибки - добавляете их в t_errprot.Они будут видны в стандартном журнале ошибок в MIRO.

2) Определение номера лог документа выполняется в ФМ 'MRM_INVOICE_NUMBER_GENERATE', который в свою очередь вызывается в подпрограмме (LMRMPF0O)belegnummer_vergeben.
В подпрограмме (LMRMPF0O)belegnummer_vergeben структура i_rbkpv доступна на изменение.
В конце подпрограммы делаете энхансмент, в котором:
Выполняете создание нужного вам FI документа с помощью ФМ BAPI_ACC_DOCUMENT_POST, в нужное поле передав номер логистической фактуры.
Номер созданного FI- документа записываете в нужное поле i_rbkpv.
Проверил на примере поля i_rbkpv-bktxt - изменения записываются в БД.

Для сторно, можно будет применить аналогичный подход.
Все.

_________________
Лучше быть умным и иногда тупить, чем быть тупым и постоянно умничать!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: создание собственного документа FI в MIRO
СообщениеДобавлено: Чт, ноя 21 2019, 23:12 
Начинающий
Начинающий

Зарегистрирован:
Вт, ноя 28 2006, 00:24
Сообщения: 18
DED_MOROZ написал:
Можете такой вариант рассмотреть:

1) В конце ФМ MRM_FINAL_CHECK делаете неявную расширения энхансмент.
Если ФМ вызывается с флагом i_xpost_prepare = 'X' и в журнале сообщений нет ошибок(t_errprot) с помощью ФМ BAPI_ACC_DOCUMENT_CHECK выполняете эмуляцию создания нужного вам FI-документа. Если при его создании возникли ошибки - добавляете их в t_errprot.Они будут видны в стандартном журнале ошибок в MIRO.
.


хорошее место для проверки. этот пункт отрабатывает

DED_MOROZ написал:
2) Определение номера лог документа выполняется в ФМ 'MRM_INVOICE_NUMBER_GENERATE', который в свою очередь вызывается в подпрограмме (LMRMPF0O)belegnummer_vergeben.
В подпрограмме (LMRMPF0O)belegnummer_vergeben структура i_rbkpv доступна на изменение.
В конце подпрограммы делаете энхансмент, в котором:
Выполняете создание нужного вам FI документа с помощью ФМ BAPI_ACC_DOCUMENT_POST, в нужное поле передав номер логистической фактуры.
Номер созданного FI- документа записываете в нужное поле i_rbkpv.
Проверил на примере поля i_rbkpv-bktxt - изменения записываются в БД.

Для сторно, можно будет применить аналогичный подход.
Все.


а вот здесь есть проблема.
2. изменить i_rbkpv - проходит на ура
но есть проблема при создании документа

переменная GD_AWTYP = RMRP
в начале создание Логистического док.
FUNCTION MRM_INVOICE_POST
FUNCTION CKMV_AC_DOCUMENT_CREATE
FUNCTION AC_DOCUMENT_CREATE
FORM INIT_ALL

потом мы создаем FI документ

FORM BELEGNUMMER_VERGEBEN
FUNCTION BAPI_ACC_DOCUMENT_POST
FORM DOCUMENT_CHECK
FORM CHECK_RWIN
FUNCTION AC_DOCUMENT_CREATE
FORM INIT_ALL
где тип предсказуемо меняется на
переменная GD_AWTYP = BKPFF
проверки для документа FI проходят успешно
но значение изменено, и когда мы хотим сохранить логистический документ, в AC_DOCUMENT_POST
в котором ACCHD-AWREF = RMRP

IF I_AWTYP NE GD_AWTYP ().
" Системная ошибка в RW-интерфейсе
MESSAGE E103 WITH I_AWTYP GD_AWTYP.
ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание собственного документа FI в MIRO
СообщениеДобавлено: Пт, ноя 22 2019, 09:55 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 09:59
Сообщения: 1578
Откуда: Москва, Минск
Пол: Мужской
Попробуй так:
1) Сделай вызов фм BAPI_ACC_DOCUMENT_POST с DESTINATION 'NONE'
Если создание документов выполнено успешно, заполняете флаг(lv_done = 'X') - например, через атрибут Z-класса.

2) В бади INVOICE_UPDATE перехватываешь значение флага lv_done и в зависимости от его значения выполняете
или bapi_transaction_commit с DESTINATION 'NONE'
или bapi_transaction_rollback с DESTINATION 'NONE'

Сам не абапер.
Если хрень написал, коллеги-абаперы поправят. :)

_________________
Лучше быть умным и иногда тупить, чем быть тупым и постоянно умничать!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: создание собственного документа FI в MIRO
СообщениеДобавлено: Пт, ноя 22 2019, 10:25 
Начинающий
Начинающий

Зарегистрирован:
Вт, ноя 28 2006, 00:24
Сообщения: 18
DED_MOROZ написал:
Попробуй так:
1) Сделай вызов фм BAPI_ACC_DOCUMENT_POST с DESTINATION 'NONE'
Если создание документов выполнено успешно, заполняете флаг(lv_done = 'X') - например, через атрибут Z-класса.

оно и так выполняется успешно, номер генерируется, таблица с ошибками пуста, но на момент rw- проверок (они идут после) вот тут AC_DOCUMENT_CREATE
возникает ситуация про которую пишу


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание собственного документа FI в MIRO
СообщениеДобавлено: Пт, ноя 22 2019, 15:26 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 09:59
Сообщения: 1578
Откуда: Москва, Минск
Пол: Мужской
Я так понимаю ты выполняешь создание финансового документа в том же процессе где проводится лог документ и фин документа к нему.
Вероятно, при этом, выполняется изменение внутренних таблиц, что влияет на проводку основного документа.
Попробуй как я написал, пока просто вызывать BAPI_ACC_DOCUMENT_POST с DESTINATION 'NONE'.
Пропадет ли ошибка.
Потом будешь решать задачу как закоммитить создаваемый тобой фин документ.

_________________
Лучше быть умным и иногда тупить, чем быть тупым и постоянно умничать!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: создание собственного документа FI в MIRO
СообщениеДобавлено: Вс, дек 01 2019, 16:35 
Начинающий
Начинающий

Зарегистрирован:
Вт, ноя 28 2006, 00:24
Сообщения: 18
женечка2 написал(а):
DED_MOROZ написал:
Можете такой вариант рассмотреть:
1) В конце ФМ MRM_FINAL_CHECK делаете неявную расширения энхансмент.
Если ФМ вызывается с флагом i_xpost_prepare = 'X' и в журнале сообщений нет ошибок(t_errprot) с помощью ФМ BAPI_ACC_DOCUMENT_CHECK выполняете эмуляцию создания нужного вам FI-документа. Если при его создании возникли ошибки - добавляете их в t_errprot.Они будут видны в стандартном журнале ошибок в MIRO.
.

хорошее место для проверки. этот пункт отрабатывает
женечка2 написал(а):
2)В методе CHANGE_AT_SAVE еще нет номера документа rbkp-belnr, но там можно создать документ fi через фм без commit и его номер через ASSIGN прописать в rbkp
.

так и поступаем, и FI документ создается без проблем
DED_MOROZ написал:
3)В подпрограмме (LMRMPF0O)belegnummer_vergeben структура i_rbkpv доступна на изменение.
В конце подпрограммы делаете энхансмент, в котором:
.

заполняем Zтаблицу с номерами логистического и технического документа

4) при commit создается все цепочка с логистическим документом, наш FI Документ, и заполняется Z таблица

осталось дело за малым - прописать в наш FI документ номер созданного логистического.
после commit в стандарте miro выполняется leave to transaction. и все import to memory, statics cструктура очищаются. использовать set-get параметры тоже не вариант.
в при вызове miro есть несколько badi. в MRM_HEADER_DEFAULT поверяем не пуста ли Zтаблице. и запускам в фоне обновлять нужные поля для всех записей в Zтаблице, и удаляем записи из таблицы.

если есть идеи по 4 пункту, или вообще по реализации, с благодарностью послушаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: создание собственного документа FI в MIRO
СообщениеДобавлено: Пн, дек 02 2019, 12:16 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 09:59
Сообщения: 1578
Откуда: Москва, Минск
Пол: Мужской
А ты пробовала сделать как я писал?
Зачем создавать FI-документ, а потом его изменять?
При его создании нельзя нужное поле заполнить?

_________________
Лучше быть умным и иногда тупить, чем быть тупым и постоянно умничать!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Создание собственного документа FI в MIRO
СообщениеДобавлено: Пн, дек 02 2019, 21:42 
Начинающий
Начинающий

Зарегистрирован:
Вт, ноя 28 2006, 00:24
Сообщения: 18
увы, нельзя. в момент создания оно еще неизвестно


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Создание собственного документа FI в MIRO
СообщениеДобавлено: Вт, дек 03 2019, 10:18 
Гуру-маршал
Гуру-маршал
Аватара пользователя

Зарегистрирован:
Пт, янв 30 2009, 09:59
Сообщения: 1578
Откуда: Москва, Минск
Пол: Мужской
посмотри в личку

_________________
Лучше быть умным и иногда тупить, чем быть тупым и постоянно умничать!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Mail.RU Bot


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB