{"id":986,"date":"2014-11-17T21:21:35","date_gmt":"2014-11-17T20:21:35","guid":{"rendered":"http:\/\/www.symablog.de\/blog\/?p=986"},"modified":"2014-11-22T21:20:40","modified_gmt":"2014-11-22T20:20:40","slug":"bmc-bem-wie-kann-man-daten-aus-externen-programmen-im-regelwerk-nutzen","status":"publish","type":"post","link":"https:\/\/www.symablog.de\/blog\/bmc-bem-wie-kann-man-daten-aus-externen-programmen-im-regelwerk-nutzen\/","title":{"rendered":"BMC BEM: Wie kann man Daten aus externen Programmen im Regelwerk nutzen?"},"content":{"rendered":"<p>Bei der Eventverarbeitung im Regelwerk ist es manchmal notwendig, zus\u00e4tzliche Daten aus externen Quellen zu beschaffen. Um externe Programme auszuf\u00fchren und deren Daten zur\u00fcck in das Regelwerk zu leiten, nutzt man Interfaces.<\/p>\n<p>a) BAROC Datei f\u00fcr die Interface Daten-Struktur:<br \/>\nDie Struktur eines Interface wird in einer BAROC-Datei definiert, mit dem Schl\u00fcsselwort  MC_INTERFACE :<\/p>\n<pre lang=\"perl\" line=\"1\">MC_INTERFACE: AUSSENSENSOR\r\nDEFINES {\r\n    ort:            STRING;\r\n    temperatur:     STRING;\r\n    rel_feuchte:    STRING;\r\n    abs_feuchte:    STRING;\r\n};\r\nEND\r\n<\/pre>\n<p>Nach dem Laden der Definitionen (mcontrol -n CELL_NAME reload kb ) steht die Daten-Struktur in der Zelle zur Verf\u00fcgung.<\/p>\n<p>b) Das externe Programm:<br \/>\nDie durch das externe Programm zu liefernden Daten, werden an die Interface-Instanz \u00fcbergeben. Diese Instanz ist leider keine FIFO, sondern eine ASCII-Datei, die nur \u00fcber einen kurzen Zeitraum existiert. Konkret nur w\u00e4hrend die aufrufende Refine-Regel aktiv ist und auf die Daten aus dem externen Programm wartet. Als Beispiel liefert das externe Programm \/usr\/bin\/get_sensor_data.pl folgende Daten an das Interface\/FIFO und damit in das Regelwerk:<\/p>\n<pre lang=\"perl\" line=\"1\">AUSSENSENSOR;\r\n     ort = \"Terrasse\";\r\n     temperatur = \"23.45 \u00b0C\";\r\n     rel_feuchte = \"66.4 %\";\r\n     abs_feuchte = \"71.2 %\";\r\nEND\r\n<\/pre>\n<p>In dem Output des externen Programms finden wir die Struktur unseres definierten Interface wieder.<\/p>\n<p>c) Im Regelwerk:<br \/>\nMit einer Refine-Rule wird mit get_external das externe Programm aufgerufen und die externen Daten in der definierten Interface-Struktur dem Regelwerk zur Verf\u00fcgung gestellt:<\/p>\n<pre lang=\"perl\" line=\"1\">get_external('\/usr\/bin\/get_sensor_data.pl',['Sensor_Terrasse'],AUSSENSENSOR,$SEN);\r\n$EV.sensorort = $SEN.ort;\r\n$EV.value_temperatur = $SEN.temperatur;\r\n$EV.value_feuchte = $SEN.rel_feuchte;\r\n<\/pre>\n<p>Nur w\u00e4hrend der Ausf\u00fchrung der Refine-Rule stehen die Daten aus der Interface-Struktur zur Verf\u00fcgung. Hier wurden sie in einem Event zugeordnet und gespeichert.<br \/>\nEbenso ist es im weiteren m\u00f6glich, die Daten in einem global record zu speichern und zu einem sp\u00e4teren Zeitpunkt darauf zuzugreifen.<\/p>\n<p>Interface Instances &#8211; siehe auch die Handb\u00fccher:<br \/>\n<strong>BMC Knowledge Base Development Reference Guide<\/strong>,<br \/>\n<strong>BMC Impact Solutions Knowledge Base Development Reference Guide<\/strong><\/p>\n<div id=\"attachment_950\" style=\"width: 610px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-950\" class=\"size-full wp-image-950\" src=\"http:\/\/www.symablog.de\/blog\/wp-content\/uploads\/LegoCity02.jpg\" alt=\"schnelle Hilfe - Dank bester Eventverarbeitung und gezielter Eskalation ( Ticket &amp; Alarmierung )\" width=\"600\" height=\"172\" srcset=\"https:\/\/www.symablog.de\/blog\/wp-content\/uploads\/LegoCity02.jpg 600w, https:\/\/www.symablog.de\/blog\/wp-content\/uploads\/LegoCity02-150x43.jpg 150w, https:\/\/www.symablog.de\/blog\/wp-content\/uploads\/LegoCity02-500x143.jpg 500w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><p id=\"caption-attachment-950\" class=\"wp-caption-text\">schnelle Hilfe &#8211; Dank bester Eventverarbeitung und gezielter Eskalation ( Ticket &amp; Alarmierung )<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bei der Eventverarbeitung im Regelwerk ist es manchmal notwendig, zus\u00e4tzliche Daten aus externen Quellen zu beschaffen. Um externe Programme auszuf\u00fchren und deren Daten zur\u00fcck in das Regelwerk zu leiten, nutzt man Interfaces. a) BAROC Datei f\u00fcr die Interface Daten-Struktur: Die &hellip; <a class=\"more-link\" href=\"https:\/\/www.symablog.de\/blog\/bmc-bem-wie-kann-man-daten-aus-externen-programmen-im-regelwerk-nutzen\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[164,78],"tags":[168,200,171,170,167,169],"class_list":["post-986","post","type-post","status-publish","format-standard","hentry","category-bmc-bem","category-praxis","tag-bem-rulebase","tag-bmc-bem","tag-externes-programm","tag-get_external","tag-interface","tag-mc_interface"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":false,"jetpack_shortlink":"https:\/\/wp.me\/p37Rzq-fU","_links":{"self":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts\/986"}],"collection":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/comments?post=986"}],"version-history":[{"count":15,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts\/986\/revisions"}],"predecessor-version":[{"id":1004,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/posts\/986\/revisions\/1004"}],"wp:attachment":[{"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/media?parent=986"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/categories?post=986"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.symablog.de\/blog\/wp-json\/wp\/v2\/tags?post=986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}