Quantcast
Channel: Customer FX
Viewing all articles
Browse latest Browse all 981

Incorrect delpoyment of the DynamicMethods.xml file in the SalesLogix 8.0 web client

$
0
0

We have had several clients report random errors occurring in their SalesLogix v8.0 web client.  No meaningful error is presented to the end user but on the web server's Event Logs you can see something similar to this:

Normal 0 false false false EN-US ZH-TW X-NONE

2013-12-05 08:15:36,025 [23] ERROR SlxClient.InsertSalesOrderPage - SalesLogix Web Client unhandled exception during async postback [SalesLogix Error Id=SLX76DA70529671C361]

{

 "slxErrorId": "SLX76DA70529671C361",

 "mitigation": "AjaxErrorResponse (576)",

 "date": "2013-12-05T08:15:36",

 "utc": "2013-12-05T16:15:36",

 "message": "Could not find the dynamic method BillToShipTo.lstbxShippingAddress_OnChange. Check your dynamicmethods.xml configuration file to ensure that this method exists.",

 "source":"Sage.Platform.DynamicMethod.DynamicMethodLibrary, Sage.Platform, Version=8.0.0.8494, Culture=neutral, PublicKeyToken=null",

 "type": "System.ArgumentException",

 

  "stackTrace": "   at Sage.Platform.DynamicMethod.DynamicMethodLibrary.GetInvoker(String methodName)\r\n   at Sage.Platform.DynamicMethod.DynamicMethodLibrary.Execute(String methodName, Object[] args)\r\n   at

This error references the DynamicMethodLibrary.  This library gets its data from the DynamicMethods.xml file in the root of the SalesLogix client's deployed portal location.  This file is created dynamically by the Application Architect during the build and deploy process.  The file contains all of the C# methods on the various smart parts in the web client.

If you look at a properly formed line in this file it will look something like this:

    <dynamicMethod xsi:type="BusinessRuleMethod" methodName="BillToShipTo.lstbxBillingAddress_OnChange" methodReturnMode="None" returnType="System.Void">
      <preExecuteTargets />
      <primaryTarget targetType="Sage.BusinessRules.CodeSnippets.BillToShipToEventHandlers, Sage.SnippetLibrary.CSharp" targetMethod="lstbxBillingAddress_OnChangeStep" />
      <postExecuteTargets />
    </dynamicMethod>

However an incorrect one will look something like this:

    <dynamicMethod xsi:type="BusinessRuleMethod" methodName="6fbf306a-9ee2-4ed4-a0e5-985babe54703.lstbxShippingAddress_OnChange" methodReturnMode="None" returnType="System.Void">
      <preExecuteTargets />
      <primaryTarget targetType="Sage.BusinessRules.CodeSnippets.BillToShipToEventHandlers, Sage.SnippetLibrary.CSharp" targetMethod="lstbxShippingAddress_OnChange" />
      <postExecuteTargets />
    </dynamicMethod>

Note how a GUID appears instead (shown highlighted above).

To fix this you have one of two options:

  1. Modify the offending code snippet.  You can just add a space or something to modify it.  Do a full build and re-deploy.  Before deploying, delete the DyanmicMethods.xml file from the portal deployment location to ensure it is replaced.  This is often enough to fix the issue.
  2. Modify the deployed DyanmicMethods.xml file directly and change the GUID to the correct value.  You will need to do an IIS reset afterwards.
I have reported this problem to SalesLogix support.  Hopefully a fix will be forthcoming. 

 

 


Viewing all articles
Browse latest Browse all 981

Trending Articles