ФМ для получения полного имени по табельному номеру - HR_RU_GET_PERNR_NAME

Для получения полного имени по табельному номеру используется ФМ HR_RU_GET_PERNR_NAME

  1. CALL FUNCTION 'HR_RU_GET_PERNR_NAME'
  2. EXPORTING
  3. I_PERNR =
  4. I_BEGDA =
  5. I_ENDDA =
  6. I_LANGU = SY-LANGU
  7. I_MOLGA = 'KZ'
  8. I_NAMEL =
  9. I_PPINFTV =
  10. I0002 = ' '
  11. I0021 = ' '
  12. IMPORTING
  13. E_NACHN =
  14. E_VORNA =
  15. E_MIDNM =
  16. E_CNAME =
  17. E_INITI =
  18. E_I0002 =
  19. EXCEPTIONS
  20. INFTY_0002_NOT_FOUND = 1
  21. OTHERS = 2
  22. .
  23. IF SY-SUBRC <> 0.
  24.  

команда &sap_edit

Есть много способов ведения таблицы: через генератор ведения таблиц или через SE16, если на это дано разрешение в свойстве таблицы. Есть еще другой способ:
Заходим в тр.UASE16N, заполняем селективный экран, в командной строке набираем &sap_edit и ентер, дальше заходим через F8 и меняем, удаляем, добавляем. Но не забываем, что это может привести к большим проблемам

Вызов отладчика

Для вызова режима отладки обычно в командной строке набираем /H. Но в модальных окошках не бывает командной строки. Для этого в обычном текстовом файле сохраняем следующий код:
[FUNCTION]
Command=/H
Title=Debugger
Type=SystemCommand

И расширение файла поменяем с .txt нa .bat. Дальше путем перетаскивания наш дебаггер-файл заливаем в модальное окно.

Есть и другие способы вызова отладки в модальных окнах.
http://saphrblog.ru/?p=483

Расстояние Левенштейна — определяем «похожесть» строк

Интересный и очень полезный алгоритм «дистанция Левенштейна» (Levenshtein distance), так же известная как редакционное расстояние или дистанция редактирования.

Эта «дистанция» — это минимальное количество правок одной строки (под правками подразумеваются три возможные операции: стирание символа, замена символа и вставка символа), чтобы превратить ее во вторую.

Вот ниже пример его реализации на abap

  1. REPORT zlevenshtein.
  2. *----------------------------------------------------------------------*
  3. * CLASS lcl_levenshtein DEFINITION
  4. *----------------------------------------------------------------------*
  5. *
  6. *----------------------------------------------------------------------*
  7. CLASS lcl_levenshtein DEFINITION.
  8. PUBLIC SECTION.
  9. distance IMPORTING i_s TYPE csequence
  10. i_t TYPE csequence
  11. RETURNING value(r) TYPE i.
  12. ENDCLASS. "lcl_c DEFINITION
  13. *----------------------------------------------------------------------*
  14. * CLASS lcl_levenshtein IMPLEMENTATION
  15. *----------------------------------------------------------------------*
  16. *
  17. *----------------------------------------------------------------------*
  18. CLASS lcl_levenshtein IMPLEMENTATION.
  19. METHOD distance.
  20. DEFINE m_get.
  21. l_m_index = ( ( l_l_t * ( l_m_i + ( &2 ) ) ) + l_m_j + ( &1 ) ) + 1 .
  22. read table l_d into r index l_m_index.
  23. add &3 to r.
  24. insert r into table l_v.
  25. DATA: l_d TYPE STANDARD TABLE OF i,
  26. l_v TYPE SORTED TABLE OF i WITH UNIQUE KEY table_line,
  27. l_cost TYPE i,
  28. l_m_i TYPE i,
  29. l_m_j TYPE i,
  30. l_m_index TYPE i,
  31. l_l_s TYPE i,
  32. l_l_t TYPE i.
  33.  
  34. l_l_s = STRLEN( i_s ).
  35. l_l_t = STRLEN( i_t ).
  36.  
  37. DO l_l_s TIMES.
  38. l_m_i = sy-index - 1.
  39.  
  40. DO l_l_t TIMES. "#EC CI_NESTED
  41. l_m_j = sy-index - 1.
  42.  
  43. IF l_m_j = 0.
  44. r = l_m_i.
  45. ELSEIF l_m_i = 0.
  46. r = l_m_j.
  47. IF i_s+l_m_i(1) = i_t+l_m_j(1).
  48. l_cost = 0.
  49. l_cost = 1.
  50.  
  51. CLEAR l_v.
  52. m_get: -1 0 1, 0 -1 1, -1 -1 l_cost.
  53. READ TABLE l_v INTO r INDEX 1.
  54. APPEND r TO l_d.
  55.  
  56. ENDMETHOD. "distance
  57. ENDCLASS. "lcl_levenshtein IMPLEMENTATION
  58.  
  59. DATA: d TYPE i.
  60.  
  61. d = lcl_levenshtein=>distance( i_s = 'sitting' i_t = 'kitten' ).
  62. WRITE: / d.

Так же есть статья в которой описано как реализовать этот алгоритм в других языках программирования: Algorithm Implementation/Strings/Levenshtein distance

Еще одна ссылка по этому алгоритму :Расстояние Левенштейна — определяем «похожесть» строк

Замена типа стандартного сообщения SAP

Здравствуйте.

Сегодня я расскажу вам способ, как сменить тип стандартного сообщения SAP с зеленого на красное например.

Для этого вам нужно нажать двойным щелчком на сообщение, и в описании посмотреть его номер, например BF00210.

Чтобы сменить тип этого сообщения, нужно в транзакции OBA5 указать прикладную область, это первые четыре знака из номера сообщения, в нашем случае BF00, затем добавить строчку с записью 210, и указать нужный тип сообщения, в нашем случае это "E" (красный).

bf00210.jpg

Сохраняем, проверяем, работает.

Удачного вам рабочего дня!

Работа с BPS переменными. ABAP.

Задача: Есть переменная BPS типа иерархия. Но основании того, какой узел иерархии выбран, в переменную типа - Признак (или же тоже значение иерархии) необходимо занести все дочерние узлы этого узла.
+ к задаче. Если переменная типа Признак ( вводиться пользователем ) не пустая, то заполнять переменную только теми дочерними узлами, первые две цифры которых совпадают с первыми двумя цифрами этой переменной.

Решение по шагам.

Запуск планового приложения SEM BPS из Business Object XI 3.1

Требование
Запуск планового приложения SEM BPS из Business Object XI 3.1 (BW-BPS 3.5)
Проблема:
При любом действии в WEB приложении BPS, приложение BPS — вылетает, с сообщением:
Тайм-аут соеденения (connection time out)
Решение
Проблема не в тайаутах BO или Tomcat (как это может показаться на первый взгляд) — проблема в том что неустанавливаеться Cokies сессии, хотя BPS ожидает что она должна установиться корректно.

BO PCM - заблокированный админ.

Если В PCM был заблокирован единственный пользователь с администраторскими правами, то можно пойти по такому пути:
1) В MSSQL Managment studio приконектиться к БД, которую использует PCM. При этом нужно использовать протокол shared memory и прямо при конекте, указать, что конект будет производиться напрямую к БД PCM.

Загрузка русских и казахских букв в ключ признака

Для того чтобы загрузить кирилицу и спец символы в ключ признака, надо:

1) В транзакции rskc необходимо добавить нужные символы. В случае если ключи будут состоять из русских и казахских букв достаточно добавить только казахский алфавит:

АӘБВҒГІЕЁЖЗИЙҚКЛМҢНӨОПРСТҮҰУФХЦЧШЩЬЫЪЭЮЯ 1234567890_-«»!№;%:?*()

rskc

2) В настройках признака необходимо поставить галку строчные буквы и программу преобразования ALPHA

ALPHA

Программа для поиска по исходникам

Если у вас появилась необходимость найти какой либо кусок кода в системе,для этого можно использовать стандартную программу RPR_ABAP_SOURCE_SCAN

code_search.jpg

Страницы