WCF Dataservice

Übersicht über die WCF Data Service Schnittstelle

WCF steht für Windows Communication Foundation. Mit WCF können Daten als asynchrone Nachrichten von einem Dienstendpunkt an einen anderen gesendet werden. Das visual energy System stellt mit dem ExcelWcfService dafür einen definierten WCF Dienst bereit, welcher Anfragen beantwortet. Damit kann eine Software oder eine Script auf einfache Weise Energiedaten aus dem visual energy System abfragen. In der visual energy Welt nutzt beispielsweise das Excel Add In den WCF Service um Daten abzurufen. Daher stammt auch der Name des Dienstes.

Die URL des Endpunktes wird wie folgt gebildet: [IP oder Hostname]:[Port]/api/Services/ExcelWcfService.svc Die Port-Angabe entspricht hierbei dem Port, der bei der Installation für das Busmasterweb festgelegt wurde. Weiterhin wird unter .../api/Services/ExcelWcfService.svc/json ein Dienst angeboten, der den Datenabruf im JSON - Format ermöglicht.

Code-Beispiele

Im nachfolgenden Beispiel soll mit einem Powershell-Script im JSON-Format alle Projekte abgerufen werden, für die der Benutzer mit dem angegebenen Token berechtigt ist.
cls
$url = "https://192.168.192.5:82/api/Services/ExcelWCFService.svc/json/"
$token = "f81c3a6ac3c24b348e8fbecb3189f6c1"
$postParams = @{token=$token} | ConvertTo-Json

$r = Invoke-WebRequest -Uri ($url + 'GetProjectInfos' ) -Method POST -Body $postParams -ContentType "application/json"
$projects = $r.Content | ConvertFrom-Json

write-host "Gefundene Projekte mit Berechtigungen:"
write-host "--------------------------------------"
foreach ($project in $projects.d)
{
    write-host "$($project.Name), $($project.Id)"
}   
Dieses Beispiel listet die Standorte eines Projektes auf:
cls
$url = "https://ve4.kbr.de/ve4web/Services/ExcelWCFService.svc/json/"
$token = "f81c3a6ac3c24b348e8fbecb3189f6c1"
$projectId="2022e8ba-9180-4b59-b6c3-257aa6361e75"
$postParams = @{token=$token;projectId=$projectId} | ConvertTo-Json

$r = Invoke-WebRequest -Uri ($url + 'GetLocationInfos' ) -Method POST -Body $postParams -ContentType "application/json"
$locations = $r.Content | ConvertFrom-Json

write-host ""
write-host "Gefundene Standorte im Projekt mit Id:" + $projectId
write-host "--------------------------------------"
foreach ($location in $locations.d)
{
    write-host "$($location.Name)"
}

Liste der WCF Funktionen