by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Sep 18 20:56

    rsoika on master

    [maven-release-plugin] prepare … (compare)

  • Sep 18 20:56

    rsoika on imixs-workflow-5.2.5

    (compare)

  • Sep 18 20:56

    rsoika on master

    [maven-release-plugin] prepare … (compare)

  • Sep 18 20:48

    rsoika on master

    updated version microfile and m… (compare)

  • Sep 18 20:28
    rsoika edited #703
  • Sep 18 20:24
    rsoika closed #703
  • Sep 18 20:24
    rsoika edited #703
  • Sep 18 20:23
    rsoika edited #703
  • Sep 18 20:22
    rsoika closed #705
  • Sep 18 20:18
    rsoika labeled #703
  • Sep 18 20:18

    rsoika on master

    fixed Issue #703 (compare)

  • Sep 17 20:28
    rsoika commented #706
  • Sep 17 20:18
    rsoika commented #706
  • Sep 17 20:09
    rsoika commented #706
  • Sep 17 20:05
    rsoika labeled #706
  • Sep 17 20:05
    rsoika opened #706
  • Sep 17 17:08

    rsoika on master

    fixed pom version (compare)

  • Sep 17 13:30
    rsoika labeled #705
  • Sep 17 13:30

    rsoika on master

    fixed Issue #705 (compare)

  • Sep 17 13:28
    rsoika labeled #705
Ralph Soika
@rsoika
Yes maybe you need to rebuild the Lucene Index. Have you installed the Admin Client? There you have the option to rebuild the index (admin-p) and also to upgrade your existing data. But to sort this issue out - can you see the data of new created workitems in your application?
Also in Version 5.0 we introduced a new JSF controller technique which is much faster. Have you seen this?
Emily Koranda
@ekoranda
Thanks for your help. We have the sample application 5.0.0 and my application running in the same wildfly. We've also learned how to run the admin tool which is deployed in a different container but we are able to update and see workitems. We wanted to make sure we didn't have any corrupted data so we deleted all of our test data and created completely new databases however we are having the same problem. In the admin tool we can see that the data is there we just aren’t able to access it in the webpage with the code I mentioned above using a controller.
Ralph Soika
@rsoika
But did the sample application work? Can you create and view data there?
Ralph Soika
@rsoika
The question is which query did define your proposalController? Take a look at the jsf-example class 'TasklistController'
Emily Koranda
@ekoranda
Hello Ralph. I am able to create and view data in the sample application. My proposalController is identical to TasklistController I just changed the name of it. I am able to view the workflow data that starts with '$', however none of the workflow data that I manually added to the workflow by using the code: value="#{workflowController.workitem.item['email']}".
Ralph Soika
@rsoika
but this sounds that even in the admin client you can not see the item 'email' - right?
Emily Koranda
@ekoranda
In the admin client I can see the item 'email'. And I can also see the data in new created workitems.
Ralph Soika
@rsoika
ok - now I understand :-) just add the following line in your proposalController
this.setLoadStubs(false);
otherwise the view controller loads only data stored in the lucene index itself - which is a new feature to improve performance. In your case you can load the data directly from the database - means do not load the stubs.
I will change this in the example code as well
Emily Koranda
@ekoranda
Thank you Ralph, adding in the line fixed all the issues I was having.
Ralph Soika
@rsoika
Great! :-)
Emily Koranda
@ekoranda

Hello Ralph. I am working on implementing the mail plugin however was running into some errors. I added logging commands and learned that the method getRecipients in mailPlugin.java is including the logging username as a recipient which causes an error because the username is not a valid email. Do you know how I could fix this so that the username is not included in the recipients?

This is the error that I am getting:

WARNING [org.imixs.workflow.engine.plugins.MailPlugin] (default task-4) close failed with exception: javax.mail.SendFailedException: Invalid Addresses;
nested exception is:
com.sun.mail.smtp.SMTPAddressFailedException: 553 5.1.2 The recipient address <emily> is not a valid RFC-5321 address. cx22sm389452pjb.25 - gsmtp

Where 'emily' is my username.

Ralph Soika
@rsoika

You need a custom implementation of the MailPlugin. Just extend the mailPlugin and overwrite the method getInternetAddress()

public InternetAddress getInternetAddress(String aAddr) throws AddressException {
        // is smtp address skip profile lookup?
        if (aAddr.indexOf('@') > -1)
            return super.getInternetAddress(aAddr);
        else
          return null;
}

You my also add some custom code to lookup the e-mail address from a user profile or ldap directory....

Emily Koranda
@ekoranda
Hello Ralph Im wanting to make some of the pages on my webapp to only be available to some of the actors that I defined in my model. I want to make a tab to only be visible able to my actor 'manager'. Is there a way to tell what actor the current user is part of? Or to be able to tell if the current user is an owner of the current workitem? Is there a way to be able to do this?
Ralph Soika
@rsoika
The LoginController provides methods to ask for Roles. And a workitem provides the item $isAuthor to indicate if the current user has write access to the current workitem
you can also test the item $owner to see if the current user is owner of a workitem and than hide elements on your form
Ralph Soika
@rsoika
Emily Koranda
@ekoranda

Thanks Ralph I got the .getUserNameList() method to work however I'm wondering how I can create my own unique roles. Currently I am using curly brackets to add a static list of user ids. However I would like my roles to show up when I use the getUserNameList() method. I am using wildfly to try to add the role 'reviewer'. In the process properties of the model I have defined the actor reviewer|namReviewer. In my sampleapp-roles.properties I have given the user 'Emily' the following roles:

emily=IMIXS-WORKFLOW-Author,IMIXS-WORKFLOW-Reader,reviewer

In my imixsrealm.properties I have defined reviewer as:

reviewer=org.imixs.ACCESSLEVEL.reviewer.

However when I use the .getUserNameList() method reviewer is not showing up as one of the roles. What should I be doing so that I'm able to add the new role?

Ralph Soika
@rsoika

This is an intressting point. And we have different mechansims to archive this.

One way is to define an external String Resource with the name 'ACCESS_ROLES'. You can provide a list of application specific Roles. The method getUserNameList will test these role names by ctx.isCallerInRole(testRole). I think, this is what you are searching for.
See here. But you need to define the resource 'ACCESS_ROLES' by the ejb-jar.xml descriptor which is not very elegant.

A smarter way is the CDI UserGroupEvent. See here.
You can observe this event and simply return a List of your application specific user roles.

To check if the user isInRole you can do this:

public void onUserGroupEvent(@Observes UserGroupEvent userGroupEvent) {
    List<String> customGroups = new ArrayList<String>();
    if (ctx.isCallerInRole("reviewer")) {
        customGroups.add("reviewer");
    }
    userGroupEvent.setGroups(customGroups);
}
Ralph Soika
@rsoika
To take the discussion a little further: A role 'reviewer' should actually not be necessary in an Imixs workflow model. A task 'review' should be set with an appropriate ACL. That is, the assigned groups should be organization specific rather than technical. For example, if the Finance department is responsible for the review, than the task should be assigned to the group 'finance'. This makes it much easier to model your process on a organization level. We ask our own customers: which departments are involved in the process and which task are they responsible for? In this way there is no need to 'pollute' your workflow application with technical roles.
Emily Koranda
@ekoranda
Hello ralph I think I was misusing the word 'role'. I want to create a group with actors in which I'm able to see using the getUserNameList() method so that I can make it so that only groups can see different webpages in my webapp regardless of what stage the workitem is in. However I think I am overall unclear on how to make a group without defining it as a static list in the model. On this page: https://www.imixs.org/doc/modelling/main_editor.html, it mentions that the workflow engine maps the user to the group during runtime however I am unclear how you would do this using wildfly?
Ralph Soika
@rsoika
I added a new page providing more details about the role mapping: https://www.imixs.org/doc/quickstart/roles_responsibilities.html
However, if you really need a technical role - independent from the workflow status - than just add the role as you declared the Imixs-Access-Roles and use the method ctx.isCallerInRole(testRole) from Java EE to test if your user is assigend to. You can use the LoginController for this.
Lenny
@lennycode
I'm having issues with the docker microservice. I've tried it in Windows and in a fresh Ubuntu. I can access the homepage, but calls to the API either 404 or return blank.
govindrk
@govindrk
@rsoika
Hello ralph,
i am trying to implement a workflow/orchestration engine for our projects. The human interaction at the beginning is very minimal. My requirement is to host the workflow as standalone (microservice), which will orchestration the process flow by invoking other Rest APIs, send notifications, retry in case of failure and complete the process. We are using Spring Boot, Docker on Cloud.
Please let me know your thoughts and any document for imixs-spring boot. Thanks Govind
Ralph Soika
@rsoika
Take a look at the imixs-saga project on github. We put all the components into a new separate project. But in its core it is always a imixs-workflow engine running as a microservice which can do the orchestration. https://github.com/imixs/imixs-saga
srwarner
@srwarner
Does Imixs have a technique to test 'what-if's for changes in a business process?