пятница, 12 декабря 2014 г.

SAP GUI 7.40 Patch Level 1

Список изменений:
2014/10/16 ALVGrid : Multibyte Header text is garbled, note 2080389
2014/10/16 Amodal F4: For single F4 key press two F4 dialogs pop up, note 2073731
2014/10/16 FRONTEND SERVICES: DIRECTORY_BROWSE dialog increases in size, note 2035894
2014/10/16 Control mode F4:- Clicking OK button and pressing Enter , note 2051053
2014/10/16 Disable Code Completion via RFC, note 2071483
2014/10/16 EH&S WWI: Corrections in WWI SP35, note 2036428
2014/10/16 EH&S WWI: Corrections in WWI SP36, note 2080008
2014/10/16 Focus: SAP GUI main window not activated after choosing F4 item, note 2051799
2014/10/16 GUI Crash in CL_GUI_FRONTEND_SERVICES Parallel Execution, note 2051058
2014/10/16 History: maximum number of entries increased from 99 to 999, note 2070364
2014/10/16 Logon Control: Silent Logon fails if SID passed instead of system, note 2035788
2014/10/16 Logon Control: System Landscape Development, note 2041280
2014/10/16 Logon: Blank list entries are displayed in System tab, note 2063021
2014/10/16 OFFI: ABAP dump with Word as SAPscript editor, note 2075534
2014/10/16 OFFI: Error while opening excel document in inplace mode, note 2042676
2014/10/16 OFFI: File menu is not displayed, note 2051489
2014/10/16 OFFI: SAP GUI crashes with wrong document URL, note 2059932
2014/10/16 OFFI: Word crashes with CTRL+P keyboard shortcut, note 2068949
2014/10/16 Options: ESC closes dialog even if dropdown list is open, note 2070069
2014/10/16 ALVGrid: Cell text is not visible when it has an icon, note 2059646
2014/10/16 SAP GUI BARCHART: Context menu item selection does not work, note 2038608
2014/10/16 BARCHART: Drawing issue in displaying Non-working time, note 2040695
2014/10/16 BARCHART: Horizontal scrollbar disappears while scrolling, note 2063562
2014/10/16 SAP GUI BARCHART: Performance issue in GNBAX.exe, note 2046463
2014/10/16 SAP GUI BARCHART: The chart disappears after collapse rows, note 2039079
2014/10/16 SAP GUI Data Provider: Replacing MSXML4.dll with MSXML6.dll, note 2046610
2014/10/16 SAP Interactive Excel, version 3.0, note 1844598
2014/10/16 SAPGUI ALVGrid: New features in SAPGUI 7.40, note 2057085
2014/10/16 ALVGrid: Text in cells garbled when CENTER/RIGHT aligned, note 2040430
2014/10/16 APO Grid : Error thrown in copy paste of text without rc, note 2032843
2014/10/16 SAP GUI leads to crash when copying deactivated OBJs, note 2064422
2014/10/16 Script Recording and Playback dialog: invalid layout, note 2044638
2014/11/13 Tracing for SAP UI Landscape, note 2064472
2014/10/16 Textedit: Missing implementation for LIMIT_TEXT, note 1955270
2014/10/16 GuiXT: Version 2014 Q1 1, note 809461
2014/10/20 ACC: Fixes for the JAWS Scripts of SAP GUI for Windows, note 755545
2014/10/20 Dialog box container titles in Japanese sometimes wrong rend, note 2071332
2014/10/20 Enhanced search: error when several fields with the same nam, note 2068043
2014/10/20 Flickering of several SAP GUI sessions if a non-ABAP dialog, note 2077944
2014/10/20 SAP GUI for Windows: pasting some to long text into an edit, note 2077262
2014/10/20 SAP Logon (Pad) 740: missing SAPRouter string for system ent, note 2077230
2014/10/20 SAP Logon: Possibility to set column widths in registry for, note 2073118
2014/10/20 Inplace NWBC: garbled button text on security popup dialog, note 2077304
2014/10/21 SAP GUI BARCHART: SAP GUI crashes on double click., note 2077571
2014/10/27 SAP GUI 7.40 ABAP Editor displays incorrect syntax colors for ABAP source code, note 2081078
2014/10/27 ABAP Editor crashes in system older than NW 7.00 Ehp2, note 2081798
2014/10/27 Modal window (popup) cleanup in SAP GUI, note 2083794
2014/10/27 SAP GUI for Windows: some times crashed if Blue Crystal desi, note 2084715
2014/10/27 SAP Logon Shutdown does not work when MSGBOX is shown, note 2083996
2014/10/27 The backgound color of inactive (read-only) fields in Blue, note 2082569
2014/11/21 ABAP Editor: Fix downward compatibility for ABAP parser, note 2081078
2014/10/31 SAP GUI 740 crash, if backend < 702, note 2081798
2014/11/03 SAP Logon (Pad) 740: empty SID column in the list view and f, note 2088541
2014/11/03 SAPShortcut: Saving password in SAPShortcut - not recommen, note 146173
2014/11/04 GuiXT: Version 2014 Q2 2, note 809461
2014/11/04 NWBC 50 + SAP Logon 740: logon error hostname /SYSID= ... u, note 2089262
2014/11/07 SAP GUI crash with PDF print preview, note 2067527
2014/11/07 The Hebrew text is not correctly mirrored in RTL mode when u, note 2091328
2014/11/10 SAP Logon (Pad) 740: Filter Folders is always on after r, note 2091320
2014/11/17 Incomplete message servers do not get migrated to SAP Land, note 2093229
2014/11/21 Incomplete message servers do not get migrated to SAP Landsc, note 2093229
2014/11/21 SAPShortcut: Saving password in SAPShortcut - not recommende, note 146173

среда, 19 ноября 2014 г.

Исправление "вылета" SAP GUI при попытке открыть Adobe LiveCycle Designer в последних патчах.

Если кратко, то вот этот файл нужно скачать и импортировать в реестр.

Для тех кому нужны подробности.

Проблема проявляет себя следующим образом. Если в транзакции SFP открыть Layout любого PDF-шаблона, то Adobe LiveCycle Designer пытается запуститься, появляются даже какие-то индикаторы загрузки, но в итоге весь SAP Logon просто тихо закрывается.

Такое поведение началось с SAP GUI 7.30 Patch 10 и также характерно для Patch 11 и SAP GUI 7.40. Возможно, эта ошибка актуальна только для Windows 8, возможно, только для 64-х битных систем. Возможно, сказались какие-то другие факторы. Факт в том, что связка SAP GUI 7.30 Patch 10 (или Patch 11, или SAP GUI 7.40) + Adove LiveCycle Designer 10.4(вообще проверялись почти все от 7-ой) + Windows 8 x64 - приводит к указанной ошибке. В тоже время, например,  связка SAP GUI 7.30 Patch 11 + ALD 10.4 + Windows Server 2008R2x64  прекрасно работает.

Не понятно по какой причине возникает проблема, но заключается она в следующем. SAP Logon ищет ActiveX сервер для запуска Adobe LCD по GUID 72ABAFB3-0EF2-495C-9828-7FE135DA6FC8. Но ищет он только в ветках HKEY_CLASSES_ROOT\CLSID и HKEY_CURRENT_USER\Software\Classes\CLSID (увидел я это с помощью программы Process Monitor от SysInternals). Но поскольку Windows  64х-битный, а сам Adove LiveCycle Designer 32х-битный, то (похоже) при установке Adobe LCD прописался только в HKEY_CLASSES_ROOT\Wow6432Node\CLSID. Возможно, это и правильно, но (опять же - похоже) SAP Logon не ожидает, что он не найдет ALD и тупо падает.

Исправление заключается в том, что мы копируем ветку HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{72ABAFB3-0EF2-495C-9828-7FE135DA6FC8} в ветку HKEY_CLASSES_ROOT\CLSID\{72ABAFB3-0EF2-495C-9828-7FE135DA6FC8}. Если хотите, можете сделать сами, но проще импортировать уже готовый файл.

Интересно здесь еще то, что, как указано выше, в Windows2008Rx64 все работает при том, что нужного раздела в реестре нет. Magic!

SAP GUI 7.30 Patch 11


Внимание! После установки патча скорее всего попытки отрыть PDF-формуляры в SFP будут приводить к завершению работы SAP GUI!
Download

пятница, 17 октября 2014 г.

SAP GUI 7.40

Download

Не ставьте NWBC вместе с SAP GUI - сломаются все соединения и ярлыки в SAPLOGON.INI - пропадают пароли, SYSTEM ID, строки роутеров. Причем при повторной вписке не сохраняются. Если ставить только GUI, то все ОК.

Сама версия очень глючная.  Не считая вышеописанного, коряво работает подсветка в редакторе, некоторые заголовки в ALV-Grid вместо русского показывают кракозябры. Новая тема Blue Crystal тоже убожество (ну это конечно на любителя)

Проблема с Adobe LiveCycle Designer все еще не починена - при попытке открыть PDF шаблон SAPLogon молча закрывается (сломано еще в 7.30 patch 10)

понедельник, 11 августа 2014 г.

SAP GUI 7.30 Patch 10


Внимание! После установки патча скорее всего попытки отрыть PDF-формуляры в SFP будут приводить к завершению работы SAP GUI!
Download
Для тех, у кого mega.co.nz по предыдущей ссылке не открывается, вот альтернативный адрес - Download

четверг, 9 января 2014 г.

Передача динамической таблицы через память.

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

Итак задача. У нас есть 2 отчета. Первый может запускаться самостоятельно. Он выбирает данные по параметрам селекционного экрана и выводит их, например, в ALV-GRID. Во втором отчете, логика выборки практически такая же, но возможно отличия в выводе. Или он вообще ничего не выводит, а, например, посылает данные в другую систему через IDOC. "Копипастить" логику во втором отчете - плохо. Самое правильное - это вынести логику в отдельный ФМ/Класс. Но допустим первый отчет уже написан, переписывать его не хочется, а хочется "дернуть" его из второго и получить от него данные с минимальными изменениями.

На первый взгляд все просто. Добавляем в отчете №1 поле на "селекционник" типа такого:

parameter p_export type flag no-display default space.

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

if p_export is initial
  perform show_data. 
else
  export data from gt_alv to memory id 'ZDYNTEST'
endif.

Второй отчет выглядит примерно так:

submit zreport1 and return
  with ...
  with ...
  with p_export eq 'X'
.
import data to gt_data from memory id 'ZDYNTEST'.

Так вроде бы все работает.
А теперь представим, что таблицу мы генерируем динамически с использованием create data, cl_abap_tabledescr и прочего. Допустим у нас есть указатель на нее в GPT_ALV (data gpt_alv type ref to data). Экспортировать сам указатель в память мы не можем, потому что даже если бы это можно было сделать, то при импорте в другой LUW (Logical Unit Work,  а submit создает именно новый LUW) это был бы указатель неизвестно на что, потому что там свое адресное пространство. А использовать память в пределах одного LUW смысла не имеет - удобнее воспользоваться статическими атрибутами класса.
Итак указатель не можем, но мы его можем привести к FIELD-SYMBOL на таблицу и ее уже передать в память. Ну примерно так:

field-symbol <t_alv> type standard table.

if p_export is initial
  perform show_data. 
else
   assign gpt_alv->* to <t_alv>.   
   export data from <t_alv> to memory id 'ZDYNTEST'
endif.

Отлично. Экспортнули. А как теперь во втором отчете эту таблицу импортировать?
Структуры мы ее не знаем - поскольку она динамическая. А в IMPORT нужно уже существующую инициализированную таблицу передавать с конкретной структурой.
Ну ОК. Можно  было бы ее построить заново, если бы можно было передать описатель типа CL_ABAP_TABLEDESCR. Но его не передать так как опять же это ссылка. Можно было бы передать описание по компонентам строки таблицы полученным через CL_ABAP_STRUCTDESCR=>GET_COMPONENTS. Но там в таблице компонентов тоже ссылки на описатели типов - и тоже их не передать. Единственным вариантом остается передача именно компонентов, но в собственных структурах с более детальным содержанием и без ссылок на описатели. Но это такой "велосипед" получается, что дешевле по затратам выйдет все-таки вынести логику из отчета №1 в отдельный ФМ или класс.

К счастью SAP уже написал такой велосипед и находится он в классе CL_SALV_BS_RUNTIME_INFO. С его использованием наш код превращается в следующее.
Отчет №1:

field-symbol <t_alv> type standard table.

if p_export is initial
  perform show_data. 
else.
  CL_SALV_BS_RUNTIME_INFO=>SET(
      display = space
      metadata = space
      data = 'X' ).

  assign gpt_alv->* to <t_alv>. 

  CL_SALV_BS_RUNTIME_INFO=>SET_DATA( DATA = <T_ALV> ).
endif.

Отчет №2:

data lpt_data type ref to data.

submit zreport1 and return
  with ...
  with ...
  with p_export eq 'X'
.

CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REF(
  importing R_DATA = lpt_data ).

Вот и все - в lpt_data у нас указатель на таблицу с данными, которая была создана в отчете №1.