{"id":373,"date":"2014-11-11T11:03:06","date_gmt":"2014-11-11T09:03:06","guid":{"rendered":"http:\/\/www.pitss.org\/blog\/?p=373"},"modified":"2018-04-03T18:30:26","modified_gmt":"2018-04-03T16:30:26","slug":"neue-features-im-data-access-layer-von-pitss-con","status":"publish","type":"post","link":"https:\/\/pitss.org\/de\/neue-features-im-data-access-layer-von-pitss-con\/","title":{"rendered":"Neue Features im Data Access Layer Assistenten von PITSS.CON"},"content":{"rendered":"<p>Seit geraumer Zeit gibt es in <a href=\"https:\/\/pitss.org\/de\/produkte\/pitss-con\/\">PITSS.CON<\/a> die M\u00f6glichkeit mit Hilfe des Data Access Layer Assistenten (DAL-Assistent) automatisiert Zugriffsschichten f\u00fcr Tabellen oder tabellenbasierte Datenbl\u00f6cke zu generieren. Bisher mussten Anpassungen am sp\u00e4ter generierten Code entweder im Vorweg in PITSS.CON implementiert werden, oder im nachhinein an den generierten Objekten selbst. Im kommenden PITSS.CON Release wird sich dies \u00e4ndern. PITSS.CON wird mit Hilfe von Apache Velocity um die M\u00f6glichkeit reicher, die Generierung des DAL vollst\u00e4ndig zu beeinflussen.<\/p>\n<p>Wie wird das in der Praxis aussehen? Nun Apache Velocity bietet die M\u00f6glichkeit mit Hilfe von Templates jeglichen Code zu generieren &#8211; Sei es HTML, PHP oder eben auch PL\/SQL. Dies macht sich PITSS.CON zu Nutze, integriert diese M\u00f6glichkeit und kombiniert Sie mit den geladenen Datenbankinformationen im PITSS.CON Repository. Dadurch ist es mit wenigen Klicks m\u00f6glich, einen DAL-Layer f\u00fcr eine komplette Applikation zu generieren und diese noch vor der Generierung anzupassen. Sollten Sie zum Beispiel ein Standardvorgehen f\u00fcr Ihr Exception Handling haben, k\u00f6nnen Sie dies gleich in jedes Generierte Zugriffspackage integrieren. Somit werden die Templates, die vom Benutzer angepasst werden k\u00f6nnen mit Informationen aus dem Repository angereichert (z.B. Tabelleninformationen).<\/p>\n<p>Aber was bringt Ihnen eine gesonderte Zugriffsschicht eigentlich f\u00fcr Vorteile? Es geht darum sogenannte CRUD-Operationen (Create, Read, Update und Delete) in Packages zu kapseln und einen direkten Tabellenzugriff der Applikation zu unterbinden. Durch die Schaffung eines DAL-Layers k\u00f6nnen weitere Schichten erzeugt werden, die aufeinander aufbauen. Somit l\u00e4sst sich St\u00fcck f\u00fcr St\u00fcck eine SOA Architektur einf\u00fchren. PITSS.CON unterst\u00fctzt hierbei auch Multiline-Insert.<\/p>\n<p>Wie wird diese Generierung in PITSS.CON aussehen:<br \/>\nZun\u00e4chst wird wie bisher auch ein Objekt aus dem Fundus der geladenen Objekte ausgew\u00e4hlt, f\u00fcr das ein DAL-Layer erzeugt werden soll. Es darf sich hierbei entweder um eine Tabelle oder tabellenbasierten Oracle Forms Block handeln.<\/p>\n<p>Wichtig bei Tabellen: Die Tabelle muss einen Prim\u00e4rschl\u00fcssel aufweisen. Mit &#8222;Start Wizard&#8220; wird der Wizard gestartet. Im ersten Schritt kann ausgew\u00e4hlt werden, in welchem Datenbankschema der DAL-Layer erzeugt werden soll. Dient eine Tabelle als Basis f\u00fcr die Erzeugung, besteht au\u00dferdem die M\u00f6glichkeit mit der Checkbox &#8222;All Objects&#8220; DAL-Layer f\u00fcr alle geladenen Tabellen mit Prim\u00e4rschl\u00fcssel zu erzeugen. Mit einem Klick auf &#8222;Next&#8220; erscheint im n\u00e4chsten Schritt eine Oberfl\u00e4che zum Bearbeiten der Velocity Skripte. Diese werden standardm\u00e4\u00dfig mit ausgeliefert und k\u00f6nnen mit einem Klick auf den jeweiligen Button bearbeitet werden. PITSS.CON erzeugt hierbei vier Objekte f\u00fcr die Zugriffsschicht: ein Package, eine View, zwei Objekttypen. Mit einem Klick \u00f6ffnet sich ein Editor und die Skripte k\u00f6nnen angepasst werden. Abschlie\u00dfend kann der Anwender noch entscheiden, ob die generierten DAL-Layer nur auf dem Dateisystem erzeugt oder auch im PITSS.CON Repository angelegt werden sollen. Hat man sich f\u00fcr zweites entschieden, so sind im PITSS.CON Modul &#8222;DB-Handling&#8220; die erzeugten Objekte zu finden, welche direkt in dem ausgew\u00e4hlten Datenbankschema erzeugt werden k\u00f6nnen. In unserem Beispiel wurde das Template angepasst und in der Prozedur &#8222;Query_Records&#8220; ein Exception Handling hinzugef\u00fcgt. W\u00fcrden wir nun dieses Template f\u00fcr die Generierung aller geladenen Tabellen benutzen so h\u00e4tten alle generierten DAL-Layer dasselbe Exception Handling f\u00fcr die Prozedur &#8222;Query Records&#8220;. Somit l\u00e4sst sich ein applikationseigener Standard in der Generierung der Zugriffschichten erzeugen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Seit geraumer Zeit gibt es in PITSS.CON die M\u00f6glichkeit mit Hilfe des Data Access Layer Assistenten (DAL-Assistent) automatisiert Zugriffsschichten f\u00fcr Tabellen oder tabellenbasierte Datenbl\u00f6cke zu generieren. Bisher mussten Anpassungen am sp\u00e4ter generierten Code entweder im Vorweg in PITSS.CON implementiert werden, oder im nachhinein an den generierten Objekten selbst. Im kommenden PITSS.CON Release wird sich dies [&hellip;]<\/p>\n","protected":false},"author":47,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[118,113,82,83,84,101,136],"tags":[225,226,227,66,123,228],"class_list":["post-373","post","type-post","status-publish","format-standard","hentry","category-11g","category-entwicklung","category-forms","category-oracle","category-pitss","category-pitss-con","category-scripte","tag-apache","tag-dal","tag-geschaftsprozesse","tag-oracle","tag-soa","tag-velocity"],"_links":{"self":[{"href":"https:\/\/pitss.org\/de\/wp-json\/wp\/v2\/posts\/373","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pitss.org\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pitss.org\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pitss.org\/de\/wp-json\/wp\/v2\/users\/47"}],"replies":[{"embeddable":true,"href":"https:\/\/pitss.org\/de\/wp-json\/wp\/v2\/comments?post=373"}],"version-history":[{"count":3,"href":"https:\/\/pitss.org\/de\/wp-json\/wp\/v2\/posts\/373\/revisions"}],"predecessor-version":[{"id":22331,"href":"https:\/\/pitss.org\/de\/wp-json\/wp\/v2\/posts\/373\/revisions\/22331"}],"wp:attachment":[{"href":"https:\/\/pitss.org\/de\/wp-json\/wp\/v2\/media?parent=373"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pitss.org\/de\/wp-json\/wp\/v2\/categories?post=373"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pitss.org\/de\/wp-json\/wp\/v2\/tags?post=373"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}