Options

Czech chars = RTC Crash?

Troubles_In_ParadiseTroubles_In_Paradise Member Posts: 588
edited 2011-10-14 in NAV Three Tier
Hi guys.I've never seen so much RTC crashes as yesterday.

The scenario is: I'm upgrading a 4.0 Sp1 Czech DB to Nav2009R2, and yesterday I'd to convert one report.
Layout not difficult at all, so I did it in one single shoot. Finished, I ran it and... Crash.
I tried to delete pieces of layout to find the problem, but nothing... if the layout was clean (no controls and code in it) report crashed.
I removed also a lot of code because I thought uhm... maybe it's too heavy for RTC?? but nothing...
In the end my colleague Belias had a great idea! To check the DataSetFieldName property and found the problem.
Obviously the captions had Czech and Slovak translation, and system create DataSetFieldName starting from these translation.
What we found was DataSetFieldNames with characters that in English aren't used (see attachment).
Changing them the report started to work.
What I'm wondering is if is a know issue and if anyone has already faced this problem.

Thx in advance
~Rik~
It works as expected... More or Less...

Comments

  • Options
    beranberan Member, Microsoft Employee Posts: 80
    I cannot see the Cattura.png. Do you have the event log with call stack of the exceptions? Was it send to Watson?

    The call stack might reveal if a hot fix is on its way or not.
    Eric Beran
    Software Design Engineer II
    Dynamics NAV Office 365
    Microsoft

    This posting is provided "AS IS" with no warranties, and confers no rights.
  • Options
    Troubles_In_ParadiseTroubles_In_Paradise Member Posts: 588
    beran wrote:
    I cannot see the Cattura.png. Do you have the event log with call stack of the exceptions? Was it send to Watson?

    The call stack might reveal if a hot fix is on its way or not.

    this is from client eventviewer:
    Type: Microsoft.Dynamics.Nav.Client.NavClientClosingException
    Message: The connection to the server has been lost. The application will close.
    StackTrace:
         at Microsoft.Dynamics.Nav.Client.ExceptionHandler.DoExecute(Func`1 execute)
         at Microsoft.Dynamics.Nav.Client.ExceptionHandler.DoRethrowWithCatchException(Exception exception)
         at Microsoft.Dynamics.Nav.Client.ExceptionHandler.Application_ThreadException(Object sender, ThreadExceptionEventArgs e)
         at System.Windows.Forms.Application.ThreadContext.OnThreadException(Exception t)
         at System.Windows.Forms.Control.WndProcException(Exception e)
         at System.Windows.Forms.Control.ControlNativeWindow.OnThreadException(Exception e)
         at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
         at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
         at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
         at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
         at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
         at System.Windows.Forms.Application.Run(ApplicationContext context)
         at Microsoft.Dynamics.Nav.Client.WinClient.RunCore()
         at Microsoft.Dynamics.Nav.Client.ExceptionHandler.ExecuteAndCatchExceptions(Func`1 execute)
         at Microsoft.Dynamics.Nav.Client.ExceptionHandler.DoExecute(Func`1 execute)
         at Microsoft.Dynamics.Nav.Client.WinClient.Run()
    Source: Microsoft.Dynamics.Nav.Client
    ----------------------------------
    Type: Microsoft.Dynamics.Nav.Types.NavConnectionLostException
    Message: The connection to the server has been lost. The application will close.
    StackTrace:
         at Microsoft.Dynamics.Nav.Client.ExceptionHandler.<>c__DisplayClass2.<DoRethrowWithCatchException>b__0()
         at Microsoft.Dynamics.Nav.Client.ExceptionHandler.ExecuteAndCatchExceptions(Func`1 execute)
    Source: Microsoft.Dynamics.Nav.Client
    ----------------------------------
    Type: Microsoft.Dynamics.Nav.Types.NavConnectionLostException
    Message: The connection to the server has been lost. The application will close.
    StackTrace:
         at Microsoft.Dynamics.Nav.Client.ConnectionStateManager.HandleCommunicationFailure[T](CallServerMethod`1 callServerMethod, Exception e, Int32 messageNumber, String sessionId)
         at Microsoft.Dynamics.Nav.Client.ConnectionStateManager.CallServer[T](CallServerMethod`1 callServerMethod)
         at Microsoft.Dynamics.Nav.Client.ServerInvocationHandler.CallServer[T](CallServerMethod`1 callServerMethod)
         at Microsoft.Dynamics.Nav.Client.ServiceConnectionBase.CallServer[T](CallServerMethod`1 callServerMethod)
         at Microsoft.Dynamics.Nav.Client.ServiceConnection.RunReport(Int32 reportId, Boolean suppressRequestForm, NavRecordState& state, NavDataSet recordDataSet, IList`1 textualFilters)
         at Microsoft.Dynamics.Nav.Client.ServiceConnection.RunReport(Int32 reportId, Boolean suppressRequestForm, NavRecordState& state, NavDataSet recordDataSet)
         at Microsoft.Dynamics.Nav.Client.Actions.RunReportAction.InvokeCore(Boolean async, LogicalControl logicalControl, Object state, UISession uiSession)
         at Microsoft.Dynamics.Framework.UI.Action.InvokeCoreWithErrorHandling(Boolean async, LogicalControl logicalControl, Object state, UISession uiSession)
         at Microsoft.Dynamics.Framework.UI.Action.DoInvoke(LogicalControl logicalControl, UISession uiSession)
         at Microsoft.Dynamics.Framework.UI.ActionControl.Invoke()
         at Microsoft.Dynamics.Framework.UI.Windows.ActionControlAdapterBase.DefaultInvokeAction(LogicalControlAdapter adapter, ActionControl actionControl)
         at Microsoft.Dynamics.Framework.UI.Windows.ActionControlAdapterBase.DefaultInvokeAction(LogicalControlAdapter adapter)
         at Microsoft.Dynamics.Framework.UI.Windows.ActionControlAdapterBase.OnInvoke()
         at Microsoft.Dynamics.Framework.UI.WinForms.ActionPaneActionControlAdapter.<InitializeNativeControl>b__0(Object sender, EventArgs e)
         at Microsoft.Dynamics.Framework.UI.WinForms.Controls.ActionItem.OnButtonClick()
         at Microsoft.Dynamics.Framework.UI.WinForms.Controls.ActionButton.OnMouseUp(MouseEventArgs e)
         at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
         at System.Windows.Forms.Control.WndProc(Message& m)
         at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
         at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
         at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    Source: Microsoft.Dynamics.Nav.Client.ServiceConnection
    ----------------------------------
    Type: System.ServiceModel.FaultException
    Action: http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher/fault
    Message: The server was unable to process the request due to an internal error.  For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect the server trace logs.
    StackTrace:
      
      Server stack trace: 
         in System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
         in System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
         in System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
         in System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
         in System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
         in System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
      
      Exception rethrown at [0]: 
         at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
         at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
         at Microsoft.Dynamics.Nav.Types.INavService.RunReport(ApplicationMethodRequest applicationMethodRequest)
         at Microsoft.Dynamics.Nav.Client.ServiceConnection.<>c__DisplayClass2a.<RunReport>b__29()
         at Microsoft.Dynamics.Nav.Client.ServerCallContext`1.InvokeCall(Object instance)
         at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
         at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
         at System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)
      
      Exception rethrown at [1]: 
         at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
         at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
         at System.Threading.WaitCallback.EndInvoke(IAsyncResult result)
         at Microsoft.Dynamics.Nav.Client.ServerInvocationManager.CallServer[T](CallServerMethod`1 callServerMethod)
         at Microsoft.Dynamics.Nav.Client.ServerInvocationHandler.CallServer[T](CallServerMethod`1 callServerMethod)
         at Microsoft.Dynamics.Nav.Client.ConnectionStateManager.CallServer[T](CallServerMethod`1 callServerMethod)
    Source: mscorlib
    

    and this is from server
    Service: MicrosoftDynamicsNavServer$NAV24 User: *** Type: System.ArgumentNullException Message: Value cannot be null. Parameter name: SourceExpression ParamName: SourceExpression StackTrace: at Microsoft.Dynamics.Nav.Runtime.NavReport.ExecuteReportDataItem() at Microsoft.Dynamics.Nav.Runtime.NavReport.ExecuteReportLoop(NavReportDataItem dataItem) at Microsoft.Dynamics.Nav.Runtime.NavReport.LoopChildDataItems(NavReportDataItem dataItem) at Microsoft.Dynamics.Nav.Runtime.NavReport.ExecuteReportLoop(NavReportDataItem dataItem) at Microsoft.Dynamics.Nav.Runtime.NavReport.LoopRootDataItems() at Microsoft.Dynamics.Nav.Runtime.NavReport.ExecuteReport(Boolean displayResult) at Microsoft.Dynamics.Nav.Runtime.NavReport.RunReportInternal(NavRecord record, Boolean displayResult) at Microsoft.Dynamics.Nav.Runtime.NavReport.RunReport(Nullable`1 requestWindow, Nullable`1 systemPrinter, Boolean runReportModal, NavRecord record, IList`1 reportTextualFilters) at Microsoft.Dynamics.Nav.Runtime.NavReport.RunReport(Int32 reportId, Nullable`1 requestWindow, Nullable`1 systemPrinter, Boolean isRunningAsModal, NavRecord record, IList`1 textualFilters) at Microsoft.Dynamics.Nav.Runtime.NavReport.Run(Int32 reportId) at Microsoft.Dynamics.Nav.Service.NSReport.Run(NavConnection connection) at Microsoft.Dynamics.Nav.Service.NSService.<>c__DisplayClass24.<RunReport>b__23(Connection connection) at Microsoft.Dynamics.Nav.Service.NSService.ExecuteOperation[T](String operationName, ServiceOperation`1 operation, Connection connection, Boolean revertLanguageChanges, WindowsIdentity impersonationIdentity) Source: Microsoft.Dynamics.Nav.Ncl 
    
    ~Rik~
    It works as expected... More or Less...
  • Options
    kinekine Member Posts: 12,562
    I didn't met this problem, because our development is strictly in English. It look slike old report from times when development was in local language or is from partner which is not keeping the standards. I am not surprised that it is not working...special characters could be problem for visual studio and all other parts of the process...

    (and Měna = Currency)
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • Options
    Troubles_In_ParadiseTroubles_In_Paradise Member Posts: 588
    kine wrote:
    I didn't met this problem, because our development is strictly in English.
    So I think the right way to work with "foreign" report is:
    1. to export and delete the language module (CSY for example)
    2. let nav to create DataSetFieldNames for all the fields
    3. import the language module

    in this way I don't lose translations and datasetfieldname will be all in english.
    Am I wrong?
    ~Rik~
    It works as expected... More or Less...
  • Options
    kinekine Member Posts: 12,562
    I am not sure. Because it depends if the name of the control is Czech or English, not the caption... If the name is Czech, language module will not do anything with it...
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • Options
    Troubles_In_ParadiseTroubles_In_Paradise Member Posts: 588
    kine wrote:
    I am not sure. Because it depends if the name of the control is Czech or English, not the caption... If the name is Czech, language module will not do anything with it...
    :-k understood...
    ~Rik~
    It works as expected... More or Less...
Sign In or Register to comment.