Support Article
Pega Marketing campaign failure in production
SA-46980
Summary
When a strategy rule contains a GeoFence Filter, the result become incorrect if the GeoFence Filter is preceded with a component with no data input like a normal Filter Component.
Should the normal Filter component return false, the GeoFence Filter still return result which is incorrect. GeoFence Filter returns an empty page with just pySubjectID populated.
Error Messages
com.pega.pegarules.pub.clipboard.InvalidParameterException: Class not defined in dictionary: PegaMKT-Work-Offer--. Details: Invalid value for aClassName passed to .createPage at com.pega.pegarules.session.internal.mgmt.base.ThreadPageDir.validateClass(ThreadPageDir.java:959) at com.pega.pegarules.session.internal.mgmt.base.AbstractPageDirectory.createPage(AbstractPageDirectory.java:606) at com.pega.pegarules.session.internal.mgmt.base.ThreadPageDir.createPageForPageNew(ThreadPageDir.java:375) at com.pega.pegarules.session.internal.mgmt.PRThreadImpl.createPageForPageNew(PRThreadImpl.java:502) at com.pegarules.generated.activity.ra_action_initiateoffersforcustomer_d8009227b843190fd25067b77a2ec88b.step2_15_circum0(ra_action_initiateoffersforcustomer_d8009227b843190fd25067b77a2ec88b.java:1857) at com.pegarules.generated.activity.ra_action_initiateoffersforcustomer_d8009227b843190fd25067b77a2ec88b.step2_0_circum0(ra_action_initiateoffersforcustomer_d8009227b843190fd25067b77a2ec88b.java:674) at com.pegarules.generated.activity.ra_action_initiateoffersforcustomer_d8009227b843190fd25067b77a2ec88b.perform(ra_action_initiateoffersforcustomer_d8009227b843190fd25067b77a2ec88b.java:107) at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3505) at com.pega.pegarules.session.internal.mgmt.Executable.invokeActivity(Executable.java:10563) at com.pegarules.generated.activity.ra_action_initiatebatchoffer_dafe47fbe294811a1dcc25c988d56f3a.step8_1_circum0(ra_action_initiatebatchoffer_dafe47fbe294811a1dcc25c988d56f3a.java:1066) at com.pegarules.generated.activity.ra_action_initiatebatchoffer_dafe47fbe294811a1dcc25c988d56f3a.step8_0_circum0(ra_action_initiatebatchoffer_dafe47fbe294811a1dcc25c988d56f3a.java:840) at com.pegarules.generated.activity.ra_action_initiatebatchoffer_dafe47fbe294811a1dcc25c988d56f3a.perform(ra_action_initiatebatchoffer_dafe47fbe294811a1dcc25c988d56f3a.java:218) at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3505) at com.pegarules.generated.testgen.Rule_Decision_AAA_BB_FW_DATA_XXXXX_YYYYY_DFdca3189404dad78ad8a15971256055867ff68171_Action_20170928T152732_322_GMT$4$1.onNext(Rule_Decision_AAA_BB_FW_DATA_XXXXX_YYYYY_DFdca3189404dad78ad8a15971256055867ff68171_Action_20170928T152732_322_GMT.java:235) at com.pega.dsm.dnode.api.dataflow.DataFlowStageBatchProcessor.commitBatchInternal(DataFlowStageBatchProcessor.java:102) at com.pega.dsm.dnode.api.dataflow.DataFlowStageBatchProcessor.commitBatch(DataFlowStageBatchProcessor.java:92) at com.pega.dsm.dnode.api.dataflow.DataFlowStageBatchProcessor.onPulse(DataFlowStageBatchProcessor.java:72) at com.pega.dsm.dnode.api.dataflow.DataFlowStage$StageInputSubscriber.onPulse(DataFlowStage.java:320) at com.pega.dsm.dnode.api.dataflow.DataFlowExecutor$QueueBasedDataFlowExecutor.runEventLoop(DataFlowExecutor.java:131) at com.pega.dsm.dnode.api.dataflow.DataFlow$1.emit(DataFlow.java:162) at com.pega.dsm.dnode.impl.stream.DataObservableImpl.subscribe(DataObservableImpl.java:56) at com.pega.dsm.dnode.impl.dataflow.manager.LocalRun.execute(LocalRun.java:149) at com.pega.dsm.dnode.impl.dataflow.manager.LocalRun.lockAndRun(LocalRun.java:87) at com.pega.dsm.dnode.impl.dataflow.manager.LocalRun.run(LocalRun.java:63) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at com.pega.dsm.dnode.impl.prpc.PrpcThreadFactory$PrpcThread.run(PrpcThreadFactory.java:81)
Steps to Reproduce
Schedule a campaign with a strategy with a GeoFence filter preceded with a component with no input data.
Root Cause
A software use or operation error. The marketing filter shapes for example, Geofence are designed to filter incoming inputs.
If there is no input, these shapes act as a driver to support the configuration where they are the first shape in the strategy.
Resolution
An enhancement request, FDBK-23582, has been created for consideration by Pega Product Management.
To overcome this issue, the strategy can be reconfigured:
Switch the order of the Geofence Filter and the regular Filter.
(Or)
Add another Filter shape after the Geofence Filter shape.
Published January 12, 2018 - Updated December 2, 2021
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.