среда, 20 января 2016 г.

ASSIGN и SY-SUBRC

DATA lv_matnr TYPE matnr.

FIELD-SYMBOLS <s_matnr> TYPE matnr.

sy-subrc = 4.

ASSIGN lv_matnr TO <s_matnr>.
IF sy-subrc IS INITIAL.
  WRITE 'Success!'.
ELSE.
  WRITE 'Failed'.
ENDIF.

понедельник, 18 января 2016 г.

SAP GUI 7.40 Patch Level 7

Download
Alternate URL

PS. Судя по информации с сайта SAP, по сравнению с 6 патчем никаких изменений, просто 6ой не ставился на 0-4 патчи.

понедельник, 21 декабря 2015 г.

SAP GUI 7.40 Patch Level 6

Download
Alternate URL

Пользовательские поля в товаре

Когда вы расширяете какую-то стандартную сущность (заказ там или товар) добавляя свои ZZ-поля в стандартные таблицы с помощью доп.структур, то часто приходится решать задачу передачи значений этих полей извне. То есть фактически надо как-то передавать эти поля в BAPI.
Стандарт для этих целей в "приличных" BAPI предусматривает поля EXTENSIONIN или типа того. Чтобы все работало на автомате, как правило, этими же ZZ-полями нужно еще расширить определенную структуру. Ну, и структуру с X-полями (это которые надо ставить в X там где реально данные)
"Внутре" данные из EXTENSIONIN перекладываюся в эту структуру (либо move-correcponging'ом, либо через assign componet), а потом и в реальную структуру таблицы.
Правда иногда этого бывает мало - надо реализовывать либо user-exit, либо BADI и перекладывать там самим.
А бывает еще веселее. Вот, например, BAPI BAPI_MATERIAL_SAVEDATA. Для создания и изменения товара. Она же используется в IDOC MATMAS (ФМ IDOC_INPUT_MATMAS_BAPI). В наличии параметры EXTENSIONIN и EXTENSIONINX. Дополнительно надо расширять структуры BAPI_TE_* и BAPI_TE_*X. Ну, то есть, если расширяли MARA то расширяем и BAPI_TE_MARA, если MARM - то BAPI_TE_MARM. Ну и так далее.
Но просто так все равно работать не будет. Стандартные поля будут обновляться, а ваши нет. Чтобы побороть это есть транзакция OMSR. В ней надо прописать поля, которые можно редактировать (там и стандартные присутствуют).  Тогда они будут "проходить" через BAPI.
Подробностей не подскажу - не абаперское это дело настройки настраивать. Но куда послать консультанта вы теперь знаете =)

SAPSCRIPT LEGACY TEXT EDITOR

В дополнение к предыдущему посту. Нашел таки я файл с сабжем. Собственно вот ссылка.

В процессе поиска выяснилась интересная вещь - оказывается список доступных продуктов для скачивания зависит от вашего S-User на сайте SAP.

четверг, 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 не закрывать, только из транзакции выйти.