Der DataID-Provider ermöglicht es eine DataID auszuführen und das Ergebnis in YUNA-Dashboards zu integrieren.
Beispielgrafik: Ausführung einer DataID gesteuert über ein Formularwidget und anschließende Darstellung in einem Tabellenwidget:
- Bei Betätigung des Absenden-Buttons im Formularwidget wird die DataID an den Output-Channel des Formularwidgets übergeben.
- Die durch den IO-Channel bereitgestellten Daten werden durch den DataID-Provider konsumiert, da dieser IO-Channel als Input konfiguriert ist.
- Der DataID-Provider führt die DataID auf der Datenbank aus.
- Die Datenbank liefert das Ergebnis der DataID an den DataID-Provider.
- Das Ergebnis wird in den Output-Channel des DataID-Providers übergeben.
- Das Tabellenwidget erhält die neuen Daten aus dem IO-Channel und kann diese darstellen.
Beispielkonfigurationen für DataID-Provider:
Durch klick auf die verschiedenen YUNAML-Elemente gelangen sie zu den jewiligen detaillierten Informationen in der folgenden Tabelle.
Kursive Elemente beziehen sich auf andere Inhalte ihrer YUNAML-Dashboards, wie z.B. Namen von DataIDs oder IO-Channels.
Konfiguration des DataID-Providers
YUNAML-Tag | Beschreibung | Konfiguration erforderlich? | Beispiel |
---|---|---|---|
type | Der Typ des IO-Providers. Für den DataID-Provider muss dieser Parameter auf "DataID" gesetzt werden. Weitere mögliche Werte sind "UrlParams" und "HTTP". | <type>DataId<http> | |
config | Die verschiedenen Konfigurationsparameter des DataID-Providers. | ||
config > dataId | Die auszuführende DataID des DataID-Providers. | <dataId>dataIdName</dataId> | |
config > triggerParams | Um den Zeitpunkt für die Ausführung der DataID zu konfigurieren, werden die Trigger-Parameter in drei YUNAML-Tags definiert: <trigger>, <mandatory> und <optional>. Bei jeder Änderung eines Channels, der in mindestens einem dieser Tags definiert ist, wird geprüft, ob eine Anfrage durchgeführt werden soll. Dabei werden folgende Bedingungen geprüft:
Sind weder <trigger>- noch <mandatory>-Channel definiert, wird bei jeder Änderung eines in <optional> angegebenen Kanals eine Anfrage ausgeführt. Ein Channel kann sowohl <trigger> als auch <mandatory> sein. Sollen mehrere Channel in einem der drei Tags definiert werden, müssen diese in <list>-Tags angegeben werden. | <triggerParams> <trigger>someChannel</trigger> <mandatory> <list>mandatoryChannel</list> </mandatory> <optional> <list>optionalChannel1</list> <list>optionalChannel2</list> </optional> </triggerParams> | |
config > triggerParams > trigger | |||
config > triggerParams > mandatory | |||
config > triggerParams > optional | |||
config > output | Unter <output> wird konfiguriert, in welchen IO-Channel das Ergebnis der DataID veröffentlicht wird. | <output>OutputChannel</output> | |
config > converter | Dieser Konfigurationsparameter sollte nur in wenigen Anwendungsfällen angepasst werden und ist daher für erfahrene Anwender vorgesehen. Definiert, in welchem Format das Ergebnis der DataID-Abfrage in den Output-Channel veröffentlicht wird. Es werden zwei Formate unterstützt: 'row' und 'col'. Für Details siehe das Beispiel zu <converter>-Formaten. | Default: row | <converter>col</converter> |
Beispiel zu <converter>-Formaten
Selektierte Daten:
ID | Name |
---|---|
1 | Heinz |
2 | Sabine |
3 | Stefan |
Die veröffentlichten Daten im 'row'-Format:
{ "dataQueryResult": { "rows": [ {"ID": 1, "Name": "Heinz"}, {"ID": 2, "Name": "Sabine"}, {"ID": 3, "Name": "Stefan"} ], "header": ["ID", "Name"] } }
Die veröffentlichten Daten im 'col'-Format:
{ "dataQueryResult": { "columns": { "ID": [1, 2, 3], "Name": ["Heinz", "Sabine", "Stefan"] }, "header": ["ID", "Name"] } }
Beispiel
In diesem Beispiel wird über den DataID-Provider eine Data-ID ausgeführt. Das Ergebnis wird anschließend in einem Tabellen-Widget dargestellt.
<xml> <view name="DataID-Provider" roles="System_Admin, AdHoc_Full_Issue"> <caption>DataID-Provider</caption> <description>IO-Provider example</description> <userdocu>https://confluence.eoda.de/display/DD1/.IO-Provider</userdocu> <!-- DATA-ID IO-Provider --> <io-provider> <type>DataId</type> <config> <!-- define the DATA-ID --> <dataId>qy_dataid_provider_example</dataId> <triggerParams> <!-- define the parameters, which will trigger the DATA-ID --> <trigger>buttonPressed</trigger> </triggerParams> <!-- define the outputchannel, where the result from the DATA-ID will go --> <output>dataFromQuery</output> </config> </io-provider> <!-- Form-Widget for DATA-ID IO-Provider--> <widget> <widgettype>formwidget</widgettype> <caption> <show>true</show> <label>DATA-ID Form</label> </caption> <position> <x>0</x> <y>0</y> </position> <size> <x>2</x> <y>2</y> </size> <outputs> <!-- on submit, buttonPressed will trigger the DATA-ID --> <submit>buttonPressed</submit> </outputs> <submitButton> <label>Run Query!</label> </submitButton> <formTemplate> <![CDATA[ <div> <p>Run query and show data</p> </div> ]]> </formTemplate> </widget> <!-- Table-Widget for DATA-ID IO-Provider--> <widget name="tbl_dataid_device_basic_info"> <widgettype>tabledirective</widgettype> <caption> <show>true</show> <label>Data from DATA-ID IO-Provider</label> </caption> <position> <x>2</x> <y>0</y> </position> <size> <x>16</x> <y>4</y> </size> <sorting>ProductGroup</sorting> <sortingorder>asc</sortingorder> <inputs> <!-- get the data from the DATA-ID IO-Provider --> <!-- takes the data json in row format --> <data>dataFromQuery</data> </inputs> <generalOptions> <addColumns>true</addColumns> <selectable>false</selectable> </generalOptions> </widget> </view> </xml>