1. Seminar auf Version TD 6.3 bei MD Consulting

td-6.3-team-developer-binär-binary-future-science-fiction

Heute stellen wir Ihnen unser aktuelles Last-Minute-Seminar vor:

  • 1. Seminar bei MD Consulting auf Version 6.3
  • Verkürzte Seminardauer: 3 Tage statt 3,5 Tage, beinhaltet jedoch den kompletten Stoff

Zusätzlich geben wir Ihnen einen Überblick über die neuen Möglichkeiten der Version 6.3:

  • Konstruktoren und Destruktoren
  • Ribbon Bar Gallery Controls
  • Ribbon Bars zur Laufzeit modifizieren
  • natives Menu API
  • farbliche Markierung im Datumsbereich
  • Office 2013 Theme
  • Grid-Gruppensummen
  • Verbindung zu SQLBase 11.7 ohne Konfigurationsdatei
  • SSL-Verschlüsselung
  • externe Authentifizierung mit Team Developer 6.3

TD C/S – Objektorientierte Entwicklung professioneller Client-/Server-Anwendungen
Ort: MD Consulting München
Termin: 08.06. – 10.06.15
Regulärer Preis: 1.590,00 EUR
Bonus: 20% Rabatt – statt 1.590 EUR jetzt nur 1.272 EUR, Ihre Ersparnis 318 EUR pro Teilnehmer
Wollen Sie gleich buchen? Hier geht es zur Anmeldung.

Wir freuen uns auf Ihre Anmeldung. Bei Fragen oder Interesse, schreiben Sie einfach eine E-Mail oder rufen Sie uns an unter +49 (0)8122-9740-0.

Änderungen vorbehalten! Die Preise sind Nettopreise und zzgl. 19% MwSt.


SOAP-Schnittstelle für Team Developer 6.2 Anwendung

biochemistry-lab-equipment-mac-screen-schnittstelle-td-team-developer-soap

Wenn unsere Vierbeiner mal krank sind, kann auch hier jede Minute zählen. Über Leben und Tod entscheidet oft die Zeit. Wie schnell sind Laboruntersuchungen verfügbar? Wie schnell können lebensrettende Medikamente verabreicht werden. Ein Anbieter von Abrechnungssystemen tierärztlicher Leistungen möchte seinen angeschlossenen Tierärzten über seine Webseite, den sofortigen Zugang zu den entsprechenden Laborwerten anbieten. Die vom Labor zur Verfügung stehende SOAP Schnittstelle sollte dafür nun in einer vorhandenen Team Developer 6.2 .NET Anwendung genutzt werden.
Eine direkte Nutzung der SOAP Schnittstelle von Seiten der Team Developer-Anwendung war aufgrund technischer Restriktionen leider nicht möglich. Beispielsweise wird das Security Header Objekt und diverse Datentypen nicht unterstützt.
Die SOAP Schnittstelle wurde daher in C# (Microsoft Visual Studio 2010) programmiert. Die hierbei nach der Generierung auftretenden Probleme (Diskrepanzen bei Bindung und EndpointAddress) konnten leicht im Quellcode angepasst werden.
Das weitere Vorgehen im Überblick:

  1. Programmierung einer .Net DLL, zum Aufruf der Webservice-Funktionen
  2. Einbindung der erstellten  DLL in die Team-Developer-Anwendung
  3. Programmierung von zwei funktionellen Klassen im Team Developer (Aufruf und Kapselung der Funktion der DLL)
  4. Programmierung einer Test Applikation (Form Window) zum Test der einzelnen Funktionen
  5. Übertragung der Programmierung in die vorhandene Team Developer Applikation
  6. Neueinbindung der DLL in die Anwendung mit dem .Net Explorer
  7. Test der Funktion des Webservices:
    • Auslesen der Stammdaten
    • Übertragung einer Order
    • Auslesen des Report mit Download als PDF oder XML

Entsprechend können die Dienstleistungen rund um die tierärztliche Abrechnung reibungslos erbracht werden.

Sie haben eine Web-Service-Anforderung? MD Consulting erfüllt Sie gerne.

Bei Fragen oder Interesse, schreiben Sie einfach eine E-Mail oder rufen Sie uns an unter +49 (0)8122-9740-0.


Konstruktoren in TD 6.3

td-6.3-team-developer-binär-binary-future-science-fiction

Team Developer 6.3 bietet nunmehr auch die Möglichkeit, beim Design und der Verwendung von Klassen, Konstruktoren und Destruktoren zu hinterlegen. In diesem Papier soll dargelegt werden, welche Möglichkeiten diese neue Funktionalität dem Programmierer schafft.

Konstruktoren bieten die Möglichkeit, Eigenschaften eines Objekts bei seiner Instanziierung automatisch zu setzen. Mithilfe von Konstruktoren kann der Programmierer einer Klasse, spezifische Variablen des Objekts, abweichend vom Standard, automatisch vorbelegen. Damit wird eine mögliche Fehlerquelle bei der Programmierung eliminiert, da der Programmierer bisher beim Eintreten eines Ereignisses (z.B. SAM_Create) diese Vorbelegung vornehmen musste.

Anhand einer kleinen Beispielanwendung soll gezeigt werden, welche Optionen dem Programmierer mit Team Developer 6.3 im Bereich der Klassenprogrammierung durch Verwendung von Konstruktoren zusätzlich zur Verfügung stehen.

Bei Fragen oder Interesse, schreiben Sie einfach eine E-Mail oder rufen Sie uns an unter +49 (0)8122-9740-0.


TD-Mobile-Beispiel mit Barcodescanner

barcode-strichcode-lupe-scan

Immer wieder wird uns die Frage gestellt, ob man mit TD Mobile auch Anwendungen entwickeln kann, bei der die Eingabe über einen Barcodescanner vorgenommen wird. In diesem Papier beschreiben wir einen Lösungsansatz, wie MD Consulting ihn auf der letzten Roadshow gezeigt hat, wenn im Publikum danach gefragt wurde. Um diesen Lösungsansatz allen unseren Kunden zugänglich zu machen, haben wir diesen Teil der Präsentation – TD Mobile-Anwendungen mit Barcodescanner – zusammengefasst. Bei Fragen zu diesem Thema stehen wir Ihnen gern zur Verfügung.

Bei Fragen oder Interesse, schreiben Sie einfach eine E-Mail oder rufen Sie uns an unter (+49) – 0 81 22-9740-0.


Weltmeister werden mit GUPTA gemacht

weltmeister-gupta-it-anwendung-notarzt-rettungsdienst-rettungsreifen-md-consulting

Eine Wintersportanlage gab am 29.12.2014 Startschuss in die neue Saison. Die Anlage wird mit einer Team Developer 5.2 Applikation mit SQLBase als Datenhaltungssystem betrieben.
Nun erlebte der Kunden, dass das Programm nach einer Migration auf Version TD 6.2 SP2 fast täglich aus unerfindlichen Gründen blockiert und abstürzt. Der Europacup und eine Woche später der Weltcup mit Fernsehen Live Übertragung standen an. Dies ist nicht nur ärgerlich, sondern eine Katastrophe.

So wurden unsere Techniker gerufen, aufgrund Ihrer vielfältigen Erfahrungen konnten sie bereits vielen Kunden in schwierigen Lagen helfen.

Der Verdacht war, dass das Problem auftritt bei unterschiedlichen Fenstern im Hintergrund.
Aus diesem Grund baute der Kunden in einer Nacht das Programm stark um, mit vollem Risiko, da Tests während des laufenden Betriebes nicht möglich waren.
Fazit: Auf jeden Fall ist der Betrieb das erste Mal problemlos gelaufen.
Weitere Arbeiten wurden durchgeführt: Einen großen Teil der nicht mehr verwendeten Programmteile wurden gelöscht. Das Programm ist dadurch kleiner geworden.
Diese Änderungen hatten zur Folge, dass die Abstürze zwar stark zurückgingen, aber leider immer wieder vorkamen.
Damit waren alle Möglichkeiten der Ferndiagnose durch MD Consulting ausgeschöpft, ein vor Ort Einsatz unausweichlich. Der MD-Techniker machte sich auf den Weg zum Kunden, um vor Ort weitere Untersuchungen durchzuführen:
Abstürze der SQL Base waren auf Netzwerkprobleme zurückzuführen (fehlerhafter Port in Switch)
Analyse der Installation der Datenbank SQL Base:

  • Installation SQL Console und Einweisung des Kunden in SQL Console
  • Reorganisation SQL Base
  • Erstellung Scripte für Unload/Load

Auf einem alten Computer installierte man die Vollversion TD 6.2 SP3. Dies funktionierte auch einwandfrei. Anschließend kopierte man den Sourceprogrammstand auf diese Maschine und erstellte hier die EXE.
Auf dem Client deinstallierte man die bisherige Deploy-Version und ersetzte sie durch die neue Version TD6.2 SP3.
Dies führte endlich zum Erfolg.
Am Freitag 23.01.2015 dann der erste Tag mit Fernsehübertragung. Der Ablauflaufplan einer Fernsehübertragung ist auf die Sekunde geplant. Eine Verzögerung darf hier nicht passieren.
Seit dem 23.01.2015 sind bis jetzt keine Programmabstürze mehr vorgekommen und es konnte der Ablaufplan des Fernsehens eingehalten werden.

Waren auch Sie mal in so einer Situation? Dann gehen auch Sie mit einem MD-Techniker vor Ort auf Fehlersuche, Fehlereingrenzung und Fehlerbehebung begeben.
Für einen ersten Kontakt wenden Sie sich bitte an Maik Vogt, telefonisch unter +49 (0)361-56593-0 oder per E-Mail.
Haben Sie Interesse an weiteren News, dann folgen Sie uns auf Twitter und RSS.


TD Mobile: Arbeiten mit Kombinationsfeldern (Combobox)

combobox-td-mobile-server-client-cloud-device-md-consulting

Seit der Version 1.1.2 des TD Mobile können Comboboxen nicht mehr nur mit Zeichenketten (Strings), sondern auch mit Werten einer UDV (user defined variable) gefüllt werden. Dies alles hat Gupta recht einfach und intuitiv gelöst, so dass man es auch ohne Studium der Dokumentationen leicht umsetzen kann.

Oft möchte man die Combobox(en) nicht nur mit Wertlisten befüllen, sondern auch einen Eintrag vorauswählen. Dies wird über die Wertbindung (Richtung Set) gesteuert. Man muss also nur eine Bindung vom richtigen UDV-Typ anlegen und diese entsprechend füllen. Das ist jedoch einfacher gesagt als getan, wenn man sich dafür entscheidet diese Vorauswahl auf Clientseite zu treffen. Man kann die Bindung mittels des SET-Befehls mit den gewünschten Werten zwar leicht füllen (siehe Ausschnitt 1).


Ausschnitt 1:
Set: CB_CLIENT_VALUE.nId 3
Set: CB_CLIENT_VALUE.sText "DREI"

Anschließend wird man aber feststellen, dass die Combobox dennoch weiter nur den ersten Listeneintrag anzeigt. Hierfür ist ein kleiner Trick mit Hilfe einer JavaScript-Funktion nötig. Es muss zusätzlich „von Hand“ der gewünschte Wert gesetzt und anschließend die Auswahl aktualisiert werden (siehe Ausschnitt 2).


Ausschnitt 2:
$("#cmbClient").val(value);
$("#cmbClient").selectmenu("refresh");

Dann ist der gewünschte Eintrag auch ganz ohne Serveraufruf vorausgewählt.

PS: Selbstverständlich sollte die Vorauswahl auch ohne den beschriebenen Workaround funktionieren, dieser Fehler wird bei Gupta unter der Nummer TDM-901 geführt und in einer der nächsten Versionen behoben.

Wer das alles einmal im Detail nachvollziehen möchte findet hier ein TD Mobile Beispiel, das sowohl die Vorgehensweise am Server als auch am Client demonstriert. Sollten Sie Fragen hierzu haben kontaktieren sie uns bitte, wir helfen Ihnen gern weiter.


Funktionalität des Expanders in TD-Mobile erweitern!

mein-expander-inhalt

Einleitung
In einer TD-Mobile-Anwendung soll ein Listen-Control — eine Liste — mit relativ vielen Einträgen angezeigt werden. Da die angezeigte Liste in den meisten Fällen den gesamten Bildschirm – vermutlich muss der Anwender sogar scrollen – in Anspruch nehmen würde, soll die Liste zunächst hinter einem Expander verborgen werden. Auf diese Art und Weise könnte die Liste zunächst verborgen bleiben und würde erst sichtbar, wenn der Anwender den Expander antippt. Ein Problem bleibt allerdings: standardmäßig wird beim Expander nur das Event Create unterstützt. Es würde bedeuten, dass die Liste beim Seitenaufbau mit umfangreichen Daten erzeugt würde. Das hätte zur Folge, dass der gesamte Seitenaufbau verzögert wird, obwohl der Anwender möglicherweise die Liste gar nicht anschauen will. Es sollte möglich sein, die Liste erst aufzubauen und anzuzeigen, wenn der Anwender den Expander antippt.

Lösungsansatz
Da es sich beim Expander-Control in TD Mobile um das reguläre JQuery Mobile Control handelt, bietet auch das TD-Mobile-Control die Möglichkeit, auf die (JQuery mobile) Ereignisse expand und collapse zu reagieren. Allerdings stellt sich die Frage, ob eine derartige Erweiterung in TD Mobile möglich ist. Die kurze Antwort lautet: es ist möglich. Die genaue Vorgehensweise wird im nächsten Abschnitt erläutert.

Lösung

Das Listen-Control wird über einen (komplexen) Bindungsarray und eine (ebenfalls komplexe) Bindung gefüllt, wobei die Bindungen über den Rückgabewert der entsprechenden Operation mit Werten versorgt werden. Diese Funktionalität bleibt erhalten. Entfernt wird lediglich der Aufruf dieser Operation Invoke beim Create-Ereignis.

Im nächsten Schritt muss der zusätzliche Event-Händler für das expand-Ereignis des Expanders implementiert und die Funktionalität, die beim Eintreten dieses Ereignisses ausgeführt werden soll, hinterlegt werden. Da beim Antippen des Expanders das Listen-Control mit den Daten aus der Datenbank gefüllt werden soll, muss als Aktion die im Quellcode hinterlegte Operation aufgerufen werden. Dieser Job wird durch Verwendung der TD Mobile-API im entsprechenden JavaScript erledigt.


Td.Data.Operation.get('name_der_operation').invoke();

Die Bezeichnung name_der_operation muss beim Nachvollziehen dieses Beispiels noch an die tatsächliche Operation auf der entsprechenden Seite angepasst werden.

Die Hinzufügung des Event-Handlers geschieht zum Zeitpunkt des Seitenaufbaus. Beim Create-Ereignis der Seite wird das JavaScript aufgerufen. Die Ausführung dieses Scripts bewirkt, dass der zusätzliche Event-Handler für das expand-Ereignis und die dann auszuführende Funktionalität zur Seite hinzugefügt wird. Wenn der Anwender jetzt die Seite aufruft, wird die JavaScript-Funktionalität mit dem expand-Ereignis erweitert: die Bindings, die die im Listen-Control zu visualisierenden Daten enthalten, werden durch den Aufruf der Operation mit Daten versorgt und das Listen-Control wird im Expander angezeigt. Die gesamte JavaScript-Funktion hat folgenden Inhalt:


$("#name_des_expander_controls").collapsible ({
expand: function(event, ui) {
Td.Data.Operation.get('name_der_operation').invoke();
}
});

In diesem Beispiel wird der Name des Expander-Controls im Quellcode referenziert. Standardmäßig legt TD Mobile die Controls mit dem Namen exp und einer laufenden Nummerierung an, z.B. exp1.

Der Aufruf dieser Funktion erfolgt beim Seitenaufbau, also beim Create-Ereignis auf der entsprechenden Seite. Hierdurch wird die zusätzliche Expander-Funktionalität der Seite
hinzugefügt.


On Create

Javascript name_der_JavaScript-Funktion

Das Hinzufügen der zusätzlichen Funktionalität für den Expander erfolgt beim Create-Ereignis der Seite.

Fazit
Es ist mit TD Mobile relativ einfach möglich, zusätzliche Funktionalität, die bereits in JQuery Mobile hinterlegt ist, aber nicht an TD Mobile durchgereicht wurde, hinzuzufügen. In diesem Beispiel wurde die Expander-Funktionalität so erweitert, dass auch auf das Ereignis des Antippens des Controls von Programmierer definierte Aktionen ausgeführt werden. In diesem Beispiel wurde der Event-Handler für das Ereignis „expandieren“ des Expanders und die dann auszuführende Operation hinzugefügt.


In 12 Monaten um die ganze (EDV-) Welt!

edv-support-it-computer-hilfe-seminar-prospekt-broschüre-heft-unterlagen-dokument

Am 31. Juli 2013 hat der Kunde eine Lizenz vom Team Developer 6.2 erworben, um eine seit 1993 bestehende Geschäftsanwendung weiterzuentwickeln und an die gesetzlichen Rahmenvorgaben anzupassen. Den Kunden selbst kannten wir bis zu diesem Datum nicht – er wurde daher auch erst mit diesem Datum in unserem System erfasst.

Der Kunde, so wurde kurze Zeit später deutlich, hatte sich allerdings noch nicht über die Konsequenzen der (automatischen) Umwandlung des Quellcodes in UNICODE hinreichend informiert oder sich nicht damit beschäftigt, sodass die Inbetriebnahme der neuen Entwicklungsumgebung zunächst scheiterte. Bei einem telefonischen Kontakt des Vertriebs mit dem Kunden am 14. August 2013 stellte sich heraus, dass es Probleme bei der Übernahme des „alten“ Quellcodes in die neue Entwicklungsumgebung gab, aber wir versicherten dem Kunden noch in diesem Telefonat, dass mit unserer Unterstützung – in der Regel vor Ort oder in einem unserer Büros – dieses Problem innerhalb ein bis zwei Arbeitstagen zu lösen sei.

Tatsächlich, so stellte sich dann heraus, wurde lediglich ein Manntag Begleitung durch einen, insbesondere im Bereich „Migration von Quellcode“, erfahrenen Entwickler von MD Consulting in Anspruch genommen, um den vorhandenen Quellcode in der neuen Entwicklungsumgebung kompilierbar und ablauffähig zu machen. Die Arbeit von MD Consulting war erledigt, es blieben noch einige Restarbeiten zu erledigen, zu denen sich aber der Entwickler des Kunden aber selbst im Stande sah.

Die Nachfrage unseres Vertriebs am 4. Oktober 2013 ergab, dass der Kunde die eintägige Vor-Ort-Unterstützung als „sehr wertvoll“ bewertete und die Einschätzung, dass „die Restarbeiten“ nunmehr alleine gestemmt werden konnten, noch einmal bestätigte.

Im November 2013 machten wir den Kunden auf die Verfügbarkeit von „TD Mobile“, der neuen Entwicklungsumgebung für mobile Geschäftsanwendungen aufmerksam, aber der Kunde sah in diesem Gespräch in dem Bereich, für den er zuständig ist, keinen Bedarf für mobile Anwendungen. Als wir den Kunden im Februar 2014 dennoch auf die Verfügbarkeit von „TD Mobile“ aufmerksam machen wollten, zeigte der Kunden zwar nach wie vor kein Interesse an mobilen Anwendungen, aber er wies daraufhin, dass es Änderungs- und Erweiterungsbedarf an der bestehenden, mit unserer Hilfe auf den Entwicklungsstand 6.2 gehobenen Anwendung gäbe, der sich nicht mehr mit der eigenen Mannschaft realisieren ließ.

Aufgrund der vielen Erfahrungen im Bereich der Übernahme des Quellcodes bestehender Anwendungen in die Wartung und Pflege durch MD Consulting, konnte der Kunde recht schnell überzeugt werden, dass MD Consulting auch für diese geplanten Arbeiten der geeignete Partner sei.
Am 24. Juli 2014, also in etwa ein Jahr nach dem ersten Kontakt, haben der Kunde und MD Consulting die Zusammenarbeit im Bereich „Wartung und Pflege“ einer bestehenden Gupta-Anwendung aufgenommen. In diesem Zeitraum hat der Kunde MD Consulting als verlässlichen Partner bei der Beschaffung der benötigten Lizenzen kennengelernt, sehr schnell danach auch erleben können, dass MD Consulting kompetente und mit der Materie vertraute Entwickler stellen kann, die sehr effektiv dabei helfen können, die neueste Version des Entwicklungswerkzeugs in Betrieb zu nehmen.

Für den Kunden schien es daher nur allzu logisch, sich bei der nächsten Herausforderung in diesem Bereich, wieder an MD Consulting zu wenden, um zu erfahren, dass auch die „Pflege und Wartung“ ihrer sehr spezifischen Geschäftsanwendung übernommen werden konnte.

Die Synergien zwischen dem Vertrieb von Lizenzen (Entwicklungsumgebung, Datenbanken), dem (Individual-) Coaching und der Softwareentwicklungsabteilung von MD Consulting lassen sich nicht eindrucksvoller darstellen.