SAPфорум.RU
https://sapboard.ru/forum/

Заполнение текста позиции документа
https://sapboard.ru/forum/viewtopic.php?f=5&t=95596
Страница 1 из 1

Автор:  mik-ka [ Ср, окт 11 2017, 12:33 ]
Заголовок сообщения:  Заполнение текста позиции документа

Коллеги, подскажите пожалуйста, как абапом заполнять Длинный текст при создании/проведении документа. READ_TEXT не подходит, т.к еще нет номера документа.

Автор:  Yozhhhhh [ Ср, окт 11 2017, 12:43 ]
Заголовок сообщения:  Re: Идентификатор текста позиции документа

mik-ka написал(а):
READ_TEXT не подходит

READ_TEXT и правда не подходит, но по другой причине. Он не заполняет, а считывает.

mik-ka написал(а):
т.к еще нет номера документа.

Функции READ_TEXT и SAVE_TEXT умеют работать и без номера документа. Достаточно отправить 10 пробелов в соответствующее место ключа tdname. Это если делать в замещениях.

Кроме того, номер документа известен в событии 1030/1050 open-fi. Там можно реализовать пользовательский модуль, который пропишет нужные заметки в позициях.

p.s. Лучше создавать отдельную тему, Ваш вопрос вообще принципиально другой.

Автор:  Plank [ Ср, окт 11 2017, 13:45 ]
Заголовок сообщения:  Re: Идентификатор текста позиции документа

В очередной раз не согласен с предложением сохранять какую-то информацию на событиях 1030/1050 так как гарантий, что документ запишется в БД там нет. Получится, что документа нет (проверка сработала или дамп при обновлении), а текст записан.
Тут или отложенное обновление документа (SAVE_TEXT для уже существующего документа). Тема недавно обсуждалась, да и поискать материалы можно на тему "запуска ФМ с отложенным обновлением после commit".
Другой вариант записать в замещении тексты в память, то есть эмулировать заполнение текста пользователем. Не помню подробностей, но точно знаю что так делают...

Автор:  Yozhhhhh [ Ср, окт 11 2017, 13:57 ]
Заголовок сообщения:  Re: Идентификатор текста позиции документа

Plank написал:
Другой вариант записать в замещении тексты в память, то есть эмулировать заполнение текста пользователем. Не помню подробностей, но точно знаю что так делают...

Я думаю, что запуск save_text с пустым номером документа из замещений без коммита - это и будет такой эффект. То есть если даже вдруг сбой, то и результатов работы save_text не будет. Мне кажется сработает, но надо проверять.

Plank написал:
В очередной раз не согласен с предложением сохранять какую-то информацию на событиях 1030/1050 так как гарантий, что документ запишется в БД там нет. Получится, что документа нет (проверка сработала или дамп при обновлении), а текст записан.

Ну да, согласен. Для 100% гарантии надо, видимо, делать так. Хотя на моей памяти за очень много лет я ни разу не сталкивался со сбоем и незаписанным документом. Один раз я видел, как не писались в БД документы целый день из-за вмешательства человека в post_document. Поднимали бэкап, а консультанта сожгли на костре. Так что мне кажется, что вероятность сбоя ничтожная, но все равно согласен, тут надо быть перфекционистом.

Автор:  darkduck [ Пт, окт 13 2017, 13:08 ]
Заголовок сообщения:  Re: Идентификатор текста позиции документа

Yozhhhhh написал:
p.s. Лучше создавать отдельную тему, Ваш вопрос вообще принципиально другой.

Тему разделил, ТС на заметку...

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/