SAP Build Code fuer ABAP Cloud: KI-gestuetzte Pro-Code Entwicklung

kategorie
ABAP Cloud
Veröffentlicht
autor
Johannes

SAP Build Code ist SAPs neue KI-gestuetzte Entwicklungsumgebung fuer professionelle Entwickler. Anders als SAP Build Apps (Low-Code) richtet sich Build Code an Pro-Code Entwickler und integriert Joule AI direkt in den Entwicklungsprozess. Dieser Artikel zeigt, wie SAP Build Code mit ABAP Cloud zusammenarbeitet und wann du welches Tool einsetzen solltest.

Was ist SAP Build Code?

SAP Build Code ist die Pro-Code Komponente der SAP Build Plattform und wurde 2024 eingefuehrt:

AspektBeschreibung
BasisSAP Business Application Studio (BAS)
KI-IntegrationJoule AI nativ integriert
ZielgruppeProfessionelle Entwickler
TechnologienCAP, RAP, Fiori, ABAP Cloud
DeploymentCloud-basiert (Browser)

SAP Build Code vs. andere SAP Build Produkte

SAP Build Code ist Teil der groesseren SAP Build Familie, unterscheidet sich aber deutlich:

ProduktAnsatzZielgruppe
SAP Build AppsLow-Code/No-CodeCitizen Developer
SAP Build Process AutomationWorkflow/RPABusiness Analysten
SAP Build Work ZonePortal/UXAlle Anwender
SAP Build CodePro-Code + KIProfessionelle Entwickler

Mehr zu Low-Code vs. Pro-Code findest du im Artikel SAP Build vs. ABAP Cloud.


SAP Build Code vs. ADT vs. Business Application Studio

Eine haeufige Frage: Welche IDE soll ich fuer ABAP Cloud nutzen? Hier der detaillierte Vergleich:

Feature-Vergleich

FeatureADT (Eclipse)BAS (Browser)SAP Build Code
InstallationLokale InstallationKeine (Browser)Keine (Browser)
ABAP-EntwicklungVollstaendigVollstaendigVollstaendig
CAP-EntwicklungNeinJaJa (optimiert)
Joule AIJa (seit 2024)BegrenztVollstaendig integriert
KI-Code-GenerierungJaTeilweiseErweitert
Offline-FaehigJaNeinNein
PerformanceSehr gutGutGut
Multi-ProjektJaJaJa
Team-ZusammenarbeitGitGit + Dev SpacesGit + Dev Spaces + KI
SAP-IntegrationBTP, On-PremBTP-fokussiertBTP-fokussiert
KostenKostenlosBTP-SubscriptionBuild Code Lizenz

Wann welches Tool?

ADT (Eclipse) waehlen, wenn:

  • Du ueberwiegend ABAP Cloud entwickelst
  • Offline-Arbeit wichtig ist
  • Du On-Premise S/4HANA anbindest
  • Maximale Performance benoetigt wird
  • Du bereits Eclipse-Erfahrung hast

Business Application Studio waehlen, wenn:

  • Du keine lokale Installation willst
  • Fiori/CAP Entwicklung im Fokus steht
  • Du von verschiedenen Geraeten arbeitest
  • Dev Space Sharing im Team wichtig ist

SAP Build Code waehlen, wenn:

  • Du KI-Unterstuetzung maximal nutzen willst
  • Du CAP und ABAP Cloud kombinierst
  • Joule-Integration entscheidend ist
  • Du Full-Stack Cloud Apps baust

Mehr zu BAS findest du unter SAP Business Application Studio.


Joule AI Integration in SAP Build Code

Das Alleinstellungsmerkmal von SAP Build Code ist die tiefe Integration von Joule AI. Joule ist SAPs generative KI, speziell trainiert auf SAP-Technologien.

Was kann Joule in SAP Build Code?

FaehigkeitBeschreibungBeispiel
Code-GenerierungABAP/CAP Code aus natuerlicher Sprache”Erstelle eine CDS View fuer Bestellungen”
Code-ErklaerungBestehenden Code verstehen”Was macht diese Methode?”
DokumentationKommentare und Docs generieren”Dokumentiere diese Klasse”
Unit TestsTestfaelle erstellen”Generiere Tests fuer diese Validation”
FehleranalyseBugs identifizieren und beheben”Warum schlaegt dieser Code fehl?”
RAP-ObjekteBehavior, CDS, Service erstellen”Erstelle ein RAP Business Object”
Data ModelDatenmodelle vorschlagen”Entwirf ein Modell fuer Projektverwaltung”

Joule-Workflow: CDS View generieren

So funktioniert die KI-gestuetzte Entwicklung in der Praxis:

1. Prompt an Joule:

Erstelle eine CDS Interface View fuer Kundenbestellungen mit den Feldern:
- Bestellnummer (Schluessel)
- Kundennummer
- Bestelldatum
- Gesamtbetrag
- Status (offen, in Bearbeitung, abgeschlossen)

2. Joule generiert:

@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Kundenbestellungen'
define view entity ZI_CustomerOrder
as select from zcustomer_order
{
key order_id as OrderId,
customer_id as CustomerId,
order_date as OrderDate,
@Semantics.amount.currencyCode: 'Currency'
total_amount as TotalAmount,
currency as Currency,
@ObjectModel.text.element: ['StatusText']
status as Status,
case status
when 'O' then 'Offen'
when 'I' then 'In Bearbeitung'
when 'C' then 'Abgeschlossen'
else 'Unbekannt'
end as StatusText
}

3. Review und Anpassung: Du pruefst den generierten Code, passt Details an (z.B. Feldnamen, Annotationen) und integrierst ihn in dein Projekt.

Joule-Workflow: ABAP Klasse mit Unit Tests

1. Prompt:

Erstelle eine ABAP-Klasse zur Validierung von deutschen Postleitzahlen.
Die Methode soll pruefen, ob eine PLZ genau 5 Ziffern hat.
Generiere auch passende Unit Tests.

2. Joule generiert die Klasse:

CLASS zcl_plz_validator DEFINITION
PUBLIC
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
METHODS validate_plz
IMPORTING iv_plz TYPE string
RETURNING VALUE(rv_valid) TYPE abap_bool.
ENDCLASS.
CLASS zcl_plz_validator IMPLEMENTATION.
METHOD validate_plz.
" Deutsche PLZ: genau 5 Ziffern
DATA(lv_plz) = condense( iv_plz ).
rv_valid = xsdbool(
strlen( lv_plz ) = 5 AND
lv_plz CO '0123456789'
).
ENDMETHOD.
ENDCLASS.

3. Joule generiert Unit Tests:

CLASS ltcl_plz_validator DEFINITION
FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS.
PRIVATE SECTION.
DATA cut TYPE REF TO zcl_plz_validator.
METHODS setup.
METHODS test_valid_plz FOR TESTING.
METHODS test_invalid_plz_letters FOR TESTING.
METHODS test_invalid_plz_too_short FOR TESTING.
METHODS test_invalid_plz_too_long FOR TESTING.
METHODS test_plz_with_spaces FOR TESTING.
ENDCLASS.
CLASS ltcl_plz_validator IMPLEMENTATION.
METHOD setup.
cut = NEW #( ).
ENDMETHOD.
METHOD test_valid_plz.
cl_abap_unit_assert=>assert_true(
act = cut->validate_plz( '80331' )
msg = 'Gueltige PLZ sollte akzeptiert werden'
).
ENDMETHOD.
METHOD test_invalid_plz_letters.
cl_abap_unit_assert=>assert_false(
act = cut->validate_plz( '8033A' )
msg = 'PLZ mit Buchstaben sollte abgelehnt werden'
).
ENDMETHOD.
METHOD test_invalid_plz_too_short.
cl_abap_unit_assert=>assert_false(
act = cut->validate_plz( '8033' )
msg = 'Zu kurze PLZ sollte abgelehnt werden'
).
ENDMETHOD.
METHOD test_invalid_plz_too_long.
cl_abap_unit_assert=>assert_false(
act = cut->validate_plz( '803311' )
msg = 'Zu lange PLZ sollte abgelehnt werden'
).
ENDMETHOD.
METHOD test_plz_with_spaces.
cl_abap_unit_assert=>assert_true(
act = cut->validate_plz( ' 80331 ' )
msg = 'PLZ mit Leerzeichen sollte nach Bereinigung gueltig sein'
).
ENDMETHOD.
ENDCLASS.

Mehr zu Joule und ABAP findest du unter Joule fuer ABAP.


SAP Build Code Setup

Voraussetzungen

  • SAP BTP Account (Trial oder produktiv)
  • SAP Build Code Subscription oder Lizenz
  • Moderner Browser (Chrome, Firefox, Edge)
  • Internet-Verbindung (Cloud-basiert)

Zugang einrichten

Schritte zum Einrichten von SAP Build Code:
1. SAP BTP Cockpit oeffnen
2. Subaccount auswaehlen
3. Services → Instances and Subscriptions
4. "SAP Build Code" suchen und abonnieren
5. Benutzer-Rolle zuweisen: "SAP_Build_Code_User"
6. SAP Build Lobby oeffnen
7. "SAP Build Code" auswaehlen
8. Neues Projekt erstellen oder bestehendes oeffnen

Projekt erstellen fuer ABAP Cloud

In SAP Build Code kannst du verschiedene Projekttypen erstellen:

ProjekttypBeschreibungABAP-Relevanz
Full-Stack ApplicationCAP Backend + Fiori UICAP als Alternative zu ABAP
ABAP Cloud ProjectReines ABAP CloudDirekte ABAP-Entwicklung
Fiori ApplicationUI fuer bestehende ServicesKonsumiert ABAP RAP Services
Mobile ApplicationSAP Mobile Development KitNutzt ABAP OData APIs

ABAP System verbinden

ABAP Cloud System in SAP Build Code verbinden:
1. Projekt oeffnen
2. "Service Center" aufrufen
3. "Add Service" klicken
4. "SAP S/4HANA Cloud" oder "SAP BTP ABAP Environment" waehlen
5. System-URL eingeben
6. Authentifizierung (Benutzer/Passwort oder OAuth)
7. Verbindung testen
8. Services und Objekte durchsuchen

Entwicklungs-Workflow in SAP Build Code

Typischer Full-Stack Workflow

Ein haeufiges Szenario: Du entwickelst eine Full-Stack Anwendung mit ABAP Cloud Backend und Fiori UI.

Schritt 1: Backend in ABAP Cloud (ADT parallel nutzen)

Fuer komplexe ABAP-Logik empfiehlt sich weiterhin ADT:

" RAP Business Object in ADT entwickeln
" Behavior Definition
managed implementation in class zbp_i_product unique;
strict ( 2 );
define behavior for ZI_Product alias Product
persistent table zproduct
lock master
authorization master ( instance )
{
field ( readonly ) ProductId;
field ( mandatory ) ProductName, Price;
create;
update;
delete;
action ( features : instance ) setDiscountPrice
parameter ZA_DiscountInput
result [1] $self;
validation validatePrice on save { create; update; }
determination setCreatedInfo on save { create; }
}

Schritt 2: Service in SAP Build Code exponieren

In SAP Build Code kannst du den Service einfach einbinden:

1. Service Center oeffnen
2. ABAP System auswaehlen
3. OData Service suchen (z.B. ZUI_PRODUCT_O4)
4. "Add to Project" klicken
5. Joule: "Erstelle eine Fiori List Report App fuer diesen Service"

Schritt 3: Fiori App mit Joule generieren

Joule kann komplette Fiori Apps scaffolden:

Prompt: "Erstelle eine Fiori Elements List Report App fuer
Produkte mit Filterbarer Tabelle, Detail-Navigation
und Erstellungsdialog."

Joule generiert:

  • app/product/webapp/manifest.json
  • app/product/annotations.cds
  • Routing und Navigation
  • i18n-Texte (deutsch/englisch)

Best Practices: SAP Build Code mit ABAP Cloud

1. Hybride Entwicklung nutzen

Kombiniere die Staerken beider Welten:

AufgabeTool
Komplexe ABAP-LogikADT (Eclipse)
CDS Views mit KISAP Build Code + Joule
Fiori UISAP Build Code
DebuggingADT
Unit TestsADT oder Build Code
CAP ServicesSAP Build Code
Git/DeploymentBeide

2. Joule effektiv einsetzen

Do’s:

  • Klare, spezifische Prompts verwenden
  • Generierten Code immer reviewen
  • Iterativ verfeinern (Folge-Prompts)
  • Fuer Boilerplate-Code nutzen
  • Dokumentation generieren lassen

Don’ts:

  • Blind vertrauen ohne Code-Review
  • Komplexe Businesslogik komplett generieren lassen
  • Sicherheitsrelevanten Code ohne Pruefung uebernehmen
  • Performance-kritische Bereiche ohne Optimierung nutzen

3. Team-Workflows etablieren

Empfohlener Team-Workflow:
1. Feature-Branch erstellen (Git)
2. ABAP Backend in ADT entwickeln
3. Service testen (OData, Postman)
4. Fiori UI in SAP Build Code + Joule
5. Code Review (Pull Request)
6. Integration Tests
7. Deployment via CI/CD

Einschraenkungen und Hinweise

Aktuelle Limitationen (Stand 2026)

BereichEinschraenkung
ABAP DebuggingBegrenzt in Build Code, besser in ADT
OfflineNicht moeglich (Cloud-only)
PerformanceBrowser-abhaengig
Komplexe RefactoringsADT bietet mehr Tools
SAP GUINicht integriert

Lizenzierung

SAP Build Code erfordert eine separate Lizenz oder ist Teil bestimmter SAP-Pakete:

  • SAP Build Code Free Tier: Begrenzte Nutzung fuer Tests
  • SAP Build Code Standard: Vollstaendige Features
  • SAP BTP Enterprise Agreement: Oft enthalten

Pruefe deinen SAP-Vertrag fuer die genauen Konditionen.


Entscheidungshilfe: Wann SAP Build Code?

SAP Build Code ist ideal fuer:

  • Full-Stack Cloud Entwicklung (CAP + Fiori + ABAP)
  • KI-gestuetzte Produktivitaet mit Joule
  • Neue Projekte ohne Legacy-Abhaengigkeiten
  • Teams mit CAP und ABAP Skills
  • Schnelle Prototypen mit KI-Unterstuetzung

ADT bleibt besser fuer:

  • Reine ABAP Cloud Entwicklung
  • On-Premise S/4HANA Projekte
  • Komplexes Debugging und Analyse
  • Offline-Szenarien
  • Etablierte ABAP-Teams ohne CAP-Bedarf

Hybrid-Ansatz (Empfohlen)

Fuer die meisten Teams empfiehlt sich ein hybrider Ansatz:

+------------------+ +------------------+
| ADT | | SAP Build Code |
|------------------| |------------------|
| ABAP Backend |<--->| Fiori UI |
| RAP Development | | CAP Services |
| Debugging | | Joule AI |
| Unit Tests | | Full-Stack Apps |
+------------------+ +------------------+
| |
v v
+---------------------------------+
| Git Repository |
| (Gemeinsame Codebasis) |
+---------------------------------+

Fazit

SAP Build Code erweitert das ABAP Cloud Entwickler-Toolkit um KI-Unterstuetzung und Full-Stack Faehigkeiten. Es ersetzt ADT nicht, sondern ergaenzt es. Die Kombination aus ADT fuer Backend-Entwicklung und SAP Build Code fuer UI und KI-Features bietet das Beste aus beiden Welten.

Empfehlung: Teste SAP Build Code im Free Tier, nutze Joule fuer Boilerplate und UI-Generierung, aber behalte ADT fuer tiefe ABAP-Arbeit. Der hybride Ansatz maximiert Produktivitaet ohne auf bewaehrte Tools zu verzichten.

Weiterführende Artikel