Solved

Registering MPM issue

  • 1 October 2019
  • 3 replies
  • 370 views

Userlevel 6
Badge +20
When registering a new FSM MPM, even after configuring all the parameters in "Perform Definitions" correctly, MPM throwing the following error when invoking.
"Metadata not found for YourMPMName Contact your system administrator for assistance."
icon

Best answer by Isuru Wijeratna 25 December 2019, 16:05

View original

3 replies

Userlevel 3
Badge +2
Check the Class and method signature is matching with the MPM you configured in Perform Definitions. And check whether the class the MPM method contains is public.
Userlevel 5
Badge +17
Check the namespace and class name. They need to match EXACTLY what you have in the ApplicationExtension node of the server web.config and follow these rules:

1) The namespace must be of the form .BusinessServer.BusinessPolicies.Component where component_name is one of the existing FSM components like 'SharedTables', 'RepairCenter', 'ServiceContracts', etc.

2) The class name MUST end with 'CustBusPolicyMgr'.

For example:
code:
namespace Acco.BusinessServer.BusinessPolicies.SharedTablesComponent
{
public class SharedTablesCustBusPolicyMgr : SharedTablesBusPolicyMgr
{
...
Userlevel 6
Badge +21

Yes. This is one of the god question. MPM is names as “Matrix Perform Message”. simply what happen is you will call a method in server side by passing XML message. that given XML has information about perform name and parameters. FSM framework will identify the method and call it dynamically. hence, you have to configure few things before it works fine.

 

  1. Make sure the namespace is correct in web.config

Each class file in C#, you can find out a namespace. it is a combination “component name” and the “namespace” which you have mentioned in the web.config for CustBusPOlicyMgrs class

  1. Class file should be inherited from relevant PolicyMgr 

 

in this screenshot,

ServiceLogisticsBusPolicyMgr : base line business policy manager class

Your method name should be public

AcmeShipping.BusinessPolicies : namespace in web.config

ServiceLogisticsComponant: component name which you set when create the perform Definition

 

  1. Should create a perform Definition to your method. (this is case sensitive and it should be 100% equal to your method names, namespace, and parameter name and types.)

perform name: “perform_” + your given name. adding “perform_” prefix is mandatory

  1. build the code in the same .net framework level of the application ( Same level will not do any run-time binding issues) and put dll in to correct folder.
  2. restart the IIS application pool and do recycle. ( according to you do the server side change this is mandatory)
  3. refresh cache

then retry. these are the things you have follow and it should work.

 

your error “Metadata not found “ is because it is not possible to find out correct Metadata “perform definition” according to your XML message. Make sure all above are correct and values you enter in XML is correct.[perform name and the parameter tags]

 

Reply