Vieles im Projektbau wird auf Basis von Testdaten gebaut. Jedoch sobald es in Produktion geht und echte Anwender dann endlich die Inhalte pflegen, kann es zu echt interessanten Verhalten im Web Site Management Server kommen.
Testdaten für die Entwicklung sind gut, spiegeln aber nicht das echte Arbeitsleben wieder. Daher immer die Anwender auch während der Entwicklung einbinden und testen lassen. ;)
Severity: Error Component: Navigation Category: Application Source: Reddot.CMS.Rendering.Objects.EscapeLoader.OnGetObject (:0) Message: Locals: Project: {GUID}; ProjectVariant: {GUID}; Language(Page): {GUID}; Page(ID/UUID): {ID}; ContentClass: {GUID}; RenderMode: {Preview|SmartEdit|Publish}; RequestId: {ID}; System.NullReferenceException: Object reference not set to an instance of an object. at Reddot.CMS.Rendering.Objects.EscapeLoader.OnGetObject(String[] objectArray, IObjectLoadManager objectLoadManager, IPageRenderingContext context)
Für diese Meldung gibt es eine sehr einfache Ursache, wenn man den EscapeLoader z.B. wie folgt verwende und der Text leer ist.
<%!! Escape:EncodeHtml(String:<%textElement%>) !!%>
Wir konnten zwei Lösungen ermitteln. Die erste wäre eine if-query Bedingung um den EscapeLoader setzen, wenn nicht 100% garantiert werden kann, dass immer ein Text vorhanden ist. Oder die Abfrage umbauen, sofern möglich, z.B. auf:
<%!! Context:CurrentPage.GetElementByName(String:textElement).GetHtml().EncodeHtml() !!%>
Alternativ kann man auch mit den "Conditional Blockmarkierungen" spielen ;).
... ist Senior Site Reliability Engineer bei der Vodafone GmbH in Düsseldorf. Seit dem Jahr 2007 betreut er zusammen mit seinen Kollegen die OpenText- (vormals RedDot-) Plattform Web Site Management für die deutsche Konzernzentrale.
Er entwickelt Erweiterungen in Form von Plug-Ins und PowerShell Skripten. Seit den Anfängen in 2001 (RedDot CMS 4.0) kennt er sich speziell mit der Arbeitweise und den Funktionen des Management Server aus.