You have configured outbound connection and started to write code.
Iteration 1
CALL FUNCTION ‘RFC_PING’ DESTINATION ‘DUMMY’.
Looks fine enough. But if you make mistake or connection is temporarily down or happens something else, you will get short dumps CALL_FUNCTION_REMOTE_ERROR, CALL_FUNCTION_NO_DEST or CALL_FUNCTION_OPEN_ERROR etc.
You should always avoid short dumps in common environment.
Установка SAP ERP — процесс местами странный и трудоёмкий.
Первое.
Установка требует отдельной и жирной машины. Даже если это будет тестовая машина с минимумом данных для пары пользователей.
Для текущей стандартной версии мне понадобилась VM 12GB RAM/300GB HDD/вменяемый CPU. И очень желательно, чтобы там ничего кроме сабжа не стояло и не планировалось. Платформа SAP HANA имеет более высокие требования, непомерные для меня, хотя посмотреть бы хотелось. (далее…)
На некоторых видах прямых соединений из дома на нужные мне сервера NetWeaver я часто сталкиваюсь с ошибкой:
WSAECONNRESET: Connection reset by peer
Она возникает примерно через минуту, если ничего не делать в SAP GUI. Все окна вылетают, блокировки не снимаются, несохранённый результат теряется. Это может быть очень неприятно и обидно.
«Самый лучший гуй — одна большая кнопка в центре экрана с надписью «Сделай мне хорошо!» (с) Опытный дизайнер
«Самый лучший гуй — одна большая надпись в центре экрана «Тебе уже хорошо!» (с) Опытный программист
Цитата #437964 Неудобства: При работе с программой приходится нажимать на различные кнопки (с) bash.org.ru
В идеале каждая система должна стремиться к минимизации своего интерфейса.
В качестве плохого примера в системе SAP ERP можно вспомнить транзакцию проводки амортизации AFAB:
Первый экран выглядит очень типично для SAP ERP, поэтому и проблемы у этого экрана старые идеологические:
1. Первый экран (экран выбора) не даёт никакой информации о текущем состоянии
2. Все проверки происходят после заполнения всех параметров и запуска процесса
3. Объем задачи большой, заранее не просчитывается, поэтому установлено простое ограничение на тестовый прогон – 1000 записей
4. Формирование фонового задания и отслеживание его статуса – не самая простая пользовательская операция: пять кликов на запуск, пять кликов на просмотр, причём через непростые малознакомые экраны.
5. Нет никакой отчётливой сигнализации об ошибках расчёта
Я просто удивляюсь, почему за последние десять лет никто так и не решился переписать междумордие этой важной задачи.
BTW: Вполне вероятно, что в “Пульте управления закрытием” это и сделано, вот только это тема совсем другого разговора.
Так вот, в моей основной системе исторически так сложилось, что:
много пользователей работают через SAP GUI for HTML;
практически вся отчетность выгружается в Excel через ZWWW.
А это значит что без правильно настроенной связки Браузер+Java жить непросто.
Java нужна для работы с файлами (выгрузить, загрузить). Принципиально веб-приложение должно работать только внутри своего окна и его нельзя подпускать к файловой системе пользователя даже на пушечный выстрел. С файлами должен работать лично браузер удобным ему способом, но это противоречит подходу SAP GUI, который хочет контролировать всё: показ диалога открытия, заголовок окна диалога, список доступных расширений файлов, разрешение множественного выбора, выбор каталога, чтение каталога, считывание содержимого файла или запись. Так как SAP GUI for HTML должен повторять функциональность большого брата, поэтому они там решили не менять подход, а ввести дополнительную прослойку в виде Java-апплета, который бы выполнял эти действия на стороне клиента. ABAP-часть при таком подходе остаётся практически без изменений.
Кроме этого, ZWWW работает через технологию OLE, без вариантов. А веб-приложение нельзя подпускать к OLE-интерфейсам клиентской машины даже в радиусе поражения ракет класса “земля-воздух”. Следовательно, нужна ещё одна прослойка в виде Java-апплета, которая будет проксировать OLE-вызовы и выполнять сопутствующие махинации.
Так как SAP GUI for HTML и сам является прослойкой между ABAP-инстанцией и ITS-сервером, то это всё это сооружение начинает походить на игру Дженга.
И такая игра идёт постоянно. То браузеры начинают отключать старую джаву и требуют обновлений, то джава-апплеты теряют полномочия, то что-то происходит с проверкой подписи апплета, то появляются какие-то черные/белые списки исключений, то вдруг апплет начинает жутко тормозить на какой-то версии JRE, то выходит новая версия офиса, то обновляют ITS/ABAP, то пользователи в другом конце страны не могут что-то настроить, то вдруг кому-то кажется, что низкий уровень безопасности в браузере решает проблему…
Если следить за хронологией, то можно заметить:
Chrome – никогда не поддерживал Java-апплеты, и не собирается
Edge – не поддерживал Java-апплеты, и не будет поддерживать
Информационные системы так устроены, что практически любой ценный объект в системе требует адресации, для того чтобы можно было на него сослаться.
Значит объекту надо присвоить некоторый код или адрес. Этот адрес-код должен быть уникальным и быть жестко закреплён за объектом. Причем, как бы этот объект не менялся сам, адрес его должен оставаться неизменным.
Например: Вы хотите мальчика Васю отправить передать сообщение Петровым, которые живут на вашей улице в доме, покрашенном в зелёный цвет. Хорошо, если мальчик знает Петровых лично, и это именно те Петровы, которых вы имеете в виду. Хорошо, если дом не перекрасили, всякое в жизни бывает. Хорошо, если если зелёный дом на улице один. И так далее. Чтоб избежать таких проблем надо выполнить три простых операции: пронумеровать все дома, занести все номера в тетрадь, передать тетрадь специально обученному человеку.
Есть 4 основных подхода к формированию кодов-идентификаторов в базах данных: