Reale Situationen

Ein Anwendungsfall für jeden Typ, den ATLAS speichern kann.

Fünf alltägliche SAP-Anforderungen, jede mit einer anderen ATLAS-Parameterform gelöst — Einzelwert, Bereich, Struktur, Tabelle und Langtext. Jede zeigt die Parameter-Einrichtung, den ABAP-Aufruf des Programms und den Wert, den das Framework zurückgibt.

1 Anwendungsfall Variable

Preisfindungs-Engine · Klasse ZCL_PCP2_RETAIL_PRICE

„Den optimierten Preisfindungs-Pfad einschalten — ohne Transport.“

Das Preis-Team hat die Logik der Endpreisfindung mit einem neuen SQL-JOIN neu geschrieben, der dreimal schneller läuft als die alten sequenziellen Lesezugriffe. Beide Code-Pfade sind weiterhin im Build — der optimierte ist hinter einem einzigen Flag, sodass das Team ihn je Umgebung einschalten, die Kennzahlen beobachten und bei Problemen sofort zurückrollen kann.

Die alte Art: hartcodieren lv_use_join = 'X'. in ABAP und jedes Mal einen Transport anfordern, wenn man es ändern will. Oder eine weitere winzige Z_PRICE_FLAG -Tabelle bauen, an die sich in sechs Monaten niemand erinnert. Mit ATLAS wird das Flag zu einem Parameter — umschaltbar in ZATLAS in der PRD, kein Transport nötig.

Bereich PCP2 — Price Card
Objekt / Aufgabe PERFORMANCE_CHANGE — Changes for Performance Improvement
Parameter DETERMINE_RETAIL_PRICE_JOIN_ON
Typ Parameter (Einzelwert) · Ref. SYST-FLAG · keine Kriterien
DATA(lv_use_join) = zcl_atlas_select=>get_value( iv_area = 'PCP2' iv_objid = 'PERFORMANCE_CHANGE' iv_parid = 'DETERMINE_RETAIL_PRICE_JOIN_ON' ). IF lv_use_join = 'X'. determine_retail_price_v2( ). " optimised JOIN path ELSE. determine_retail_price_v1( ). " legacy sequential reads ENDIF.
lv_use_join (CHAR1)
'X'    →  optimised path enabled in this environment
Bereich PCP2 ID PERFORMANCE_CHANGE Parameter DETERMINE_RETAIL_PRICE_JOIN_ON Typ P · single value
Hinter den Kulissen
  1. Keine Kriterien → genau eine Zeile. Ohne Kriterienstruktur hält der Parameter einen Einzelwert. Aufrufe liefern für diese Umgebung stets dieselbe Antwort.
  2. Rollout je System. Derselbe Parameter existiert in DEV / TST / PRD. Schalten Sie ihn in DEV ein, beobachten Sie, transportieren Sie bei Bedarf — oder ändern Sie ihn direkt in der PRD über ZATLAS_EDIT, kein Transport nötig.
  3. Standard-Rückfall. Fehlt der Parameter oder ist er nicht gesetzt, get_value liefert leer zurück, sodass der alte Code-Pfad der sichere Standard ist.
2 Anwendungsfall Range

Ausgehendes IDoc · Funktionsbaustein Z_MYHUB_ARTICLE_OUT

„Nur Getränke, Lebensmittel, Haushalt und Gesundheit über das Partner-IDoc hinauslassen.“

MyHub schiebt Artikel-Stammdaten per ausgehendem IDoc an ein nachgelagertes Partnersystem. Der Partner verarbeitet nur vier Artikelarten (ZBEV, ZFOO, ZHHL, ZHEA) — Weine, Frische, Non-Food-Eigenmarke und Saisonware müssen vor dem Senden herausgefiltert werden. Die Liste der erlaubten Arten ändert sich ein- bis zweimal im Jahr, während der Partner wächst.

Die alte Art: eine IF mtart NOT IN ( 'ZBEV' OR 'ZFOO' …) -Kette im Code, oder eine weitere Z_ALLOWED_MTART -Tabelle. Mit ATLAS ist die erlaubte Liste ein Parameter vom Typ Selection Options, der einen Select-Options-Bereich mit SIGN/OPTION/LOW/HIGH -Zeilen enthält — direkt in eine Standard-ABAP- RANGES -Tabelle einlesbar und in einer IN clause.

Bereich ZMYHUB — MyHub Communication Portal
Objekt / Aufgabe IDOC_ARTICLE_OUT — Outbound article IDoc
Parameter ALLOWED_MTART
Typ Selection Options (Range) · ref. MARA-MTART · keine Kriterien
DATA(lt_allowed) = zcl_atlas_select=>get_range( iv_area = 'ZMYHUB' iv_objid = 'IDOC_ARTICLE_OUT' iv_parid = 'ALLOWED_MTART' ). IF ls_mara-mtart NOT IN lt_allowed. " article type is excluded — skip this IDoc RETURN. ENDIF.
lt_allowed (TT_RANGE_MTART)
SignOptionLowHigh
IEQZBEV
IEQZFOO
IEQZHHL
IEQZHEA
BereichZMYHUB IDIDOC_ARTICLE_OUT ParameterALLOWED_MTART TypS · sel-options
Hinter den Kulissen
  1. Mehrzeiliger Bereich, ein API-Aufruf. Jede Zeile im Parameter wird zu einer Zeile in der zurückgegebenen RANGES-Tabelle — die Pflege-Oberfläche zeigt sogar ein Multiple Selection -Popup, sodass Fachanwender Bereiche, Ausschlüsse und Mustertreffer natürlich hinzufügen können.
  2. Muster und Ausschlüsse sind frei. Fügen Sie eine Zeile mit SIGN=I OPT=CP LOW=Z* hinzu, um jede Z-präfixierte Art zu erlauben, oder SIGN=E OPT=EQ LOW=ZSEAS um eine bestimmte Art aus einem breiteren Include auszuschließen — dieselbe Semantik wie eine Standard-ABAP-RANGES-Tabelle.
  3. Leer-bei-Fehler-Rückfall. Ist der Parameter falsch konfiguriert und iv_raise_error is off, get_range liefert „alles ausschließen“, sodass das IDoc sicher leer bleibt, statt den Partner zu überfluten.
3 Anwendungsfall Structure

Replikationsjob · Programm ZSYS_REPL_TO_CMI

„Alle meine Replikations-Schwellen in einem Datensatz — je Umgebung verschieden.“

Ein nächtlicher Hintergrundjob repliziert Stammdaten ins zentrale CMI-System. Er hat vier Stellschrauben: wie viele Datensätze je Paket gesendet werden, wie viele Wiederholungen bei Fehlern versucht werden, der RFC-Timeout in Sekunden und die E-Mail-Adresse, die bei dauerhaftem Fehlschlag gewarnt wird. Die richtigen Werte für DEV (kleine Pakete, gesprächiges Logging, Dev-Team-Postfach) sind ganz anders als PRD (große Pakete, knappes Logging, Rufbereitschaft).

Die alte Art: vier separate Z_* -Konstanten oder eine Z-Tabelle mit vier Spalten. Mit ATLAS sitzen die vier Stellschrauben in einer einzigen flat structure -Parameter — geschlüsselt nach Umgebung (SY-SYSID) — sodass ein get_structure -Aufruf den ganzen Datensatz auf einmal zurückgibt.

Bereich SYSTEM — Global System Parameters
Objekt / Aufgabe RFC_SYSTEMS — RFC Systems
Parameter TO_CMI_SETTINGS
Typ Struktur · selbstbeschriebene Datenstruktur · Kriterien SYSID
Felder der Datenstruktur MAX_BATCH_SIZE (INT4) · RETRY_COUNT (INT2) · TIMEOUT_SEC (INT4) · NOTIFY_ON_ERROR (CHAR60)
DATA(ls_cfg) = zcl_atlas_select=>get_structure( iv_area = 'SYSTEM' iv_objid = 'RFC_SYSTEMS' iv_parid = 'TO_CMI_SETTINGS' is_cri_data = VALUE #( sysid = sy-sysid ) ). replicate_master_data( iv_batch = ls_cfg-max_batch_size iv_retries = ls_cfg-retry_count iv_timeout = ls_cfg-timeout_sec iv_notify = ls_cfg-notify_on_error ).
ls_cfg (ZS_TO_CMI_SETTINGS) — for SY-SYSID = 'PRD'
FeldWert
MAX_BATCH_SIZE10000
RETRY_COUNT5
TIMEOUT_SEC120
NOTIFY_ON_ERROR[email protected]
BereichSYSTEM IDRFC_SYSTEMS ParameterTO_CMI_SETTINGS TypU · structure
Hinter den Kulissen
  1. Selbstbeschreibende Datenstruktur. Keine DDIC-Referenz nötig — die Datenstruktur wird in ATLAS definiert (Feldname + Referenztabelle + Ref.-Feld je Zeile), spontan generiert und dem Aufrufer als voll typisierte Struktur zurückgegeben.
  2. Kriterien übernehmen die Verteilung. Each environment (DEV, TST, PRD) ist eine separate Zeile, geschlüsselt nach SYSID. Derselbe Aufruf aus verschiedenen Systemen liefert verschiedene Einstellungen.
  3. Nur fachliche Änderungen. Die Paketgröße zu verdoppeln oder die Warn-E-Mail auf einen neuen Verteiler zu richten, ist eine Feldänderung in ZATLAS. Kein Build, kein Testzyklus, kein Entwickler nötig.
4 Anwendungsfall Table

Ausgehender IDoc-Mapper · Klasse ZCL_MYHUB_DOCTYPE_MAPPER

„Unsere internen Codes in das übersetzen, was der Partner erwartet.“

MyHub speaks ZSO1, ZSO2, ZRTN intern — Kundenaufträge, Retouren, kostenlose Aufträge. Der nachgelagerte Partner erwartet ORD1000, ORD2000, RET3000. Jeder ausgehende Beleg braucht die Übersetzung des internen Codes in den Partnercode, wobei das Mapping von Modulberatern änderbar ist, wenn sich der Partnervertrag weiterentwickelt.

Die alte Art: noch eine Z_DOCTYPE_MAP Z-Tabelle, die „irgendwo lebt“ und „jemandem gehört, wahrscheinlich“. Mit ATLAS ist das Mapping ein Parameter mit Kriterien (INTERNAL_DOCTYPE als Schlüssel) und einer Wertestruktur mit dem Partnercode plus optionalen Gültigkeitsdaten — lesbar in einem get_table -Aufruf, oder zeilenweise über get_structure mit Kriterien.

Bereich ZMYHUB — MyHub Communication Portal
Objekt / Aufgabe IDOC_OUTBOUND — Outbound IDoc Processing
Parameter DOCTYPE_MAPPING
Typ Structure · criteria INTERNAL_DOCTYPE · multi-row
Felder der Datenstruktur EXTERNAL_DOCTYPE (CHAR10) · VALID_FROM (DATS) · VALID_TO (DATS)
" full table — useful for warm caches or admin overviews DATA(lt_map) = zcl_atlas_select=>get_table( iv_area = 'ZMYHUB' iv_objid = 'IDOC_OUTBOUND' iv_parid = 'DOCTYPE_MAPPING' ). " or one row at a time, by key DATA(ls_row) = zcl_atlas_select=>get_structure( iv_area = 'ZMYHUB' iv_objid = 'IDOC_OUTBOUND' iv_parid = 'DOCTYPE_MAPPING' is_cri_data = VALUE #( internal_doctype = iv_doctype ) ).
lt_map (TT_DOCTYPE_MAPPING)
Internal (Key)ExternalValid FromValid To
ZSO1ORD10002025-01-019999-12-31
ZSO2ORD20002025-01-019999-12-31
ZRTNRET30002025-01-019999-12-31
ZSO3ORD30002026-04-019999-12-31
BereichZMYHUB IDIDOC_OUTBOUND ParameterDOCTYPE_MAPPING TypU · multi-row
Hinter den Kulissen
  1. Kriterien machen aus einem Parameter viele Zeilen. In ATLAS, "table" isn't a separate type — it's a structure parameter with einem Kriterienfeld. Jede Zeile im Daten-ALV paart Kriterienschlüssel-Werte mit der danebenstehenden Wertestruktur.
  2. Zwei Lesarten. Use get_table um jede Zeile zu laden (gut, um alle Mappings für einen Batch-Lauf im Speicher zu halten), oder get_structure with a VALUE #( internal_doctype = … ) -Schlüssel, um genau eine Zeile zu holen.
  3. Neues Mapping, kein Transport. An dem Tag, an dem der Partner ZSO3 → ORD3000ergänzt, fügt ein Modulberater die Zeile in der PRD über ZATLAS_EDIThinzu. Das nächste ausgehende IDoc greift es im nächsten Lauf auf.
5 Anwendungsfall Long Text

Benachrichtigungs-Framework · Klasse ZCL_MYHUB_NOTIFY

„Eine Willkommens-E-Mail, vier Sprachen, kein erneutes Deployment.“

Wenn MyHub einen neuen Geschäftspartner aufnimmt, geht eine automatische Willkommens-E-Mail hinaus — und sie muss in der bevorzugten Sprache des Partners ankommen. Der Wortlaut wird vom Marketing freigegeben und ändert sich ein paar Mal im Jahr (rechtliche Hinweise, Support-Telefonnummern, eine neue Onboarding-URL). Die Platzhalter — Partnername, Kontonummer, Logon-URL — werden zur Sendezeit von ABAP gefüllt.

Die alte Art: hartcodierte Zeichenketten in einer Klasse vergraben, oder eine Z-Tabelle mit einer CLOB-Spalte, die niemand anzufassen wagte. Mit ATLAS ist die Vorlage ein Long Text Parameter mit Kriterien LANGU — eine Zeile je Sprache, voll editierbar in ZATLAS mit dem Langtext-Editor, mehrsprachige Beschreibungen inklusive.

Bereich ZMYHUB — MyHub Communication Portal
Objekt / Aufgabe NOTIFICATIONS — Outbound notifications
Parameter NEW_BP_WELCOME_MAIL
Typ Long Text (CHAR10000) · criteria LANGU · ref. T002-SPRAS
DATA(lv_body) = zcl_atlas_select=>get_value( iv_area = 'ZMYHUB' iv_objid = 'NOTIFICATIONS' iv_parid = 'NEW_BP_WELCOME_MAIL' is_cri_data = VALUE #( langu = ls_bp-spras ) ). REPLACE ALL OCCURRENCES OF '&BP_NAME&' IN lv_body WITH ls_bp-name1. REPLACE ALL OCCURRENCES OF '&BP_NUMBER&' IN lv_body WITH ls_bp-partner. REPLACE ALL OCCURRENCES OF '&LOGON_URL&' IN lv_body WITH lv_url. cl_bcs=>create_persistent( )->set_body( lv_body )->send( ).
lv_body (CHAR10000) — for ls_bp-spras = 'D' (German)
Sehr geehrte Damen und Herren von &BP_NAME&,

herzlich willkommen als neuer Geschäftspartner mit der Nummer
&BP_NUMBER& in unserem Lieferantenportal.

Bitte melden Sie sich unter &LOGON_URL& an, um Ihre
Stammdaten zu vervollständigen. Bei Fragen wenden Sie sich
bitte an [email protected].

Mit freundlichen Grüßen
Ihr Demo-Team
BereichZMYHUB IDNOTIFICATIONS ParameterNEW_BP_WELCOME_MAIL TypL · long text
Hinter den Kulissen
  1. Ein Parameter, eine Zeile je Sprache. The criteria field LANGU references T002-SPRAS, sodass die Pflege-Oberfläche eine echte Sprach-F4 bietet. EN, DE, FR, IT erhalten je einen eigenen Langtext-Eintrag.
  2. Langtext-Editor eingebaut. Klicken Sie den Wert im Daten-ALV an, und ein Vollbild-Editor öffnet sich — Absätze, Zeilenumbrüche, Sonderzeichen bleiben alle erhalten (CHAR10000 je Eintrag).
  3. Platzhalter sind beabsichtigt. ATLAS speichert den Text wie er ist — das aufrufende Programm besitzt die Ersetzung. So bleibt das Framework simpel und die sprachspezifische Vorlage frei, jede Platzhalter-Konvention zu nutzen, die das Programm mag.

Fünf Formen. Ein zentraler Ort.

Jedes Beispiel oben nutzte dieselbe Pfadsyntax, dieselbe ZCL_ATLAS_SELECT Klasse, dieselbe Pflege-Oberfläche und denselben Verwendungsnachweis. Das Einzige, was sich änderte, war die Form des Werts — und ATLAS beherrscht alle fünf ab Werk.

Zurück zur Übersicht