System.Data.Entity.Core.EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details. ---> System.Data.SqlClient.SqlException: Invalid column name 'AlsoVisibleInDomains'.
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
   at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch[TTarget,TInterceptionContext,TResult](TTarget target, Func`3 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed)
   at System.Data.Entity.Infrastructure.Interception.DbCommandDispatcher.Reader(DbCommand command, DbCommandInterceptionContext interceptionContext)
   at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
   --- End of inner exception stack trace ---
   at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
   at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
   at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
   at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass41_0.<GetResults>b__0()
   at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
   at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
   at System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__31_0()
   at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)
   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector)
   at MuME2.Data.Managers.CachingManagerBase`2.GetDictionary() in D:\a\1\s\src\Legacy\MuME2.Core\Data\Managers\CachingManagerBase.cs:line 70
   at MuM.Foundation.Caching.Services.CustomCacheService.Get[T](String key, GetFromSourceDelegate`1 getDelegate) in D:\a\1\s\src\Foundation\Caching\code\Services\CustomCacheService.cs:line 260
   at MuME2.Data.Managers.CachingManagerBase`2.get_CachedDictionary() in D:\a\1\s\src\Legacy\MuME2.Core\Data\Managers\CachingManagerBase.cs:line 72
   at MuME2.Data.Managers.CachingManagerBase`2.All() in D:\a\1\s\src\Legacy\MuME2.Core\Data\Managers\CachingManagerBase.cs:line 67
   at MuME2.Data.Managers.EventTypeManager.All() in D:\a\1\s\src\Legacy\MuME2.Core\Data\Managers\EventTypeManager.cs:line 26
   at MuME2.Data.Managers.EventTypeManager.SingleByName(String name) in D:\a\1\s\src\Legacy\MuME2.Core\Data\Managers\EventTypeManager.cs:line 90
   at MuME2.Data.Managers.EventManager.SingleForDetails(Uri url) in D:\a\1\s\src\Legacy\MuME2.Core\Data\Managers\EventManager.cs:line 73
   at MuM.Project.Website.Services.SeoService.GetCurrentEvent() in D:\a\1\s\src\Project\Website\code\Services\SeoService.cs:line 216
   at MuM.Project.Website.Services.SeoService.GetCanonicalUrl(Base_Page page, String customHost) in D:\a\1\s\src\Project\Website\code\Services\SeoService.cs:line 188
   at MuM.Project.Website.Services.SeoService.RenderHrefLangTags(Base_Page page) in D:\a\1\s\src\Project\Website\code\Services\SeoService.cs:line 65
   at Mum.Relaunch.Web.Controllers.Framework.DefaultPageController.HtmlHead() in D:\a\1\s\src\Legacy\Mum.Relaunch.Web\Controllers\Framework\DefaultPageController.cs:line 111
   at lambda_method(Closure , ControllerBase , Object[] )
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c.<BeginInvokeSynchronousActionMethod>b__9_0(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
   at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__11_0()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass11_1.<InvokeActionMethodFilterAsynchronouslyRecursive>b__2()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass11_1.<InvokeActionMethodFilterAsynchronouslyRecursive>b__2()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_6.<BeginInvokeAction>b__3()
   at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_1.<BeginInvokeAction>b__5(IAsyncResult asyncResult)
    

Weil Bilder mehr sagen …

Die Visualisierungsfunktionen von MuM MapEdit begeistern GIS-Team und Fachabteilungen der Energiedienstleisterin Eniwa AG

Beim schweizerischen Energiedienstleistungsunternehmen Eniwa AG in Buchs zeigt sich ein Phänomen, das GIS-Nutzer häufig beobachten: Sobald das System eingeführt ist und die Daten zuverlässig gepflegt werden, kommen aus den Fachabteilungen immer mehr Ideen, wie man die Daten nutzen kann. Bei Eniwa verwenden die GIS-Spezialisten die flexiblen Konfigurationsfunktionen von MuM MapEdit, um die Wünsche der Fachabteilungen schnell und umfassend zu erfüllen.
Die Eniwa AG ist die nachhaltige Energiedienstleisterin in der Region Aarau, Schweiz. Das Unternehmen versorgt 22 Gemeinden mit Strom, 25 mit Erdgas/Biogas, 29 mit Glasfaser, 5 mit Wasser, 2 mit Fernwärme/Fernkälte und 13 Gemeinden mit insgesamt 48 E-Ladestationen. Umweltschutz, der Einsatz von erneuerbaren Energien, Energieeffizienz und die Minimierung der CO2-Emissionen stehen auf der Prioritätenliste weit oben; die rund 350 Mitarbeiterinnen und Mitarbeiter haben sich verpflichtet, die Umweltleistung kontinuierlich zu verbessern und Umweltbelastungen zu verhindern. Diese Verpflichtung lässt sich nur mit einem geografischen Informationssystem zur Verwaltung und Pflege der Daten der verschiedenen Netze erfüllen.

MapEdit, das Tool für den Alltag

Seit 2015 sind AutoCAD Map 3D, MuM MapEdit Desktop und MuM MapEdit Mobile im Einsatz. Mehr als die Hälfte der Mitarbeitenden nutzt MapEdit, um Daten abzurufen oder zu editieren. Für die meisten von ihnen ist die Software ein tägliches Werkzeug, andere nutzen sie zwei- bis dreimal pro Woche. MapEdit leistet als Visualisierungstool den ersten Beitrag zum Umweltschutz: Pläne werden nicht mehr geplottet; Planinformationen gibt es vorwiegend auf den Bildschirmen. Das spart zum einen Papier, zum anderen ist sichergestellt, dass man stets mit der aktuellen Planversion arbeitet.
Wenn die Arbeiten beendet sind, kann der Monteur den neuen Zustand künftig per MapEdit Mobile abrufen.

Alles, außer Programmieren

Zeitgleich mit der Einführung der heutigen Softwarelösungen wurde im Haus auch die Abteilung Asset Management aufgebaut, um die Netzbewirtschaftung zu optimieren. „Das hat der Datennutzung einen kräftigen Schub gegeben“, erzählt GIS-Leiter Jürg Becher. Die Abteilung tritt mit immer neuen Ideen an das GIS-Team heran, wo übrigens niemand eine Informatikausbildung hat oder Software programmieren kann. Die selbst entwickelten intelligenten Lösungen sind vor allem mit Hilfe der Konfigurationswerkzeuge von MapEdit entstanden.

Wie alt sind die Leitungen?

Dass sich das Alter der neueren Trassen, Kabel und Leitungen anhand des Einbaudatums ermitteln lässt, liegt auf der Hand. Auch bei älteren Leitungen hat man diese Informationen hinzugefügt, wenn sie bekannt waren. Doch wer interessiert sich schon für eine endlos lange Liste mit diesen Daten? Dank MapEdit kann man die Information mit einem Blick grafisch erfassen. Ein Farbcode zeigt die Einbaujahre an – 2001–2020 dunkelblau, 1991–2000 hellblau, 1981–1990 grün usw. So lässt sich in der Karte genau erkennen, wie alt die Leitungen in jeder Straße sind. Das ist viel einprägsamer als jede Liste und erleichtert Entscheidungen.

Risiken minimieren

Doch auch aufwändigere Auskünfte sind möglich. Das Asset Management bewertet alljährlich die Netze. Dabei ist das Alter nur eines von vielen Kriterien, um den Zustand und die Wichtigkeit von Leitungen näherungsweise zu bestimmen. Die Daten für diese Bewertung stammen aus dem GIS und weiteren Datenquellen; eine Spezialsoftware wertet sie aus und liefert eine umfangreiche Exceltabelle. Diese wird wiederum in die GIS-Datenbank eingelesen und mithilfe von MapEdit visualisiert. Im Plan sieht man, wo besonders wichtige Leitungen liegen und in welchem Zustand sie sind. Wenn ein Mitarbeiter die Leitung aufruft, zeigt eine „Ampel“ automatisch den Zustand der Leitung an
 
  • In Ordnung / unkritisch
  • Unter Beobachtung / Maßnahme vorplanen
  • Kritisch / Maßnahme umsetzen
Die „Ampel“ gibt es für die Medien Gas, Wasser und Strom – ein deutlicher Gewinn für die Sicherstellung der Versorgung aller Kundinnen und Kunden von Eniwa.
GIS-Leiter Jürg Becher und sein Team sind MapEdit-Fans.

Sanierungen leichter koordinieren

Da alle Projektleiter ganz selbstverständlich auf MapEdit zugreifen, nutzen sie die Software auch zur Planung von Bau- und Instandhaltungs-projekten. „Hier geht es vor allem um das ’edit‘ in MapEdit“, sagt Jürg Becher. Mit einer einfachen Linie können die Projektleiter im Plan markieren, wo sie eine Baustelle planen, und angeben, wann die Maßnahme vorgesehen ist. Diese Planung lässt sich für alle Gewerke „übereinanderlegen“. Ein Erneuerungsplan für die nächsten Jahre ist das Ergebnis. Die Sanierungs- und Baumaßnahmen der Eniwa AG sind dank MapEdit zeitlich sehr gut koordiniert.

Wirtschaftlich heizen und kühlen

Der Ausbau des Fernwärme- und Fernkältenetzes läuft seit rund acht Jahren, und es stellt sich immer wieder die Frage, in welchen Stadtteilen und Gemeinden der Anschluss an das Netz sinnvoll und wirtschaftlich ist. Mit MapEdit werden Informationen über die Heizung/Kühlung von Gebäuden, den Wärmebedarf und etliches mehr visuell dargestellt. Die Visualisierung des flächendeckenden Wärmebedarfs in Form eines farbigen Rasters ist ein kleiner Baustein bei der Entscheidung, wo der Ausbau des Wärmenetzes wirtschaftlich ist.

Mehr Informationen, bessere Entscheidungen

Die Grundlagen für die Wärmestrategie sollen in den nächsten Monaten„straßengenau“ ermittelt und dargestellt werden, um noch bessere Entscheidungen treffen zu können. „Unsere Daten haben wir – nicht zuletzt dank MapEdit – inzwischen prima im Griff“, freut sich Jürg Becher. „Im nächsten Schritt geht es darum, die Prozesse anzupassen – zum Beispiel beim Zusammenwirken der mobilen Instandhaltung und Map-Edit“. Das GIS-Team bei Eniwa ist überzeugt: „Wir schaffen das!“