SAP Programarea rapoartelor ABAP

⚡ Rezumat inteligent

Programarea rapoartelor ABAP construiește programe executabile care selectează, procesează și afișează volume mari de informații. SAP date. Această pagină explică adăugările la antetul raportului, ecranul de selecție, secvența evenimentelor, comenzile de formatare, listele interactive și bazele de date logice.

  • 📊 Scop principal: Un program de rapoarte citește date din mai multe tabele, le procesează și le prezintă sub forma unei liste care poate fi formatată, descărcată sau trimisă prin poștă.
  • 🧾 Tipul programului: Fiecare raport este un program executabil de tip 1, legat de o zonă de aplicație și condus în întregime de evenimente.
  • 🏁 Adăugări la antet: FĂRĂ TITLUL DE PAGINĂ STANDARD, LINE-DIMENSIUNE, LINE-COUNT și MESSAGE-ID aparțin primei instrucțiuni REPORT.
  • ⌨️ Ecran de selecție: PARAMETRI acceptă o singură valoare, iar SELECT-OPTIONS acceptă un interval sau un set de valori.
  • ⏱️ Secvența evenimentelor: ÎNCĂRCAREA PROGRAMULUI, INIȚIALIZAREA, LA ECRANUL DE SELECȚIE, ÎNCEPUTUL SELECȚIEI și SFÂRȘITUL SELECȚIEI se execută într-o ordine fixă.
  • 🖱️ Liste interactive: HIDE stochează valorile câmpurilor rândului selectat, iar HOTSPOT transformă un câmp din listă într-un element pe care se poate face clic pentru lista secundară.
  • 🗄️ Baze de date logice: Create în SE36, acestea înlocuiesc instrucțiunile SELECT cu un eveniment GET și adaugă verificări centrale de autorizare.

SAP Programarea rapoartelor ABAP

Ce este programarea rapoartelor ABAP?

SAPABAP acceptă două tipuri de programe – programe de raportare și programe de dialog. Programele de raportare sunt utilizate atunci când trebuie afișate cantități mari de date.

Scopul/Utilizarea programelor de raportare

  • Acestea sunt utilizate atunci când datele dintr-un număr de tabele trebuie selectate și procesate înainte de prezentare.
  • Se utilizează atunci când rapoartele necesită un format special
  • Folosit atunci când raportul trebuie descărcat de pe SAP într-o foaie Excel care să fie distribuită.
  • Folosit atunci când raportul trebuie trimis prin poștă unei anumite persoane.

Puncte importante de reținut despre programul de raportare

  • Programele de raportare sunt întotdeauna programe executabile. Tipul programului este întotdeauna 1.
  • Fiecare program de raport corespunde unui anumit tip de aplicație, adică fie cu Vânzări și distribuție, FI – CO etc. Poate fi și aplicație încrucișată, adică tip „*”.
  • Programarea rapoartelor este o programare bazată pe evenimente.
  • Prima linie a unui program de raportare este întotdeauna Raport .
  • Pentru a suprima antetul listei sau numele programului, adăugați Fără titlu de pagină standard este folosit.
  • Mărimea liniei pentru un anumit raport poate fi setată utilizând adăugarea dimensiunea liniei .
  • Numărul de linii pentru o anumită pagină poate fi setat utilizând adăugarea număr de linii n(n1). N este numărul de linii pentru pagină și N1 este numărul de linii rezervate pentru subsolul paginii.
  • Pentru a afișa orice informație sau mesaj de eroare adăugăm o clasă de mesaj la program folosind adăugarea: ID-ul mesajului . Clasele de mesaje sunt menținute în SE91.

Prin urmare, un program de raportare ideal ar trebui să înceapă cu:

Report <report name> no standard page heading

line-size <size>

line-count <n(n1)>

message-id <message class>.

Program de raportare vs. program de dialog

Ambele tipuri de programe rulează în același sistem, însă rezolvă probleme opuse. Un raport citește și afișează date, în timp ce un program de dialog permite utilizatorului să le gestioneze prin intermediul ecranelor.

Criterii Program de raportare Program de dialog
Tipul programului Tipul 1, executabil Tip M, piscină de module
început de Numele programului sau un cod de tranzacție Doar un cod de tranzacție
Controlul debitului Evenimente precum INITIALIZARE și ÎNCEPERE SELECȚIE Logică de flux a ecranului cu module PBO și PAI
Intrare utilizator Un ecran de selecție generat Ecrane proiectate în Screen Painter
Utilizare tipică Afișarea și descărcarea unor volume mari de date Crearea și modificarea datelor de business

Ecranul de selecție este locul unde un raport își colectează datele de intrare, așa că este descris în continuare.

Ecran de selecție

„Ecranul de selecție” este ecranul în care se specifică valorile de intrare pentru care ar trebui să ruleze programul.

Ecranul de selecție este în mod normal generat din

  1. parametrii
  2. Selectati optiunile

Sintaxă

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 #>

parametrii

Parametrii ajută la selectarea dinamică. Acestea pot găzdui o singură valoare pentru un ciclu de execuție a programului.

Sintaxă

Definirea parametrilor ca tip de date

Parameters p_id(30) type c.

Definirea parametrilor precum un câmp de tabel.

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

Parametrii pot fi casete de selectare, precum și butoane radio.

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

Parametrii pot fi listbox.

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

Selectati optiunile

O opțiune de selectare este utilizată pentru a introduce un interval de valori sau un set de valori într-un program

Sintaxă

select-options s_vbeln for vbak-vbeln.

Ecran de selecție

Captura de ecran arată câmpurile de introducere cu valoare mică și mare pe care le generează o opțiune de selectare, împreună cu butonul de selecție multiplă.

De asemenea, puteți defini o opțiune de selectare ca o variabilă

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

Odată ce datele de intrare sunt colectate, programul reacționează la o secvență fixă ​​de evenimente.

Evenimente într-un program de raport ABAP

Programele de raport ABAP sunt programe bazate pe evenimente. Diferitele evenimente dintr-un program de raport sunt:

Încărcare de program

  • Declanșează evenimentul asociat într-o sesiune internă după încărcarea unui program de tip 1, M, F sau S.
  • De asemenea, rulează blocul de procesare asociat o dată și o singură dată pentru fiecare program și sesiune internă.
  • Blocul de procesare LOAD-OF-PROGRAM are aproximativ aceeași funcție pentru un program ABAP de tip 1, M, F sau S ca un constructor are pentru clasele din obiecte ABAP

Inițializare.

  • Acest eveniment este executat înainte ca ecranul de selecție să fie afișat.
  • Inițializarea tuturor valorilor.
  • Puteți aloca valori diferite, altele decât valorile implicite pe ecranul de selecție.
  • Puteți completa ecranul de selecție cu unele valori în timpul execuției.

La Selecție-Ecran.

  • Evenimentul este procesat când ecranul de selecție a fost procesat (la sfârșitul PAI).
  • Validarea și verificările valorilor introduse au loc aici

Începutul selecției.

  • Aici programul începe să selecteze valorile din tabele.

Sfârșitul selecției.

  • După ce toate datele au fost selectate, acest eveniment scrie datele pe ecran.

Evenimente interactive

  • Folosit pentru raportarea interactivă. Este folosit pentru a crea o listă detaliată dintr-o listă de bază.

💡 Sfat: Instrucțiunile scrise fără niciun cuvânt cheie de eveniment aparțin în mod implicit START-OF-SELECTION, motiv pentru care un raport rulează în continuare chiar și atunci când evenimentul lipsește.

Exemplu: Un program simplu de raportare ABAP

Programul de mai jos combină adăugările, ecranul de selecție și evenimentele într-un singur raport funcțional. Acesta citește anteturile comenzilor de vânzare din VBAK pentru numerele introduse pe ecranul de selecție și le scrie ca o listă.

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.

Trei detalii merită menționate. INITIALIZATION completează parametrul date înainte de apariția ecranului de selecție. AT SELECTION-SCREEN validează intrarea și generează un mesaj din clasa ZSD. HIDE stochează numărul de ordine al fiecărui rând scris, astfel încât un dublu clic poate construi o listă secundară din acesta, care face obiectul secțiunii următoare.

Formatarea raportului

ABAP permite ca rapoartele să fie formatate așa cum dorește utilizatorul. De exemplu, „Linii alternative” trebuie să apară în culori diferite, iar linia „Totale” trebuie să apară în galben.

Sintaxă

Format Color n

Format Color n Intensified On

n poate corespunde diferitelor numere

Vă rugăm să rețineți că există și alte completări împreună cu formatul

FORMAT COLOR OFF INTENSIFIED OFF INVERSE OFF HOTSPOT OFF INPUT OFF

Programare interactivă a rapoartelor

  • Folosind programarea interactivă, utilizatorii pot controla activ recuperarea și afișarea datelor.
  • Folosit pentru a crea o listă detaliată pornind de la o listă foarte simplă
  • Datele detaliate sunt scrise pe o listă secundară.
  • Lista secundară poate fie să suprapună complet primul ecran, fie se poate afișa într-un nou ecran
  • Listele secundare pot fi ele însele interactive.
  • Prima listă poate, de asemenea, să numească o tranzacție.
  • Există diferite evenimente asociate cu programarea interactivă.

Unele comenzi utilizate pentru programarea interactivă

Hotspot

Dacă trageți mouse-ul peste datele afișate în raport, cursorul se schimbă într-o Mână cu degetul arătător întins. Un hotspot poate fi realizat folosind instrucțiunea FORMAT.

Syntax:      Format Hotspot On (Off).

Ascunde

Această comandă vă ajută să stocați numele câmpurilor pe baza cărora va efectua procesări ulterioare pentru a obține o listă detaliată. Este scris direct după instrucțiunea WRITE pentru un câmp. Când este selectat un rând, valorile sunt completate automat în variabile pentru utilizare ulterioară.

Syntax:     Hide <field-name>.

Rapoartele care citesc mai multe tabele își pot înlocui instrucțiunile SELECT cu o bază de date logică, descrisă mai jos.

Baze de date logice

  • În loc să utilizați interogări „Selectați”, puteți utiliza baza de date logică pentru a prelua date pentru un program.
  • Bazele de date logice sunt create prin tranzacție SE36
  • Numele unei baze de date logice poate avea până la 20 de caractere. Poate începe cu un prefix de spațiu de nume.
  • Datele sunt selectate de un alt program și se poate accesa datele folosind GET comanda care plasează datele în zona de lucru .

Avantajele unei baze de date logice față de interogările Select normale.

  1. Oferă condiții de verificare pentru a vedea dacă introducerea este corectă, completă și plauzibilă
  2. Conține verificări de autorizare centrală pentru accesul la baza de date
  3. Îmbunătățiri, cum ar fi îmbunătățirea performanței, se aplică imediat tuturor rapoartelor care utilizează baza de date logică.

Notă: Din cauza complexității implicate, bazele de date logice nu sunt utilizate în majoritatea cazurilor

Întrebări frecvente

PARAMETERS creează un câmp de intrare care conține o singură valoare. SELECT-OPTIONS creează un tabel intern cu câmpurile SIGN, OPTION, LOW și HIGH, deci acceptă intervale, excluderi și selecții multiple.

AT LINE-SELECTION reacționează la un dublu clic sau la apăsarea tastei F2, iar AT USER-COMMAND reacționează la un cod de funcție din meniu. Ambele construiesc lista secundară din valorile stocate de HIDE.

Meniul Listă oferă opțiunile Listă, Salvare și Fișier Local pentru un raport clasic. Un program poate apela și modulul de funcții GUI_DOWNLOAD, iar o listă ALV se exportă într-o foaie de calcul fără nicio programare suplimentară.

Da. Asistenții AI din instrumentele de dezvoltare ABAP generează antetul REPORT, SELECT-OPTIONS și blocurile de evenimente dintr-o descriere simplă a listei necesare. SELECT-ul generat necesită în continuare o verificare a performanței.

Instrumentele de inteligență artificială rezumă o listă lungă, evidențiază valorile aberante și răspund la întrebări despre date într-un limbaj simplu. Integrarea unor astfel de analize înseamnă de obicei mutarea listei clasice într-un rezultat bazat pe ALV sau Fiori.

Rezumați această postare cu: