Erfahrungen im Beruf bilden die Basis für eine stete Weiterentwicklung - auf professioneller wie privater Ebene. Ergänzt wird dies durch eine gezielte und breit aufgestellte Weiterbildung.

Erfahrungen

Technologie ist kein Selbstzweck und es gibt keine Silberkugeln. Technologien unterstützen Geschäftsprozesse und sind für bestimmte Einsatzzwecke konzipiert. Daher ist ein guter Technologiemix sowie die richtige Auswahl essentiel für den Projekterfolg.

Technologien

Projekte bieten die Möglichkeit, die eigenen theoretischen, methodischen Kenntnisse in die Praxis zu übertragen, auszubauen und zu evaluieren sowie an den Herausforderungen zu wachsen.

Projekte

Dieser Showcase soll den lesenden Zugriff auf ein Excel-Workbook darstellen. Die darin enthaltenen Daten sollen als Objekte dem umgebenden System bereitgestellt werden. Das betreffende Workbook besteht hierbei aus den folgenden 4 einzelnen Blättern:

  • Stammdaten

Stammdaten

  • Bestellpositionen

  • Rechnungsadresse

  • Lieferadresse

Um die Daten adäquat abzubilden, sind zunächst die benötigten Transportobjekte zu definieren: 

  • Customer.java

public class Customer {
        private String kundennummer;
        private String anrede;
        private String vorname;
        private String nachname;
        private String strasse;
        private String hausnummer;
        private String postleitzahl;
        private String ort;

// + getter und setter
}

  • Orderitem.java

public class Orderitem {
        private Long lfdNr;
        private String artikelnummer;
        private String artikelbezeichnung;
        private Double einzelpreis;
        private Long menge;
        private Double gesamtpreis;

// + getter und setter
}

  • Address.java

public class Address {
        private String vorname;
        private String nachname;
        private String strasse;
        private String hausnummer;
        private String postleitzahl;
        private String ort;

// + getter und setter 
}

  • BillingAddress.java

public class BillingAddress extends Address {}

  • ShippingAddress.java

public class ShippingAddress extends Address {}

Für die Erzeugung von Orderitems nutzen wir eine Factory-Klasse:

  • OrderitemFactory.java

public class OrderitemFactory {
        public Orderitem createNew() {
               return new Orderitem();
        }
}

Danach kann in einer separaten Textdatei (Showcase.odsl) die DSL-Operationen beschrieben werden:

Stammdaten:
Für jedes Blatt  'Stammdaten' 
       in Datei  ${dateiname}  
führe aus 
        ${customer}.Kundennummer = G6; 
        ${customer}.Anrede = G8; 
        ${customer}.Vorname = G9; 
        ${customer}.Nachname = G10; 
        ${customer}.Strasse = G12; 
        ${customer}.Hausnummer = G13; 
        ${customer}.Postleitzahl = G14; 
        ${customer}.Ort = G15; 


Bestellpositionen:
Für jede Zeile bei der Zeilennummer größer als 5 
                   und E ist nicht leer 
                   und F ist nicht leer 
                   und H ist nicht leer 
                   und I ist nicht leer 
      in Blatt  'Bestellung' 
      in Datei  ${dateiname} 
führe aus 
        ${bestellposition} = ${orderitem}.createNew(); 
        ${bestellposition}.LfdNr = E; 
        ${bestellposition}.Artikelnummer = F; 
        ${bestellposition}.Artikelbezeichnung = G; 
        ${bestellposition}.Einzelpreis = H; 
        ${bestellposition}.Menge = I; 
        ${bestellposition}.Gesamtpreis = J; 
        ${orderitems}.add( ${bestellposition} ); 


Rechnungsadresse:
Für jedes Blatt  'Rechnungsadresse' 
       in Datei  ${dateiname} 
führe aus 
        ${billingaddress}.Vorname = G5; 
        ${billingaddress}.Nachname = G6; 
        ${billingaddress}.Strasse = G8; 
        ${billingaddress}.Hausnummer = G9; 
        ${billingaddress}.Postleitzahl = G10; 
        ${billingaddress}.Ort = G11; 


Lieferadresse:
Für jedes Blatt  'Lieferadresse' 
       in Datei  ${dateiname} 
führe aus 
        ${shippingaddress}.Vorname = G5; 
        ${shippingaddress}.Nachname = G6; 
        ${shippingaddress}.Strasse = G8; 
        ${shippingaddress}.Hausnummer = G9; 
        ${shippingaddress}.Postleitzahl = G10; 
        ${shippingaddress}.Ort = G11; 

 

Nun kann der Zugriff auf das Excel-Workbook erfolgen.

String filename = ".\\Excel Showcase.xlsx";

OperationDsl dsl = new OperationDsl();

ExcelPlugin excel = new ExcelPlugin();
FilePlugin file = new FilePlugin();

dsl.addPlugin(excel);
dsl.addPlugin(file);

Customer customer = new Customer();
List<Orderitem> orderitems = new LinkedList<Orderitem>();
BillingAddress billingAddress = new BillingAddress();
ShippingAddress shippingAddress = new ShippingAddress();

DslContext context = new DslContext();
context.addExternalParameter("dateiname", filename);
context.addExternalParameter("customer", customer);
context.addExternalParameter("orderitems", orderitems);
context.addExternalParameter("orderitem", new OrderitemFactory());
context.addExternalParameter("shippingaddress", shippingAddress);
context.addExternalParameter("billingaddress", billingAddress);

DslExpressions readOrder = dsl.parseFile("ShowCase.odsl", Locale.GERMAN);
readOrder.execute(context);

// Ab hier stehen die Daten in den Transportobjekten zur Verfügung

 

 

 

 

...