30 Dagen met GitHub Copilot: Hoe AI mijn AL-code verbeterde

AI heeft in korte tijd flink wat stof doen opwaaien. Zeker ook in de wereld van software development. Tools zoals GitHub Copilot maken grote beloften: ze helpen je sneller, slimmer en met minder frustratie code schrijven. Maar hoe werkt dat nou echt in de praktijk?

Collega Rocco dook de afgelopen 30 dagen in de mogelijkheden van GitHub Copilot in AL en deelt zijn ervaringen. Wat zijn de voordelen, waar moet je op letten, en hoe kan een AI je workflow veranderen? Lees mee en ontdek hoe Copilot de manier van code schrijven verandert.

Wat heb je nodig:

1. GitHub account
2. Visual Studio Code
3. Bereidheid om samen te werken met deze AI

Installatie en eerste indruk

Na het installeren van de extensie GitHub Copilot in Visual Studio Code verschijnt er logo rechtsboven naast het zoekvenster. Klik naast dit logo, wat kennelijk een gezicht met een pilotenbril moet uitbeelden, om het Copilot menu te openen. Vergeet deze knop, want je hebt maar twee toetscombinaties nodig om met Copilot te werken. Sterker, Copilot gaat meteen voor je aan de slag tijdens het invoeren van je geliefde AL code. Belangrijk om aan te geven: Copilot doet voorstellen, je kan altijd kiezen om deze voorstellen te accepteren of te negeren.

Verschillen met andere AI’s

In tegenstelling tot de Copilot van Office-omgeving of ChatGPT, gebruikt GitHub Copilot in VS-Code je aanwezige of aangewezen objecten als referentie. Je kunt gerichte vragen stellen over je project en de daarin aanwezige maatwerkvelden.

Copilot tijdens programmeren

Zoals gezegd, doet Copilot continu voorstellen tijdens het typen van je AL-code. Zonder iets te vragen, completeert Copilot je regel code en doet zelfs hele voorstellen (meerdere regels code in grijs), die je eenvoudig met ‘Tab’ kunt accepteren. Als je een OnAction trigger toe wil voegen op je Page komt Copilot al met een lap code om je opgegeven report te runnen.

Ander praktisch voorbeeld is dat als je een label aan het toevoegen bent met placeholders, Copilot deze placeholders in het verplichte ‘Comment’ gedeelte invult.  Na intypen ‘Comment’ komt Copilot bijvoorbeeld met ‘Comment = ‘%1 Document Type, %2 Document No.’. De veldnamen haalt Copilot op door te kijken waar het label wordt gebruikt en welke velden de placeholders daar vullen.

Ook handig: als je met je muis over een fout heen zweeft, verschijnt nu (ook) de optie ‘Fix using Copilot’.

Wil je een nieuwe procedure schrijven in je huidige object?, gebruik <Ctrl+i> om de ‘Inline chat’ te openen en vraag bijvoorbeeld ‘maak nieuwe procedure welke aangeeft of deze klant het afgelopen jaar meer dan 10.000,00 euro heeft besteld’. Probeer het eens en ben vooral verbaasd dat het zo snel werkt!

Toetscombinatie <Ctrl+Shift+i> opent rechts de ‘chat’ functie, meestal gebruikt voor algemenere vragen als: Wat is default waarde van FindSet, Welke suffixen moet ik gebruiken bij labels. Maar je kunt hier ook om complete voorstelcode vragen om een nieuw maatwerkveld toe te voegen aan tabel klant welke geplaatst moet worden achter het veld telefoonnummer op de klantkaart’.

Als je de scope waarbinnen Copilot moet werken wilt bepalen gebruik dan de ‘Working Set’. Deze staat boven het vraagvenster in de chat. De ‘Working Set’ kan je uitbreiden met ‘Add file’ maar je kunt er ook een selectie objecten uit je Explorer naar toe slepen. Je kunt ook vragen alleen je ‘active file’ te gebruiken. Overigens kan je gewoon in het Nederlands je vragen stellen, antwoorden zijn altijd in het Engels.

Tip: hoe uitgebreider je vraag, hoe beter het initiële antwoord. Vraag door en corrigeer Copilot. Copilot is soms een ‘pleaser’. Ik stelde de vraag of het mogelijk is in de launch.json op te geven welke record getoond moet worden na openen van het startupObjectId. Copilot kwam met niet bestaande (goed klinkende) parameter ‘startupObjectParameter’. Nadat te hebben medegedeeld dat dit niet werkt, kwam Copilot met een excuus.

Copilot leert dus echt van alles wat je terugkoppelt. Geef bijvoorbeeld aan dat je in de cloud werkt als AL-ontwikkelaar en geen OnPrem-procedures wilt gebruiken.

Krijg je een foutmelding op de voorgestelde code (vaak het geval, want Copilot is niet geschikt voor de geheel onervaren ontwikkelaar), vraag dan Copilot deze op te lossen met “ik krijg foutmelding bla bla” en Copilot doet een alternatief voorstel.

Verrassende voorstellen

Ik heb gemerkt dat Copilot soms met voorstellen komt waar ik in eerste instantie niet aan had gedacht. Zo kreeg ik van Copilot het voorstel om het zogenaamde ‘Dictionary’ (data type) te gebruiken in een ‘repeat until’ lus. Deze dictionary vullen met primary keys van wel/niet gebruikte records en na de ‘until’ de dictionary uit te lezen om er iets leuks mee te doen. Ik zou geneigd zijn geweest om een temporay-table hiervoor te gebruiken, maar Copilot kwam met deze snellere (?) maar zeker veiligere optie!

Nadelen

Traagheid bij uitvoeren van opdrachten met betrekking op meerder objecten. Bijvoorbeeld bij vragen zoals ‘Wijzig property XYZ van A naar B’. Je ziet dan, heel fraai om te zien, Copilot je objecten scannen en voorstellen doen. Andere extensies zoals [AZ AL Dev Tools] zijn een stuk sneller bij uitvoeren van dergelijke acties.

Conclusie

De eerste 30 dagen zijn gratis, daarna kost het $10 per maand. Is het deze prijs waard?

GitHub Copilot is een prima aanvulling bij de dagelijkse werkzaamheden. Hoe langer je het gebruikt en tijd neemt om door te vragen, des te beter de antwoorden worden.

GitHub Copilot is sinds kort gratis als je een GitHub account hebt. Ik zou deze gratis versie zeker uitproberen! Ikzelf ga de komende tijd kijken of deze beperkte gratis versie mij genoeg ondersteunt. $10 per maand zal mij niet tegenhouden om anders de volledige versie aan te schaffen.

Efficiënter documentbeheer in Business Central en Finance & Supply Chain Management

Efficiënter documentbeheer in Business Central en Finance…

In een competitieve markt is een soepel en betrouwbaar documentbeheer essentieel onderdeel voor een effectieve bedrijfsvoering. Een trage en foutgevoelige documentstroom kan leiden tot gemiste deadlines, gefrustreerde medewerkers en ontevreden klanten. Maar…

30 Dagen met GitHub Copilot: Hoe AI mijn AL-code verbeterde

30 Dagen met GitHub Copilot: Hoe AI…

AI heeft in korte tijd flink wat stof doen opwaaien. Zeker ook in de wereld van software development. Tools zoals GitHub Copilot maken grote beloften: ze helpen je sneller, slimmer en met…

Effectief Change Management: de sleutel tot succes bij IT-implementaties

Effectief Change Management: de sleutel tot succes…

Wanneer je een CRM of ERP-systeem implementeert, is change management een cruciale factor voor succes. Het gaat verder dan alleen de technologie; het gaat om het effectief beheren van de impact van…