How to create a microflow for donating amount

1
How to create a microflow for donating amount, where 50000 is the fund required so If i donate an amount say, 20000 the result should show as 30000 and when the total amount is funded, message should be displayed as the total amount has been funded, so that the donors wont be able to donate anymore. Please help me in creating the microflow  
asked
8 answers
1

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.

answered
0



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?

answered
0

For you ref: 

 

This is a sample logic I have put. You can add your logic in a similar way

 

answered
0

below is the microflow that i createdbelow is the microflow that i created

answered
0

I had created an overview page, but where should I use the reference selector?

answered
0

Iam not getting sir. Im getting the same error as An error occured, please contact your administrator

answered
0



This is the console that I got

answered
0

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)
 

answered