Показаны сообщения с ярлыком TMS. Показать все сообщения
Показаны сообщения с ярлыком TMS. Показать все сообщения

22 октября 2021 г.

Мастер-класс "SAP ландшафт и основы транспортной системы"

Коллеги, друзья и просто сочувствующие, хочу поделиться новостью. Во вторник, 9 ноября 2021 года, я буду проводить мастер-класс на площадке портала "SAPLAND". Мастер-классом назвать, наверное, это событие было бы слишком громко. Скорее это будет лекция "сборная солянка" на тему "SAP ландшафт и транспортная система". 



Попытаюсь за 4 часа рассказать всё, что знаю про транспортную систему в ABAP инстанции SAP системы, собрав в одном материале все нюансы и хитрости. Глубоко вглубь настройки и конфигурации не полезем, но в ширину постараюсь охватить всё. Будем говорить про базовые вещи, которые существуют в SAP системах с версии SAP R/3 3.0 и по сей день. При подготовке я постарался сделать материал максимально интересным для широкого круга специалистов. Ведь с транспортной системой сталкиваются и консультанты по модулям SAP системы, и ABAP-программисты, и SAP BASIS-консультанты/администраторы.

Если интересно, то регистрируйтесь и приходите. 
Формат мероприятия - онлайн. 
Физическим лицам скидка 30%.

Расписание всех мастер-классов этой осенней сессии можно найти по ссылке.

Обучение лучшее лекарство от осенней хандры! :)



2 августа 2021 г.

Ручная блокировка работы транспортной системы в SAP

Про транспортную систему я писал уже несколько раз. Смотрите статьи по тегу TMS. А если ничего про это ещё не знаете, то рекомендую начать с поста "Почему SAP рекомендует 3-х системный ландшафт?". 

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

Оба способа работают через файлы в транспортной директории. Вы, наверное, знаете, что в основе транспортной системы лежит файловая система /usr/sap/trans, которая состоит из ряда поддиректорий (рис. 1). Вот некоторые из них:

  • /usr/sap/trans/cofiles - содержит управляющие файлы транспортных запросов,
  • /usr/sap/trans/data - содержит файлы транспортных запросов с данными,
  • /usr/sap/trans/EPS/in - используется при обновлении SAP системы, хранит файлы пакетов поддержки,
  • /usr/sap/trans/buffer - хранит файлы-очереди систем, входящих в ландшафт,
  • /usr/sap/trans/log - содержит журналы экспорта/импорта транспортных запросов,
  • /usr/sap/trans/bin - хранит конфигурацию транспортной системы.

В исходной системе транспортного ландшафта, часто это система разработки (DEV), мы создаём и деблокируем транспортные запросы. В процессе деблокирования в файловую систему транспортной системы экспортируются данные, образуются файлы транспортного запроса. Затем мы, используя данные файлы, можем импортировать транспортные запросы в целевые системы транспортного ландшафта. Чаще всего целевые системы это система тестирования (QAS) и продуктивная (PRD).

Рис. 1. Пример списка поддиректорий файловой системы /usr/sap/trans.

Чтобы запретить деблокирование запросов и экспорт данных в файлы, можно воспользоваться первым хинтом. Для этого необходимо в поддиректории /usr/sap/trans/bin создать файл с именем T_OFF.<SID>. Здесь <SID> - системный идентификатор той системы, из которой мы запрещаем экспорт транспортных запросов. Причем, внутри файла может быть текст, который система будет отображать пользователю при попытке деблокировать транспортный запрос через транзакции SE01/SE09/SE10 (рис. 2 и 3).

Рис. 2. Создание файла для запрета процесса деблокирования запросов.

Рис. 3. Диалоговое окно с сообщением о запрете деблокирования запросов в системе.

Пока файл не удалён, деблокирование в данной системе запрещено.

Второй хинт касается процесса импорта транспортных запросов в систему. Для его выполнения необходимо в поддиректории /usr/sap/trans/tmp создать пустой файл с именем NOIMPORT.<SID>. Здесь <SID> - системный идентификатор уже целевой системы, в которую мы запрещаем импорт транспортных запросов. После этого при попытке импорта любого транспортного запроса в данную систему в транзакции STMS будет выдаваться сообщение об ошибке, в детальном выводе которого можно увидеть информацию о блокировке очереди через файл NOIMPORT.<SID> (рис. 4).

Рис. 4. Блокировка импорта транспортных запросов в систему.

Пока файл в поддиректории существует, импорт в систему невозможен.

Данные возможности могут быть полезны при блокировке систем во время обновления или миграции. 


Автор: Шиболов Вячеслав Анатольевич


30 апреля 2021 г.

Мастер-класс "SAP ландшафт и основы транспортной системы"

Коллеги, друзья и просто сочувствующие, хочу поделиться новостью. Во вторник, 18 мая 2021 года, я буду проводить мастер-класс на площадке портала "SAPLAND". Мастер-классом назвать, наверное, это событие было бы слишком громко. Скорее это будет лекция "сборная солянка" на тему "SAP ландшафт и транспортная система". 



Попытаюсь за 4 часа рассказать всё, что знаю про транспортную систему в ABAP инстанции SAP системы, собрав в одном материале все нюансы и хитрости. Глубоко вглубь настройки и конфигурации не полезем, но в ширину постараюсь охватить всё. Будем говорить про базовые вещи, которые существуют в SAP системах с версии SAP R/3 3.0 и по сей день. При подготовке стараюсь сделать материал максимально интересным для широкого круга специалистов. Ведь с транспортной системой сталкиваются и консультанты по модулям SAP системы, и ABAP-программисты, и SAP BASIS-консультанты/администраторы.

Если интересно, то регистрируйтесь и приходите. Формат мероприятия - онлайн. 


Автор: Шиболов Вячеслав Анатольевич


9 сентября 2019 г.

Блокировка объектов SAP репозитория в транспортных запросах

При внедрении своих систем компания SAP рекомендует использовать трёхсистемный ландшафт, в который обычно объединены:
  • система разработки и настройки (DEV),
  • система тестирования или контроля качества (QAS),
  • продуктивная система или система промышленной эксплуатации (PRD).

Разработка новых решений и корректировки ошибок выполняются в первой системе. В тестовой системе производится тестирование изменений на продуктивном объеме данных. И в итоге, протестированное решение переносится в систему промышленной эксплуатации, где с ним сталкиваются конечные пользователи. Все эти системы объединяются в единый ландшафт с помощью транспортный системы, а изменения переносятся между системами с помощью транспортных запросов. Обо всём этом можно прочитать в этом или этом постах.

Родоначальницей транспортных запросов в ландшафте является система разработки и настройки. Когда разработчик изменяет или создаёт новый объект SAP репозитория (например, программу или функциональный модуль), то для объекта автоматически создаётся транспортный запрос с типом "запрос инструментальных средств" (Worbench request). Так как разработчиков, работающих в системе, обычно больше одного, то для сохранения целостности и безопасности необходим механизм, гарантирующий, что с одним объектом репозиториия одновременно может работать только один разработчик. И до тех пор, пока он не закончит разработку-изменение и не деблокирует запрос (released), объекты привязанные к запросу будут не доступны для изменения со стороны других разработчиков. 

На уровне SAP системы (сервера приложений ABAP) этот механизм реализован с помощью двух таблиц:
  • E071 - хранит записи всех объектов в запросах/задачах,
  • TLOCK - таблица блокировок объектов в открытых запросах.

Таким образом, пока запрос открыт, его объекты должны присутствовать в таблице TLOCK. При попытке других разработчиков (отличных от владельца запроса)  внести изменения в объект репозитория, система проверяет записи в таблице TLOCK. Если запись с объектом есть, то разработчик получает отказ на изменение объекта.

В посте "Использование транзакции SE03 для поиска запросов/задач" (рис. 7) я описывал возможность снять блокировку с объекта транспортного запроса. При использовании этой функции как раз и происходит удаление соответствующей строки из таблицы TLOCK.

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

Иногда в работе данного механизма SAP системы происходит сбой. В результате чего объект SAP репозитория может быть блокирован ошибочно (остались строки в таблице TLOCK) или не блокирован вовсе (нет записей в таблице TLOCK). Второе возможно при использовании вышеуказанного функционала транзакции SE03.

Для отслеживания соответствия объектов в транспортных запросах и их блокировок в SAP системе существует ABAP-программа RDDIT049. У программы нет привязанной транзакции, поэтому запуск осуществляется через транзакцию SE38 (рис. 1).

Рис. 1. Запуск программы RDDIT049.

На начальном экране программы необходимо галочками выбрать необходимые проверки и нажать на панели кнопку "Выполнить" (F8) (рис. 2).

Рис. 2. Запуск проверок блокировок в транспортных запросах.

Первая проверка проверяет все ли блокировки в таблице TLOCK принадлежат открытым запросам. А вторая часть - проверяет все ли блокировки корректны. Результат проверок выводится на экран (рис. 3).

Рис. 3. Результаты проверок.

Текущие блокировки можно просмотреть, просто щелкнув дважды левой клавишей мыши на строку с объектами на экране с результатами.

Если вы столкнётесь с ситуацией, когда транспортная система ругается на блокировки объектов, а открытых запросов с данными объектами в системе нет, то теперь вы знаете где искать корни проблемы и как её исправить.


Автор: Шиболов Вячеслав Анатольевич


26 августа 2019 г.

Век живи, век учись! - II


Данный пост продолжает серию кратких записей о моих открытиях в мире SAP систем и около них. Согласно первой части пословицы: "Век живи, век учись..." такие открытия периодически случаются и в тех областях, где казалось бы всё изучено вдоль и поперёк. 



В одном из первых постов этого блога в 2008 году был рассказ о том, как с помощью механизма отладки поменять статус транспортного запроса: из деблокированного (released) сделать его снова открытым на изменения. По прошествии стольких лет я обнаружил более простой способ изменять все атрибуты запроса, включая его статус. В системе существует программа RDDIT076. Проверял в системах основанных на SAP_BASIS от версии 4.6 до SAP NetWeaver 7.50, везде программа существует.

Указать программу RDDIT076 в SE38 (привязанной транзакции к программе нет) и запустить на выполнение (рис. 1). 

Рис. 1. Запуск программы RDDIT076.

На экране выбора в единственном поле указать транспортный запрос, атрибуты которого необходимо изменить, и нажать кнопку "Выполнить" (рис. 2).

Рис. 2. Просмотр атрибутов запроса.

Программа подтягивает не только запрос, но и все его задачи. Для просмотра атрибутов установить курсор мыши на строку с запросом (или задачей) и нажать на панели кнопку "Выбрать" (или просто дважды щелкнуть мышью по строке) (рис. 3).

Рис. 3. Открытие диалогового окна с атрибутами запроса.

Для редактирования полей нажать на кнопку "Редактирование", а после изменения необходимого параметра или параметров, - кнопку "Сохранения" (рис. 4).

Рис. 4. Изменение параметров транспортного запроса.

Таким образом можно изменить краткое описание, владельца запроса, статус - деблокировано (R) или изменяемо (D). Можно поменять целевую систему и даже исходный мандант (хотя у меня ни разу такой потребности не было). 

Какие-то моменты, например, владельца или краткое описание, можно поменять и через стандартные транзакции работы с транспортными запросами SE01/SE09/SE10 (рис. 5).

Рис. 5. Изменение атрибутов запроса в транзакции SE01.

Но некоторые задачи стандартными инструментами решить не получится. Например, запрос деблокирован, а поле "Целевая система" было не заполнено. В таком случае запрос при деблокировании не создаст физических файлов с данными на уровне файловой системы. И тут как раз поможет данная программа - RDDIT076. Открываем в ней запрос, меняем его статус на "Изменяемо", после чего указываем целевую систему и снова деблокируем.
Еще с помощью этого инструмента можно удалить деблокированный транспортный запрос: удалить файлы запроса на уровне операционной системы, после чего изменить статус запроса на "Изменяемо" и удалить транспортный запрос с уровня SAP системы.

ПРЕДУПРЕЖДЕНИЕ: Будьте внимательны! Описанный отчёт предназначен только для экспертов. Не стоит им злоупотреблять. А при работе с деблокированными запросами будьте крайне осторожны. Все последствия ложатся на Ваши плечи.

Век живи, век учись!



Предыдущие выпуски:


Автор: Шиболов Вячеслав Анатольевич


11 декабря 2018 г.

Саповские секретики - VI

Секретик 1.

Про транспортную систему я писал уже не раз (прочитать можно тут или тут). Типичная картина: в системе настройки/разработки создаётся транспортный запрос, который содержит изменения (записи таблиц с настройками или объекты ABAP-словаря). Затем этот запрос деблокируется (released) и отправляется дальше по системам для тестирования и промышленной эксплуатации. Это все, наверное, знают.

Так же вы знаете, что ABAP-словарь системы является общим для всех мандантов системы, а настройки могут быть двух видов - манданто-зависимые (большинство) и манданто-независимые. Манданто-независимые объекты доступны для всех мандантов системы сразу после создания. А манданто-зависимые оказывают влияние только на текущий мандант.

Часто бывает ситуация, когда в системе настройки создано несколько мандантов: чистая разработка-настройка, первичный тест, "песочница" и так далее. Первый сегодняшний секретик заключается в том, что есть возможность перенести запрос с манданто-зависимыми настройками внутри одной системы - из одного манданта в другой. Причем, запрос даже не нужно деблокировать - он может оставаться открытым для изменения. Для этого, после создания запроса с настройками в исходном манданте, необходимо войти в целевой мандант той же системы и запустить транзакцию SCC1. На основном экране необходимо указать номер транспортного запроса и исходный мандант, в котором запрос был создан. После этого поставить галочку напротив пункта "Включ. нижестоящие задачи запроса" и нажать кнопку "Немедленный запуск" (рис. 1).

Рис. 1. Основной экран транзакции SCC1. 

Подтвердить перенос данных, нажав "Да" в диалоговом окне (рис. 2).

Рис. 2. Запрос на копирование данных между мандантами.

После выполнения переноса, при возврате на шаг назад в транзакции, система выдаст журнал переноса запроса (рис. 3).

Рис. 3. Журнал переноса запроса между мандантами одной системы.

Отдельно журнал доступен в транзакции SCC3. Для отображения журналов переносов запросов между мандантами необходимо на панели нажать кнопку "Все запросы на перенос" (рис. 4 и 5).

Рис. 4. Начальный экран транзакции SCC3.

Рис. 5. Просмотр журнала в транзакции SCC3.

В данном примере, ошибка словаря связана с тем, что запрос содержал манданто-независимые данные, копировать которые нет необходимости.

Данный инструмент удобен в случае, если у вас мандант настройки не содержит данных (как и рекомендуется), но в системе разработки есть мандант для первичного теста с минимальным набором данных. Запрос не деблокируется, копируется в соседний мандант, проводится тест. Если результаты не удовлетворительны, то настройки можно подправить, изменив содержимое того же запроса, и снова скопировать его, используя транзакцию SCC1. Проведя несколько подобных итераций, получить работающую настройку и, только после этого, деблокировать запрос на перенос и импортировать его в тестовую систему для дальнейшего тестирования.


Секретик 2.

Как-то я писал пост про такой полезный инструмент, как "User Information System", к которому можно получить доступ через транзакцию SUIM. В транзакции представлен набор отчетов по пользователям/ролям/полномочиям в системе. Инструмент хороший, но очень объемный.

Поэтому второй секретик будет о том, как посмотреть документы изменений для пользователя ABAP системы. Необходимо войти в транзакцию SU01 (Ведение пользователей), ввести имя пользователя, а в меню выбрать пункт "Инфо -> Документы изменений для пользователей" (рис. 6).

Рис. 6. Вызов отчета по документам изменений для пользователя.

Откроется один из отчетов SUIM, в котором необходимо установить фильтр для событий, а так же можно указать временные рамки. После чего нажать "Выполнить" (рис. 7).

Рис. 7. Начальный экран отчета по документам изменений для пользователя.

Система выдаст всю информацию по пользователю: когда был создан, когда менялся пароль или был блокирован (рис. 8).

Рис. 8. Информация по пользователю системы.

Один интересный момент - если пользователь был удален из системы, то данный журнал изменений в системе всё равно хранится (обратите внимание на последнюю запись в отчете на рис. 8).

Таким образом можно просмотреть информацию и по удалённым пользователям. И вычислить кто, когда и кого удалил. :)


Секретик 3.

В нескольких постах я уже рассказывал, что в SAP системе можно увеличивать производительность уровня сервера приложений через установку дополнительных диалоговых инстанций (пост 1пост 2). В случае нескольких установленных инстанций для входа в систему используют "Logon Group"-ы, которые указываются в программе SAP Logon. Основательный пост про это можно найти тут.

При входе в систему вы попадаете на одну из диалоговых инстанций, в зависимости от настроек вышеуказанных Logon Group и встроенной системы балансировки нагрузки со стороны Message Server.

Текущую диалоговую инстанцию можно посмотреть в правом нижнем углу любого окна SAP GUI (рис. 9).

Рис. 9. Определение текущей диалоговой инстанции.

Иногда возникает потребность перейти на другую инстанцию в рамках одной системы. Этому посвящен последний секрет. Все инстанции системы можно посмотреть в транзакции SM51. Причем, верхняя в списке будет та, через которую вы сейчас работаете с системой. Для перехода на любую другую инстанцию необходимо на основном экране транзакции SM51 установить курсор мыши на нужную инстанцию, а на панели нажать кнопку "Дистанционный вход в систему" (рис. 10).

Рис. 10. Переход на другую диалоговую инстанцию в рамках одной системы.

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


Предыдущие выпуски:
Саповские секретики - I,
Саповские секретики - II,
Саповские секретики - III,
Саповские секретики - IV,
Саповские секретики - V.


Автор: Шиболов Вячеслав Анатольевич.


2 октября 2017 г.

Почему SAP рекомендует 3-х системный ландшафт?

Вот вы говорите: "Ландшафт, ландшафт... " А что такое ландшафт?

Давайте остановимся на этом понятии поподробнее.

Итак, в посте "Копирование манданта SAP системы" я приводил структуру данных SAP системы (рис. 1).

Рис. 1. Структура данных в SAP системе.

В ABAP части SAP системы выделяют автономные единицы для работы и хранения данных предприятия. Данные единицы носят название - мандант. Мандант содержит основные данные (Master Data), записи пользователей с полномочиями и манданто-зависимые настройки. Манданты идентифицируется троичным номером и их в системе может быть несколько. Теоретически 1000 штук.

Помимо манданта, в системе есть общие для всех мандантов данные: манданто-независимые настройки и репозитарий SAP системы. Репозитарий это прежде всего ABAP-программы (reports, функциональные модули, экраны и т.п.). К репозитарию так же относится и ABAP-словарь, про который я писал в посте "Транзакция SE14 : утилита базы данных".

Ландшафт, как я уже упоминал ранее, это объединение нескольких систем одного назначения/версии для настройки/обеспечения контроля качества/поддержки того или иного решения компании SAP. Например, SAP ERP 6.0 EHP7 (кстати, самая распространенная версия по опросам) или SAP SRM 7.0 EHP3.

Ландшафты SAP систем могут быть:
  • односистемными,
  • двухсистемными,
  • трёхсистемными.

Рассмотрим первый вариант - ландшафт SAP системы, состоящий из одной системы. Допустим, в одном манданте системы разработчики и консультанты производят настройки и пишут/изменяют ABAP-программы. А второй мандант системы выделен для работы пользователей (рис. 2).

Рис. 2. Односистемный SAP ландшафт.

В плане разграничения доступа - всё хорошо. Пользователи в разных мандантах разные. И консультанты и разработчики не имеют доступ к основным данным предприятия (например, заработной плате), так как работают в отдельном манданте. Но представьте, что будет, если разработчик активирует новую версию программы при работающих с ней пользователях? Будет несколько дампов (равных количеству работающим с программой пользователей) и все результаты работы пользователей будут потеряны. Так как, еще раз повторюсь, репозитарий для нескольких мандантов одной системы только один, он общий (рис. 2). 

Я в своей практике встречался с таким ландшафтом. Это был пилотный проект в одном, отдельно взятом, подразделении крупного транспортного предприятия. В день, когда на проект приходил разработчик, пользователи в системе не работали. :) То есть получалась система с разграничением времени работы: либо пользователи, либо ABAP-программист.


Второй вариант: в ландшафте SAP системы уже 2 системы. Одна играет роль системы разработки и настройки, вторая для продуктивной работы пользователей. Системы объединены транспортной системой (рис. 3). 

Рис. 3. Двухсистемный SAP ландшафт.

Здесь ситуация лучше: программисты разрабатывают программы в отдельной системе и, по мере готовности, переносят их в продуктивную систему. Программисты отделены от пользователей и не мешают их работе. Но, на самом деле, ситуация далека от идеальной. Такой ландшафт не может обеспечить хороший уровень контроля качества настроек и разработок системы. Тут проблемы возникают с тестированием решений. Где проводить тестирование? На стороне системы разработки? Тогда встает вопрос с безопасностью (основные данные предприятия в системе, где работают консультанты и разработчики) и с обновлением данных. Про тестирование на стороне системы промышленной эксплуатации вообще говорить не приходится. Даже если выделить отдельный мандант в этой системе, репозитарий общий и дампы при переносе никуда не денутся.

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


Поэтому переходим к последнему варианту - трёхсистемный ландшафт. Три системы (DEV, QAS, PRD) работают в связке, объединенные, корректно настроенной, транспортной системой. Такая связка обеспечивает независимость разработки и настройки в первой системе, тестирование разработанного решения и переноса транспортного запроса во второй и безопасный перенос готового, оттестированного решения в систему промышленной эксплуатации (рис. 4).

Рис. 4. Трёх системный SAP ландшафт.

В данном варианте разработчик создаёт новую версию объектов репозитария (программы, экраны, таблицы словаря, элементы данных и т.п.) в системе разработки (DEV). После этого, деблокировав транспортный запрос, содержащий необходимые объекты, переносит его в систему контроля качества (QAS). В тестовой системе производятся все виды тестирования: функциональное и нагрузочное на больших объёмах данных, решаются возникающие проблемы интеграции с другими разработками и модулями. Все доработки производятся в системе разработки (DEV) и переносятся новыми транспортными запросами в систему QAS. После того, как разработка подтверждается как завершённая, принимается решение о переносе её в продуктивную систему. И тогда производится перенос всей очереди сформированных запросов в рамках данной разработки. Запомните! Всей очереди, а не только последних запросов. Только так можно гарантировать, что во время переноса вы не получите что-то другое в системе промышленной эксплуатации. Все ваши запросы в систему QAS - это проверенная очередь, при переносе которой в новую систему вы ничего не потеряете и не забудете.

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

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

Стоит еще отметить: систем в ландшафте может быть больше. Например, 2 тестовые системы, с разным срезом продуктивных данных. 2 продуктивные системы, которые поддерживаются одной парой разработка-тест.

Так же и мандантов внутри систем может быть больше. В системе разработки часто, кроме манданта для настройки и разработки (который в идеале не содержит основных данных), создают мандант первичного тестирования. В нём есть небольшой объем данных для первичного теста. Так же часто можно увидеть мандант-песочницу, в котором консультанты могут "побаловаться" с настройками. Главное, чтобы все изменения (мусор, песок) в этом манданте не включались в транспортные запросы и никуда не импортировались.
В тестовой системе часто создают отдельный мандант для обучения сотрудников. Так как для реальных примеров во время обучения нужен объем данных, а в продуктивной системе обучать новых людей нельзя по очевидным причинам.
В продуктивной системе могут быть несколько промышленных мандантов для работы отдельных предприятий в рамках одной системы.

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

P.S. Всё что здесь описано, касается только AS ABAP, при разработке в AS JAVA требования к ландшафту несколько другие. Подробности можно найти в курсах SAP ADM325 и SAP ADM800.




21 сентября 2017 г.

Пользователь TMSADM

При начальной конфигурации транспортной системы в AS ABAP любой SAP системы в 000 манданте автоматически создаётся системный пользователь TMSADM.

Данный пользователь имеет тип "Communication" или "System" (рис. 1). Но ни в коем случае не "Диалоговый", то есть вход в систему через SAP GUI ему должен быть запрещен.

Рис. 1. Тип учетной записи TMSADM.

Дело в том, что для работы транспортной системы используются RFC-соединения (рис. 2). Эти RFC-соединения генерируются так же при первоначальной настройке транспортной системы (TMS).

Рис. 2. RFC-соединения, использующиеся в работе транспортной системы.

RFC-соединения используются для обмена информацией между системами транспортного ландшафта (рис. 3).

Рис. 3. Схема настройки RFC для работы транспортной системы.

Как видно из схемы и рис. 2, используется 2 вида RFC-соединений:
  • TMSADM@<SID>.<DOMAIN_NAME> - для аутентификации используется пользователь TMSADM, используется для некритичных операций, прежде всего на чтение информации;
  • TMSSUP@<SID>.<DOMAIN_NAME> - используется для более критичных операций, прежде всего операций записи, для аутентификации требует пару пользователь/пароль.

Эти два вида RFC-соединений создаются в каждой системе, которая подключена к транспортному домену. И пользователь TMSADM есть в каждой, но только в 000 манданте.

Так как пользователь TMSADM генерируется автоматически, то для него хранится стандартный пароль, который знают все системы транспортного ландшафта. В разных версиях SAP систем использовались два вида паролей:
  • PASSWORD;
  • $1Pawd2&.

Начиная с версии системы SAP NetWeaver 7.40, при настройке транспортной системы можно задать свой пароль. Или выбрать один из стандартных вариантов паролей (рис. 4).

Рис. 4. Установка пароля для пользователя TMSADM.

Установка своего пароля удовлетворяет требованиям безопасности, но старые системы в одном ландшафте с такой системой работать не смогут. Хотя ситуация работы систем разных версий в одном ландшафте очень редка, всё равно выбор оставили.

Проверить пароль пользователя TMSADM, не трогая учетную запись, можно через отчёт RSUSR003. Данный отчет проверяет пароли системных пользователей во всех мандантах системы на предмет их безопасности. То есть, в программе есть список хэшей стандартных паролей, которые он сверяет с реальными в системе. Например, для пользователей SAP* и DDIC, про которых я писал в этом посте.

Результатом работы отчета будет список системных пользователей и вердикт по их паролям (рис. 5).

Рис. 5. Проверка паролей системных пользователей.

Если отчёт в системе не отображает информацию по пользователю TMSADM, то необходимо заглянуть в SAP note # 1552894 - RSUSR003: Checking the standard password for user TMSADM. Установив исправления из ноты или соответствующий пакет поддержки для вашей версии системы, получите новую версию отчёта, которая проверяет пароль для пользователя TMSADM. Как работать с SAP нотами я описывал в цикле статей - часть 1, часть 2, часть 3.

Просто так, войдя в транзакцию SU01, изменить пароль для TMSADM нельзя. Как правильно изменить стандартный пароль для пользователя TMSADM описано в SAP note # 1414256 - Changing TMSADM password is too complex.

Дополнительно на данную тему можно найти информацию в курсе SAP "ADM325 - SAP Software Logistics for ABAP" и SAP note # 761637 - Logon restrictions prevent TMSADM logon.

  


18 сентября 2017 г.

Использование транзакции SE03 для поиска запросов/задач

Про транзакцию SE03 я уже писал в двух постах:

Рассмотрим еще некоторые функции этой транзакции. 

С помощью транзакции SE03 можно искать транспортные запросы в системе. Для этого в древовидном меню на главном экране транзакции необходимо выбрать пункт "Инструменты организатора переносов -> Запросы/Задачи -> Поиск запросов" и нажать кнопку "Выполнить" на панели (рис. 1).

Рис.1. Вызов функции по поиску запросов на перенос.

На появившемся экране откроется огромное количество фильтров, используя которые можно ограничить поиск. Для открытия всех параметров необходимо на панели нажать кнопку "Развернуть" и заглянуть в средство поиска "Тип запроса" (рис. 2).  

Рис. 2. Набор фильтров для поиска запросов в системе.

Можно указать номера запросов, одного или список владельцев, даты создания запросов. Список типов запросов включает такие редкие, как запрос на удаление или запрос на копирование манданта. Отдельно можно указать типы для задач. Так же можно указать цель переноса или исходный мандант. Даже можно попробовать указать слова из краткого описания запроса на перенос.

Ну и, конечно же, можно указать в каком состоянии находятся запросы: изменяемо, деблокирован или в процессе деблокирования. 

После указания фильтров и нажатия кнопки "Выполнить" система выдаст список запросов, удовлетворяющих критериям выбора (рис. 3).

Рис. 3. Результаты поиска транспортных запросов.

Следующая функция в данной категории это "Объединение списков объектов" (рис. 4).

Рис. 4. Объединение списков объектов запросов.

Вызываем функцию, нажав на панели кнопку "Выполнить". На следующем экране устанавливаем фильтры для поиска запросов и нажимаем "Выполнить". Затем выделяем необходимые транспортные запросы с помощью кнопки "Выделить ветвь +/-" на панели и нажимаем на той же панели кнопку "Объединить" (рис. 5).

Рис. 5. Объединение объектов двух транспортных запросов.

Указываем существующий или создаем новый транспортный запрос и получаем объединение объектов в одном запросе (рис. 6).

Рис. 6. Создание транспортного запроса для включения объектов.

Так же в транзакции SE03 есть функция снятия блокировки с объектов (рис. 7). Данная операция бывает необходима, например, при импорте пакетов обновлений в систему. Когда импорт обновлений "натыкается" на блокированные в транспортных запросах объекты.

Рис. 7. Снятие блокировки с объектов.

На первом экране программы снятия блокировки с объектов необходимо указать номер запроса или задачи, объекты которого вы хотите разблокировать. Есть несколько опций (рис. 8).

Рис. 8. Разблокирование объектов транспортного запроса.

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




10 июля 2017 г.

Использование транзакции SE03 для поиска объектов в запросах

В посте "Запись каталога объекта: изменение системы оригинала" я уже писал про транзакцию SE03 и как, используя её, поменять систему оригинала для объекта ABAP словаря системы.

У этой транзакции есть еще несколько полезных функций. Рассмотрим функции по работе с объектами в транспортных запросах.

В посте "Как перенести содержимое таблицы" я описывал процесс включения объекта словаря в транспортный запрос. В данном случае это было описание структуры таблицы. Запросы на перенос или транспортные запросы хранят те или иные объекты ABAP словаря. До деблокирования (release) запроса в нём хранятся лишь ссылки на объекты, а реальная информация выгружается в файлы запроса только во время процесса деблокирования. Как вы помните, после деблокирования транспортного запроса в файловой системе сервера приложений формируется 2 файла с номером запроса.

Итак, чтобы найти объект, который был включен в транспортный запрос, необходимо войти в транзакцию SE03, выбрать в древовидном меню пункт "Поиск объектов в запросах/задачах" и нажать на панели кнопку "Выполнить" или клавишу F8 на клавиатуре (рис. 1).

Рис. 1. Поиск объектов в запросах/задачах.

На экране выбора необходимо указать объект, который мы ищем, и, при желании, дополнительные фильтры: диапазон номеров запросов/задач, владельца запроса, период времени, который нам интересен и статус запроса (деблокирован или нет). Например, мы хотим найти все запросы, в которых содержится программа Z_DELETE_FROM_DEVACCESS (рис. 2).

Рис. 2. Поиск запросов, содержащих программу Z_DELETE_FROM_DEVACCESS.

После установки фильтров и нажатии на панели кнопки "Выполнить" на экране отобразятся запросы, удовлетворяющие фильтрам. В данном случае, это те, которые содержат программу Z_DELETE_FROM_DEVACCESS (рис. 3).

Рис. 3. Запросы, содержащие программу Z_DELETE_FROM_DEVACCESS.

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

Рис. 4. Заголовок запроса.

Рис. 5. Журнал экспорта и импорта запроса.

Нажав дважды на номер запроса, можно посмотреть, полное содержимое запроса (рис. 6).

Рис. 6. Содержимое запроса.

Таким образом, можно найти все запросы, содержащие искомые объекты.

Также данный раздел транзакции SE03 позволяет анализировать объекты в запросах. Для этого необходимо в древовидном меню выбрать пункт "Анализ объектов в запросах/задачах" и нажать на панели кнопку "Выполнить" или клавишу F8 на клавиатуре (рис. 7).

Рис. 7. Анализ объектов в запросах.

На следующем экране указываем номер запроса и система выдает экран с объектами, содержащимися в запросе (рис. 8).

Рис. 8. Анализ объектов в запросе.

На данном экране можно посмотреть следующую информацию:
  • список всех объектов запроса,
  • записи каталогов объектов,
  • класс разработки, систему оригинала, уровень переносов в транспортной системе и целевую систему,
  • зависит ли объект от манданта системы и блокирован ли он в данный момент,
  • атрибуты объекта на одном экране, нажав соответствующую кнопку на панели (рис. 9).

Рис. 9. Атрибуты программы Z_DELETE_FROM_DEVACCESS.

Автор: Шиболов Вячеслав Анатольевич