parseInteger doesnt work and parseDateTime milliseconds has an extra zero

0
Hi everybody,   Within a microflow I am trying to parse a string information, e.g. 00:08:15 to either an integer, with parseInteger($entity/string) This does not work, I tried adding a format, e.g. ‘##.##,##’, but this just gets me 00.000  or alternatively to an unlocalized time (as this refers to 8 seconds and 15 milliseconds, and is not a localized time stamp) with parseDateTime($entity/string, ‘mm:ss:SSS’), but this gives me 00 minutes, 08 seconds and 015 milliseconds → ‘00:08:015’ and this extra 0 falsifies the information.   Does anybody have a solution? Thanks in advance :)
asked
4 answers
0

Hi, 

DateTime representation is supposed to work like this.

Formatting 15 with 3 digits can only be written as 015 and milliseconds only accepts SSS format.

If you would want to write it like 150 then it will falsify your data even more, as it would return 150 milliseconds.

If you need date time value, then you can only represent your date like how it is returned.

If your want to render it as string then string concatenation could be suggested, but its already a string.

Would be helpful if you can define a little bit more of what you are trying to achieve.

answered
1

Hi,

try using the pattern mm:ss:SS instead :)

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/SimpleDateFormat.html

answered
0

Hi Lukas

This leads to the following error:

 

com.mendix.modules.microflowengine.MicroflowException: Failed to evaluate expression, error occurred on line 1, character 1
parseDateTime($Lauf/Finish, 'mm:ss:SS')
^

	at SkiAnalytics.StringToDateTime (CreateAndChange : 'Create Tabelle(DateTime)')

Advanced stacktrace:
	at com.mendix.languages.mxexpressions.MxExpression.evaluate(MxExpression.scala:21)

Caused by: com.mendix.languages.expressions.ExpressionException: java.text.ParseException: Unparseable date: "00:08,15"
	at com.mendix.languages.expressions.Expr.evaluate(Expr.java:34)

Caused by: java.text.ParseException: Unparseable date: "00:08,15"
	at java.base/java.text.DateFormat.parse(DateFormat.java:395)
	at com.mendix.languages.expressions.DateTimeFunctionCallEvaluator.evaluateParseDateTime(DateTimeFunctionCallEvaluator.java:66)
	at com.mendix.languages.expressions.FunctionCallExpr.evaluateExpression(FunctionCallExpr.java:120)
	at com.mendix.languages.expressions.Expr.evaluate(Expr.java:30)
	at com.mendix.languages.mxexpressions.MxExpression.evaluate(MxExpression.scala:14)
	at com.mendix.modules.microflowengine.actions.mxobject.ChangeActionItem.expressionResult(ChangeActionItem.scala:23)
	at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor.$anonfun$executeChanges$1(ChangeItemsExecutor.scala:32)
	at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor.$anonfun$newValues$1(ChangeItemsExecutor.scala:77)
	at com.mendix.basis.action.user.Changer.$anonfun$changeMembers$5(Changer.scala:44)
	at com.mendix.basis.action.user.Changer.$anonfun$changeMembers$5$adapted(Changer.scala:44)
	at scala.collection.immutable.List.foreach(List.scala:392)
	at com.mendix.basis.action.user.Changer.changeMembers(Changer.scala:44)
	at com.mendix.basis.action.user.Changer.changeMembers$(Changer.scala:34)
	at com.mendix.modules.microflowengine.actions.mxobject.ChangeAction.changeMembers(ChangeAction.scala:15)
	at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor.executeChanges(ChangeItemsExecutor.scala:35)
	at com.mendix.modules.microflowengine.actions.mxobject.ChangeItemsExecutor.executeChanges$(ChangeItemsExecutor.scala:24)
	at com.mendix.modules.microflowengine.actions.mxobject.ChangeAction.executeChanges(ChangeAction.scala:15)
	at com.mendix.modules.microflowengine.actions.mxobject.CreateChangeAction.execute(CreateChangeAction.scala:27)
	at com.mendix.modules.microflowengine.actions.mxobject.CreateChangeAction.execute(CreateChangeAction.scala:10)
	at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.java:47)
	at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.java:215)
	at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.java:165)
	at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:46)
	at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:71)
	at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:49)
	at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:54)
	at com.mendix.basis.actionmanagement.ActionManagerBase$1.execute(ActionManagerBase.java:147)
	at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32)
	at com.mendix.basis.actionmanagement.ActionManagerBase.executeSync(ActionManagerBase.java:152)
	at com.mendix.basis.actionmanagement.MicroflowCallBuilderImpl.execute(MicroflowCallBuilderImpl.scala:40)
	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:29)
	at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.$anonfun$apply$4(RegularClientAction.scala:55)
	at com.mendix.webui.requesthandling.helpers.StateHandling.withState(StateHandling.scala:35)
	at com.mendix.webui.requesthandling.helpers.StateHandling.withState$(StateHandling.scala:32)
	at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.withState(RegularClientAction.scala:45)
	at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.apply(RegularClientAction.scala:53)
	at com.mendix.webui.actions.client.RegularClientAction$Helpers$StateHandler.apply(RegularClientAction.scala:45)
	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:109)
	at scala.util.Try$.apply(Try.scala:213)
	at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2(RegularClientAction.scala:109)
	at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$2$adapted(RegularClientAction.scala:107)
	at com.mendix.webui.requesthandling.helpers.ContextHandling.$anonfun$inContext$5(ContextHandling.scala:47)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
	at com.mendix.basis.actionmanagement.IMonitoredAction$$anon$1.execute(IMonitoredAction.scala:47)
	at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32)
	at com.mendix.basis.actionmanagement.IMonitoredAction.monitor(IMonitoredAction.scala:49)
	at com.mendix.basis.actionmanagement.IMonitoredAction.monitor$(IMonitoredAction.scala:25)
	at com.mendix.webui.requesthandling.helpers.ContextHandling$ClientMonitoredAction.monitor(ContextHandling.scala:59)
	at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:47)
	at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:27)
	at com.mendix.webui.actions.client.RegularClientAction.inContext(RegularClientAction.scala:86)
	at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext(ContextHandling.scala:24)
	at com.mendix.webui.requesthandling.helpers.ContextHandling.inContext$(ContextHandling.scala:19)
	at com.mendix.webui.actions.client.RegularClientAction.inContext(RegularClientAction.scala:86)
	at com.mendix.webui.actions.client.RegularClientAction.$anonfun$execute$1(RegularClientAction.scala:107)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
	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:86)
	at com.mendix.webui.actions.client.RegularClientAction.execute(RegularClientAction.scala:104)
	at com.mendix.webui.requesthandling.ClientRequestHandler.handleAction(ClientRequestHandler.scala:104)
	at com.mendix.webui.requesthandling.ClientRequestHandler.processRequest(ClientRequestHandler.scala:81)
	at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:40)
	at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:76)
	at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:73)
	at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32)
	at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.java:79)
	at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.java:988)
	at com.mendix.m2ee.appcontainer.server.handler.RuntimeHandler.service(RuntimeHandler.java:42)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:755)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:547)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1300)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1215)
	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:500)
	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
	at java.base/java.lang.Thread.run(Thread.java:834)

 

answered
0

Okay, then I understand. 150 milliseconds is the correct amount in this case. 1 tenth, 5 hundreds, 0 milliseconds :)

Then it works like this:

parseDateTime($entity/string + '0' , 'mm:ss,SSS') 

 

Thanks!

answered