Убрать двойные полосы прокрутки у АЛВ

При создании экрана может произойти задвоение полос прокрутки. Или же наоборот, целевая область будет непропорционально мала.

Для примера создадим экран следующего вида:

При этом если ваш монитор мал, можно увидеть следующую ситуацию:

Отобразилось по одной полосе прокрутки для каждого элемента. На большом экране, наоборот, элементы могут занимать только малу часть экрана.

Читать далее «Убрать двойные полосы прокрутки у АЛВ»

ZWWW новая строка внутри ячейки EXCEL

Для переноса строки внутри WORD используются CL_ABAP_CHAR_UTILITIES=>NEWLINE или СL_ABAP_CHAR_UTILITIES=>CR_LF. При попытке использовать это в EXCEL не приносят результата (по крайней мере в тех версиях ZWWW, что встречались мне в последнее время).

Одним из вариантов решения может стать макрос VBA, который заменит некую нашу метку на символ переноса строки:

Читать далее «ZWWW новая строка внутри ячейки EXCEL»

Длинные строки в Business Application Log (BAL)

Business Application Log (BAL) позволяет сохранять не только короткие сообщения, но и сообщения произвольной длины. Рассмотрим на примере сохранения информации об авиакомпании.

Создание сообщения

1. Открываем se91 и создаем сообщение как обычно;
2. Возможно, вам хватит обычного подробного описания, как в некоторых видах ошибок. В таком случае снимаем галку "Самообъясняемый" и нажимаем кнопку "Подробный текст";

Читать далее «Длинные строки в Business Application Log (BAL)»

Вывод таблицы WEB UI CRM

Создадим в CRM окно следующего вида:

Часть информации рассматривалась ранее. И будет опущена, чтобы не дублировать.

Читать далее «Вывод таблицы WEB UI CRM»

Process Management API. Массовое изменение документов Solution

Насколько мне известно, SolDoc  не позволяет массово изменять документы. Однако, существует API, представляющее собой oData сервис, которое позволяет производить данные операции.
API предоставляет возможность использовать все основные операции(чтение, изменение, вставка и т.д. ).
Более подробно можно почитать на оф сайте:
API
Описание формата обмена

Также есть ссылки на два блога, которые работают с данным API на Python. Это не всем подходит, т.к. не всегда возможно запускать скрипты в сетях с продуктивной системой. Если у вас такой проблемы нет, можете использовать решения представленные в данных блогах, это будет даже удобнее.
https://blogs.sap.com/2020/05/04/mass-updating-solution-documentation-via-the-process-management-api/

https://blogs.sap.com/2020/02/28/process-management-api-in-sap-solution-manager/

Предлагаю  реализовать тоже самое на ABAP.
Читать далее «Process Management API. Массовое изменение документов Solution»

oData Отключение программы преобразования для поля

Создал сущность путем импорта стандартной таблицы SPFLI. Свойства полей подтянулись автоматически. Во время тестирования выяснилось, что из-за стандартной программы преобразования обработка валится в дамп. Если для GET запроса хватило обычной замены типа элемента на Edm.String. При обратном преобразовании в POST запросе - дамп.

Читать далее «oData Отключение программы преобразования для поля»

Динамический вызов метода бизнес-объекта

При интеграции, частенько надо вызывать классы и объекты из другой системы. Про динамический вызов класса писал ранее . Сейчас рассмотрим вызов бизнес-объекта (транзакция swo1) из другой системы. Хотя, может подобный код пригодится и для вызова в своей.
Создадим ФМ 'Z_DYN_CALL_BO_METHOD', который сможем вызывать удаленно.

Читать далее «Динамический вызов метода бизнес-объекта»

Динамическое программирование ABAP. RFC ФМ для вызова методов произвольного класса.

При интеграциях между системами частенько надо получать данные из смежных систем. Самое простое -  обернуть метод  в RFC ФМ и вызвать его в нужной системе. Это хорошее решение, но что делать если нам нужно вызвать не один метод, а 50 или даже 100. Писать обертку для каждого? Довольно долгое занятие, плюс любое изменение в методе повлечет необходимость дополнительной поддержки этих ФМ. Короче, самое очевидное решение, не всегда самое удобное в конкретном случае. 
Один из альтернативных путей решений - динамическое программирование. Это способ тоже не без недостатков, но он может позволить избежать создании сотен лишних ФМ.  Если надо вызвать один-два метода, я бы не заморачивался и делал все в обертках.

Задача: Написать RFC функцию которая сможет выполнить произвольный метод любого класса и вернуть результат.
Конечно, все случаи мы не предусмотрим, особенно если классу требуется какое-то сложное создание инстанции, попробуем разобрать базовый подход.
Читать далее «Динамическое программирование ABAP. RFC ФМ для вызова методов произвольного класса.»

Преобразование даты из ISO 8601. Получение даты из JIRA

Для преобразования даты из ISO 8601 можно использовать класс cl_xlf_date_time. Если мы получаем данные из JIRA, то необходимо привести полученную дату в вид, с которым может работать данный класс.
Дату из Jira получаем в таком виде - 2020-04-30T00:00:00.000+0300 .
Далее необходимо добавить ":" в смещение: 2020-04-30T00:00:00.000+03:00
Код преобразования:

Читать далее «Преобразование даты из ISO 8601. Получение даты из JIRA»

BOL получить сущность. Навигация в структуре. Добавить еще одну запись.

Расскажу немного про BOL. Не так давно удалось посмотреть на проекте в SM. На полноту информация точно не претендую, но постараюсь ввести в курс дела.
BOL(Business Object Layer) - применяется в CRM и в SM для унифицированного доступа к данным. В общем и целом BOL дублирует функционал стандартных модулей, но позволяет это делать однообразным способом. Также заявляется, что использование BOL API позволяет ускорить работу за счет внутренней оптимизации

Читать далее «BOL получить сущность. Навигация в структуре. Добавить еще одну запись.»