Hi,
Create an Entity that stores the Fund Amount ( in your Case 50000). Whenever an amount is being Donated, retrieve the Entity which saves the Fund amount and check if the donation amount is greater than the Fund amount, if true Add a change object to the Fund amount and subtract the Amount. In the Show, message Activity shows the Fund amount value that is subtracted.
You should always retrieve the Fund amount object before donating and check against that.
If the Donated amount and Fund amount is the same then show a different message.
This is my domain model. I had already added Fund_Required in Charity entity. Should I need to add that fund required attribute in another entity or can I continue like this and how to do?
For you ref:
This is a sample logic I have put. You can add your logic in a similar way
below is the microflow that i createdbelow is the microflow that i created
I had created an overview page, but where should I use the reference selector?
Iam not getting sir. Im getting the same error as An error occured, please contact your administrator
This is the console that I got
An error has occurred while handling the request. [User 'demo_donor' with session id '6d931bba-XXXX-XXXX-XXXX-XXXXXXXXcf4e' and roles 'Donor']
--------
com.mendix.modules.microflowengine.MicroflowException: Change object 'Some(Charity)' should not be null
at CharityManagement.ACT_Donate (Change : 'Change 'Charity' (Received_Amount)')
Advanced stacktrace:
at com.mendix.modules.microflowengine.MicroflowUtil.processException(MicroflowUtil.java:83)
Caused by: java.lang.IllegalArgumentException: Change object 'Some(Charity)' should not be null
at com.mendix.modules.microflowengine.actions.mxobject.ChangeAction.execute(ChangeAction.scala:43)
at com.mendix.modules.microflowengine.actions.mxobject.ChangeAction.execute(ChangeAction.scala:12)
at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.$anonfun$execute$1(MicroflowObject.scala:32)
at scala.Option.flatMap(Option.scala:283)
at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.scala:29)
at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.$anonfun$executeAfterBreakingIfNecessary$2(MicroflowImpl.scala:167)
at scala.Option.flatMap(Option.scala:283)
at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.scala:167)
at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.scala:114)
at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:58)
at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71)
at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:48)
at com.mendix.core.actionmanagement.internal.InternalCoreAction.call(InternalCoreAction.java:56)
at com.mendix.basis.actionmanagement.ActionManager.$anonfun$executeSync$2(ActionManager.scala:106)
at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)
at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.scala:105)
at com.mendix.basis.actionmanagement.MicroflowCallBuilderImpl.execute(MicroflowCallBuilderImpl.scala:62)
at com.mendix.webui.actions.client.ExecuteMicroflowAction.runMicroflow(ExecuteMicroflowAction.scala:76)
at com.mendix.webui.actions.client.ExecuteMicroflowAction.$anonfun$apply$3(ExecuteMicroflowAction.scala:42)
at com.mendix.webui.actions.client.RegularClientAction$Helpers$.$anonfun$liftEither$1(RegularClientAction.scala:30)
at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.$anonfun$apply$4(RegularClientAction.scala:56)
at com.mendix.webui.requesthandling.helpers.StateHandling.withState(StateHandling.scala:42)
at com.mendix.webui.requesthandling.helpers.StateHandling.withState$(StateHandling.scala:39)
at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.withState(RegularClientAction.scala:46)
at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.apply(RegularClientAction.scala:54)
at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.apply(RegularClientAction.scala:46)
at com.mendix.webui.actions.client.ExecuteMicroflowAction.apply(ExecuteMicroflowAction.scala:43)
at com.mendix.webui.actions.client.ExecuteMicroflowAction.apply(ExecuteMicroflowAction.scala:22)
at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$3(RegularClientAction.scala:113)
at scala.util.Try$.apply(Try.scala:210)
at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2(RegularClientAction.scala:113)
at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2$adapted(RegularClientAction.scala:111)
at com.mendix.webui.requesthandling.helpers.ContextHandling.$anonfun$inContext$5(ContextHandling.scala:57)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
at com.mendix.basis.actionmanagement.ActionMonitoring$.$anonfun$monitor$1(ActionMonitoring.scala:49)
at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)
at com.mendix.basis.actionmanagement.ActionMonitoring$.monitor(ActionMonitoring.scala:49)
at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:57)
at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:31)
at com.mendix.webui.actions.client.RegularClientAction.inContext(RegularClientAction.scala:87)
at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:28)
at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:20)
at com.mendix.webui.actions.client.RegularClientAction.inContext(RegularClientAction.scala:87)
at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$1(RegularClientAction.scala:111)
at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest(ProfileHandling.scala:14)
at com.mendix.webui.requesthandling.helpers.ProfileHandling.profileRequest$(ProfileHandling.scala:10)
at com.mendix.webui.actions.client.RegularClientAction.profileRequest(RegularClientAction.scala:87)
at com.mendix.webui.actions.client.RegularClientAction.execute(RegularClientAction.scala:108)
at com.mendix.webui.requesthandling.ClientRequestHandler.handleAction(ClientRequestHandler.scala:106)
at com.mendix.webui.requesthandling.ClientRequestHandler.processRequest(ClientRequestHandler.scala:79)
at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:37)
at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1(MxRuntimeConnector.scala:50)
at com.mendix.external.connector.MxRuntimeConnector.$anonfun$processRequest$1$adapted(MxRuntimeConnector.scala:50)
at com.mendix.util.classloading.Runner$.withContextClassLoader(Runner.scala:20)
at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.scala:50)
at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.scala:221)
at com.mendix.m2ee.appcontainer.server.handler.RuntimeServlet.service(RuntimeServlet.scala:25)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:230)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:516)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
at java.base/java.lang.Thread.run(Thread.java:834)