how to get logged in User Name and current user system date time in instantiation Form

1
0
-1

I am a beginner in Bonita working on a project

My requirement is to get logged in username and current user system date time

For Username: In business variable default value script I have tried writing the below code

def userName= apiAccessor.getIdentityAPI().getUser(userId).getUserName();

//but how can i get userId as it is an instantiation Form

For current user system date time :I have tried below code in business variable default value script

import java.time.*

LocalDateTime currentdatetime = LocalDateTime.now();

configBdgtWiseApproverVar.createdOn = currentdatetime

getting below error
Caused by: org.bonitasoft.engine.expression.exception.SExpressionEvaluationException: Groovy script throws an exception of type class org.codehaus.groovy.runtime.typehandling.GroovyCastException with message = Cannot cast object '2020-08-11T18:46:29.483977300' with class 'java.time.LocalDateTime' to class 'java.time.OffsetDateTime'

Please suggest

1 answer

1
0
-1

Hello,

the server-side is not running by a user, so that's why in operation, you will not have any "userId". You have to capture this information on the form, and send it in the contract.

To do that:

* You can use the REST API "unused" (do a F12 and access the Bonita Portal: you will see this REST API)

* or use the REST API CONTEXT : it will give you this information too https://community.bonitasoft.com/project/restapicontext

if you want to use this information in a connector, you can search in the API who execute the task. It's not so simple, but more secure if you don't want to trust the contract.

For the time, depending on what you have in your BDM configBdgtWiseApproverVar.createdOn

It seems the BDM expect a java.time.OffsetDateTime

so, use

OffsetDateTime.now()

Hope this help

Notifications