Я внедряю и использую приложения SAP Fiori уже пару лет и за это время пришел к поразительному выводу, что они очень плохо сделаны. SAP приняла экономическое решение пойти с самым дешевым претендентом на разработку программного обеспечения, и это ДЕЙСТВИТЕЛЬНО показывает.

Теперь мои клиенты предпочитают, чтобы мы создавали приложения по индивидуальному заказу, а не использовали «мусор SAP», а имя SAP стало синонимом низкого качества, особенно в области пользовательского интерфейса.

Приложения часто требуют применения большого количества примечаний OSS, и четко не документировано, какие из них необходимы. Как найти иголку в стоге сена. Если вы поднимаете инцидент — ожидайте, что разрешение будет через 6 месяцев, как это типично по моему опыту — даже для инцидентов с ВЫСОКИМ приоритетом и для клиентов Max Attention. Невероятный!

Чтобы исправить множество проблем, вам достаточно самостоятельно модифицировать приложение с учетом сроков работы с поддержкой SAP.

Прежде чем вдаваться в подробности, я должен сказать, что SAPUI5 (и OpenUI5) на самом деле являются высококачественными библиотеками, за которыми стоит замечательная и доступная команда разработчиков (новый SAP). Однако когда дело дошло до создания приложений Fiori для использования клиентами, SAP упустила мяч, и я могу только предположить, что они отправили работу разработчикам ABAP или какой-либо другой группе, не имеющей опыта работы с веб-приложениями.

Давайте рассмотрим лишь пару стандартных приложений.

Мои расписания (V2)

Это приложение мерзость. Я только хочу, чтобы я был новым, прежде чем мы его реализовали. В коде было так много ошибок, что я просто не могу описать их все. Нам пришлось внести 3 улучшения (2 BAdI и 1 неявное улучшение), а также улучшить контроллеры JavaScript для каждой страницы, чтобы заставить ее работать так, как ожидал бы разумный человек.

Несколько проблем с пользовательским интерфейсом

  1. Объекты затрат, для которых вы записываете время, не отображаются должным образом. На самом деле стандартное приложение вместо этого просто показывает контрольную зону. Как это прошло проверку качества. Если бы была задействована компетентная современная команда инженеров-программистов, эта простая задача не прошла бы. Это делает приложение бесполезным для пользователей. Чтобы исправить это, потребовалось неявное улучшение в классе обработчика серверной службы OData: требуется CL_HCM_TIMESHEET_MAN_DPC_EXT. В конце метода TIMEDATALIST_GET_ENTITYSET() вы можете вставить неявное расширение; прокрутите поля данных и получите правильный текст для каждого объекта затрат и типа деятельности.
  2. Все полезные подсказки абсолютно неинтуитивны и по существу непригодны для использования. Если вы хотите, чтобы у ваших пользователей был хоть какой-то шанс найти объекты затрат для временной записи, вам придется написать свой собственный код справки по стоимости в КАЖДОМ случае. К счастью, для этого есть BAdI: HCM_B_TSH_PICKLIST_TXTFILTER. Если вы реализуете этот BAdI, вы можете использовать метод if_hcm_tsh_picklist_txtfilter~search_by_text() для обработчика кода для каждого значения справки через имя поля. Я переписал каждый из них (например, WBS, Cost Center, Unit и т. д.), чтобы по умолчанию он либо отображал все результаты (которые, конечно, разбиваются на страницы), либо, если пользователь начинает печатать, он обеспечивает иерархический поиск, сначала по идентификатор объекта. Если ничего не находит, то по короткому тексту. Наконец, это поиск по длинному тексту. (Правила немного различаются для каждого поля. Например, для UNIT я просто предоставляю небольшой настраиваемый список, поскольку пользователи обычно могут записывать время только в часах и, возможно, в нескольких других единицах для пробега.)
  3. Полевой рейтинг. Поля на экране обзора записи времени имеют ранжирование, назначенное для определения того, какая информация является важной (она выделена жирным шрифтом) и так далее. Существует ошибка с полем WBS, из-за которой приложение назначает ранжирование на основе имени поля POSID, но оно сравнивается с CATSDB, в котором используется имя поля RPROJ. Поэтому записи WBS отображаются странно, а активность является основным текстом, а не текстом WBS. Нам снова повезло, что есть доступный BAdI, чтобы мы могли это исправить. HCM_B_TSH_FIELDRANKINGS можно использовать с методом if_hcm_tsh_fieldrankings~assign_fieldrankings() для переопределения и предоставления нашего собственного ранжирования полей — просто скопировав код SAP, но исправив имя поля WBS.
  4. Вёрстка на мобильных устройствах. После того, как вы сохранили несколько записей о времени и хотите отправить их на утверждение, кнопка «Отправить» убирается с экрана при работе на телефоне. Чтобы исправить это, вам нужно заменить контроллер S3.controller.js controller.js и изменить функцию getHeaderFooterOptions. К сожалению, для этого нет точек расширения Fiori. В этом методе вы можете использовать массив кнопок, чтобы «Отправить» всегда был виден и не требовалось несколько кликов, чтобы найти его.
  5. Полуфабрикатное решение для часов. Приложение «половина» позволяет пользователю вводить свое время либо в виде продолжительности, либо в виде часов (время начала и время окончания). Вы можете исправить это небольшой модификацией контроллера S31.controller.js в функции initializeView(). Просто добавьте следующее в конец функции: if (this.clockEntry) { this.byId("ClkTimeDurationEle").setVisible(true); } else { this.byId("ClkTimeDurationEle").setVisible(false); }

Утверждение расписаний (V2)

У этого есть проблемы, похожие на «Мои табели учета рабочего времени» (выше), где объекты затрат не отображаются правильно, что делает приложение бесполезным, поскольку эти данные являются одним из основных моментов принятия решения для менеджера во время утверждения.

Вывод

Создавайте собственные приложения. Они могут быть полностью адаптированы к вашей ситуации, и, хотите верьте, хотите нет, стоимость внедрения будет мало отличаться от использования любого из приложений Fiori, предоставляемых SAP. Исходя из опыта, я создал набор пользовательских приложений HR Fiori за меньшее время, чем потребовалось, чтобы приложения SAP для обработки отпусков и табелей рабочего времени работали разумным образом. Без шуток!

Используйте опытных инженеров-программистов. Вы думаете, что это звучит хорошо, получить дешевый ресурс… Вы просто заплатите в 5 раз больше; не только в качестве сборки и времени сборки, но и в постоянной головной боли обслуживания.

пс. Мой опыт, о котором я говорил выше, связан с основным набором приложений Fiori, которые работают на Any-DB. К ним относятся все приложения MM Approvals и все приложения в стиле HR ESS, такие как отпуск, табели учета рабочего времени и т. д. Я читал, что приложения CRM (в качестве примера) имеют гораздо лучшее качество кодирования.

Первоначально опубликовано на js1972.github.io 20 мая 2016 г.