четверг, 19 ноября 2015 г.

Ошибка "CSapEditorCtrl::GetObject: Object xx does not exist редактора" SmartForms и SapScript в 7.40 Patch 5

SAP похоже собрался отказаться от своего старого редактора для SmartForm и SAP Script и предлагает для этого использовать MS Word. Поэтому в 5ом патче на 7.40 этот редактор выпилен.

Но что-то пошло не так.
В итоге при наличии Word при попытке открыть смартформу вылезает ошибка "CSapEditorCtrl::GetObject: Object xx does not exist". xx меняется, но остальное одинаково. Можете погуглить - такое счастье у многих.

Даже есть нота 2221815 - SAPscript Legacy Text Editor controls are not packed in SAP Windows GUI Installation Там же в ноте написано, что пользуйтесь Word'ом, но если очень хочется можете скачать старый редактор отдельно вот так
You can download 'SAPSCRIPT LEGACY TEXT EDITOR' from SAP Software Download Center:

http://support.sap.com/swdc

-> Support Packages and Patches
-> Browse Download Catalog
-> SAP Frontend Components
-> SAPSCRIPT LEGACY TEXT EDITOR
-> SAPSCRIPT LEGACY TEXT EDITOR (Support Packages and Patches)
-> Win32

Вся прелесть в том, что пункта "SAPSCRIPT LEGACY TEXT EDITOR" в SAP Frontend Components нет. Поиск на сайте SAP его тоже не находит.

Есть еще одна нота 2192210 - New and removed components on the Presentation DVD 7.40 Compilation 2 (SAP GUI Installation), в которой написано что еще удалили и даже есть прямые ссылки откуда это качать. Удалили кстати еще ECL Viewer. Но вот он то качается без проблем, а ссылка на SAPscript Legacy Text Editor ведет в никуда, так что приводить ее не буду.
Файл этот судя по всему называется SAPSLTESP00_0-70001053.EXE. Но на данный момент в диком виде не встречается.

Короче решение я нашел в другой проблеме - конкретно тут SAPGUI: Graphical Form Painter could not be called (FORMPAINTER_CREATE_WINDOW, )

Заключается оно в следующем.

  1. Находите 7.40 Compilation 1 Presentation 1 - это первая версия 7.40. Файл обычно называется 50126622_6.zip. Я его тут выкладывал раньше. 
  2. Выдираете из него файлы 
    • h5dlg32.dll 
    • h5icon32.dll 
    • h5krnl32.dll 
    • h5menu32.dll 
    • h5rtf32.dll 
    • h5tool32.dll 
    • saprtf.ocx 
    (лежат в файле в \BD_NW_7.0_Presentation_7.40_Comp._1_\PRES1\GUI\WINDOWS\WIN32\SapGui) и копируете их в папку, где установлен SAPGui (по умолчанию это c:\Program Files (x86)\SAP\FrontEnd\SAPgui) 

  • 3. Запускаете консоль (cmd.exe) от имени Администратора 
  • 4. Регистрируете OCX через консоль, выполнив команду regsvr32 "c:\Program Files (x86)\SAP\FrontEnd\SAPgui\saprtf.ocx" 


  • На этом все, можно даже SAP GUI не закрывать, только из транзакции выйти.