CodeCompanion

AI, które przyspiesza programowanie w ABAP!
Dzięki CodeCompanion piszemy kod szybciej i bez zbędnego przełączania między narzędziami – poznaj rozwiązanie, które integruje AI bezpośrednio w Eclipse i przenosi programowanie w ABAP na nowy poziom.
Mateusz Tofil
SAP Developer

Kontekst

Biznesowo
  • Pisanie kodu to nie tylko składanie linijek w logiczną całość – to także testowanie, dokumentowanie czy poprawianie błędów. I właśnie w tych obszarach postanowiliśmy sobie pomóc! Nasze wewnętrzne rozwiązanie łączy AI z Eclipse, dzięki czemu nie musimy już przełączać się między ChatGPT w przeglądarce, GitHub Copilotem czy zewnętrznymi edytorami tekstu. Wszystko mamy pod ręką, w jednym miejscu.
  • Nasze narzędzie jest unikalne, ponieważ działa on-premise, podczas gdy inne dostępne rozwiązania, takie jak GitHub Copilot albo nie są zoptymalizowane pod ABAP, albo jak SAP Joel, wymagają licencji BTP i działają wyłącznie w połączeniu z chmurą.  
  • A co dokładnie potrafi nasz plugin?  
  • Generowanie testów jednostkowych – analizuje zaznaczony kod i automatycznie generuje testy jednostkowe
  • Automatyczne tworzenie dokumentacji – samodzielnie uzupełnia komentarze na podstawie kodu, zmiennych i parametrów wejściowych
  • Interakcja przez komentarze w kodzie – Deweloper może w kodzie umieścić specjalny komentarz w specjalnym formacie, a system automatycznie prześle to zapytanie do AI i zwróci gotowy kod.
  • Dynamiczne okno promptów – Możliwość interakcji z AI bezpośrednio w Eclipse, z opcją wyboru parametrów, np. języka programowania czy szczegółowości odpowiedzi.
Technicznie
  • Jednym z naszych największych wyzwań technicznych była Integracja Eclipse (Java) z ABAP – Problemem było połączenie dwóch środowisk. Rozwiązanie znaleźliśmy dzięki wykorzystaniu SAP Java Connector (JCo), co umożliwiło komunikację między kodem w ABAP a funkcjami napisanymi w Java.
  • Połączenie systemu SAP z OpenAI API – Stworzyliśmy middleware w Java, który obsługuje zapytania HTTP do OpenAI, a następnie zwraca odpowiedzi w strukturze dostosowanej do użycia w ABAP.
  • Brak dokumentacji budowania pluginów dla Eclipse – Instalacja narzędzia wymagała zastosowania starszych mechanizmów budowania aplikacji, ponieważ nie mogliśmy skorzystać z nowoczesnych rozwiązań takich jak Maven czy Gradle. Po wielu testach udało się wypracować spójny proces instalacji.
  • Jest to projekt innowacyjny - Stosujemy iteracyjne podejście agile, które pozwala nam elastycznie dostosowywać kierunek rozwoju projektu. Spotykamy się co tydzień, aby omówić postępy, wyzwania i kolejne etapy wdrożenia zarówno w tym projekcie, jak i w dwóch innych związanych z AI w naszej firmie.

Technologie i narzędzia

  • ABAP
  • Java
  • Eclipse
  • SAP Java Connector (JCo)
  • OpenAI API

Organizacja pracy

To jest Agile!

Planowanie
Estymacja
Standup
Demo
Retro

Na czym się skupiamy?

90% rozwój
10% spotkania

Zespół

1
Junior SAP Developer
1
SAP Developer
2
SAP Architect

Wartość dla kandydata

To przed nami i może Tobą?

  • Obecnie zakończyliśmy wersję 1.0. Projekt działa i jest testowany wewnętrznie (testy alfa). Zrealizowaliśmy kluczowe założenia, aby można było w pełni wdrożyć i aby spełniało określone wymagania.
  • Planujemy dalszy rozwój projektu o kolejne wersje i testowanie rozwiązania z nowymi modelami AI w połączeniu z wektorową bazą danych. Chcemy przetrenować model na naszym kodzie, aby osiągnąć jeszcze lepsze wyniki zwracanych odpowiedzi.

Tego się uczymy. Rozwiniesz kompetencje z nami?

  • Zarządzanie czasem - konieczność równoległego łączenia codziennych zadań projektowych z dodatkowym zaangażowaniem w projekt innowacyjny sprawiała, że zarządzanie czasem stało się kluczowym wyzwaniem. Wymagało to od nas ciągłego priorytetyzowania oraz szybkiego dostosowywania się do zmieniających się potrzeb. Tak, aby zapewnić terminową realizację projektu i jego założeń.
  • Optymalizacja promptów dla AI – testujemy i udoskonalamy sposoby komunikacji z modelami językowymi, aby uzyskiwać lepsze wyniki w generowaniu kodu i dokumentacji.
  • Integracja AI w systemach on-premise – uczymy się, jak optymalnie łączyć modele językowe z lokalnym środowiskiem SAP bez korzystania z chmury.
  • Java w kontekście ABAP – mimo że głównie pracujemy w ABAP, musieliśmy opanować podstawy Javy, aby skutecznie napisać rozszerzenie dla Eclipse.
  • Korzystanie z SAP Java Connector – zdobywamy praktyczne doświadczenie w integracji systemów SAP z narzędziami opartymi na Javie.

Więcej o projekcie

Liczby, które mają znaczenie

4
kluczowe funkcjonalności
możliwości rozwoju
0%
utrzymania

Efekt końcowy

No items found.

Dołącz do projektu!

No items found.

Robimy różnicę

O efektach niech opowiedzą klienci!