Отворите СКЛ & амп; Изворни СКЛ у САП АБАП-у

Преглед садржаја:

Anonim
Циљ овог упутства није да вас научи СКЛ-у или концептима базе података, већ да вас упозна са СКЛ различитошћу у АБАП-у

У програмском језику АБАП / 4 користе се две врсте СКЛ-а.

  1. НАТИВЕ СКЛ
  2. ОПЕН СКЛ.
Опен СКЛ вам омогућава приступ табелама базе података декларисаних у АБАП речнику без обзира на платформу базе података коју користи систем Р / 3.

Изворни СКЛ вам омогућава употребу СКЛ израза специфичних за базу података у програму АБАП / 4. То значи да можете да користите табеле базе података којима не управља АБАП речник, па према томе интегришете податке који нису део Р / 3 система.

Отворени СКЛ састоји се од скупа АБАП израза који извршавају операције над централном базом података у Р / 3 систему. Резултати операција и све поруке о грешкама независни су од система база података који се користи. Опен СКЛ тако обезбеђује јединствену синтаксу и семантику за све системе база података које подржава САП. АБАП програми који користе само отворене СКЛ изразе ће радити у било ком Р / 3 систему, без обзира на систем база података који се користи. Отворени СКЛ изрази могу радити само са табелама базе података које су креиране у АБАП речнику.

Основне отворене СКЛ наредбе

  • СЕЛЕЦТ
  • ИНСЕРТ
  • АЖУРИРАЊЕ
  • МОДИФИКОВАТИ
  • ИЗБРИШИ
  • ОТВОРЕНИ КУРСОР,? ФЕТЦХ,? ЦЛОСЕ КУРСОР
Пример
ТАБЕЛЕ СЕ ОДНОСЕ.КУРСОР ТИПА ПОДАТАКА Ц,ВА КАО КЊИГА.ОТВОРИТЕ КУРСОР Ц ЗА ОДАБИР * ИЗ КЊИГЕ ГДЕ ЈЕ МОТОР = 'ЛХ'И ПОВЕРИ = '0400'И ФЛДАТЕ = '19950228'НАРУЧИ ПО ОСНОВНОМ КЉУЧУ.УРАДИТИ.ПРЕУЗМИТЕ СЛЕДЕЋИ КУРСОР Ц У ВА.АКО ЈЕ СИ-СУБРЦ <> 0.ЗАТВОРЕНИ КУРСОР Ц.ЕКСИТ.ЕНДИФ.ПИШИ: / ВА-БООКИД, ВА-ЦУСТОМИД, ВА-ЦУСТТИПЕ,ВА-СМОКЕР, ВА-ЛУГГВЕИГХТ, ВА-ВУНИТ,ВА-РАЧУН.ЕНДДО.

Изнесите списак путника за лет Луфтханса 0400 28. фебруара 1995:

Отворите СКЛ повратне кодове

Сви отворени СКЛ изрази испуњавају следећа два системска поља повратним кодовима.

СИ-СУБРЦ

Након сваке наредбе Опен СКЛ, системско поље СИ-СУБРЦ садржи вредност 0 ако је операција била успешна, вредност различиту од 0 ако није.

СИ-ДБЦНТ

Након Опен СКЛ израза, системско поље СИ-ДБЦНТ садржи број обрађених линија базе података.

Изворни СКЛ

Као што је већ поменуто, Нативе СКЛ вам омогућава да користите СКЛ изразе специфичне за базу података у АБАП програму.

Да бисте користили Нативе СКЛ израз, морате му претходити са ЕКСЕЦ СКЛ изразом и следити га ЕНДЕКСЕЦ изразом.

Синтакса

ЕКСЕЦ СКЛ [ИЗВОЂЕЊЕ <формата]].<Изворни СКЛ израз>ЕНДЕКСЕЦ.
Не постоји период након Нативе СКЛ израза. Даље, употреба обрнутих зареза (") или звездице (*) на почетку реда у изворном СКЛ изразу не уводи коментар као у нормалној синтакси АБАП. Морате знати да ли су имена табела и поља велика и мала осетљив у изабраној бази података.

У изворним СКЛ изразима, подаци се преносе између табеле базе података и АБАП програма помоћу променљивих хоста. Они су декларисани у програму АБАП, а испред њих у Нативе СКЛ изразу стоји двотачка (:). Можете користити елементарне структуре као променљиве хоста. Изузетно, структуре у клаузули ИНТО третирају се као да су сва њихова поља наведена појединачно.

Као и у Опен СКЛ-у, након наредбе ЕНДЕКСЕЦ, СИ-ДБЦНТ садржи број обрађених линија. У скоро свим случајевима СИ-СУБРЦ садржи вредност 0 након израза ЕНДЕКСЕЦ.

Отворени СКЛ - Правила перформанси

Да бисте побољшали перформансе СКЛ-а и АБАП програма, треба водити рачуна о следећим правилима:

Нека резултат буде мали

  • Користећи клаузулу вхере
  • Ако је из базе података потребан само један запис, користите СЕЛЕЦТ СИНГЛЕ кад год је то могуће.
Смањите количину пренесених података
  • Ограничите број линија
  • Ако су из табеле потребна само одређена поља, користите наредбу СЕЛЕЦТ <поље1> <поље2> ИНТО…
  • Ограничи број колона
  • Користите агрегатне функције
Минимизирајте број преноса података
  • Избегавајте угнежђене петље за одабир
  • Алтернативна опција је употреба наредбе СЕЛЕЦТ ... ФОР АЛЛ ЕНТРИЕС. Ова изјава често може бити много ефикаснија од извођења великог броја СЕЛЕЦТ или СЕЛЕЦТ СИНГЛЕ израза током ЛООП-а интерне табеле.
  • Користите приказе речника
  • Користите Јоинс у клаузули ФРОМ
  • Употријебите подупите у клаузули вхере
Смањите опште трошкове претраживања
  • Користите поља индекса у клаузули вхере
  • Када приступате базама података, увек се уверите да се користи исправан индекс.
Смањите оптерећење базе података
  • Међуспремник
  • Логичке базе података
  • Избегавајте поновљени приступ бази података
Коришћење интерних табела за међуспремник записа
  • Да би се избегло извршавање истог СЕЛЕЦТ-а више пута (и због тога имају дупликате одабира), интерна табела типа ХАСХЕД може се користити за побољшање перформанси.