Hi,

We are trying to map users/roles/groups from an external user's server(Database) and I have to use the same in JoGet while mapping the participant to an activity in my workflow, Kindly let me know is there any builtin feature available for implementing the same in JoGet.

I just went through Directory manager plugin which would be used for this purpose, Any pointers or samples for using this plugin or if any other methods available to implement the above logic would be of much helpful.

Thanks,

Venkat

  • No labels

13 Comments

  1. Yes, we can actually develop DirectoryManager plugin that implements an external user directory (external database is an example). This is the same concept as of how the LDAP Plugin is developed.

    When a custom DirectoryManager plugin is installed and configured, the Setup Users features in Workflow Management Console will be disabled, as DirectoryManager implementation will define how the users/user groups should be fetched from external source.

    Without DirectoryManager plugin, you might need to sync and map the users and user groups records from external database into Joget Workflow.

    1. Hi Tiensoon,

      I tried downloading the JoGet workflow source from the svn as mentioned in the Building from Source for the above mentioned requirement by Venkat for developing the Directory Manager plugin for our requirement, but Im getting incomplete headers message when I tried opening the link "http://svn.github.com/jogetworkflow/jogetworkflow.git". Also I tried downloading it from the main SVN repository at http://dev.joget.org/svn/joget/trunk, since its asking for login I provided my JoGet forum login credentials but its of no use.

      Kindly let me know whether any other option is there for downloading the source or which login credential to be provided for the same.

      Thanks,

      Vignesh

      1. Hi Vignesh, you should try using a SVN client to download the source codes from Github's SVN repo (http://svn.github.com/jogetworkflow/jogetworkflow.git). For example, TortoiseSVN is a good SVN shell for Windows

        1. Hi Tiensoon,

          It worked, thanks a lot for the Info. I will get back to you if I face any issues during the plugin development.

          Thanks,

          Vignesh

          1. Hi Tiensoon,

            I tried setting up the source code as mentioned in the Building from Source link provided, but I'm getting the below error while I tried building the project using mvn install,

            Running org.joget.directory.model.TestDirectoryManagerProxyImpl
            Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 2.172 sec <<< FA
            ILURE!
            Running org.joget.directory.model.TestDirectoryDao
            Tests run: 77, Failures: 0, Errors: 77, Skipped: 0, Time elapsed: 83.576 sec <<<
             FAILURE!

            Results :

            Tests in error:
              test(org.joget.directory.model.TestDirectoryManagerProxyImpl)
              testAddOrganizationParent(org.joget.directory.model.TestDirectoryDao)
              testAddOrganizationChild(org.joget.directory.model.TestDirectoryDao)
              testAssignParentToOrganization(org.joget.directory.model.TestDirectoryDao)
              testAddDepartmentParent(org.joget.directory.model.TestDirectoryDao)
              testAddDepartmentChild(org.joget.directory.model.TestDirectoryDao)
              testAssignParentToDepartment(org.joget.directory.model.TestDirectoryDao)
              testAssignDepartmentToOrganization(org.joget.directory.model.TestDirectoryDao)

              testRecursive(org.joget.directory.model.TestDirectoryDao)
              testUpdateOrganization(org.joget.directory.model.TestDirectoryDao)
              testAddGrade(org.joget.directory.model.TestDirectoryDao)
              testAssignGradeToOrganization(org.joget.directory.model.TestDirectoryDao)
              testAddEmployment(org.joget.directory.model.TestDirectoryDao)
              testUpdateEmployeeGrade(org.joget.directory.model.TestDirectoryDao)
              testAssignEmploymentToDepartment(org.joget.directory.model.TestDirectoryDao)
              testSetEmployeeAsManager(org.joget.directory.model.TestDirectoryDao)
              testAddActiveUser(org.joget.directory.model.TestDirectoryDao)
              testAddInActiveUser(org.joget.directory.model.TestDirectoryDao)
              testSetUserAsEmployee(org.joget.directory.model.TestDirectoryDao)
              testAddGroup(org.joget.directory.model.TestDirectoryDao)
              testAddRole(org.joget.directory.model.TestDirectoryDao)
              testAssignUserToGroup(org.joget.directory.model.TestDirectoryDao)
              testAssignUserToRole(org.joget.directory.model.TestDirectoryDao)
              testGetUserListByName(org.joget.directory.model.TestDirectoryDao)
              testGetUserById(org.joget.directory.model.TestDirectoryDao)
              testGetUserByUsername(org.joget.directory.model.TestDirectoryDao)
              testGetUserByName(org.joget.directory.model.TestDirectoryDao)
              testGetUserByFirstName(org.joget.directory.model.TestDirectoryDao)
              testGetUserByLastName(org.joget.directory.model.TestDirectoryDao)
              testGetUserByRole(org.joget.directory.model.TestDirectoryDao)
              testGetUserByGroup(org.joget.directory.model.TestDirectoryDao)
              testGetActiveUser(org.joget.directory.model.TestDirectoryDao)
              testGetInActiveUser(org.joget.directory.model.TestDirectoryDao)
              testGetGroupList(org.joget.directory.model.TestDirectoryDao)
              testGetGroupById(org.joget.directory.model.TestDirectoryDao)
              testGetGroupByName(org.joget.directory.model.TestDirectoryDao)
              testGetRoleList(org.joget.directory.model.TestDirectoryDao)
              testGetRoleById(org.joget.directory.model.TestDirectoryDao)
              testGetRoleByName(org.joget.directory.model.TestDirectoryDao)
              testGetEmployeeList(org.joget.directory.model.TestDirectoryDao)
              testGetEmployeeById(org.joget.directory.model.TestDirectoryDao)
              testGetEmployeeByCode(org.joget.directory.model.TestDirectoryDao)
              testGetEmployeeByGrade(org.joget.directory.model.TestDirectoryDao)
              testGetEmployeeByDepartment(org.joget.directory.model.TestDirectoryDao)
              testGetEmployeeByOrganization(org.joget.directory.model.TestDirectoryDao)
              testGetManagerList(org.joget.directory.model.TestDirectoryDao)
              testGetManagerByDepartment(org.joget.directory.model.TestDirectoryDao)
              testGetManagerByOrganization(org.joget.directory.model.TestDirectoryDao)
              testGetDepartmentList(org.joget.directory.model.TestDirectoryDao)
              testGetDepartmentById(org.joget.directory.model.TestDirectoryDao)
              testGetDepartmentByName(org.joget.directory.model.TestDirectoryDao)
              testGetDepartmentByOrganization(org.joget.directory.model.TestDirectoryDao)
              testGetDepartmentByParent(org.joget.directory.model.TestDirectoryDao)
              testGetGradeList(org.joget.directory.model.TestDirectoryDao)
              testGetGradeById(org.joget.directory.model.TestDirectoryDao)
              testGetGradeByName(org.joget.directory.model.TestDirectoryDao)
              testGetGradeByOrganization(org.joget.directory.model.TestDirectoryDao)
              testGetOrganizationList(org.joget.directory.model.TestDirectoryDao)
              testGetOrganizationById(org.joget.directory.model.TestDirectoryDao)
              testGetOrganizationByName(org.joget.directory.model.TestDirectoryDao)
              testGetOrganizationByParent(org.joget.directory.model.TestDirectoryDao)
              testGetOrganizationByUser(org.joget.directory.model.TestDirectoryDao)
              testRemoveUserFromGroup(org.joget.directory.model.TestDirectoryDao)
              testRemoveUserFromRole(org.joget.directory.model.TestDirectoryDao)
              testRemoveUserAsEmployee(org.joget.directory.model.TestDirectoryDao)
              testRemoveUser(org.joget.directory.model.TestDirectoryDao)
              testRemoveRole(org.joget.directory.model.TestDirectoryDao)
              testRemoveGroup(org.joget.directory.model.TestDirectoryDao)
              testRemoveEmployeeFromDepartment(org.joget.directory.model.TestDirectoryDao)
              testRemoveEmployeeAsManager(org.joget.directory.model.TestDirectoryDao)
              testRemoveEmployee(org.joget.directory.model.TestDirectoryDao)
              testRemoveGradeFromOrganization(org.joget.directory.model.TestDirectoryDao)
              testRemoveGrade(org.joget.directory.model.TestDirectoryDao)
              testRemoveDepartmentFromOrganization(org.joget.directory.model.TestDirectoryDa
            o)
              testRemoveParentFromDepartment(org.joget.directory.model.TestDirectoryDao)
              testRemoveDepartment(org.joget.directory.model.TestDirectoryDao)
              testRemoveParentFromOrganization(org.joget.directory.model.TestDirectoryDao)
              testRemoveOrganization(org.joget.directory.model.TestDirectoryDao)

            Tests run: 78, Failures: 0, Errors: 78, Skipped: 0

            [INFO] ------------------------------------------------------------------------
            [INFO] Reactor Summary:
            [INFO]
            [INFO] wflow-jdbc ........................................ SUCCESS [1.687s]
            [INFO] wflow-commons ..................................... SUCCESS [0.672s]
            [INFO] wflow-plugin-base ................................. SUCCESS [1.172s]
            [INFO] wflow-directory ................................... FAILURE [1:26.420s]
            [INFO] wflow-form ........................................ SKIPPED
            [INFO] wflow-userview .................................... SKIPPED
            [INFO] wflow-wfengine .................................... SKIPPED
            [INFO] wflow-designer .................................... SKIPPED
            [INFO] wflow-commonsweb .................................. SKIPPED
            [INFO] wflow-formsweb .................................... SKIPPED
            [INFO] wflow-wfweb ....................................... SKIPPED
            [INFO] wflow-designerweb ................................. SKIPPED
            [INFO] wflow-app ......................................... SKIPPED
            [INFO] ------------------------------------------------------------------------
            [INFO] BUILD FAILURE
            [INFO] ------------------------------------------------------------------------
            [INFO] Total time: 1:30.466s
            [INFO] Finished at: Mon Mar 14 16:30:26 GMT+05:30 2011
            [INFO] Final Memory: 5M/9M
            [INFO] ------------------------------------------------------------------------
            [ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.4.3:test (default-test) on project wflow-directory: There are test failures.
            [ERROR]
            [ERROR] Please refer to D:\JoGet Source\wflow-directory\target\surefire-reports
            for the individual test results.
            [ERROR] -> [Help 1]
            [ERROR]
            [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
            [ERROR] Re-run Maven using the -X switch to enable full debug logging.
            [ERROR]
            [ERROR] For more information about the errors and possible solutions, please read the following articles:
            [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
            [ERROR]
            [ERROR] After correcting the problems, you can resume the build with the command

            [ERROR]   mvn <goals> -rf :wflow-directory

            And because of this Im unable to build the project present in the wflow-app/wflow-plugins as well which is getting skipped in the process, Is this error due to some problem with the local setup or Am I missing something here?

            Please help me in this regard.

            Sorry for the long error log.

            Thanks,

            Vignesh

            1. Hi Vignesh, would you mind to post this question under "Source Codes Discussions"?

              Trying to get questions posted in the right directory, so that others can easily find the relevant reference. 

              1. Hi Tiensoon,

                I think the same kinda question has been posted already under the source code discussion older. And i hope it would be bcoz of my sql installation, I would try the same and let you know if that would help me in resolving the issue.

                Thanks,

                Vignesh

                1. Hi Tiensoon,

                  I tried the above option, but its not seems to be working, my sql is running fine without issues. I have also posted the same issue under the source code discussions Build wflow-directory FAILURE folder.

                  Kindly help in this regard.

                  Thanks,

                  Vignesh

            2. Hi,

              Has anyone managed to solve this issue. I am trying to build Joget from source  on Fedora14 and get the same errors as above. I have followed the two line build from source instructions using mvn install, which resulted in numerous .jar files not being found. I have now have all missing .jar files. Running mvn install in the wflow-app and wflow-plugins directory results in 78 errors for the tests. MySql is up and running fine. I even have Joget running. I need to write a plugin, which is why I need to build from source. I can find very little info regarding this issue on the web. If I cannot continue I will have to use a different workflow package. I hope someone can help me. My partial error log is below.

              Karl

              -------------------------------------------------------
               T E S T S
              -------------------------------------------------------
              Running org.joget.directory.model.TestDirectoryManagerProxyImpl
              Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 3.129 sec <<< FAILURE!
              Running org.joget.directory.model.TestDirectoryDao
              Tests run: 77, Failures: 0, Errors: 77, Skipped: 0, Time elapsed: 6.059 sec <<< FAILURE!

              ...

              ...

              Tests run: 78, Failures: 0, Errors: 78, Skipped: 0

              [INFO] ------------------------------------------------------------------------
              [ERROR] BUILD FAILURE
              [INFO] ------------------------------------------------------------------------
              [INFO] There are test failures.

              1. Hi Karl,

                This error is basically beacuse datasource is down. I had been in the same situation and Tiensoon helped me in fixing the issue. You have to try the below -

                When we build from source, the dependent datasource configuration file is kept in the OS' user directory. For example, in my Windows instance, the dependent datasource config file is kept in C:\Users\myname\wflow\datasource-sampledb.properties

                Try to take a look at yours, and update your datasource profile accordingly. you have to locate this in your Fedora machine.

                Thanks,

                Arun

                1. Thanks Arun for helping up, you have been a great community member!

                  Where are you residing in? Let's see if I will be at your area anytime soon to pass you a tshirt

                  1. Sure Tiensoon. I started with doing POC and now integrating workflow with other applications. I'm still learning and I know how hard it will be in the initial few days for setting up and getting things in place. I think people should not lose hope on the tool as they weren't able to fix the errors that come up. Its just setup issue not a tool issue. So I wanted to contribute to the forum questions based on my experiences and help people reduce the development effort.

                    I'm currently in Charlotte, NC, USA and thanks for offering me a tshirt :).

                    We think JoGet is a great workflow tool and has a great potential than other tools in market now. Congrats to your team and keep the ball rolling!!

                    1. Arun, you have got an email ;)