Tytułem wstępu
Ten artykuł stanowi trzecią część krótkiego cyklu, pokazującego z perspektywy osoby odpowiedzialnej za rozwój ekosystemu SAP w przedsiębiorstwie, jak zacząć od zupełnych podstaw pracę z SAP AI, w czym SAP AI może pomóc oraz jak wykorzystać SAP AI do realizacji niestandardowych wymagań przedsiębiorstwa. W części pierwszej pokazałem, jak zdobyć wiedzę, niezbędną do realizacji niestandardowych potrzeb przedsiębiorstwa. W drugim odcinku pokazałem, jak uzyskać możliwość Vibe Coding-u w SAP Business Application Studio. A w tym odcinku pokażę użycie AI w pisaniu kodu, ale bardziej tradycyjnie.
Definicja potrzeby
Wiemy, jak pisać kod. Znamy język, w którym piszemy kod. Ale chcielibyśmy trochę ułatwić sobie zadanie. Nie chcemy oddać całości pracy w tryby AI, ale chcemy, aby AI nam pomogła czy to pisać kod, czy zrozumieć.
ABAP
Zacznijmy od Pomocy AI w pisaniu, analizie czy refaktoringu kodu ABAP. W tym zakresie pomocą służy SAP Joule for Developers, ABAP AI Capabilities. Ta wersja może być używana w trzech przypadkach (w dniu pisania tego tekstu):
- ABAP w SAP BTP ABAP Environment
- ABAP w SAP S/4HANA Cloud Public Edition (SAP Cloud ERP)
- ABAP w SAP S/4HANA Cloud Private Edition (SAP Cloud ERP Private)
Zakres funkcji J4D ABAP
Zakres funkcji dostępnych we wszystkich trzech środowiskach, jest niemal identyczny. We wszystkich środowiskach mamy do dyspozycji następujące funkcje:
- Joule Chat – Funkcja czatu Joule umożliwia prowadzenie rozmów w języku naturalnym, zadawanie pytań lub uzyskiwanie szczegółowych wyjaśnień dotyczących fragmentów kodu lub obiektów programistycznych.
- Documentation Chat – Umożliwia czatowanie z dokumentacją w Portalu Pomocy SAP.
- Predictive Code Completion – Funkcja predykcyjnego uzupełniania kodu wykorzystuje sztuczną inteligencję (AI) do podpowiadania kodu podczas pisania w edytorze kodu źródłowego ABAP. Sugerowany kod – tzw. ghost text – jest wyświetlany przed kursorem. Możesz zaakceptować sugestię, naciskając klawisz Tab, lub kontynuować pisanie, aby ją zignorować.
- Explain – Funkcja Wyjaśnij umożliwia uzyskanie szczegółowych wyjaśnień wybranych obiektów programistycznych lub wierszy kodu źródłowego.
- ABAP Unit Test Generation – Pomoc dla autora testów jednostkowych ABAP, w skuteczniejszym tworzeniu i ulepszaniu testów.
- CDS Test Generation – Generuje zautomatyzowane i kontekstowe testy dla encji ABAP CDS.
- OData UI Service from Scratch – Można utworzyć od podstaw obiekty repozytorium związane z usługą RAP.
- RAP Business Logic Prediction – Prognoza logiki biznesowej RAP pomaga wdrażać ustalenia lub walidacje w klasie implementacji definicji zachowania.
- Consume – Funkcja Consume umożliwia korzystanie z serwera proxy klienta OData w celu korzystania ze zdalnej usługi OData.
- Emedded Analytics Star Schema Generator powered by AI – Narzędzie służące do tworzenia analitycznego schematu gwiazdy przy użyciu sztucznej inteligencji.
Funkcje unikalne dla SAP S/4HANA Cloud Private Edition (SAP Cloud ERP Private)
W środowisku SAP S/4HANA Cloud Private Edition (SAP Cloud ERP Private) mamy do dyspozycji dodatkową funkcję, dedykowaną dla tego środowiska:
- Custom Code Migration AI Assistant – Asystent AI migracji kodu niestandardowego, będący częścią Documentation Chat, udziela wsparcia w projekcie migracji kodu niestandardowego.
Funkcje unikalne dla środowiska SAP S/4HANA Cloud Public Edition (SAP Cloud ERP)
Z kolei w środowisku SAP S/4HANA Cloud Public Edition (SAP Cloud ERP) mamy dodatkową, dedykowaną dla tego środowiska, funkcję:
- Extensibility Assistant – Może odpowiedzieć na pytania dotyczące rozszerzalności pól i ich logiki. Może pomóc w różnych zadaniach związanych z rozszerzalnością pól, w tym:
- Tworzenie pól niestandardowych: Może pomóc w tworzeniu nowych pól niestandardowych w określonych kontekstach biznesowych.
- Znajdowanie kontekstów biznesowych: Może pomóc w identyfikacji odpowiedniego kontekstu biznesowego do rozszerzania aplikacji, usług, interfejsów API lub transakcji.
- Włączanie zastosowań: Może pomóc w znalezieniu i włączeniu zastosowań, w których pola niestandardowe mogą być widoczne, takich jak interfejsy użytkownika, interfejsy API, widoki analityczne lub transakcje SAP GUI.
- Włączanie scenariuszy biznesowych: Może pomóc w włączaniu scenariuszy biznesowych dla pól niestandardowych, umożliwiając przepływ danych między różnymi obiektami biznesowymi.
- Znajdowanie widoków pomocy wartości: Może pomóc w znalezieniu widoków pomocy wartości, które dostarczają danych pomocy wartości dla pól niestandardowych typu lista kodów na podstawie widoku CDS.
- Znajdowanie BAdI: Może pomóc w znalezieniu dodatków biznesowych na podstawie danych wejściowych w języku naturalnym.
Uruchomienie SAP Joule for Developers, ABAP AI Capabilities
Aby używać SAP Joule for Developers, ABAP AI Capabilities, potrzebujemy:
- Jedno ze środowisk (S/4HANA Cloud Public lub Private lub SAP BTP ABAP Environment)
- Licencję SAP Joule for Developers, ABAP AI capabilities (licencja bezpłatna do 30 września 2026)
- Środowisko deweloperskie – w dniu pisania tego artykułu jest to Eclipse, natomiast w planach jest również wsparcie dla MS Visual Studio Code
- AI Units do pokrycia kosztów funkcji generatywnych
Uruchamiamy całość w kilku prostych krokach:
- Aktywujemy SAP Joule for Developers, ABAP AI Capabilities w kokpicie SAP BTP. Tu uwaga: procedura aktywacji jest nieco inna w zależności od tego, czy będziemy korzystać z ABAP w S/4HANA Cloud czy w SAP BTP ABAP Environment. Procedura jest opisana w dokumentacji na help.sap.com.
- Pobieramy i instalujemy Eclipce
- W Eclipse Wybieramy Help -> Install New Software i w polu „Work with” wpisujemy https://tools.hana.ondemand.com/latest
- W repozytorium wybieramy „ABAP Development Tools” i instalujemy
- W zależności od używanego środowiska ABAP, konfigurujemy współpracę pomiędzy SAP ABAP Development Tools a naszym środowiskiem ABAP
Wszystkie powyższe kroki są opisane w dokumentacji.
Po wykonaniu powyższych kroków otrzymujemy lokalne środowisko deweloperskie, podłączone z jednej strony do S/4HANA Cloud Public Edition, S/4HANA Cloud Private Edition lub SAP BTP ABAP Environment, a z drugiej strony do środowiska Joule for Developers, ABAP Capapbilities.

Technologie inne niż ABAP (node.js, Java, Python itd.)
Tu mamy znacznie więcej możliwości niż w przypadku ABAP. Zacznijmy od tego, że funkcje oparte na AI są wbudowane bezpośrednio w środowisko deweloperskie. Wystarczy jedna z subskrypcji:
- SAP Build Code (https://help.sap.com/docs/build_code)
- SAP Build (unified) Developer (https://help.sap.com/docs/build-service)
- SAP Joule Studio 2.0 (dokumentacja w opracowaniu)
Uruchomienie każdej z tych subskrypcji jest zautomatyzowane – albo używamy tzw. „booster” w SAP BTP Cockpit, albo zautomatyzowanej procedury, uruchamianej w SAP Cloud Integration Automation.
Jedna rzecz, na którą trzeba zwrócić uwagę: w chwili pisania tego artykułu, Joule for Developers (w wersji dla Node.js i Java, a nie ABAP) jest dostępny w SAP Busienss Application Studio, będącym składnikiem pakietów SAP Build Code i SAP Build (unified). Podczas uruchamiania każdego z tych pakietów należ się upewnić, że w przypadku SAP Build (unified) SAP Business Application Studio zostanie uruchomione w planie „build-default”, a w przypadku SAP Build Code – w planie „build-code”.
W każdym przypadku po zakończeniu procesu aktywacji subskrypcji, otrzymujemy środowisko deweloperskie klasy Pro-Code, w którym standardowo możemy posługiwać się Node.js, Java, Python, a ponadto możemy rozszerzyć listę standardowo obsługiwanych języków poprzez zainstalowanie jednego z „Extensions”.
Standardowo otrzymujemy w środowisku dostęp do Joule for Developers: po lewej stronie ekranu pojawia się „diament”, którego kliknięcie przenosi nas do okna pracy z Joule for Developers.

Ważna uwaga: Joule w SAP Business Application Studio używa całego kodu, zawartego w projekcie jako kontekstu. Dlatego w żadnym przypadku nie wolno w kodzie projektu umieszczać danych wrażliwych.
Podczas pracy z projektem dostajemy do dyspozycji wiele narzędzi, które można podzielić na dwie kategorie:
- Joule Code Assistant
- Joule Chat
Joule Chat
Zazwyczaj zaczynamy pracę od Joule Chat. W okienku czatu możemy wybrać kategorię polecenia – do tego służy znak „/”. Po wpisaniu tego znaku pojawi się wybór dostępnych komend. Tu może pojawić się pytanie: dlaczego ograniczona lista komend, wywoływanych przez „/”? Ma to na celu minimalizację niepożądanych odpowiedzi. SAP Jolue for Developers jest dedykowany do konkretnych zadań i w ich realizacji jest naprawdę dobry. Innym zadaniami po prostu nie zajmuje się.
Przy pomocy Joule możemy:
- W projekcie Full Stack
- Wygenerować model danych lub serwis
- Edytować projekt
- Edytować dane testowe
- Aktualizować logikę aplikacji
- Generować i uruchamiać testy jednostkowe
- W projekcie aplikacji UI5
- Realizować zadania, związane z tworzeniem aplikacji UI5
- Zadawać pytania, związane z UI5
- Dodawać funkcje aplikacji UI5
Joule Code Assistant
Kiedy mamy już utworzony zarys projektu, czy to przy pomocy okna czatu Joule, czy metodami tradycyjnymi, jak użycie szablonów i generatorów albo po prostu ręcznie, możemy używać Joule Code Assistant.
Joule Code Assistant pozwala wykonywać prace bezpośrednio na edytowanym kodzie:
- Automatyczne uzupełnianie pisanego kodu – podczas pisania kodu naciskamy „Tab” i Joule sugeruje kolejną linię kodu. Ponowne naciśnięcie „Tab” oznacza akceptację całego zaproponowanego kodu, lub można też można akceptować każdy segment proponowanego kodu, naciskając fiszkę „Accept Word”
- Refaktoryzacja kodu
- Objaśnienie kodu
- Przeszukiwanie kodu
Co ciekawe, w przypadku refaktoryzacji, mamy możliwość zmiany LLM, z którego korzystamy do tego zadania. Standardowo jest to Joule, ale jeżeli zaznaczymy fragment kodu, wybierzemy opcję „Refactor”, a następnie „Modify”, to otworzy się okienko, w którym wpisujemy komendę, jaką chcemy, aby LLM zrealizował w trakcie refaktoryzacji kodu, ale po prawej stronie tego okienka znajduje się opcja wyboru LLM, który od tej pory będzie wykonywał refaktoryzację.

I tutaj mamy szerokie spektrum usługodawców do wyboru – ale do skorzystania z któregokolwiek z nich, potrzebujemy tzw. „API Key” od wybranego usługodawcy, aby móc skorzystać z jego LLM-ów.

Do wyboru mamy:
- Anthropic – Haiku, Sonnet i Opus
- xAI – Grok
- Google – Gemini
- OpenRouter – dostęp do mniej znanych LLM-ów, które implementują interface OpenRouter
- OpenAI – CztGPT
- Ollama – Ollama
- OpenAI Compatible – mniej znane modele, zgodne z technologią OpenAI
- Azure – dostęp do LLM-ów serwowanych przez Microsoft Azure
- SAP AI Core – dostęp do modeli serwowanych przez SAP AI Core
Jeżeli zrealizowaliśmy to, co opisałem w poprzedniej części tej mini-serii artykułów, czyli uruchomiliśmy SAP AI Core, to ostatnia opcja z powyższej listy będzie bardzo interesująca – da nam dostęp do modeli LLM, dostarczanych przez SAP. Wystarczy pobrać service key usługi SAP Ai Core i na żądanie BAS wkleić jego całą treść jako API Key AI Core. W tym momencie dostajemy dostęp do (na dzień pisania tego artykułu) 34 LLM-ów.
Tu uwaga techniczna: nie jest to czysty dostęp bezpośrednio do LLM, jak to było w poprzednim artykule. W tym przypadku pośrednikiem pomiędzy nami a LLM jest GitHub Copilot, który nam pomaga w pracy z kodem i który używa wskazany przez nas, lub wybierany automatycznie, LLM do wykonywania zadań.

