Архив рубрики: Программы

Описание программ, транзакций

Делаем свой File Event Scheduler

Привет.

Продолжаем разговор про планировщики заданий. Вот простое решение по автоматизации файловых событий. Если на диске появился файл, который нужно загрузить, то программа генерирует сигнал и запускается загрузчик. Автоматизированно.

Сначал мы создаем свое событие в SM62.

Читать далее

Две полезные функции в Excel

Привет.

Любой консультант должен знать Excel. Аксиома. Последние несколько дней я плотно работаю с этим инструментом, обрабатывая большие массивы данных, которые не имеют отношения к миграции. Написал для себя пару функций, которых нет в стандарте, а могут понадобиться.

Функция JoinRow для конкатенации (слияния) ячеек. Обычно мы пользуемся знаком амперсанд (&) или функцией СЛИЯНИЕ(CONCATENTA), но та нужно каждую ячейку указать принудительно. Например, =A1&»,»&A2. А тут микрофункция, которая сама прогуляется по указанному диапазону и сделает слияние за секунды. Сохранило мне около часа времени.

Вторая функция, точнее процедура, нужна любителям сводных таблиц и фильтров. Если вы загружаете XML в Excel (а мне пришлось загрузить несколько тысяч XML файлов и обработать) или вам нужно данные в плоской таблице привести к удобному виду для фильрования или создания сводной таблицы, то вот моя вторая процедура.

Выделяем в Excel на первом листе нужный нам диапазон и запускаем. Процедура идет сверху вниз слева направо и делает простую проверку. Если текущая ячейка пустая, то вставить в нее значение из ячейки сверху. Это бывает нужно, когда у вас данные лежат как иерархия, то есть каждая левая колонка является родителем для правой. Чтобы такие данные обрабатывать нужно для каждого ребенка слева явно прописать родителя (значение). Этот простой макрос и выполняет такую работу.

Сэкономило мне примерно день работы 🙂

Исходя из поставленной мне задачи компания Заказчик сэкономила около тысячи долларов США всего лишь из-за двух функций в Excel.

Входящая почта для HR

Здесь я хотел написать много букв про креативные ИТ подходы во многих компаниях мира, где на каждый бизнес-чих бегут покупать новую ИТ систему вместо того, чтобы доработать существующую ERP, и создать интегрированную платформу вместо свалки из систем, интеграционных потоков и так далее. Но не буду. Буду позже, когда совсем накипит.

Сегодня мы делаем мини-контактный центр для HR. У SAP есть стандартное решение SAP Employee Iteraction Center и SAP Shared Service Framework. Второе лучше первого. Но оба стоят денег.

В стандарте SAP нет такой простой штуки, как принять входящее электронное сообщение и отправить его в поток операций, где консультант сможет проанализировать сообщение и выстроить правильную маршрутизацию. Есть кусочные решения для отдельных блоков ALM, SRM, EIC, SOLMAN, еще чего-то.

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

Настройка приема почты в самой системе осуществляется элементарно за 5 минут. Для этого читаем ноту  455140 . Там пара параметров в профиле, перезагрузка системы, настройка в SCOT и все. После этого вы сможете получать почту снаружи для ваших логинов. То есть, можно отправить почту с [email protected] на *@potceluev.com.

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

Существует три способа реализовать нашу задачу.

  • Создать расширение для обработки писем для транзакции SO50 через наследование интерфейса IF_INBOUND_EXIT_BCS BCS: Exit for Inbound Processing
  • Создать BOR объект (SWO1) через наследование интерфейса IFRECEIVE Receive Office objects. Указать его получателем в транзакции SO28
  • Создать программку, которая в фоне будет опрашивать почтовый ящик и обрабатывать письма

Давайте начнем с первого способа. В se24 создаем класс с реализацией интерфейса IF_INBOUND_EXIT_BCS и интерфейса IF_WORKFLOW. Второй нужен для того, чтобы мы могли инициировать с его помощью запуск потока операций с нужным нам событием. Также создаем событие с параметрами SENDER_ADDRESS и BODY_TEXT. Мы будем брать эти два параметра из входящего письма и передавать их в поток операций.

Исходник класса внизу. Там всего ничего, поэтому быстро разберетесь.

Создаем простой поток операций в транзакции SWDD.

Читать далее

Настройка способа платежа (код транзакции)

Транзакция FBZP

для себя оставлю, все время забываю 😉

Импортируем сертификат LinkedIn

Многие компании начинают делать всякие интеграшки с интернет ресурсами.

Начнем с линкедина. Нам нужно сделать соединение с LinkedIn API. Для этого нужно загрузить сертификат поставщика (LinkedIn) в систему SAP.

Сначала выгружаем сертификат с сайта api.linkedin.com
linkedin_ssl

Читать далее