{"id":4835,"date":"2019-05-29T11:31:02","date_gmt":"2019-05-29T09:31:02","guid":{"rendered":"https:\/\/www.isa.de\/?p=4835"},"modified":"2024-05-16T11:37:47","modified_gmt":"2024-05-16T09:37:47","slug":"idma0602g","status":"publish","type":"post","link":"https:\/\/www.isa.de\/en\/idma0602g\/","title":{"rendered":"ISA Dialog Manager A.06.02.g with numerous innovations"},"content":{"rendered":"<p>Die aktuelle Version A.06.02.g des ISA Dialog Managers bringt eine Reihe neuer Funktionen und Verbesserungen f\u00fcr Entwickler und ihre Anwendungen. Im folgenden finden Sie eine Auswahl der wichtigsten Neuerungen:<\/p>\n<h4>Neue Plattformen<\/h4>\n<ul>\n<li>Der ISA Dialog Manager ist nun auch f\u00fcr die Plattform RHEL 7.6 (32- &amp; 64-Bit) mit dem Compiler GCC 4.8.5 und den Toolkits Motif 2.3.4 und Qt 5.9 erh\u00e4ltlich.<\/li>\n<li>Der IDM f\u00fcr Windows ist nun auch f\u00fcr Windows 10 mit Microsoft Visual Studio 2017 erh\u00e4ltlich.<\/li>\n<\/ul>\n<h4>Neues Werkzeug f\u00fcr die Analyse von Tracedateien<\/h4>\n<p>Der neue \u201eTracefile Analyzer\u201c erleichtert die Auswertung von Tracedateien und leistet damit effektive Hilfestellung bei der Fehler- und Problemsuche in IDM-Anwendungen. Der \u201eTracefile Analyzer\u201c bietet spezielle Funktionen f\u00fcr die Navigation in der Trace-Hierarchie, zwischen Fehlern und benutzerdefinierten Lesezeichen sowie einen Navigationsverlauf.<\/p>\n<p>Neben praktischen Hilfsmitteln wie Filtern, Suche, Lesezeichen und Aufrufstapel erleichtern farbliche Hervorhebungen und Inhaltstypisierung den Umgang mit gro\u00dfen und un\u00fcbersichtlichen Datenmengen. Au\u00dferdem erm\u00f6glicht der \u201eTracefile Analyzer\u201c das parallele Arbeiten an mehreren Tracedateien oder an verschiedenen Stellen derselben Tracedatei.<\/p>\n<h4>Stark erweiterte Fehleranalyse in der Regelsprache<\/h4>\n<p>Die erweiterte Pr\u00fcfung hat das Ziel, fehlerhaften Regelcode schon vor der Ausf\u00fchrung zu erkennen und den Entwickler auf die Fehlerstelle hinzuweisen. Dabei handelt es sich um eine semantische Pr\u00fcfung von eingesetzten Datentypen bei Regelcode, der ansonsten syntaktisch korrekt ist. Die Pr\u00fcfung erkennt beispielsweise<\/p>\n<ul>\n<li>ob der Datentyp des Ausdrucks bei return und pass zum R\u00fcckgabetyp der Regel passt,<\/li>\n<li>ob Anzahl und Datentyp von Parametern beim Aufruf von eingebauten Funktionen, vordefinierten Methoden und benannten Regeln, Funktionen und Methoden korrekt sind,<\/li>\n<li>Division oder Modulo durch 0,<\/li>\n<li>inkompatible Datentypen bei Zuweisungen an lokale und globale Variablen.<\/li>\n<\/ul>\n<p>Auf Basis einer Kontrollflussanalyse werden fehlende return-Anweisungen erkannt und entsprechende Warnungen ausgegeben. Die Analyse umfasst benannte Regeln, Ereignisregeln, Simulationsregeln und Methoden (benutzerdefiniert und redefiniert). Sie ber\u00fccksichtigt auch pass- und throw-Anweisungen, die ebenfalls zum Beenden einer Regel f\u00fchren.<\/p>\n<h4>Erleichterte Modularisierung mit \u201euse\u201c<\/h4>\n<p>Zus\u00e4tzlich zum bisherigen Weg, auf ein Modul \u00fcber ein Import-Objekt zuzugreifen, kann das Schl\u00fcsselwort use genutzt werden um den Umgang mit Imports, Modulen, Interface- und Bin\u00e4rdateien zu erleichtern. Im Gegensatz zum Import erfolgt die Auswahl des Moduls nicht durch einen Dateipfad zur Interface-Datei, sondern \u00fcber einen Bezeichner-Pfad, den sogenannten \u201eUse-Pfad\u201c.<\/p>\n<p>Die Entkopplung von einem Interface- oder Modul-Dateinamen hat mehrere Vorteile:<\/p>\n<ul>\n<li>Die Verwendung von eigenen Umgebungsvariablen f\u00fcr den Ort der Interface- und Bin\u00e4rmodule entf\u00e4llt.<\/li>\n<li>Die Erzeugung der Interface- und Bin\u00e4rdateien wird vereinfacht.<\/li>\n<li>Das Laden von Modulen ohne Interface-Datei ist nun m\u00f6glich, da ein zentraler Suchpfad f\u00fcr Interfaces, Module und Bin\u00e4rmodule vorhanden ist.<\/li>\n<\/ul>\n<p>Module, die \u00fcber use angezogen werden, sind im Dialog immer nur einmal geladen. Dies erleichtert die Verwendung von Basismodulen, da nicht versehentlich durch eine fehlerhafte Import-Kette ein Modul mehrfach geladen wird. Eine weitere Besonderheit ist die Vorgabe von Dateiendungen f\u00fcr Quelltext-Dateien (.dlg und .mod), Interface-Dateien (.if) und Bin\u00e4rdateien (.bin).<\/p>\n<p>F\u00fcr modularisierte Dialoge, die use verwenden, gibt es einfache Kommandos, um alle Interface- und Bin\u00e4rdateien in einem Schritt zu erzeugen:<\/p>\n<ul>\n<li>-compile<br \/>\nErneuert alle Interface- und Bin\u00e4rdateien f\u00fcr ge\u00e4nderte Module und Dialoge.<\/li>\n<li>-recompile<br \/>\nErzeugt alle Interface- und Bin\u00e4rdateien neu.<\/li>\n<li>-cleancompile<br \/>\nL\u00f6scht alle Interface- und Bin\u00e4rdateien.<\/li>\n<\/ul>\n<p>F\u00fcr ein dynamisches Laden und Entladen von Modulen stehen die neuen Methoden :use() und :unuse() zur Verf\u00fcgung.<\/p>\n<h4>Regul\u00e4re Ausdr\u00fccke<\/h4>\n<p>Im ISA Dialog Manager k\u00f6nnen nun regul\u00e4re Ausdr\u00fccke \u00fcber die neue Funktion regex() und als Format verwendet werden. Daf\u00fcr bindet der IDM die freie Bibliothek PCRE (Perl Compatible Regular Expression) ein. Mit der regex()-Funktion k\u00f6nnen die Operationen \u201eMustersuche\u201c und \u201eErsetzung\u201c auf Sammlungen (list, hash, matrix, vector) und Strings ausgef\u00fchrt werden.<\/p>\n<h4>Asynchroner Methodenaufruf<\/h4>\n<p>Mit der neuen eingebauten Funktion sendmethod() und C-Schnittstellenfunktion DM_SendMethod() k\u00f6nnen Methodenaufrufe in die Ereignis-Warteschlange gestellt werden und asynchron aus der Ereignisschleife heraus ausgef\u00fchrt werden.<\/p>\n<h4>Laden und Speichern von Konfigurationsdateien<\/h4>\n<p>Die Funktionen zur Handhabung von Konfigurationsdateien (profiles) wurden vervollst\u00e4ndigt. Mit der C-Schnittstellenfunktion DM_SaveProfile() k\u00f6nnen nun die aktuellen Werte von konfigurierbaren Records und globalen Variablen in einer Konfigurationsdatei gespeichert werden. Mit den eingebauten Funktionen loadprofile() und saveprofile() ist das Laden und Speichern von Konfigurationsdateien nun auch aus der Regelsprache heraus m\u00f6glich.<\/p>\n<h4>Neue eingebaute Funktionen f\u00fcr Sammlungen und Strings<\/h4>\n<p>Es gibt mehrere neue eingebaute Funktionen f\u00fcr die Arbeit mit Sammlungen und Strings in der Regelsprache:<\/p>\n<ul>\n<li>append() zum Anh\u00e4ngen von Elementen bzw. Zeichen<\/li>\n<li>insert() zum Einf\u00fcgen von Elementen bzw. Zeichen<\/li>\n<li>exchange() zum Vertauschen von Elementen bzw. Zeichen<\/li>\n<li>delete() zum L\u00f6schen von Elementen bzw. Zeichen<\/li>\n<\/ul>\n<h4>Unterst\u00fctzung von SSH und SSL im DDM<\/h4>\n<p>Die Netzwerkschnittstelle des ISA Dialog Managers unterst\u00fctzt nun SSL f\u00fcr eine verschl\u00fcsselte Kommunikation zwischen Darstellungsseite (Client) und Anwendungsseite (Server) sowie SSH f\u00fcr einen sicheren Start der Anwendungsseite.<\/p>\n<h4>List of corrections and changes<\/h4>\n<p>12964, 12960, 12957, 12938, 12935, 12925, 12915, 12881, 12843, 12831, 12828, 12355, 12289 und 12284<\/p>","protected":false},"excerpt":{"rendered":"<p>Die aktuelle Version A.06.02.g des ISA Dialog Managers bringt eine Reihe neuer Funktionen und Verbesserungen f\u00fcr Entwickler und ihre Anwendungen. Im folgenden finden Sie eine<\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"none","_seopress_titles_title":"","_seopress_titles_desc":"Die aktuelle Version A.06.02.g des ISA Dialog Managers bringt eine Reihe neuer Funktionen und Verbesserungen f\u00fcr Entwickler und ihre Anwendungen.","_seopress_robots_index":"","_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[4],"tags":[176,26,164],"class_list":["post-4835","post","type-post","status-publish","format-standard","hentry","category-news","tag-aktuelles","tag-idm","tag-neuerungen"],"author_meta":{"display_name":"Markus Giebeler","author_link":"https:\/\/www.isa.de\/en\/author\/giebeler\/"},"featured_img":null,"coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/www.isa.de\/en\/news\/\" class=\"advgb-post-tax-term\">Aktuelles<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Aktuelles<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/www.isa.de\/en\/news\/\" class=\"advgb-post-tax-term\">Aktuelles<\/a>","<a href=\"https:\/\/www.isa.de\/en\/news\/\" class=\"advgb-post-tax-term\">IDM<\/a>","<a href=\"https:\/\/www.isa.de\/en\/news\/\" class=\"advgb-post-tax-term\">Neuerungen<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Aktuelles<\/span>","<span class=\"advgb-post-tax-term\">IDM<\/span>","<span class=\"advgb-post-tax-term\">Neuerungen<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 7 years ago","modified":"Updated 2 years ago"},"absolute_dates":{"created":"Posted on 29. May 2019","modified":"Updated on 16. May 2024"},"absolute_dates_time":{"created":"Posted on 29. May 2019 11:31","modified":"Updated on 16. May 2024 11:37"},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/www.isa.de\/en\/wp-json\/wp\/v2\/posts\/4835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.isa.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.isa.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.isa.de\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.isa.de\/en\/wp-json\/wp\/v2\/comments?post=4835"}],"version-history":[{"count":6,"href":"https:\/\/www.isa.de\/en\/wp-json\/wp\/v2\/posts\/4835\/revisions"}],"predecessor-version":[{"id":4843,"href":"https:\/\/www.isa.de\/en\/wp-json\/wp\/v2\/posts\/4835\/revisions\/4843"}],"wp:attachment":[{"href":"https:\/\/www.isa.de\/en\/wp-json\/wp\/v2\/media?parent=4835"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.isa.de\/en\/wp-json\/wp\/v2\/categories?post=4835"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.isa.de\/en\/wp-json\/wp\/v2\/tags?post=4835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}