15 ноября 2011 г.

Печать в системе SAP. Часть I.

Самым распространенным способом печати в системе SAP, на мой взгляд, является тип печати F (Front-End Printing) - с использованием рабочей станции пользователя в качестве сервера печати.


При отправке запроса на печать рабочий процесс спула (S) связывается с программой SAPLPD (на Windows: saplpd.exe) на рабочей станции пользователя и печатает, используя средства операционной системы, на принтере, установленном на рабочей станции пользователя по-умолчанию. На других операционных системах (MAC OS, UNIX) используются средства операционной системы без программы SAPLPD.

В Windows для печати используется протокол SAPWIN (SWIN, подробности в SAP note # 21738 - Device type SAPWIN). Особенностью данного вида печати является обязательное наличие коннекта к рабочей станции (SAP GUI), то есть фоновая печать в данном случае невозможна.

Подробности можно прочитать в курсе "ADM100 - SAP Web AS Administration I" (Unit 11).

С практической точки зрения, настройка принтера в системе производится следующим образом:
  1. Создать новый тип устройства ZSAPWIN. Войти в транзакцию SPAD -> кнопка «Полное администрирование» -> закладка «Типы устройств» -> строка «Типы устройств», кнопка «Просмотр». Перейти в режим «Редактировать» -> выбрать SAPWIN (Rel.4.x/SAPlpd 4.09+ ONLY!) -> кнопка «Создать по образцу (F5)». Скопировать SAPWIN в ZSAPWIN: кнопка «Выбрать» -> «Да» на запрос о создании типа устройств ZSAPWIN -> Включить в пакет (Z001) и в запрос на перенос.
  2. Войти во вновь созданный тип устройства ZSAPWIN, в полях «Набор знаков» и «СинтНаборЗнаков» вписать значение 1505 (Printer SAPWIN5  Russian MS-Windows codepage):


  3.  Нажать кнопку «Форматы»,
    для формата X_65_80 в «Инициализация принтера» откорректировать текст следующим образом:


    в форматы X_65_132, X_44_120, X_58_170, X_90_120, X_65_255, X_PAPER в «Инициализация принтера» добавить в конце строки:
    # wincharset 204 = ISO 8859/5
    \eW204;

    для формата X_90_120 в «Инициализация принтера» закомментировать следующую строку:
    #\ec16;

  4. Войти в транзакцию SE73 -> «Шрифты печати» -> кнопка «Изменить» -> войти в тип устройства ZSAPWIN. Для семейств шрифтов COURIER, HELVE и TIMES изменить в поле «ОпУпрП 2» значения на SF015.


  5. Транзакция SPAD -> Устройства вывода -> кнопка «Просмотр» -> перейти в режим редактирования. Нажать кнопку «Создать устройство»(Shift + F1). Заполнить поля:
    На закладке «Атрибуты устр-в»:
    «Устройство вывода» = FRONTEND (имя для нового принтера)
    «Краткое имя» = FRND (короткое имя принтера)
    «Тип устройства» = ZSAPWIN
    «Класс устройства» = Станд. принтер


    На закладке «Связь со СпулХоста»:
    «Метод» - F: Печать на хосте фронтэнда (или G: Печат на фронтэнде с технолог. упр. элем.)
    «Принтер хоста» = __default (двойное подчеркивание default, без пробелов)
    «Нет выбора устройства на фронтэнде» = не устанавливать


    Сохранить.
  6. Прописать всем пользователям, кто использует данный тип печати, в транзакции SU01 в закладке «ПостЗначения» поля:
    «Устр. вывода» = FRONTEND
    «Немедленный вывод» = установить
    «Удалить после вывода» = установить


Подробности в SAP note # 128105 - Frontend printing (collective note).

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


12 комментариев:

  1. Вячеслав, можете подробнее описать, что именно дают манипулции из пункта 3 и 4? Или скинуть ссылку на "почитать". :)
    И был ли опыт решения проблем принтеров HP LaserJet 1100 и подобными, которые не знают язык PCL5?

    ОтветитьУдалить
  2. Николай, к сожалению более подробной информации у меня нет. В первоисточнике были ссылки на SAP notes, которые оказались internal (только для внутреннего использования). Соответственно текста нот мне увидеть не удалось. Но данная настройка была проверена на практике.
    Проблем с принтерами не было. Может быть просто до меня не доходили.
    Если у кого-то есть ссылки на доп. материалы по этому поводу - пишите, было бы интересно.

    ОтветитьУдалить
  3. 1148609 - HP Printer Models without Resident PCL5 Font
    Вот в этой ноте как раз говорится про язык pcl5. Проблема возникает, если используется ads и формуляры. Устройства, перечисленные в ноте, не могут печатать напрямую формуляры. И я думаю, стоит указать, что ваша статья относиться только к печати стандартного alv-grid.

    ОтветитьУдалить
  4. Николай, согласен, данные настройки только для печати ALV-grid.

    ОтветитьУдалить
  5. Метод печати "F" уже безнадежно устарел. SAP AG его уже как 2 года не поддерживает, и рекомендует переходить на "G" - Печать с управляющем элементом. Никаких больше saplpd и его заморочек. Все просто, появляется окно печати, аналогично печати из Word`a.

    По поводу русификации, нет смысла заниматься "шаманством" описанном способом выше, хотя это работает. Достаточно просто выбрать "SAPWIN5", кодировку 1505 и он подставить автоматом, и знаки для инициализации русской кодировки принтера тоже "\eW204;"

    Дополнительно, SAP AG рекомендует обновить тип устройств для принтера, делать это желательно регулярно. Закачка и настройки идут через "wizard" в SPAD.
    Описание и обновление находятся "Note 1036961 - Device type selection wizard in transaction SPAD".

    ОтветитьУдалить
    Ответы
    1. На счет метода F согласен. Настройка и принцип идентичный, только при печати на клиентской машине вместо saplpd используются dll-ки из SAP GUI. В остальном все то же. На счет "не поддерживаемости" - в списке методов при настройке есть и работает прекрасно. В остальном согласен - выбирайте метод печати F.

      Удалить
  6. Наверно, опечатка: В остальном согласен - выбирайте метод печати F. Имелось в виду G.

    ОтветитьУдалить
    Ответы
    1. Да. Верно) Опечатка. Сейчас выбирать лучше метод G, как более продвинутый и современный.

      Удалить
  7. Вячеслав, а возможно ли настроить единый принтер для alv-grid и для ads ? Для печати ads использую device type, предоставленный производителем принтера, для печати alv - обычный SAPWIN. Если печатать alv-grid принтером с этим device type русские буквы вылезают кракозябрами.

    ОтветитьУдалить
    Ответы
    1. К сожалению, я способа не знаю. Только выбор из двух устройств.

      Удалить
  8. Господа, подскажите как подавить окно выбора принтера при методе печати G ? Например в транзакции обработки выходных документов фактур vf31, при массовой печати это окошко выскакивает на каждой фактуре, чем немало досаждает пользователям. С методом F таких проблем не возникает.

    ОтветитьУдалить
  9. Здравствуйте, может быть вопрос не по теме, а как печатать степени, специальные символы с листинга например? Обычно они решётками выходит. В этом случае ваши методы печати тоже могут помочь?

    ОтветитьУдалить