Текущее время: Пт, мар 29 2024, 02:33

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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