Codebeispiel (C#) für Steps Active Server: How To Use JobRunner / ReportProgress

Der ERP-Hersteller Step Ahead AG aus Germering bei München hat zur Version 2014 sein Versprechen der “werthaltigen Softwarepflege” eingelöst und den Steps Active Server auf eine technologische Basis migriert. Der neue Active Server ist nun auf Microsoft (R) .net-Technologie und der Hintergrunddienst unterstützt jetzt auch eine größere Menge an Programmiersprachen. Früher konnten Steps Active Server Jobs (AS-Jobs), wie die kleinen Scripten heißen, nur in VB.script geschrieben werden. Mit der neuen Version der Script-Engine für das ERP-Programm Steps Business Solution sind auch Sprachen wie VB.net und C# (csharp) möglich. Mit der Datenbanksprache SQL wird die Reihe der möglichen Entwicklungs-Sprachen komplettiert. Viele der bestehenden Hintergrund-Programme sind aktuell (Stand: 12.12.2014) noch in VB.script geschrieben. Es existierten nur wenige Codebeispiele für andere Sprachen. Da die Präferenz in der PDF-Dokumentation zum Programm auf VB.net liegt, fällt es Csharp-Programmierern ein wenig schwerer mit dieser Scripting-Engine in C# zu programmieren. Daher möchte ich hier ein kleines Codebeispiel in C# posten, wie die JobRunner.dll und das Event ReportProgress in C# genutzt werden können:

using Steps.ActiveServer.JobRunner; //Referenz auf C:\Program Files (x86)\StepsBusinessSolution\Application\Steps.ActiveServer.JobRunner.dll notwendig
namespace Job
{
  public class MainClass : IJobProgress
  {
    public event IJobProgress.ReportProgressEventHandler ReportProgress;
    public string[] Steps
    {
      get
      { 
        string[] stepsValues = {"Main", "subfunction" };
        return stepsValues;
      }
    }

    public void Main() //Step 1 mit Value "Main"
     {
       //use byte, integer funktioniert nicht
       for (byte i = 1; i < 100; i++)
       {
         ReportProgress(1, i);
         System.Threading.Thread.Sleep(50);
       }
    subfunction();
    }
  
    private void subfunction()//Step 2 mit Value "subfunction"
    {
      for (byte i = 1; i < 100; i++)
      {
        ReportProgress(2, i);
        System.Threading.Thread.Sleep(50);
      }
    }
  }
}

 

Um die Jobrunner.dll nutzen zu können muss diese unter dem registrierten DLLs eingehängt werden und mit dem using bekanntgemacht werden. Die MainClass muss das Interface IJobProgress implementieren. Da der Job-Designer (Steps.ActiveServer.Designer.exe) keine automatische Implementierung unterstützt müssen Sie die Zeilen entweder selbst codieren oder aus meinem Codebeispiel kopieren. Sie benötigen die Event-Deklaration und das Property Steps. Die Rückgabe der Property-Werte werden von Ihnen selbst gestaltet. Hier wird ein statisches Array zurückgegeben. Dies ist angelehnt an die Dokumentation der Step Ahead AG. In der Main-Methode wird in einer Schleife die Variable i hochgezählt und jeweils das Event ReportProgress ausgelöst. Achten Sie darauf, die Variable mit byte zu definieren, der Datentyp int führt zu einem Ausführungsfehler. Die selbe Methodik kann auch in privaten subfunctionen verwendet werden. Mit dem ersten Parameter des Events können sie den Step angegeben. Dies ist äquivalent zu dem Property Steps. Das Ergebnis ist eine komfortable Fortschrittsanzeiger innerhalb des Job-Designers. Diese sehen sie auf nachfolgenden Screenshot unten rechts.

Screenshot des Steps Active Server .net mit Fortschrittsanzeige
Screenshot des Steps Active Server .net mit Fortschrittsanzeige

 

Dieses Script hat jetzt noch keinen sehr praktischen Nutzen, jedoch bietet es eine gute Ausgangssituation für ein Script zur Prozessoptimierungen oder diversen Automatisierungen. Der Nutzen des Steps Active Servers liegt auf der Hand: Zeitgesteuert automatisch im ERP-System arbeiten erledigen oder ERP-Daten verarbeiten. Die Anwendungsszenarios sind dabei nahezu grenzenlos. In Verbindung mit der nun verfügbaren .net-Technologie von Microsoft (R) und der Einbindung von diversen DLLs, auch selbstgeschriebene, können Sie Ihr ERP-Programm noch intensiver nutzen.

Hier finden Sie den gesamten Job noch als *.ssx-Datei: Steps Active Server Job: Q-DEMO-PROGRESS.

 

Steps-Business-Solution-Shortcut: Strg + Umschalt + F2 in Lookup-Feldern

Steps-Business-Solution-Shortcut: Strg + Umschalt + F2 in Lookup-Feldern

Tipps & Tricks Steps Business Solution Zahlungsbedingungen F2
Tipps & Tricks Steps Business Solution Zahlungsbedingungen F2

Wussten Sie schon?

Unser Steps-Business-Solution-Shortcut des Tages:

Mit dem Tastatur-Shortcut Strg + Umschalt + F2 in einem Lookup-Feld springen Sie sofort in die Konfiguration des Auswahlfeldes.

Was ist eigentlich ein Lookup? Nun, im ERP-System Steps Business Solution, einem Produkt der Step Ahead AG (aus Germering bei München), besteht eine Reihe unterschiedlicher Eingabefelder. Neben Eingabefeldern, in dem Sie Texte, Zahlen oder Datumswerte eingeben, wie zum Beispiel: Kundenname, Lieferdauer oder Lieferdatum, können Sie auch aus Auswahllisten vordefinierte Werte auswählen. Ein Beispiel ist die Auswahl von Zahlungsbedingungen im Kundenstamm. Zahlungsbedingungen werden nicht frei eingegeben sondern werden als Auswahlliste zur Verfügung gestellt. So wird sicher gestellt, das nur vorgegebene Einträge verwendet werden und keine Eingabefehler passieren. Diese Listen können mit dem Tastatur-Kürzel F2 oder Klick auf den Button F2 am Ende des Eingabefeldes geöffnet werden. Anschließend kann aus der zur Verfügung gestellten Liste ein Wert ausgewählt werden und in die Eingabemaske übernommen werden.

Tipps & Tricks Steps Business Solution Zahlungsbedingungen F2 Auswahl
Tipps & Tricks Steps Business Solution Zahlungsbedingungen F2 Auswahl

Eingabefeld = Suchfeld

Sie können auch das Eingabefeld als vorheriges Suchfeld verwenden. Geben Sie den gewünschten Suchbegriff ein, um die Auswahl der F2-Liste bei der Anzeige bereits einzuschränken. Sie können auch mit Platzhaltern arbeiten. Mit dem Prozentzeichen (%) können Sie innerhalb Ihres Suchbegriffes sogenannte Wildcards definieren. Beispielsweise können Sie mit “%Tage” auf alle Zahlungsbedingungen einschränken, in deren Bezeichnung der Begriff “Tage” enthalten sind. Jedem Suchbegriff wird automatisch der Platzhalter “%” angehängt. Wenn Sie nach Eingabe von %Tage den F2-Knopf drücken oder den Button F2 drücken erhalten Sie nur die gewünschten Einträge.

 

Steps-Business-Solution-Shortcut-Szenario 1 “Auswahl erweitern”:

Nicht immer ist die vorgegebene Auswahlliste vollständig – manchmal fehlt der gewünschte Eintrag. Sie wollen nun schnell einen weiteren Eintrag anlegen?

Steps-Business-Solution-Shortcut-Vorgehen zu Szenario 1:

  1. Voraussetzung ist, Sie haben die ERP-Berechtigung auch die Auswahl in der Konfiguration zu erweitern.
  2. Stellen Sie sich in das zu bearbeitende F2-Feld.
  3. Drücken Sie den Shortcut Strg + Umschalt + F2.
  4. Es öffnet sich nun in einer neuen Anzeige die Liste alle Auswahleinträge und können dort mit der Neuanlage beginnen.
  5. Wechseln Sie zu Ihrem Eingabefenster zurück und drücken Sie erneut F2. Sie werden nun Ihren neuen Eintrag vorfinden.

 

Steps-Business-Solution-Shortcut-Szenario 2 “Stammdatensatz öffnen”:

Ein weiteres Szenario spielt sich oft am Telefon ab: Ein Kunde ruft an und nennt Ihnen eine Angebotsnummer, über das der Kunde mit Ihnen sprechen möchten. Sie suchen dieses Angebot im ERP-System und finden es in der Angebots-Oberfläche. Im Anschluss wollen Sie während des Gespräches weitere CRM-Informationen des Kunden aus dem Kundenstamm einsehen. Sie können sich nun umständlich die Kundennummer notieren, in die Kunden-Maske wechseln und dort den Suchvorgang für die Kundennummer durchführen. Die Alternative ist die Verwendung des Shortcut Strg + Umschalt + F2. Wie gehe Sie vor?

Steps-Business-Solution-Shortcut-Vorgehen zu Szenario 2:

  1. Sie sind bereits in einem Datensatz, beispielsweise in einem konkreten Angebot.
  2. Sie stellen sich in das Feld “Kunde Nummer” oder “Kunde Name”.
  3. Sie drücken den Shortcut Strg + Umschalt + F2.
  4. Es öffnet sich der Kundenstamm-Satz, der entsprechende Kunde wird automatisch geladen.

So können Sie noch effizienter mit Ihrem ERP-System arbeiten und schneller durch das Programm navigieren.

 

 

Codebeispiel (C#) für Steps Active Server: How To Use JobRunner / ReportProgress

Codebeispiel (C#) für Steps Active Server: How To Use JobRunner / ReportProgress

Der ERP-Hersteller Step Ahead AG aus Germering bei München hat zur Version 2014 sein Versprechen der “werthaltigen Softwarepflege” eingelöst und den Steps Active Server auf eine technologische Basis migriert. Der neue Active Server ist nun auf Microsoft (R) .net-Technologie und der Hintergrunddienst unterstützt auch eine größere Menge an Programmiersprachen. Früher konnten Steps Active Server Jobs (AS-Jobs), wie die kleinen Scripten heißen, nur in VB.script geschrieben werden. Mit der neuen Version der Script-Engine für das ERP-Programm Steps Business Solution sind auch Sprachen wie VB.net und C# (csharp) möglich. Mit der Datenbanksprache SQL wird die Reihe der möglichen Entwicklungs-Sprachen komplettiert. Viele der bestehenden Hintergrund-Programme sind aktuell (Stand: 12.12.2014) noch in VB.script geschrieben. Es existierten nur wenige Codebeispiele für andere Sprachen. Da die Präferenz in der PDF-Dokumentation zum Programm auf VB.net liegt, fällt es Csharp-Programmierern ein wenig schwerer mit dieser Scripting-Engine in C# zu programmieren. Daher möchte ich hier ein kleines Codebeispiel in C# posten, wie die JobRunner.dll und das Event ReportProgress in C# genutzt werden können:

using Steps.ActiveServer.JobRunner; //Referenz auf C:\Program Files (x86)\StepsBusinessSolution\Application\Steps.ActiveServer.JobRunner.dll notwendig
namespace Job
{
  public class MainClass : IJobProgress
  {
    public event IJobProgress.ReportProgressEventHandler ReportProgress;
    public string[] Steps
    {
      get
      { 
        string[] stepsValues = {"Main", "subfunction" };
        return stepsValues;
      }
    }

    public void Main() //Step 1 mit Value "Main"
     {
       //use byte, integer funktioniert nicht
       for (byte i = 1; i < 100; i++)
       {
         ReportProgress(1, i);
         System.Threading.Thread.Sleep(50);
       }
    subfunction();
    }
  
    private void subfunction()//Step 2 mit Value "subfunction"
    {
      for (byte i = 1; i < 100; i++)
      {
        ReportProgress(2, i);
        System.Threading.Thread.Sleep(50);
      }
    }
  }
}

 

Um die Jobrunner.dll nutzen zu können muss diese unter dem registrierten DLLs eingehängt werden und mit dem using bekanntgemacht werden. Die MainClass muss das Interface IJobProgress implementieren. Da der Job-Designer (Steps.ActiveServer.Designer.exe) keine automatische Implementierung unterstützt müssen Sie die Zeilen entweder selbst codieren oder aus meinem Codebeispiel kopieren. Sie benötigen die Event-Deklaration und das Property Steps. Die Rückgabe der Property-Werte werden von Ihnen selbst gestaltet. Hier wird ein statisches Array zurückgegeben. Dies ist angelehnt an die Dokumentation der Step Ahead AG. In der Main-Methode wird in einer Schleife die Variable i hochgezählt und jeweils das Event ReportProgress ausgelöst. Achten Sie darauf, die Variable mit byte zu definieren, der Datentyp int führt zu einem Ausführungsfehler. Die selbe Methodik kann auch in privaten subfunctionen verwendet werden. Mit dem ersten Parameter des Events können sie den Step angegeben. Dies ist äquivalent zu dem Property Steps. Das Ergebnis ist eine komfortable Fortschrittsanzeiger innerhalb des Job-Designers. Diese sehen sie auf nachfolgenden Screenshot unten rechts.

Screenshot des Steps Active Server .net mit Fortschrittsanzeige
Screenshot des Steps Active Server .net mit Fortschrittsanzeige

 

Dieses Script hat jetzt noch keinen sehr praktischen Nutzen, jedoch bietet es eine gute Ausgangssituation für ein Script zur Prozessoptimierungen oder diversen Automatisierungen. Der Nutzen des Steps Active Servers liegt auf der Hand: Zeitgesteuert automatisch im ERP-System arbeiten erledigen oder ERP-Daten verarbeiten. Die Anwendungsszenarios sind dabei nahezu grenzenlos. In Verbindung mit der nun verfügbaren .net-Technologie von Microsoft (R) und der Einbindung von diversen DLLs, auch selbstgeschriebene, können Sie Ihr ERP-Programm noch intensiver nutzen.

Hier finden Sie den gesamten Job noch als *.ssx-Datei: Steps Active Server Job: Q-DEMO-PROGRESS.

 

Freigabe des Microsoft (R) SQL Server 2014 für die Steps Business Solution

Freigabe des Microsoft (R) SQL Server 2014 für die Steps Business Solution

Microsoft SQL Server 2014 Freigabe für ERP- & CRM-System Steps Business Solution
Microsoft SQL Server 2014 Freigabe für ERP- & CRM-System Steps Business Solution

Die Step Ahead AG, Hersteller des CRM- & ERP-Systems Steps Business Solution, gibt den SQL Server 2014 frei. Die Freigabe finden Sie hier.

Was bedeutet das für Sie?

Der SQL Server wird verwendet, um alle Ihren eingegebenen Daten zu speichern. Als Nutzer des ERP-Systems verwenden Sie bereits eine Version des SQL Servers. Es besteht kein sofortiger Handlungsbedarf, da Ihre Version weiterhin lauffähig ist. Sie sollten jedoch für die Aktualität Ihrer Software Sorge tragen und über eine Migration der Datenbasis nachdenken.

Das neue Produkt von Microsoft hat eine Vielzahl von Verbesserungen erhalten, die sie auf der entsprechenden Microsoft-Seite nachlesen können.

 

Die Step Ahead AG gibt noch einen expliziten Installations-Hinweis:

Bei der Installation der Analysis Services ist unbedingt darauf zu achten, dass der Servermodus „Mehrdimensionaler und Data Mining-Modus“ ausgewählt wird. Der tabellarische Modus wird nicht unterstützt.

Es ist nach der Installation nicht mehr möglich den Modus zu ändern. Siehe dazu auch http://msdn.microsoft.com/de-de/library/gg471594.aspx

 

 

Was bedeutet: ERP?

Enterprise-Resource-Planning, kurz ERP genannt, beschreibt die Planung und Steuerung aller unternehmerischen Aufgaben. Ein ERP-System hat daher die Funktion alle Geschäftsprozesse eines Unternehmens abzudecken. Neben der operativen Unterstützung im Tagesgeschäft gehören zu den Themen auch das Controlling, sowie strategische Punkte. Ziel eines ERP-Einsatzes ist die Wertschöpfungskette zu verbessern und damit die verschiedenen Ressourcen (Arbeit, Know-How, Material, Geld, Technik und Daten) effektiver einzusetzen. Dieser Ansatz gelingt nur, wenn ein unternehmensweite kaufmännische Software Synergieeffekte erzeugt, indem es die verschiedenen Unternehmensbereiche und Ressourcen miteinander verbindet.

Meist ist ein solches Programm in Module untergliedert. Die Funktionsbreite einer ERP-Lösung umfasst verschiedene Bereiche.

Funktionsbreite einer ERP-Lösung:

  • Vertrieb & Marketing, bekannt unter CRM (Customer-Relationship-Management)
  • Beschaffung & Materialwirtschaft, unter der Abkürzung SCM (Supply-Chain-Management) vereint
  • Lager-Management
  • Produktions-Management (Planung & Steuerung), mit PPS abgekürzt
  • Rechnungswesen & Finanzen, kurz REWE genannt
  • Personalwesen
  • Controlling
  • Dokumenten-Management, abgekürzt DMS

 

Neben der Funktionsbereite und -tiefe einer Applikation geben Hersteller einer ERP-Lösung auch an, wie viele User gleichzeitig mit der Applikation arbeiten können.

Funktionstiefe eines ERP-Systems

Im Gegensatz zur Funktionsbereite, die die Bereiche eines Unternehmens abdeckt, beschreibt die Funktionstiefe die Möglichkeiten je Modul. Dieses Merkmal unterscheidet die verschiedenen ERP-Lösungen erheblich voneinander. So ist es nicht selbstverständlich, dass beispielsweise jedes ERP-System eine durchgängige Chargen-Verwaltung hat. Einfache Systeme haben überhaupt keine Buchungsmöglichkeiten für diese Information. Andere Systeme ermöglichen eine einfache Ein- und Ausbuchung dieser Daten. Leistungsfähige Systeme können dagegen während des gesamten Warenwirtschaftsprozess die Chargen-Information nachvollziehen. In wie weit solche Funktionen zur Verfügung stehen, spricht man von Funktionstiefe.

 

Ziel-Gruppen eines ERP-Herstellers

Bei der Programmierung eines ERPs wird stets die Kunden-Ziel-Gruppen im Auge behalten. Man unterscheidet meist zwei Gruppen.

Kleine und mittelständische Unternehmen (KMU)

Die Definition dieser Interessenten-Gruppe variiert von Institut zu Institut und deren jeweiligen Auswertungen. Orientiert man sich an den Mitarbeiterzahlen so spricht man von Kleinstunternehmen bei bis zu 10 Mitarbeitern. Die Definition des Mittelstandes anhand der Beschäftigten wird dann schon schwieriger. Im Allgemeinen kann man bis zu einer Größe von 200-250 Angestellten und Arbeitern von einem mittelständischen Unternehmen sprechen.

Großunternehmen

Zu Großunternehmen wird klassisch alles das gezählt was nicht KMU ist. Man kann also bei einer Beschäftigtenanzahl von über 250 Mitarbeitern von einem großen Unternehmen sprechen.

 

Die Auswahl des richtigen ERP-System für das eigene Unternehmen ist trotz der Marktbereinigung der letzten Jahre nicht einfacher geworden. Der ERP-Auswahlprozess ist keine Aufgabe, die man täglich vollzieht. Daher sollte man hier auf erfahrende IT-Unternehmensberatungen zurückgreifen um die richtige Lösung zu finden.