Samstag, 10. August 2013

Beheben von Timeout Problemen bei Skriptausführung

Bei der Verarbeitung von Querys oder Aufruf von Methoden im AX, die ein längere Laufzeit haben. kann es vorkommen das der Timeout des WebParts überschritten wird. Um dies zu verhindern kann man den Timeout beim betreffenden WebControls erhöht werden.

using System.Web.UI;

protected void Page_Load(object sender, EventArgs e) 
{
  
 ScriptManager scripts = ScriptManager.GetCurrent(this.Page);
        if (scripts != null)
 {
   scripts.AsyncPostBackTimeout = 600; 
 } 
}
 
In diesem Source Beispiel wird der Postback Timeout vom 600 Sekunden erhöht, der Standardwert ist 90 Sekunden.

Verwendung von AX Labels im Enterprise Portal

Neben der durch Feldbezeichnungen und Feldgruppen automatisch durchgeführte Label Nutzung, können im Enterprise Portal einzelne Labes aus den Label Dateien genutzt werden. Hierfür muss die jeweilige LabelId bekannt sein und die jeweiligen Label Dateien auf dem AOS-Server ausgeliefert sein.

Grundsätzlich gibt es zwei Möglichkeiten auf die Labels innerhalb des Enterprise Portals zuzugreifen. Zum einen über das ASP .NET-Markup oder aus dem Source des jeweiligen Web oder auch User Controls.

ASP .NET-Markup

Sie können Labels von Microsoft Dynamics AX in der Markup für eines Web oder User Controls verwenden.

<%$label:@SYS1234%>

Der um für das Label nun das jeweiligen Lokalisierten Label aus AX zu verwenden. Kann das folgt  ASP.NET-Markup verwendet werden.

<asp:Label ID="Label1" runat="server" Text="<%$axlabel:@SYS1234%>"></asp:Label>

Source Code

Microsoft Dynamics AX Label können auch in Source des Web oder des User Controls verwendet werden. Hier für wird die Labels Klasse das dem Namespace Microsoft.Dynamics.Framework.Portal.UI benötigt. Diese stellt die Methode GetLabel zum auslesen des AX Labels zur Verfügung.

this.PageDefinition.pageTitle = Labels.GetLabel("@SYS131104");

siehe auch AX 2009 EP Development CookBook