SAP Programování zpráv ABAP

⚡ Chytré shrnutí

ABAP Report Programming vytváří spustitelné programy, které vybírají, zpracovávají a zobrazují velké objemy SAP data. Tato stránka vysvětluje přidání záhlaví sestavy, obrazovku výběru, sekvenci událostí, příkazy pro formátování, interaktivní seznamy a logické databáze.

  • 📊 Hlavní účel: Program pro tvorbu sestav čte data z několika tabulek, zpracovává je a prezentuje je jako seznam, který lze formátovat, stahovat nebo odesílat poštou.
  • 🧾 Typ programu: Každá sestava je spustitelný program typu 1, vázaný na aplikační oblast a řízený výhradně událostmi.
  • 🏁 Doplnění záhlaví: ŽÁDNÝ STANDARDNÍ HLAVNÍK STRÁNKY, LINE-VELIKOST, LINE-COUNT a MESSAGE-ID patří do prvního příkazu REPORT.
  • ⌨️ Obrazovka výběru: Funkce PARAMETERS přijímá jednu hodnotu a funkce SELECT-OPTIONS přijímá rozsah nebo sadu hodnot.
  • ⏱️ Pořadí událostí: NAČTENÍ PROGRAMU, INICIALIZACE, NA VÝBĚROVÉ OBRAZOVCE, ZAČÁTEK VÝBĚRU a KONEC VÝBĚRU probíhají v pevném pořadí.
  • 🖱️ Interaktivní seznamy: Funkce HIDE ukládá hodnoty polí vybraného řádku a funkce HOTSPOT promění pole seznamu v klikatelný prvek pro sekundární seznam.
  • 🗄️ Logické databáze: Vytvořené v SE36, nahrazují příkazy SELECT událostí GET a přidávají centrální kontroly autorizace.

SAP Programování zpráv ABAP

Co je programování sestav ABAP?

SAP-ABAP podporuje dva typy programů – programy pro tvorbu sestav a dialogové programy. Programy pro tvorbu sestav se používají, když je třeba zobrazit velké množství dat.

Účel/použití programů sestav

  • Používají se, když je třeba před prezentací vybrat a zpracovat data z několika tabulek.
  • Používá se, když zprávy vyžadují speciální formát
  • Používá se, když je třeba stáhnout sestavu SAP do listu Excelu, který se má distribuovat.
  • Používá se, když má být zpráva zaslána e-mailem konkrétní osobě.

Důležité body k poznámce o programu zpráv

  • Programy sestav jsou vždy spustitelné programy. Typ programu je vždy 1.
  • Každý Report program odpovídá konkrétnímu typu aplikace, tj. buď Sales & Distribution, FI – CO atd. Může to být také Cross Application, tj. typ '*'.
  • Programování sestav je programování řízené událostmi.
  • První řádek programu sestav je vždy Zpráva .
  • Chcete-li potlačit záhlaví seznamu nebo název programu, přidání Žádné standardní záhlaví stránky se používá.
  • Velikost řádku pro konkrétní sestavu lze nastavit pomocí doplňku velikost čáry .
  • Počet řádků pro konkrétní stránku lze nastavit pomocí sčítání počet řádků n(n1). N je počet řádků stránky a N1 je počet řádků vyhrazených pro zápatí stránky.
  • Pro zobrazení jakékoli informace nebo chybové zprávy přidáme do programu třídu zpráv pomocí dodatku: ID zprávy . Třídy zpráv jsou udržovány v SE91.

Ideální program sestav by proto měl začínat:

Report <report name> no standard page heading

line-size <size>

line-count <n(n1)>

message-id <message class>.

Program pro sestavy vs. program pro dialog

Oba typy programů běží ve stejném systému, ale řeší opačné problémy. Sestava čte a zobrazuje data, zatímco dialogový program umožňuje uživateli spravovat je prostřednictvím obrazovek.

Kritéria Program zpráv Dialogový program
Typ programu Typ 1, spustitelný soubor Typ M, modulární bazén
Založil Název programu nebo kód transakce Pouze kód transakce
Řízení toku Události jako INICIALIZACE a ZAČÁTEK VÝBĚRU Logika toku obrazovky s moduly PBO a PAI
Uživatelský vstup Vygenerovaná obrazovka výběru Obrazovky navržené v Screen Painter
Typické použití Zobrazování a stahování velkých objemů dat Vytváření a změna obchodních dat

Obrazovka výběru je místem, kde sestava shromažďuje vstupní údaje, proto je popsána dále.

Obrazovka výběru

„Výběrová obrazovka“ je obrazovka, kde se zadávají vstupní hodnoty, pro které se má program spustit.

Obrazovka výběru je normálně generována z

  1. parametry
  2. Select-Options

Syntax

Selection-screen begin of screen <screen #>
selection-screen begin of block <#>  with frame title <text>
.........
.........
selection-screen end of block <#>
selection-screen end of screen <screen #>

parametry

Parametry pomáhají při dynamickém výběru. Mohou pojmout pouze jednu hodnotu pro jeden cyklus provádění programu.

Syntax

Definování parametrů jako datového typu

Parameters p_id(30) type c.

Definování parametrů jako pole tabulky.

Parameter p_id like <table name>-<field name>.

Parametry mohou být zaškrtávací políčka i přepínací tlačítka.

Parameters p_id as checkbox.Parameters p_id1 radiobutton group <group name>.
Parameters p_id2  radiobutton group <group name>.

Parametry mohou být seznamem.

Parameter p_id like <table name>-<field name> as listbox

Zvolte Volby

Volba Select-Option se používá k zadání rozsahu hodnot nebo sady hodnot do programu

Syntax

select-options s_vbeln for vbak-vbeln.

Obrazovka výběru

Snímek obrazovky ukazuje vstupní pole s nízkou a vysokou hodnotou, která generuje možnost výběru, spolu s tlačítkem pro vícenásobný výběr.

Můžete také definovat možnost výběru jako proměnnou

select-options s_vbeln for vbak-vbeln no intervals no-extension

Jakmile je vstup shromážděn, program reaguje na pevně stanovenou sekvenci událostí.

Události v programu zpráv ABAP

Programy zpráv ABAP jsou programy řízené událostmi. Různé události v programu zprávy jsou:

Nabití programu

  • Spustí přidruženou událost v interní relaci po načtení programu typu 1, M, F nebo S.
  • Také spustí přidružený blok zpracování jednou a pouze jednou pro každý program a interní relaci.
  • Procesní blok LOAD-OF-PROGRAM má zhruba stejnou funkci pro an program ABAP typu 1, M, F nebo S jako konstruktor pro třídy v ABAP Objects

Inicializace.

  • Tato událost se provede před zobrazením obrazovky výběru.
  • Inicializace všech hodnot.
  • Můžete přiřadit jiné hodnoty, než jsou výchozí hodnoty na obrazovce výběru.
  • Obrazovku výběru můžete za běhu vyplnit některými hodnotami.

Na obrazovce výběru.

  • Událost je zpracována po zpracování obrazovky výběru (na konci PAI).
  • Zde probíhají validace a kontroly zadaných hodnot

Začátek výběru.

  • Zde program začne vybírat hodnoty z tabulek.

Konec výběru.

  • Po výběru všech dat tato událost zapíše data na obrazovku.

Interaktivní akce

  • Používá se pro interaktivní reportování. Slouží k vytvoření podrobného seznamu ze základního seznamu.

💡 Tip: Příkazy zapsané bez klíčového slova události patří standardně do kategorie START-OF-SELECTION, a proto se sestava spustí i v případě, že událost chybí.

Příklad: Jednoduchý program pro tvorbu sestav ABAP

Následující program spojuje přidání, obrazovku výběru a události do jedné pracovní sestavy. Načte záhlaví prodejních objednávek z VBAK pro čísla zadaná na obrazovce výběru a zapíše je jako seznam.

REPORT z_sales_order_list NO STANDARD PAGE HEADING
                          LINE-SIZE 80
                          LINE-COUNT 65(3)
                          MESSAGE-ID zsd.

TABLES: vbak.

DATA: lt_vbak TYPE STANDARD TABLE OF vbak,
      ls_vbak TYPE vbak.

* Selection screen
SELECT-OPTIONS: s_vbeln FOR vbak-vbeln.
PARAMETERS: p_erdat LIKE vbak-erdat.

INITIALIZATION.
  p_erdat = sy-datum.

AT SELECTION-SCREEN.
  IF p_erdat > sy-datum.
    MESSAGE e001(zsd).          " Date must not lie in the future
  ENDIF.

START-OF-SELECTION.
  SELECT * FROM vbak
    INTO TABLE lt_vbak
    WHERE vbeln IN s_vbeln
      AND erdat LE p_erdat.

END-OF-SELECTION.
  LOOP AT lt_vbak INTO ls_vbak.
    WRITE: / ls_vbak-vbeln, ls_vbak-erdat, ls_vbak-netwr.
    HIDE ls_vbak-vbeln.
  ENDLOOP.

Za zmínku stojí tři detaily. INITIALIZACE vyplní parametr data před zobrazením obrazovky výběru. AT SELECTION-SCREEN ověří položku a vyvolá zprávu z třídy ZSD. HIDE ukládá pořadové číslo každého zapsaného řádku, takže dvojitým kliknutím lze z něj vytvořit sekundární seznam, což je předmětem další části.

Formátování sestavy

ABAP umožňuje formátování sestav tak, jak si to uživatel přeje. Například „Alternativní řádky“ se musí objevit v různých barvách a řádek „Součty“ by měl být žlutý.

Syntax

Format Color n

Format Color n Intensified On

n může odpovídat různým číslům

Upozorňujeme, že spolu s formátem existují i ​​další doplňky

FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF

Programování interaktivních zpráv

  • Pomocí interaktivního programování mohou uživatelé aktivně ovládat načítání a zobrazování dat.
  • Používá se k vytvoření podrobného seznamu z velmi základního seznamu
  • Podrobné údaje jsou zapsány na sekundárním seznamu.
  • Sekundární seznam může buď zcela překrýt první obrazovku, nebo jej lze zobrazit na nové obrazovce
  • Sekundární seznamy mohou být samy interaktivní.
  • První seznam může také volat transakci.
  • S interaktivním programováním jsou spojeny různé události.

Některé příkazy používané pro interaktivní programování

Hotspot

Pokud táhnete myší přes data zobrazená ve zprávě, kurzor se změní na Ruku s nataženým ukazováčkem. Hotspot lze dosáhnout pomocí příkazu FORMAT.

Syntax:      Format Hotspot On (Off).

Skrýt

Tento příkaz vám pomůže uložit názvy polí, na základě kterých se bude dále zpracovávat, abyste získali podrobný seznam. Zapisuje se přímo za příkaz WRITE pro pole. Po výběru řádku se hodnoty automaticky doplní do proměnných pro další použití.

Syntax:     Hide <field-name>.

Sestavy, které čtou mnoho tabulek, mohou nahradit své příkazy SELECT logickou databází, jak je popsáno níže.

Logické databáze

  • Místo použití dotazů „Select“ můžete k načtení dat pro program použít logickou databázi.
  • Logické databáze jsou vytvářeny transakcemi SE36
  • Název logické databáze může mít až 20 znaků. Může začínat předponou jmenného prostoru.
  • Data vybírá jiný program a lze k nim přistupovat pomocí GET příkaz, který umístí data do pracovní oblasti .

Výhody logické databáze oproti běžným výběrovým dotazům.

  1. Nabízí podmínky kontroly, zda je zadání správné, úplné a věrohodné
  2. Obsahuje centrální kontroly oprávnění pro přístup do databáze
  3. Vylepšení, jako je zlepšení výkonu, se okamžitě uplatní u všech sestav, které používají logickou databázi.

Poznámka: Kvůli složitosti se logické databáze ve většině případů nepoužívají

Nejčastější dotazy

PARAMETERS vytvoří jedno vstupní pole s jednou hodnotou. SELECT-OPTIONS vytvoří interní tabulku s poli SIGN, OPTION, LOW a HIGH, takže akceptuje rozsahy, vyloučení a vícenásobný výběr.

AT LINE-SELECTION reaguje na dvojité kliknutí nebo klávesu F2 a AT USER-COMMAND reaguje na funkční kód z nabídky. Oba sestavují sekundární seznam z hodnot uložených funkcí HIDE.

Nabídka seznamu nabízí pro klasický report možnosti Seznam, Uložit a Lokální soubor. Program může také zavolat funkční modul GUI_DOWNLOAD a exportovat seznam ALV do tabulky bez nutnosti dalšího kódování.

Ano. Asistenti umělé inteligence ve vývojových nástrojích ABAP generují hlavičku REPORT, SELECT-OPTIONS a bloky událostí z prostého popisu požadovaného seznamu. Vygenerovaný SELECT stále vyžaduje kontrolu výkonu.

Nástroje umělé inteligence shrnují dlouhý seznam, zvýrazňují odlehlé hodnoty a odpovídají na otázky týkající se dat srozumitelným jazykem. Vložení takové analytiky obvykle znamená přesun klasického seznamu do výstupu založeného na ALV nebo Fiori.

Shrňte tento příspěvek takto: