Сравнение двух ABAP программ

Для сравнения текстов двух программ, есть программа которая разделяет экран на две части, эта программа доступна по транзакции se39

se39.png

Пример программы для чтения результатов расчета заработной платы с помощью GET PAYROLL (ЛБД PNP)

В системе есть стандартная программа пример в которой для чтения результатов расчета зарплаты используется операция GET PAYROLL

Название программы:EXAMPLE_PNP_GET_PAYROLL

Ниже исходный код программы:

Расшифровка кодов инфотипов HR (HCM)

C По Модуль
0 999 PA (Менеджмент персонала)
1000 1999 OM (Организационный менеджмент)
2000 2999

Вызов любой ABAP программы из внешней системы посредством RFC

Задача:
Вызывать, из удаленной системы посредством RFC на выполнение любую SAP транзакцию (ABAP отчет) и возвратить данные, которые эта программа (отчет) должна была выводить на экран пользователю в SAP GUI, в удаленную систему в виде XML.
Ниже рассмотрен полный пример решения подобной задачи. Как со стороны ABAP части, так и пример вызова ABAP отчета из внешней системы.
Решение (альтернатива для SAP WEB Services):
ABAP часть:
0) Используем класс ZCL_CLST_CMD описанный здесь: http://www.sapboard.ru/forum/viewtopic.php?f=13&t=68638&view=previous

FI планирование бюджета

KP06 - планирование бюджета по МВЗ
KPF6 - планирование бюджета по заказам
S_ALR_87012993 - стандартный отчет для просмотра действий по статье затрат

Необязательные узлы в XSLT трансформации

Если нужно воспользоваться XSLT трансформацией (как для парсинга, так и создания xml). Юзаем транзашку XSLT_TOOL.
Как обозначить опциональные элементы через сам визард - я так и не узнала, так что просто редактируем код :)

Последний день месяца

Чтобы потом самой не вспоминать.

  1. PARAMETERS: last type datum OBLIGATORY.
  2. last+6(2) = '01'.
  3. last = last + 31. "перепрыгиваем на след месяц
  4. last+6(2) = '01'.
  5. last = last - 1.
  6. write: last+6(2), '.', last+4(2), '.', last(4).

Разбиваем дату на структуру

  1. DATA: BEGIN OF now_date,
  2. year(4),
  3. month(2),
  4. day(2),
  5. END OF now_date.
  6.  
  7. now_date = SY-DATUM.
  8.  
  9. WRITE now_date-year.

Таблица в которой хранятся параметры ФМ

В таблице FUPARAREF,хранятся параметры функциональных модулей

Быстрая функция расстояния Левенштейна

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

Мне удалось значительно оптимизировать свою процедуру нахождения расстояния Левенштейна.
Я добился двукратного увеличения производительности.

Далее прикладываю код оптимизированной процедуры. Пользуйтесь на здоровье.

  1. form dist using s1 type csequence s2 type csequence CHANGING res TYPE i.
  2. ntab TYPE table OF i,
  3. otab TYPE table of i,
  4. ls1 type i, ls2 type i,
  5. t1 type i, t2 type i,
  6. tt2 type i,
  7. x1 type i, x2 type i,
  8. x type i,
  9. inp type i.
  10.  
  11. ls1 = strlen( s1 ) - 1.
  12. ls2 = strlen( s2 ) - 1.
  13. do.
  14. do.
  15. if s1+t1(1) = s2+t2(1).
  16. if t1 = 0.
  17. inp = t2.
  18. elseif t2 = 0.
  19. inp = t1.
  20. read table otab into inp index t2.
  21. insert inp into table ntab.
  22. if t1 = 0.
  23. inp = t2 + 1.
  24. elseif t2 = 0.
  25. inp = t1 + 1.
  26. tt2 = t2 + 1.
  27. read table ntab into x index t2.
  28. read table otab into x1 index t2.
  29. read table otab into x2 index tt2.
  30. if x < x1.
  31. if x < X2.
  32. inp = x + 1.
  33. inp = x2 + 1.
  34. if x1 < x2.
  35. inp = x1 + 1.
  36. inp = x2 + 1.
  37. insert inp into table ntab.
  38. if t2 = ls2.
  39. t2 = 0.
  40. t2 = t2 + 1.
  41. refresh otab.
  42. otab[] = ntab[].
  43. refresh ntab.
  44. if t1 = ls1.
  45. t1 = t1 + 1.
  46. res = inp.

Страницы