Teknik, SAP

Är alla ABAP-utvecklare i rätt millennium?

Den digitala resan som vi alla är mitt uppe i innebär stora förändringar i affärssystemen såväl som i omvärlden – hänger vi alla med? Är vi ens i rätt millenium?

SAP har ett eget programmeringsspråk som heter ABAP, Advanced Business Application Programming. Språket ABAP används dels av SAP för att skriva själva modulerna i plattformen och även av kunder för att göra anpassningar och skriva egna rapporter och applikationer.

Mycket har som sagt hänt sedan millennieskiftet, i vår omvärld såväl som inom SAP-världen. Förändringarna gäller även programmeringsspråket ABAP. Utvecklingen innebär förbättrade möjligheter för:

  • att bygga stabila, långvariga, förvaltningsbara och effektiva applikationer och rapporter
  • själva utvecklingsprocessen, som även den ska bli mer effektiv.

En stor fördel med ABAP är kompabiliteten bakåt i tiden. I och med ständiga uppgraderingar och enhancement packs i SAP är det viktigt med denna bakåtkompatibelt, så att den kod man en gång skrivit fortfarande fungerar och eventuellt underhålls även i nyare versioner av SAP. En negativ bieffekt av detta blir dock att många ABAP-utvecklare fortsätter som om det fortfarande vore 1999, helt utan att veta om att deras verktygslåda regelbundet får nya verktyg och blir bättre och fräschare. Det gamla sättet fungerar ju fortfarande och informationen om att det finns nyare och bättre sätt att programmera i SAP ramlar inte ner i ens knä (förrän nu), utan man behöver aktivt söka den och ta del av den själv.

Jag är av uppfattningen att ju fler som känner till och anammar ny funktionalitet, nya verktyg och nya metodiker inom utveckling, desto bättre är det för SAP-kunderna. Det skapar mer skalbara och förvaltningsbara implementationer och det bidrar till kortare utvecklingsfaser. För ju snabbare verkligheten rör sig, ju mer vi vill digitalisera, ju mer agila och lättrörliga vi vill vara, desto mer bromsar tyvärr de som ligger kvar i 1999 och skvalpar. Så mitt råd är: häng med!

Nyheter inom ABAP

Jag ska kortfattat nämna några viktiga punkter här nedan. Det är på inget sätt en komplett lista, men kan vara en bra utgångspunkt.

Exempel på nya kommandon i ABAP

Nyheter i själva kärnan av ABAP, så som Inline Declarations gör att vi i många fall kan deklarera variabler precis när vi ska använda dem första gången. Vi har också Constructor Operators där vi kan skapa operander ”där de behövs” utan behov av separata hjälpvariabler. Med Loop Aggregations kan vi på ett kontrollerat sätt gruppera och dela upp en loop över en interntabell på flera fall, vilket kan vara väldigt användbart. Strings och String Templates är väldigt kraftfullt för att formatera olika data och kombinationer av data som text.

Objektorientering

Att överge den gamla linjära programmeringsmetodiken för en objektorienterad metodik bör vara en prioriterad aktivitet! Med dess inkapsling av data ger det en bättre kontroll över de variabler och data som används. Du får betydligt större möjlighet att ha flera instanser levande parallellt. Det blir betydligt tydligare möjligheter till avgränsad återanvändning av kod, både lokalt och globalt. Dessutom kräver många av de nya teknikerna ABAP Objects som grund, så för att kunna använda dessa behöver du först känna till objektorientering.

OpenSQL

SAP kan köras på en mängd olika databaser och eftersom man inte vill att valet av databas ska styra programmeringen skapade SAP OpenSQL. Det är ett antal kommandon som stödjer viss delmängd av SQL-standarden helt enkelt. OpenSQL har med tiden utökats, så med de senaste versionerna kan man t.ex. använda fler JOIN-varianter, UNION av flera frågor, villkorade resultat, beräkningar, osv, direkt i sin SELECT-sats. Här finns mycket prestanda- och lastvinster att göra jämfört med att nöja sig med det gamla.

BRF+

Business Rules Framework är ett ramverk för att på ett strukturerat sätt kunna styra och åskådliggöra enkel såväl som väldigt komplex konfiguration och affärslogik. Det görs med hjälp av olika sorters funktioner som t.ex. beslutsträd, formler och beslutstabeller. I verktyget finns också en värdefull möjlighet till att simulera de olika funktionerna baserat på olika grunddata. BRF+ kan t.ex. användas som en mycket kraftfull ersättare till Z-tabeller som konfiguration i egenutveckling.

Core Data Services

Här har vi en början till Code Pushdown, dvs att flytta ner viss logik i databasen istället för att först hämta upp onödigt mycket data till applikationen och sedan utföra all logik på den, eller filtrera och rensa bort där. Vi kan också med hjälp av detta återanvända SELECT-satser istället för att upprepa dem var för sig i flera program. Mycket användbart!

HANA DB

När det kommer till HANA som databas kan man dels börja fundera på saker som att optimera med hjälp av column store/row store. Vi kan börja fundera över hur vi strukturerar upp våra tabeller. Behöver vi verkligen header/item längre eller är det mer effektivt nu att bara ha en tabell och headerinformationen upprepad till synes redundant per item? Vi kommer också till nästa nivå av Code Pushdown med AMDP, ABAP Managed Database Procedures, där vi i princip kan skripta parallell komplex databaslogik redan innan vi får upp datan till applikationslagret.

Användargränssnitt

SAP:s gamla klassiska skärmbilder hoppas jag inte att någon sitter och bygger idag. Givetvis kan det vara relevant att anpassa befintliga, men ska man göra något nytt bör man ha väldigt goda skäl för att inte bygga något med Web Dynpro ABAP/Floorplan Manager, eller Fiori. Nu kommer jag för en liten stund att lämna SAP och nämna ett Add-On, men jag är övertygad om att om man ska bygga Fiori till sitt on-premise system, dvs utanför SAP Cloud Platform, så bör man starkt överväga Neptune Software som Add-On till SAP. Det kostar licenspengar (och jag får ingen del av dem för att jag skriver detta), men jag tror absolut att man i de allra flesta fall har tillbaka detta redan på sin första app i form av utvecklingstid och förvaltningstid.

Med detta sagt…

Med detta sagt är ovanstående bara en del i vad som gör en bra programmerare. Naturligtvis finns det fantastiska utvecklare som inte anammat något av detta, på samma sätt som det finns helt usla utvecklare som alltid gör allt det senaste. Men jag tänker att ju fler som kommer upp på modern nivå rent tekniskt desto mer kommer det i slutändan att gynna SAP-användarna, oavsett om vi idag är kollegor, konsulter eller anställda i linjen. Vi behöver inte alla bemästra samtliga delar av detta, men vi behöver veta vad som finns, vad vi kan använda det till, hur vi använder det och vilken lösning som är den bästa för kundens långsiktiga behov av digitalisering, agilitet och förvaltning.

En annan anledning är att säkra nyrekryteringen till SAP-programmering. Det håller inte i längden att skrämma bort ungdomarna med COBOL-lik syntax.

För mer information är både Google och jag dina vänner. Det finns mycket skrivet om det jag nämnt redan, men vill ni ha specifika tips får ni gärna höra av er till oss på hej@stretch.se eller kolla in våra SAP-specialister här.

Dela inlägget