So let me summarize what is happening.
This step:
- update the user so that the approval is needed
is actually performed by calling
PATCH /users/self/<user_key>
or
PATCH /users/<user_key>
depending on whether the caller is the user themselveers or an administrator.
Both invocations reach up to UserLogic#doUpdate that is where any matching
LogicActions#afterUpdate is invoked.
If the update as above is triggering an approval in the defined user workflow,
any propagation is suspended.
This step:
- approve the update
(I assume performed via Console) is instead calling
POST /flowable/userRequests/forms/<form_id>
As you can see from Swagger UI, this all is returning all the propagation
statuses as expected.
Hence, if you want to decorate the result of a form approval - similarly to
what you are doing via LogicActions#afterUpdate for plain updates - you will
have to code this into a workflow task, to be inserted in your definition right
after approval.
Hope this clarifies.
Regards.
On 24/10/23 09:48, Lionel SCHWARZ wrote:
Hi Francesco,
Thanks for your answer.
You should be able to reproduce this with the UserWorkflow defined in the fit
part of Syncope (which I used as a base for my customized workflow definition)
and with the LogicActions implementation attached to the email:
- declare the ExampleLogicAction in the default realm
- create a user in the default realm with a resource
- update the user so that the approval is needed
- approve the update
- check in the log that the afterUdate() receives empty List<PropagationStatus>
AND
- update the user so that the approval is NOT needed
- check in the log that the afterUdate() receives List<PropagationStatus> with
1 item: the propagation of the resource
Best regards
Lionel
----- Le 24 Oct 23, à 8:44, Francesco Chicchiriccò ilgro...@apache.org a écrit :
Hi Lionel,
can you provide a simple project that reproduces this issue?
It should be enough to create a new Maven project from latest stable version
(3.0.5 at this time), change the workflow definition to match your case and
finally provide the steps to reproduce in embedded mode.
Regards.
On 23/10/23 18:10, Lionel SCHWARZ wrote:
To be more specific about the issue, I must tell that I have a flowable
UserWorkflow with approval on user update operations (on certain
circumstances).
It seems that when the update needs approval, the afterUpdate() is called before
approval with an empty List.
When the update does not need approval, the afterUpdate() works fine.
Lionel
----- Le 23 Oct 23, à 17:36, Lionel SCHWARZ lionel.schw...@in2p3.fr a écrit :
Dear all,
I have a customized LogicAction with afterUpdate() implementation, but this
method receives an empty List<PropagationStatus> when called.
Nevertheless, the propagation works fine, and I get the correct REST response
with propagationStatuses and beforeObg/afterObj.
Am I missing something?
Regards
Lionel
--
Francesco Chicchiriccò
Tirasa - Open Source Excellence
http://www.tirasa.net/
Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA, PonyMail
http://home.apache.org/~ilgrosso/