tomolimo / processmaker

GLPI plugin that provides an interface with ProcessMaker (http://www.processmaker.com/)
31 stars 11 forks source link

Problem when install #2

Closed easjrgrp closed 8 years ago

easjrgrp commented 8 years ago

I have interest in running your plugin, but something wrong happaned when i try to install.

Versions (everything up to date): CENTOS 7 GLPI: 0.83.8 ProcessMaker: 2.8 ProcessMaker Plugin: 2.4.1

I downloaded the page plugin installed all dependencies, and when I start the installation page of plugins closes and clicking again plugins it appears without being installed, and the option to install appears again, and when I try the same thing happens again . Only ProcessMaker user was created. What can I do to fix this?

tomolimo commented 8 years ago

Hello, Sorry for being long to answer to you (I was in holidays:)). Could you have a look at log files in glpi/files/_log ? Did you follow the wiki for ProcessMaker installation and configuration? Regards, Tomolimo

easjrgrp commented 8 years ago

hello, No problem, we all need some holidays :)). I followed the wiki for installing and configuring ProcessMaker plugin. To ease debugging, moved the installation of GLPI and ProcessMaker to XAMPP. both systems are operating without problem but when I run the plugin the same thing happens, creates ProcessMaker user and nothing else. the log file has the messages: 2015-12-30 14:47 Warning(2): SoapClient::SoapClient(http://localhost//sysworkflow/pt/classic/services/wsdl2): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found

Backtrace : C:\xampp\htdocs\glpi2\plugins\processmaker\inc\processmaker.class.php:133 SoapClient->SoapClient() C:\xampp\htdocs\glpi2\plugins\processmaker\inc\processmaker.class.php:211 PluginProcessmakerProcessmaker->openSoap() C:\xampp\htdocs\glpi2\plugins\processmaker\hook.php:265 PluginProcessmakerProcessmaker->login() C:\xampp\htdocs\glpi2\inc\plugin.class.php:582 plugin_processmaker_install() C:\xampp\htdocs\glpi2\front\plugin.php:74 Plugin->install()

2015-12-30 14:47 Warning(2): SoapClient::SoapClient(): I/O warning : failed to load external entity "http://localhost//sysworkflow/pt/classic/services/wsdl2" Backtrace : C:\xampp\htdocs\glpi2\plugins\processmaker\inc\processmaker.class.php:133 SoapClient->SoapClient() C:\xampp\htdocs\glpi2\plugins\processmaker\inc\processmaker.class.php:211 PluginProcessmakerProcessmaker->openSoap() C:\xampp\htdocs\glpi2\plugins\processmaker\hook.php:265 PluginProcessmakerProcessmaker->login() C:\xampp\htdocs\glpi2\inc\plugin.class.php:582 plugin_processmaker_install() C:\xampp\htdocs\glpi2\front\plugin.php:74 Plugin->install()

2015-12-30 14:47 SoapFault Object ( [message:protected] => SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://localhost//sysworkflow/pt/classic/services/wsdl2' : failed to load external entity "http://localhost//sysworkflow/pt/classic/services/wsdl2"

[string:Exception:private] => 
[code:protected] => 0
[file:protected] => C:\xampp\htdocs\glpi2\plugins\processmaker\inc\processmaker.class.php
[line:protected] => 133
[trace:Exception:private] => Array
    (
        [0] => Array
            (
                [file] => C:\xampp\htdocs\glpi2\plugins\processmaker\inc\processmaker.class.php
                [line] => 133
                [function] => SoapClient
                [class] => SoapClient
                [type] => ->
                [args] => Array
                    (
                        [0] => http://localhost//sysworkflow/pt/classic/services/wsdl2
                        [1] => Array
                            (
                                [soap_version] => 2
                                [compression] => 32
                            )

                    )

            )

        [1] => Array
            (
                [file] => C:\xampp\htdocs\glpi2\plugins\processmaker\inc\processmaker.class.php
                [line] => 211
                [function] => openSoap
                [class] => PluginProcessmakerProcessmaker
                [type] => ->
                [args] => Array
                    (
                    )

            )

        [2] => Array
            (
                [file] => C:\xampp\htdocs\glpi2\plugins\processmaker\hook.php
                [line] => 265
                [function] => login
                [class] => PluginProcessmakerProcessmaker
                [type] => ->
                [args] => Array
                    (
                        [0] => 1
                    )

            )

        [3] => Array
            (
                [file] => C:\xampp\htdocs\glpi2\inc\plugin.class.php
                [line] => 582
                [function] => plugin_processmaker_install
                [args] => Array
                    (
                    )

            )

        [4] => Array
            (
                [file] => C:\xampp\htdocs\glpi2\front\plugin.php
                [line] => 74
                [function] => install
                [class] => Plugin
                [type] => ->
                [args] => Array
                    (
                        [0] => 2
                    )

            )

    )

[previous:Exception:private] => 
[faultstring] => SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://localhost//sysworkflow/pt/classic/services/wsdl2' : failed to load external entity "http://localhost//sysworkflow/pt/classic/services/wsdl2"

[faultcode] => WSDL

)

2015-12-30 14:47 Processmaker Plugin: Soap problem (0.000", 7.64Mio) 2015-12-30 14:56 Warning(2): SoapClient::SoapClient(http://localhost//sysworkflow/pt/classic/services/wsdl2): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found

Backtrace : C:\xampp\htdocs\glpi2\plugins\processmaker\inc\processmaker.class.php:133 SoapClient->SoapClient() C:\xampp\htdocs\glpi2\plugins\processmaker\inc\processmaker.class.php:211 PluginProcessmakerProcessmaker->openSoap() C:\xampp\htdocs\glpi2\plugins\processmaker\hook.php:265 PluginProcessmakerProcessmaker->login() C:\xampp\htdocs\glpi2\inc\plugin.class.php:582 plugin_processmaker_install() C:\xampp\htdocs\glpi2\front\plugin.php:74 Plugin->install()

2015-12-30 14:56 Warning(2): SoapClient::SoapClient(): I/O warning : failed to load external entity "http://localhost//sysworkflow/pt/classic/services/wsdl2" Backtrace : C:\xampp\htdocs\glpi2\plugins\processmaker\inc\processmaker.class.php:133 SoapClient->SoapClient() C:\xampp\htdocs\glpi2\plugins\processmaker\inc\processmaker.class.php:211 PluginProcessmakerProcessmaker->openSoap() C:\xampp\htdocs\glpi2\plugins\processmaker\hook.php:265 PluginProcessmakerProcessmaker->login() C:\xampp\htdocs\glpi2\inc\plugin.class.php:582 plugin_processmaker_install() C:\xampp\htdocs\glpi2\front\plugin.php:74 Plugin->install()

2015-12-30 14:56 SoapFault Object ( [message:protected] => SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://localhost//sysworkflow/pt/classic/services/wsdl2' : failed to load external entity "http://localhost//sysworkflow/pt/classic/services/wsdl2"

[string:Exception:private] => 
[code:protected] => 0
[file:protected] => C:\xampp\htdocs\glpi2\plugins\processmaker\inc\processmaker.class.php
[line:protected] => 133
[trace:Exception:private] => Array
    (
        [0] => Array
            (
                [file] => C:\xampp\htdocs\glpi2\plugins\processmaker\inc\processmaker.class.php
                [line] => 133
                [function] => SoapClient
                [class] => SoapClient
                [type] => ->
                [args] => Array
                    (
                        [0] => http://localhost//sysworkflow/pt/classic/services/wsdl2
                        [1] => Array
                            (
                                [soap_version] => 2
                                [compression] => 32
                            )

                    )

            )

        [1] => Array
            (
                [file] => C:\xampp\htdocs\glpi2\plugins\processmaker\inc\processmaker.class.php
                [line] => 211
                [function] => openSoap
                [class] => PluginProcessmakerProcessmaker
                [type] => ->
                [args] => Array
                    (
                    )

            )

        [2] => Array
            (
                [file] => C:\xampp\htdocs\glpi2\plugins\processmaker\hook.php
                [line] => 265
                [function] => login
                [class] => PluginProcessmakerProcessmaker
                [type] => ->
                [args] => Array
                    (
                        [0] => 1
                    )

            )

        [3] => Array
            (
                [file] => C:\xampp\htdocs\glpi2\inc\plugin.class.php
                [line] => 582
                [function] => plugin_processmaker_install
                [args] => Array
                    (
                    )

            )

        [4] => Array
            (
                [file] => C:\xampp\htdocs\glpi2\front\plugin.php
                [line] => 74
                [function] => install
                [class] => Plugin
                [type] => ->
                [args] => Array
                    (
                        [0] => 2
                    )

            )

    )

[previous:Exception:private] => 
[faultstring] => SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://localhost//sysworkflow/pt/classic/services/wsdl2' : failed to load external enti
tomolimo commented 8 years ago

Ok I see, Could go to PM admin interface? And could you test web services? admin in workflow - windows internet explorer_2016-01-04_15-20-03

tomolimo commented 8 years ago

From there you should be able to login to web service, if not then there is a problem deep in PM. We'll see at that moment

tomolimo commented 8 years ago

Another way to test could be to copy/paste the URL for the web services into a browser.

Also I can see that the searched URL is http://localhost//sysworkflow/pt/classic/services/wsdl2 Try to delete the second / like: http://localhost/sysworkflow.... For that change in ProcessMaker plugin the URL of ProcessMaker server you have probably set this / at the end of the server URL....

tomolimo commented 8 years ago

For the test in the browser you should get something like following:

<?xml version="1.0" encoding="UTF-8"?>
   definitions xmlns="http://schemas.xmlsoap.org/wsdl/"  xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xs0="http://www.processmaker.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://www.processmaker.com">-<types>-<xs:schema targetNamespace="http://www.processmaker.com" elementFormDefault="qualified">-<xs:element name="login">-<xs:complexType>-<xs:sequence><xs:element name="userid" type="xs:string"/><xs:element name="password" type="xs:string"/></xs:sequence></xs:complexType></xs:element>-<xs:element name="loginResponse">-<xs:complexType>-<xs:sequence><xs:element name="status_code"  type="xs:integer"/><xs:element name="message" type="xs:string
easjrgrp commented 8 years ago

pm

tomolimo commented 8 years ago

Perfect, then the problem is due to the double // in the URL

easjrgrp commented 8 years ago

I use the URL: processmaker.dev and not localhost, it can lead to this problem?

tomolimo commented 8 years ago

beware that it has to be "http://processmaker.dev" : no '/' at the end (there is a bug if you add a '/' at the end)

easjrgrp commented 8 years ago

pm2

easjrgrp commented 8 years ago

pm3

easjrgrp commented 8 years ago

If I use http: //processmaker.dev/.... works!, but if you use http: // localhost/... not;

tomolimo commented 8 years ago

then you have a web server setup problem, as localhost "should" work too. But for the plugin, you may use "http://processmaker.dev"

tomolimo commented 8 years ago

Hello, Did you retry with the right URL? regards, Tomolimo

easjrgrp commented 8 years ago

hello, not yet, many problems in the network... I will try as soon as possible, maybe tomorrow will be possible continue the test. But i have a doubt, where can i setup the correct URL in the plugin?

regards, Everaldo

tomolimo commented 8 years ago

Hello, Here you are: glpi - setup - windows internet explorer_2016-01-06_07-28-03

regards, Tomolio

easjrgrp commented 8 years ago

hello, unfortunately in my glpi not exist this option !?

general

regards, Everaldo

tomolimo commented 8 years ago

Did you enable ProcessMaker plugin?

easjrgrp commented 8 years ago

Plugins...

plugins

easjrgrp commented 8 years ago

When a click INSTALL...

plugins2

tomolimo commented 8 years ago

Yes, I can see this is a bug in the install procedure... The default URL is "http://localhost=/" and cannot be changed by interface (this behavior has been changed in latest version which will be for GLPI 0.90).

Let's try to fix this for you Do you have acces to a tool that allow to edit mySQL table records (like phpmyadmin, or else)? If yes, we need to change the URL in the GLPI database in table "glpi_plugin_processmaker_configs" Could you set the field 'pm_server_URL' to "http://localhost" instead of "http://localhost/"? regards, Tomolimo

tomolimo commented 8 years ago

Then we may have something else to do: the plugin is using a special account to get administrator rights over ProcessMaker server. And I forgot to set this in the wiki :( So we'll need to do some database modifications (this has been fixed in latest version of the plugin that will be available for GLPI 0.90). Tell me when you are ready

easjrgrp commented 8 years ago

It worked !

plugins4

plugins3

tomolimo commented 8 years ago

Yes, but you can see the group for glpi users is empty....it means that plugin cannot log into PM server with admin rights. For that you have to first create in PM a new user named 'glpi' with a special password (that's really the problem: I've forgotten the password). Let's see: admin in workflow - windows internet explorer_2016-01-06_15-08-31

admin in workflow - windows internet explorer_2016-01-06_15-10-34

Set any password you want for the 'glpi' user, we'll change it in the database anyway.

tomolimo commented 8 years ago

After user has been created, go to your preferred tool for editing mySQL tables, and connect to your server to the following database: 'wf_workflow' and go to table 'user', select the record for user 'glpi' (you may query on the 'USR_USERNAME' field) and replace the current 'USR_PASSWORD' value by 2b0a4830b22f1f5ef5f8c239f9c8f07e Do the same in the table 'rbac_users' (same fields).

After that the special GLPI user (named 'glpi') has an admin access to PM server and it can add groups, and users from GLPI.

So to do this: go to GLPI plugin list: uninstall the PM plugin, and install it again: it should create at least the default group 'GLPI Requester' into PM server.

easjrgrp commented 8 years ago

Done !

pm

tomolimo commented 8 years ago

then if you uninstall and re-install PM plugin you should be able to see all GLPI users in this group.

tomolimo commented 8 years ago

and this group will be shown in the PM plugin parameters as the one used for GLPI users.

tomolimo commented 8 years ago

oups, sorry to fill in this group you must activate the cron task "pmusers" in GLPI, as it is no longer done during installation but by the cron task

tomolimo commented 8 years ago

glpi - automatic actions - windows internet explorer_2016-01-06_15-36-26

tomolimo commented 8 years ago

you may force execution of the cron: glpi - automatic actions - windows internet explorer_2016-01-06_15-37-35

tomolimo commented 8 years ago

After that I'll explain how groups are synchronized, just tell me when users are in the 'GLPI Requesters' group.

easjrgrp commented 8 years ago

Done !

pm2

tomolimo commented 8 years ago

Perfect!

So as you know GLPI can't manage groups assigned to ticket task, to workaround this I've created a notion of pseudo-groups that are in fact GLPI users with an email that is really a distribution list. And this is mandatory as PM server manages groups assigned to process tasks. So to be clear if you need groups to be assigned to tasks (this permits collective assignments of tasks to groups instead of only one person) you need to prefix GLPI groups by a * (a star), and to create GLPI users with the same name than the groups you want to synchronize into PM server.

Let's take an example: in GLPI create a group: Technicians, put into this group GLPI users (like glpi and tech). Create a pseudo-group: create a user with the very same Technicians set to pseud-group a valid email address (which normally should be a distribution list, but for test you may choose any).

then you redo the 'execute' of the pmusers cron task, you should be able to get a new group in PM server (named *Technicians) along with the users inside this new group.

easjrgrp commented 8 years ago

I created, in GLPI, the group with users, then run again the pmuser cron. In PM the group was created, but without users.

glpi-grp

pm3

easjrgrp commented 8 years ago

So, in PM, I can add manually the users in the group, it is not a problem.

tomolimo commented 8 years ago

in the group name the * (star) prefix is missing: names for groups and pseud-groups must match. change group name and redo the execution of the pmusers cron task

easjrgrp commented 8 years ago

exactly. It worked perfectly !

tomolimo commented 8 years ago

users have been added to PM group?

easjrgrp commented 8 years ago

yes, as planned.

tomolimo commented 8 years ago

If yes, then you are ready to start your first PM process creation! I can help too: just ask for it. I invite you to re-read this: https://forge.glpi-project.org/projects/processmaker/wiki/Concept

tomolimo commented 8 years ago

Thank you for the tests: I'll update the wiki accordingly thank you again, Tomolimo

easjrgrp commented 8 years ago

OK. thank you so much. Now I have too much things to fun ! thank you again, Everaldo

easjrgrp commented 8 years ago

When will be available the version of the plugin for GLPI 0.90? and will be compatible with PM 3.0?

thanks, Everaldo

tomolimo commented 8 years ago

Certainly before end of January 2016.

erivaldofilho2 commented 8 years ago

Hi, I'm having a problem when installing the plugin in glpi, I have done that tip to change the "pm_server_URL" in the database, but still did not work, my server is local, http://localhost/glpi. Can you help me in any way? When is the version of the plugin that supports the glpi 0.9? Hug!

1 2 captura de tela de 2016-03-10 15-21-29

tomolimo commented 8 years ago

Could you please start a new issue? I'll be able to help you tomorrow 8:00 UTC+1.

tomolimo commented 8 years ago

Anyway, as far as I can see, you didn't respect this comment: https://github.com/tomolimo/processmaker/issues/2#issuecomment-168693487 delete any '/' trailing at the end of the URL. In your case you should use http://localhost without any / at the end. But please do not mix your issues with any others, otherwise:it's not possible to have clear view of problems + solutions. regards, Tomolimo