I'm manually creating an MQ-based virtual service for simulating field service calls.
Our XML requests have a handful of tags that are required for matching the request to response (primarily WorkRequestType and MeterType) and upwards of 50-75 additional fields. In trying to build these images, I'm running into difficulties using Signature matching, as some arbitrary customer data lines include "AddressLine2" or "DoingBusinessAs", as well as a variety of other optional data fields.
Ultimately, I want to be able to include ALL possible fields, and if they exist in the actual request, great. If they don't, also great, since I only need a handful of fields to match on. What I don't want to do is create a separate request for each variant. If there are 5 commonly variant tags, I'd have to create 2^5 = 32 variants for each of the 6 work order types.
I'm trying to use a match script, but I'm not sure the logic is being called correctly. If I recall correctly, the match script should override the default matching logic (exact, signature, operation), correct?
My beanshell match script:
boolean operationsMatch = incomingRequest.getOperation().equals(sourceRequest.getOperation());
if (operationsMatch) {
String requestWRT = incomingRequest.getArguments().get("OrderData_WorkReqTypeCode");
String requestMeterMfg = sourceRequest.getArguments().get("ServiceData_Meter_MeterManufacturer");
if(requestWRT.equals("CONNECT METER") && requestMeterMfg.equals("ITR")) {
// true means these arguments match
return true;
}
}
// false means no match
return false;
All the different work orders have the same Operation: "OpsWorkRequest"
Is there anything else I should be looking for?
Apologies in advance for vagueness, it's been a long day.
Thanks for any help!