Skip to content

Displaying tickets created from a the simplified interface #3581

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Azgar1998 opened this issue Mar 21, 2025 · 32 comments
Open

Displaying tickets created from a the simplified interface #3581

Azgar1998 opened this issue Mar 21, 2025 · 32 comments

Comments

@Azgar1998
Copy link

Azgar1998 commented Mar 21, 2025

Describe the bug
Hello,
From the simplified GLPI interface, I create tickets from a form (formcreator). However, when I look at the ticket list I see the data from the completed form (f_XXXXX) but I don't see the ticket (t_XXXXX). To see the ticket, I have to enter f_XXXX, then go to the "ticket" tab and then I access the ticket. I did some research on this subject but I can't find my case

Image

To Reproduce
1 Log in to glpi with your user profile (with the simplified interface)

2 Click on a form

3 Fill in the form fields and then confirm

4 Go to "My Support Requests" and then view the data from the previously completed form (f_xxxx)

GLPI / Plugins (please complete the following information):

  • GLPI 10.0.18
  • Formcreator 2.13.10
  • Plugins: Formcreator, news and cmdb

Desktop (please complete the following information):

  • OS: Windows 11
  • Browser : Microsoft EDGE and Firefox
  • Version 134 and 128 ESR for firefox
@Azgar1998 Azgar1998 changed the title Displaying tickets created from a form from the simplified interface Displaying tickets created from a form the simplified interface Mar 21, 2025
@Azgar1998 Azgar1998 changed the title Displaying tickets created from a form the simplified interface Displaying tickets created from a the simplified interface Mar 21, 2025
@btry
Copy link
Collaborator

btry commented Mar 21, 2025

Hi

How many tickets are generated by the form ?

@Azgar1998
Copy link
Author

Azgar1998 commented Mar 21, 2025

Hi,

There are a number of tickets, but not all of them are generated by the form. I didn't notice this before, as we're using the standard GLPI interface. As I'm migrating to the simplified interface, I noticed this problem.
When I create tickets, without using a form, in the simplified interface, I see the ticket t_XXXX appear.

I couldn't tell you the exact number, there are more than 2000

@btry
Copy link
Collaborator

btry commented Mar 21, 2025

If a form generates several tickets, then the behaviour you observed is expected. This is necessary to allow the user to choose the ticket generated by his assistance request.

From your previous answer, I guess that some target tickets have conditions. If this is possible, try to fill the form in a way that only 1 ticket is created. You will see in the list an entry t_xxxx and clicking on it will show the ticket without any intermediate page. In the other cases (no ticket, or several tickets), the entry will be of the form f_xxxx.

@Azgar1998
Copy link
Author

Azgar1998 commented Mar 21, 2025

When a user creates a ticket from the form, I see that all the tickets are associated with this form. I understand the phenomenon better. How do you separate the ticket from the form?

when a user creates a ticket from the form by including all the data from the form filled out by the user but this ticket is not attached to this form

@btry
Copy link
Collaborator

btry commented Mar 22, 2025

Hi

When a user fills and submit a form, his answers are saved (for later display for validation if it is enabled). Then targets are generated. Depending on the configuration of the targets you may generate several tickets, changes or problems with only a subset of the answers from the requester.

when a user creates a ticket from the form by including all the data from the form filled out by the user but this ticket is not attached to this form

This is not normal : each ticket created by the plugin must be associated to an object form_answer which represents the answers of the requester.

@Azgar1998
Copy link
Author

Hi,

What I don't understand is that there is only one ticket created, for a response and not several tickets for a single response to the form.

@btry
Copy link
Collaborator

btry commented Mar 24, 2025

Hi

check if there are conditions applied to your targets. Those conditions allow the administrator to decide if a ticket is actually generated, in function of the answers provided by the requester.

If there are no conditions in any target or you are sure that they are filled in a way that several tickets shall be generated for a givel set of answders, then check the logs in GLPI to see if there are errors related to the submission of the answers (php-errors.log and sql-errors.log).

@Azgar1998
Copy link
Author

Isn't it the fact that I have the administrator profile in addition to the user profile?

@btry
Copy link
Collaborator

btry commented Mar 24, 2025

No, Formcreator does not have such feature.

When you preview a form for the administrator profile some questions (dropdown and GLPI object types) may show different content, and the entity of some targets may vary, but the context which decide if a target is generated should not vary depending on your profile.

@Azgar1998
Copy link
Author

SQL error log:
[2025-03-21 12:45:08] glpisqllog.ERROR: DBmysql::doQuery() in path/to/glpi/src/DBmysql.php line 395
*** MySQL query error:
SQL: INSERT INTO glpi_plugin_formcreator_issues SELECT * FROM ((SELECT DISTINCT NULL as id, IF(glpi_plugin_formcreator_formanswers.name = '', CONCAT('(', glpi_plugin_formcreator_formanswers.id, ')'), glpi_plugin_formcreator_formanswers.name) as name, CONCAT('f_', glpi_plugin_formcreator_formanswers.id) as display_id, glpi_plugin_formcreator_formanswers.id AS items_id, 'PluginFormcreatorFormAnswer' as itemtype, glpi_plugin_formcreator_formanswers.status AS status, glpi_plugin_formcreator_formanswers.request_date AS date_creation, glpi_plugin_formcreator_formanswers.request_date AS date_mod, glpi_plugin_formcreator_formanswers.entities_id AS entities_d, glpi_plugin_formcreator_formanswers.is_recursive AS is_recursive, glpi_plugin_formcreator_formanswers.requester_id AS requester_id, glpi_plugin_formcreator_formanswers.comment AS comment, glpi_plugin_formcreator_formanswers.requester_id AS users_id_recipient FROM glpi_plugin_formcreator_formanswers LEFT JOIN glpi_plugin_formcreator_forms ON (glpi_plugin_formcreator_forms.id = glpi_plugin_formcreator_formanswers.plugin_formcreator_forms_id) LEFT JOIN glpi_items_tickets ON (glpi_items_tickets.items_id = glpi_plugin_formcreator_formanswers.id AND glpi_items_tickets.itemtype = 'PluginFormcreatorFormAnswer') GROUP BY glpi_plugin_formcreator_formanswers.id HAVING COUNT(glpi_items_tickets.tickets_id) != 1) UNION (SELECT DISTINCT NULL as id, IF(glpi_tickets.name = '', CONCAT('(', glpi_tickets.id, ')'), glpi_tickets.name) as name, CONCAT('t_', glpi_tickets.id) as display_id, glpi_tickets.id AS items_id, 'Ticket' as itemtype, IF(glpi_tickets.global_validation IN ('1', '3'),
glpi_tickets.status,
IF(glpi_tickets.status IN ('5', '6'),
glpi_tickets.status,
IF(glpi_tickets.global_validation = '2',
'101',
'102'
)
)
) AS status, glpi_tickets.date AS date_creation, glpi_tickets.date_mod AS date_mod, glpi_tickets.entities_id AS entities_id, 0 as is_recursive, COALESCE(glpi_tickets_users.users_id, 0) as requester_id, glpi_tickets.content AS comment, users_id_recipient AS users_id_recipient FROM glpi_tickets LEFT JOIN glpi_items_tickets ON (glpi_items_tickets.tickets_id = glpi_tickets.id AND glpi_items_tickets.itemtype = 'PluginFormcreatorFormAnswer') LEFT JOIN (SELECT DISTINCT users_id, tickets_id FROM glpi_tickets_users WHERE type = '1' GROUP BY tickets_id ORDER BY id ASC) AS glpi_tickets_users ON (glpi_tickets.id = glpi_tickets_users.tickets_id) WHERE glpi_tickets.is_deleted = '0' GROUP BY glpi_tickets.id HAVING COUNT(glpi_items_tickets.items_id) = 0) UNION (SELECT NULL as id, IF(glpi_tickets.name = '', CONCAT('(', glpi_tickets.id, ')'), glpi_tickets.name) as name, CONCAT('t_', glpi_tickets.id) as display_id, glpi_tickets.id AS items_id, 'Ticket' as itemtype, IF(glpi_tickets.global_validation IN ('1', '3'),
glpi_tickets.status,
IF(glpi_tickets.status IN ('5', '6'),
glpi_tickets.status,
IF(glpi_tickets.global_validation = '2',
'101',
'102'
)
)
) AS status, glpi_tickets.date AS date_creation, glpi_tickets.date_mod AS date_mod, glpi_tickets.entities_id AS entities_id, 0 as is_recursive, COALESCE(glpi_tickets_users.users_id, 0) as requester_id, glpi_tickets.content AS comment, users_id_recipient AS users_id_recipient FROM glpi_tickets INNER JOIN glpi_items_tickets ON (glpi_items_tickets.tickets_id = glpi_tickets.id AND glpi_items_tickets.itemtype = 'PluginFormcreatorFormAnswer') LEFT JOIN (SELECT DISTINCT users_id, tickets_id FROM glpi_tickets_users WHERE type = '1' GROUP BY tickets_id ORDER BY id ASC) AS glpi_tickets_users ON (glpi_tickets.id = glpi_tickets_users.tickets_id) WHERE glpi_tickets.is_deleted = '0' GROUP BY glpi_items_tickets.items_id HAVING COUNT(glpi_items_tickets.items_id) = 1)) AS union_474dfb8b612fe0826a2367c0de7d140a
Error: Incorrect integer value: '' for column glpi.glpi_plugin_formcreator_issues.users_id_recipient at row 1
Backtrace :
src/DBmysql.php:348 DBmysql->doQuery()
plugins/formcreator/inc/issue.class.php:254
plugins/formcreator/inc/issue.class.php:69 PluginFormcreatorIssue::syncIssues()
src/CronTask.php:1027 PluginFormcreatorIssue::cronSyncIssues()
front/cron.php:87 CronTask::launch()
{"user":"@glpi.domain.com"}

php-error.log:
[2025-03-21 16:31:36] glpiphplog.WARNING: Failed to save key "{key}" of type null: rename(/path/to/glpi/files/_cache/translations-10.0.18/a72ff8e7dd77,/path/to/glpi/files/_cache/translations-10.0.18/Z/F/5QKUtRWdGqmZzucG5NbQ): No such file or directory {"key":"cf82067f3a82e05132a6dcb41ec973c8679c6dea","exception":"[object] (ErrorException(code: 0): rename(/path/to/glpi/files/_cache/translations-10.0.18/a72ff8e7dd77,/path/to/glpi/files/_cache/translations-10.0.18/Z/F/5QKUtRWdGqmZzucG5NbQ): No such file or directory at /path/to/glpi/vendor/symfony/cache/Traits/FilesystemCommonTrait.php:117)","cache-adapter":"Symfony\Component\Cache\Adapter\FilesystemAdapter"}
[2025-03-24 08:52:41] glpiphplog.WARNING: *** PHP User Warning (512): No-Reply address is not defined in configuration. in /path/to/glpi/src/Config.php at line 3928
Backtrace :
src/Config.php:3928 trigger_error()
src/NotificationTarget.php:1222 Config::getEmailSender()
src/NotificationTemplate.php:623 NotificationTarget->getSender()
src/NotificationEventAbstract.php:136 NotificationTemplate->getDataToSend()
src/NotificationEvent.php:188 NotificationEventAbstract::raise()
src/ITILFollowup.php:284 NotificationEvent::raiseEvent()
src/CommonDBTM.php:1357 ITILFollowup->post_addItem()
front/itilfollowup.form.php:75 CommonDBTM->add()
public/index.php:82 require()

[2025-03-24 08:52:41] glpiphplog.WARNING: *** PHP User Warning (512): No-Reply address is not defined in configuration. in /path/to/glpi/src/Config.php at line 3928
Backtrace :
src/Config.php:3928 trigger_error()
src/NotificationTarget.php:1222 Config::getEmailSender()
src/NotificationTemplate.php:623 NotificationTarget->getSender()
src/NotificationEventAbstract.php:136 NotificationTemplate->getDataToSend()
src/NotificationEvent.php:188 NotificationEventAbstract::raise()
src/ITILFollowup.php:284 NotificationEvent::raiseEvent()
src/CommonDBTM.php:1357 ITILFollowup->post_addItem()
front/itilfollowup.form.php:75 CommonDBTM->add()
public/index.php:82 require()

[2025-03-24 08:52:41] glpiphplog.WARNING: *** PHP User Warning (512): No-Reply address is not defined in configuration. in /path/to/glpi/src/Config.php at line 3928
Backtrace :
src/Config.php:3928 trigger_error()
src/NotificationTarget.php:1222 Config::getEmailSender()
src/NotificationTemplate.php:623 NotificationTarget->getSender()
src/NotificationEventAbstract.php:136 NotificationTemplate->getDataToSend()
src/NotificationEvent.php:188 NotificationEventAbstract::raise()
src/ITILFollowup.php:284 NotificationEvent::raiseEvent()
src/CommonDBTM.php:1357 ITILFollowup->post_addItem()
front/itilfollowup.form.php:75 CommonDBTM->add()
public/index.php:82 require()

[2025-03-24 08:53:09] glpiphplog.WARNING: Failed to save key "{key}" of type null: rename(/path/to/glpi/files/_cache/translations-10.0.18/3d2b04774470,/path/to/glpi/files/_cache/translations-10.0.18/Z/F/5QKUtRWdGqmZzucG5NbQ): No such file or directory {"key":"cf82067f3a82e05132a6dcb41ec973c8679c6dea","exception":"[object] (ErrorException(code: 0): rename(/path/to/glpi/files/_cache/translations-10.0.18/3d2b04774470,/path/to/glpi/files/_cache/translations-10.0.18/Z/F/5QKUtRWdGqmZzucG5NbQ): No such file or directory at /path/to/glpi/vendor/symfony/cache/Traits/FilesystemCommonTrait.php:117)","cache-adapter":"Symfony\Component\Cache\Adapter\FilesystemAdapter"}

@btry
Copy link
Collaborator

btry commented Mar 24, 2025

The 1st SQL error shows that there is a mismatch in the table issues of the plugin, compared to the tickets table. The automatic action which fills the issues table should be disabled (and run manually when needed).

Try to execute the following query to see if there is a bad result (just tell if you have rows, do not disclose the result as it may contain sensitive information)

SELECT
  *
FROM
  (
    (
      SELECT DISTINCT
        NULL as id,
        IF(
          glpi_plugin_formcreator_formanswers.name = '',
          CONCAT('(', glpi_plugin_formcreator_formanswers.id, ')'),
          glpi_plugin_formcreator_formanswers.name
        ) as name,
        CONCAT('f_', glpi_plugin_formcreator_formanswers.id) as display_id,
        glpi_plugin_formcreator_formanswers.id AS items_id,
        'PluginFormcreatorFormAnswer' as itemtype,
        glpi_plugin_formcreator_formanswers.status AS status,
        glpi_plugin_formcreator_formanswers.request_date AS date_creation,
        glpi_plugin_formcreator_formanswers.request_date AS date_mod,
        glpi_plugin_formcreator_formanswers.entities_id AS entities_d,
        glpi_plugin_formcreator_formanswers.is_recursive AS is_recursive,
        glpi_plugin_formcreator_formanswers.requester_id AS requester_id,
        glpi_plugin_formcreator_formanswers.comment AS comment,
        glpi_plugin_formcreator_formanswers.requester_id AS users_id_recipient
      FROM
        glpi_plugin_formcreator_formanswers
        LEFT JOIN glpi_plugin_formcreator_forms ON (
          glpi_plugin_formcreator_forms.id = glpi_plugin_formcreator_formanswers.plugin_formcreator_forms_id
        )
        LEFT JOIN glpi_items_tickets ON (
          glpi_items_tickets.items_id = glpi_plugin_formcreator_formanswers.id
          AND glpi_items_tickets.itemtype = 'PluginFormcreatorFormAnswer'
        )
      GROUP BY
        glpi_plugin_formcreator_formanswers.id
      HAVING
        COUNT(glpi_items_tickets.tickets_id) != 1
    )
    UNION
    (
      SELECT DISTINCT
        NULL as id,
        IF(
          glpi_tickets.name = '',
          CONCAT('(', glpi_tickets.id, ')'),
          glpi_tickets.name
        ) as name,
        CONCAT('t_', glpi_tickets.id) as display_id,
        glpi_tickets.id AS items_id,
        'Ticket' as itemtype,
        IF(
          glpi_tickets.global_validation IN ('1', '3'),
          glpi_tickets.status,
          IF(
            glpi_tickets.status IN ('5', '6'),
            glpi_tickets.status,
            IF(
              glpi_tickets.global_validation = '2',
              '101',
              '102'
            )
          )
        ) AS status,
        glpi_tickets.date AS date_creation,
        glpi_tickets.date_mod AS date_mod,
        glpi_tickets.entities_id AS entities_id,
        0 as is_recursive,
        COALESCE(glpi_tickets_users.users_id, 0) as requester_id,
        glpi_tickets.content AS comment,
        users_id_recipient AS users_id_recipient
      FROM
        glpi_tickets
        LEFT JOIN glpi_items_tickets ON (
          glpi_items_tickets.tickets_id = glpi_tickets.id
          AND glpi_items_tickets.itemtype = 'PluginFormcreatorFormAnswer'
        )
        LEFT JOIN (
          SELECT DISTINCT
            users_id,
            tickets_id
          FROM
            glpi_tickets_users
          WHERE
            type = '1'
          GROUP BY
            tickets_id
          ORDER BY
            id ASC
        ) AS glpi_tickets_users ON (glpi_tickets.id = glpi_tickets_users.tickets_id)
      WHERE
        glpi_tickets.is_deleted = '0'
      GROUP BY
        glpi_tickets.id
      HAVING
        COUNT(glpi_items_tickets.items_id) = 0
    )
    UNION
    (
      SELECT
        NULL as id,
        IF(
          glpi_tickets.name = '',
          CONCAT('(', glpi_tickets.id, ')'),
          glpi_tickets.name
        ) as name,
        CONCAT('t_', glpi_tickets.id) as display_id,
        glpi_tickets.id AS items_id,
        'Ticket' as itemtype,
        IF(
          glpi_tickets.global_validation IN ('1', '3'),
          glpi_tickets.status,
          IF(
            glpi_tickets.status IN ('5', '6'),
            glpi_tickets.status,
            IF(
              glpi_tickets.global_validation = '2',
              '101',
              '102'
            )
          )
        ) AS status,
        glpi_tickets.date AS date_creation,
        glpi_tickets.date_mod AS date_mod,
        glpi_tickets.entities_id AS entities_id,
        0 as is_recursive,
        COALESCE(glpi_tickets_users.users_id, 0) as requester_id,
        glpi_tickets.content AS comment,
        users_id_recipient AS users_id_recipient
      FROM
        glpi_tickets
        INNER JOIN glpi_items_tickets ON (
          glpi_items_tickets.tickets_id = glpi_tickets.id
          AND glpi_items_tickets.itemtype = 'PluginFormcreatorFormAnswer'
        )
        LEFT JOIN (
          SELECT DISTINCT
            users_id,
            tickets_id
          FROM
            glpi_tickets_users
          WHERE
            type = '1'
          GROUP BY
            tickets_id
          ORDER BY
            id ASC
        ) AS glpi_tickets_users ON (glpi_tickets.id = glpi_tickets_users.tickets_id)
      WHERE
        glpi_tickets.is_deleted = '0'
      GROUP BY
        glpi_items_tickets.items_id
      HAVING
        COUNT(glpi_items_tickets.items_id) = 1
    )
  ) AS union_474dfb8b612fe0826a2367c0de7d140a
  where users_id_recipient is null

@btry
Copy link
Collaborator

btry commented Mar 24, 2025

the other errors are not related to the plugin

@Azgar1998
Copy link
Author

the script returns no results (no lines)

@btry
Copy link
Collaborator

btry commented Mar 24, 2025

ok, then try again the query, but replace "IS NULL"in the last line with "< 0".

I'm searching for a result which does not complies with the schema of the table issues.

@Azgar1998
Copy link
Author

I get the same result by changing the last line "where users_id_recipient is null" to "where users_id_recipient < 0"

@btry
Copy link
Collaborator

btry commented Mar 24, 2025

Ok, I think I found the problem : the faulty value is an empty string. Please open a terminal on your server then locate in the directory of GLPI, and execute the following command
./bin/console db:check -p formcreator

I expect that the tables are not strictly identical to their expected structure. If I'm right you'll get an output similar to a diff with CREATE TABLE sql statements.

@Azgar1998
Copy link
Author

Hi,

Here's the result:

The schema differs for the "glpi_plugin_formcreator_forms_languages" table.
--- Expected database schema
+++ Current database schema
@@ @@
plugin_formcreator_forms_id int NOT NULL DEFAULT 0,
uuid varchar(255),
PRIMARY KEY (id)
-)
+) COLLATE=utf8_general_ci

@btry
Copy link
Collaborator

btry commented Mar 25, 2025

Hi

You should fix the collation; but your problem is not from here.

It seems that the SQL query produces an empty string where an integer is expected (an ID). You don't have any inconsistency on the column used as source of that id, but let's check anyway. Show me the result of the following query

DESCRIBE glpi_plugin_formcreator_formanswers

@Azgar1998
Copy link
Author

here is the result:
Image

@btry
Copy link
Collaborator

btry commented Mar 26, 2025

Hi

The column requester_id is an integer, as expected, so this is fine. lets try the following query, to find out the rows with an empty string. I believe that the problem comes from the 2nd or 3rd query in the UNION

SELECT
  display_id,
  users_id_recipient
FROM
  (
    (
      SELECT DISTINCT
        NULL as id,
        IF(
          glpi_plugin_formcreator_formanswers.name = '',
          CONCAT('(', glpi_plugin_formcreator_formanswers.id, ')'),
          glpi_plugin_formcreator_formanswers.name
        ) as name,
        CONCAT('f_', glpi_plugin_formcreator_formanswers.id) as display_id,
        glpi_plugin_formcreator_formanswers.id AS items_id,
        'PluginFormcreatorFormAnswer' as itemtype,
        glpi_plugin_formcreator_formanswers.status AS status,
        glpi_plugin_formcreator_formanswers.request_date AS date_creation,
        glpi_plugin_formcreator_formanswers.request_date AS date_mod,
        glpi_plugin_formcreator_formanswers.entities_id AS entities_d,
        glpi_plugin_formcreator_formanswers.is_recursive AS is_recursive,
        glpi_plugin_formcreator_formanswers.requester_id AS requester_id,
        glpi_plugin_formcreator_formanswers.comment AS comment,
        glpi_plugin_formcreator_formanswers.requester_id AS users_id_recipient
      FROM
        glpi_plugin_formcreator_formanswers
        LEFT JOIN glpi_plugin_formcreator_forms ON (
          glpi_plugin_formcreator_forms.id = glpi_plugin_formcreator_formanswers.plugin_formcreator_forms_id
        )
        LEFT JOIN glpi_items_tickets ON (
          glpi_items_tickets.items_id = glpi_plugin_formcreator_formanswers.id
          AND glpi_items_tickets.itemtype = 'PluginFormcreatorFormAnswer'
        )
      GROUP BY
        glpi_plugin_formcreator_formanswers.id
      HAVING
        COUNT(glpi_items_tickets.tickets_id) != 1
    )
    UNION
    (
      SELECT DISTINCT
        NULL as id,
        IF(
          glpi_tickets.name = '',
          CONCAT('(', glpi_tickets.id, ')'),
          glpi_tickets.name
        ) as name,
        CONCAT('t_', glpi_tickets.id) as display_id,
        glpi_tickets.id AS items_id,
        'Ticket' as itemtype,
        IF(
          glpi_tickets.global_validation IN ('1', '3'),
          glpi_tickets.status,
          IF(
            glpi_tickets.status IN ('5', '6'),
            glpi_tickets.status,
            IF(
              glpi_tickets.global_validation = '2',
              '101',
              '102'
            )
          )
        ) AS status,
        glpi_tickets.date AS date_creation,
        glpi_tickets.date_mod AS date_mod,
        glpi_tickets.entities_id AS entities_id,
        0 as is_recursive,
        COALESCE(glpi_tickets_users.users_id, 0) as requester_id,
        glpi_tickets.content AS comment,
        users_id_recipient AS users_id_recipient
      FROM
        glpi_tickets
        LEFT JOIN glpi_items_tickets ON (
          glpi_items_tickets.tickets_id = glpi_tickets.id
          AND glpi_items_tickets.itemtype = 'PluginFormcreatorFormAnswer'
        )
        LEFT JOIN (
          SELECT DISTINCT
            users_id,
            tickets_id
          FROM
            glpi_tickets_users
          WHERE
            type = '1'
          GROUP BY
            tickets_id
          ORDER BY
            id ASC
        ) AS glpi_tickets_users ON (glpi_tickets.id = glpi_tickets_users.tickets_id)
      WHERE
        glpi_tickets.is_deleted = '0'
      GROUP BY
        glpi_tickets.id
      HAVING
        COUNT(glpi_items_tickets.items_id) = 0
    )
    UNION
    (
      SELECT
        NULL as id,
        IF(
          glpi_tickets.name = '',
          CONCAT('(', glpi_tickets.id, ')'),
          glpi_tickets.name
        ) as name,
        CONCAT('t_', glpi_tickets.id) as display_id,
        glpi_tickets.id AS items_id,
        'Ticket' as itemtype,
        IF(
          glpi_tickets.global_validation IN ('1', '3'),
          glpi_tickets.status,
          IF(
            glpi_tickets.status IN ('5', '6'),
            glpi_tickets.status,
            IF(
              glpi_tickets.global_validation = '2',
              '101',
              '102'
            )
          )
        ) AS status,
        glpi_tickets.date AS date_creation,
        glpi_tickets.date_mod AS date_mod,
        glpi_tickets.entities_id AS entities_id,
        0 as is_recursive,
        COALESCE(glpi_tickets_users.users_id, 0) as requester_id,
        glpi_tickets.content AS comment,
        users_id_recipient AS users_id_recipient
      FROM
        glpi_tickets
        INNER JOIN glpi_items_tickets ON (
          glpi_items_tickets.tickets_id = glpi_tickets.id
          AND glpi_items_tickets.itemtype = 'PluginFormcreatorFormAnswer'
        )
        LEFT JOIN (
          SELECT DISTINCT
            users_id,
            tickets_id
          FROM
            glpi_tickets_users
          WHERE
            type = '1'
          GROUP BY
            tickets_id
          ORDER BY
            id ASC
        ) AS glpi_tickets_users ON (glpi_tickets.id = glpi_tickets_users.tickets_id)
      WHERE
        glpi_tickets.is_deleted = '0'
      GROUP BY
        glpi_items_tickets.items_id
      HAVING
        COUNT(glpi_items_tickets.items_id) = 1
    )
  ) AS union_474dfb8b612fe0826a2367c0de7d140a
  where users_id_recipient = ''

@Azgar1998
Copy link
Author

Hi,
I have 97 rows with "display id t_XXXX and "users_id recipient" at "0"

@btry
Copy link
Collaborator

btry commented Mar 26, 2025

0 is not an empty string; then the error Incorrect integer value: '' for column glpi.glpi_plugin_formcreator_issues.users_id_recipient at row 1 seems a nonsense.

Which DBMS are you using ?

@Azgar1998
Copy link
Author

I use Mariabd server (10.6.18).

@Azgar1998
Copy link
Author

Azgar1998 commented Apr 1, 2025

Hi,
I'm making a small update.
I noticed that the ticket history isn't complete with the simplified interface.

Is there a way to view the history from the simplified interface?

@Azgar1998
Copy link
Author

Azgar1998 commented Apr 1, 2025

For your information, when I type:

./console glpi:database:check_schema_integrity --strict

I get this result:

Le schéma diffère pour la table "glpi_authldapreplicates".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `name` varchar(255),
   `timeout` int NOT NULL DEFAULT 10,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
-  KEY `authldaps_id` (`authldaps_id`)
+  KEY `authldaps_id` (`authldaps_id`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_authldaps".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `use_bind` tinyint NOT NULL DEFAULT 1,
   `timeout` int NOT NULL DEFAULT 10,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `date_mod` (`date_mod`),
   KEY `is_default` (`is_default`),
   KEY `is_active` (`is_active`),
   KEY `date_creation` (`date_creation`),
-  KEY `sync_field` (`sync_field`)
+  KEY `sync_field` (`sync_field`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_authmails".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `connect_string` varchar(255),
   `host` varchar(255),
   `date_mod` datetime,
-  `date_creation` datetime,
   `comment` text,
   `is_active` tinyint NOT NULL DEFAULT 0,
+  `date_creation` datetime,
   PRIMARY KEY (`id`),
+  KEY `date_mod` (`date_mod`),
+  KEY `is_active` (`is_active`),
   KEY `name` (`name`),
-  KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`),
-  KEY `is_active` (`is_active`)
+  KEY `date_creation` (`date_creation`)
 )
Le schéma diffère pour la table "glpi_apiclients".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `is_recursive` tinyint NOT NULL DEFAULT 0,
   `name` varchar(255),
   `date_mod` datetime,
-  `date_creation` datetime,
   `is_active` tinyint NOT NULL DEFAULT 0,
   `ipv4_range_start` bigint,
   `ipv4_range_end` bigint,
@@ @@
   `app_token_date` datetime,
   `dolog_method` tinyint NOT NULL DEFAULT 0,
   `comment` text,
+  `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`),
   KEY `is_active` (`is_active`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`)
+  KEY `is_recursive` (`is_recursive`),
+  KEY `name` (`name`),
+  KEY `date_creation` (`date_creation`)
 )
Le schéma diffère pour la table "glpi_blacklistedmailcontents".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_savedsearches".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `last_execution_date` datetime,
   `counter` int NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `type` (`type`),
   KEY `itemtype` (`itemtype`),
   KEY `entities_id` (`entities_id`),
@@ @@
   KEY `is_private` (`is_private`),
   KEY `is_recursive` (`is_recursive`),
   KEY `last_execution_time` (`last_execution_time`),
+  KEY `do_count` (`do_count`),
   KEY `last_execution_date` (`last_execution_date`),
-  KEY `do_count` (`do_count`)
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_budgets".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `entities_id` (`entities_id`),
   KEY `is_deleted` (`is_deleted`),
   KEY `begin_date` (`begin_date`),
-  KEY `end_date` (`end_date`),
   KEY `is_template` (`is_template`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`),
+  KEY `end_date` (`end_date`),
   KEY `locations_id` (`locations_id`),
-  KEY `budgettypes_id` (`budgettypes_id`)
+  KEY `budgettypes_id` (`budgettypes_id`),
+  KEY `date_creation` (`date_creation`)
 )
Le schéma diffère pour la table "glpi_cartridgeitems".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `manufacturers_id` (`manufacturers_id`),
   KEY `locations_id` (`locations_id`),
   KEY `users_id_tech` (`users_id_tech`),
@@ @@
   KEY `alarm_threshold` (`alarm_threshold`),
   KEY `groups_id_tech` (`groups_id_tech`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_certificates".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `is_template` (`is_template`),
   KEY `is_deleted` (`is_deleted`),
   KEY `certificatetypes_id` (`certificatetypes_id`),
@@ @@
   KEY `manufacturers_id` (`manufacturers_id`),
   KEY `states_id` (`states_id`),
   KEY `date_creation` (`date_creation`),
-  KEY `date_mod` (`date_mod`)
+  KEY `date_mod` (`date_mod`),
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_changes".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `solvedate` (`solvedate`),
   KEY `urgency` (`urgency`),
   KEY `impact` (`impact`),
-  KEY `time_to_resolve` (`time_to_resolve`),
   KEY `global_validation` (`global_validation`),
   KEY `users_id_lastupdater` (`users_id_lastupdater`),
   KEY `date_creation` (`date_creation`),
+  KEY `time_to_resolve` (`time_to_resolve`),
   KEY `locations_id` (`locations_id`)
 )
Le schéma diffère pour la table "glpi_changetasks".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `changes_id` (`changes_id`),
   KEY `state` (`state`),
   KEY `users_id` (`users_id`),
-  KEY `users_id_editor` (`users_id_editor`),
   KEY `users_id_tech` (`users_id_tech`),
-  KEY `groups_id_tech` (`groups_id_tech`),
   KEY `date` (`date`),
-  KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`),
   KEY `begin` (`begin`),
   KEY `end` (`end`),
   KEY `taskcategories_id` (`taskcategories_id`),
+  KEY `date_mod` (`date_mod`),
+  KEY `date_creation` (`date_creation`),
+  KEY `groups_id_tech` (`groups_id_tech`),
   KEY `tasktemplates_id` (`tasktemplates_id`),
+  KEY `users_id_editor` (`users_id_editor`),
   KEY `is_private` (`is_private`)
 )
Le schéma diffère pour la table "glpi_items_disks".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `mountpoint` (`mountpoint`),
   KEY `totalsize` (`totalsize`),
   KEY `freesize` (`freesize`),
-  KEY `item` (`itemtype`,`items_id`),
   KEY `filesystems_id` (`filesystems_id`),
   KEY `entities_id` (`entities_id`),
   KEY `is_deleted` (`is_deleted`),
   KEY `is_dynamic` (`is_dynamic`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `item` (`itemtype`,`items_id`)
 )
Le schéma diffère pour la table "glpi_items_softwarelicenses".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `is_deleted` tinyint NOT NULL DEFAULT 0,
   `is_dynamic` tinyint NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
-  KEY `item` (`itemtype`,`items_id`),
   KEY `softwarelicenses_id` (`softwarelicenses_id`),
   KEY `is_deleted` (`is_deleted`),
-  KEY `is_dynamic` (`is_dynamic`)
+  KEY `is_dynamic` (`is_dynamic`),
+  KEY `item` (`itemtype`,`items_id`)
 )
Le schéma diffère pour la table "glpi_items_softwareversions".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   UNIQUE KEY `unicity` (`itemtype`,`items_id`,`softwareversions_id`),
   KEY `softwareversions_id` (`softwareversions_id`),
   KEY `computers_info` (`entities_id`,`is_template_item`,`is_deleted_item`),
+  KEY `is_dynamic` (`is_dynamic`),
+  KEY `date_install` (`date_install`),
   KEY `is_deleted` (`is_deleted`),
-  KEY `is_dynamic` (`is_dynamic`),
   KEY `is_deleted_item` (`is_deleted_item`),
-  KEY `is_template_item` (`is_template_item`),
-  KEY `date_install` (`date_install`)
+  KEY `is_template_item` (`is_template_item`)
 )
Le schéma diffère pour la table "glpi_items_operatingsystems".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `operatingsystemkernelversions_id` int NOT NULL DEFAULT 0,
   `license_number` varchar(255),
   `licenseid` varchar(255),
-  `company` varchar(255),
-  `owner` varchar(255),
-  `hostid` varchar(255),
   `operatingsystemeditions_id` int NOT NULL DEFAULT 0,
   `date_mod` datetime,
   `date_creation` datetime,
@@ @@
   `entities_id` int NOT NULL DEFAULT 0,
   `is_recursive` tinyint NOT NULL DEFAULT 0,
   `install_date` date,
+  `company` varchar(255),
+  `owner` varchar(255),
+  `hostid` varchar(255),
   PRIMARY KEY (`id`),
   UNIQUE KEY `unicity` (`items_id`,`itemtype`,`operatingsystems_id`,`operatingsystemarchitectures_id`),
   KEY `item` (`itemtype`,`items_id`),
Le schéma diffère pour la table "glpi_consumableitems".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `manufacturers_id` (`manufacturers_id`),
   KEY `locations_id` (`locations_id`),
   KEY `users_id_tech` (`users_id_tech`),
@@ @@
   KEY `groups_id_tech` (`groups_id_tech`),
   KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`),
-  KEY `otherserial` (`otherserial`)
+  KEY `otherserial` (`otherserial`),
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_contacts".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `contacttypes_id` (`contacttypes_id`),
   KEY `is_deleted` (`is_deleted`),
   KEY `usertitles_id` (`usertitles_id`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_contracts".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `begin_date` (`begin_date`),
   KEY `name` (`name`),
   KEY `contracttypes_id` (`contracttypes_id`),
-  KEY `locations_id` (`locations_id`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `is_deleted` (`is_deleted`),
-  KEY `is_template` (`is_template`),
-  KEY `use_sunday` (`use_sunday`),
   KEY `use_saturday` (`use_saturday`),
   KEY `alert` (`alert`),
+  KEY `date_mod` (`date_mod`),
+  KEY `date_creation` (`date_creation`),
   KEY `states_id` (`states_id`),
-  KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `use_sunday` (`use_sunday`),
+  KEY `is_recursive` (`is_recursive`),
+  KEY `is_template` (`is_template`),
+  KEY `locations_id` (`locations_id`)
 )
Le schéma diffère pour la table "glpi_crontasks".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_creation` datetime,
   PRIMARY KEY (`id`),
   UNIQUE KEY `unicity` (`itemtype`,`name`),
-  KEY `name` (`name`),
   KEY `mode` (`mode`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_dashboards_dashboards".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `users_id` int NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
   UNIQUE KEY `key` (`key`),
-  KEY `name` (`name`),
-  KEY `users_id` (`users_id`)
+  KEY `users_id` (`users_id`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_items_devicecameras".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `is_dynamic` (`is_dynamic`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
-  KEY `locations_id` (`locations_id`),
-  KEY `item` (`itemtype`,`items_id`)
+  KEY `item` (`itemtype`,`items_id`),
+  KEY `locations_id` (`locations_id`)
 )
Le schéma diffère pour la table "glpi_imageformats".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `is_recursive` tinyint NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
   UNIQUE KEY `unicity` (`name`),
+  KEY `date_mod` (`date_mod`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
-  KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`)
 )
Le schéma diffère pour la table "glpi_items_devicecameras_imageformats".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `is_dynamic` tinyint NOT NULL DEFAULT 0,
   `is_deleted` tinyint NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
-  KEY `items_devicecameras_id` (`items_devicecameras_id`),
   KEY `imageformats_id` (`imageformats_id`),
   KEY `is_dynamic` (`is_dynamic`),
-  KEY `is_deleted` (`is_deleted`)
+  KEY `is_deleted` (`is_deleted`),
+  KEY `items_devicecameras_id` (`items_devicecameras_id`)
 )
Le schéma diffère pour la table "glpi_items_devicecameras_imageresolutions".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `is_dynamic` tinyint NOT NULL DEFAULT 0,
   `is_deleted` tinyint NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
-  KEY `items_devicecameras_id` (`items_devicecameras_id`),
   KEY `imageresolutions_id` (`imageresolutions_id`),
   KEY `is_dynamic` (`is_dynamic`),
-  KEY `is_deleted` (`is_deleted`)
+  KEY `is_deleted` (`is_deleted`),
+  KEY `items_devicecameras_id` (`items_devicecameras_id`)
 )
Le schéma diffère pour la table "glpi_devicepcis".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   KEY `designation` (`designation`),
   KEY `manufacturers_id` (`manufacturers_id`),
-  KEY `devicenetworkcardmodels_id` (`devicenetworkcardmodels_id`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
   KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`),
-  KEY `devicepcimodels_id` (`devicepcimodels_id`)
+  KEY `devicepcimodels_id` (`devicepcimodels_id`),
+  KEY `devicenetworkcardmodels_id` (`devicenetworkcardmodels_id`)
 )
Le schéma diffère pour la table "glpi_items_devicesimcards".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `is_deleted` (`is_deleted`),
   KEY `is_dynamic` (`is_dynamic`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `serial` (`serial`),
   KEY `otherserial` (`otherserial`),
   KEY `states_id` (`states_id`),
   KEY `locations_id` (`locations_id`),
   KEY `lines_id` (`lines_id`),
+  KEY `is_recursive` (`is_recursive`),
   KEY `users_id` (`users_id`),
   KEY `groups_id` (`groups_id`)
 )
Le schéma diffère pour la table "glpi_documents".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `date_mod` (`date_mod`),
   KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `tickets_id` (`tickets_id`),
   KEY `users_id` (`users_id`),
   KEY `documentcategories_id` (`documentcategories_id`),
@@ @@
   KEY `is_deleted` (`is_deleted`),
   KEY `sha1sum` (`sha1sum`),
   KEY `tag` (`tag`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_documents_items".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   UNIQUE KEY `unicity` (`documents_id`,`itemtype`,`items_id`,`timeline_position`),
   KEY `item` (`itemtype`,`items_id`,`entities_id`,`is_recursive`),
   KEY `users_id` (`users_id`),
+  KEY `date_creation` (`date_creation`),
+  KEY `date` (`date`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
-  KEY `date_creation` (`date_creation`),
   KEY `date_mod` (`date_mod`),
-  KEY `date` (`date`),
   KEY `timeline_position` (`timeline_position`)
 )
Le schéma diffère pour la table "glpi_domains".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_creation` datetime,
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
-  KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
+  KEY `date_mod` (`date_mod`),
   KEY `domaintypes_id` (`domaintypes_id`),
+  KEY `date_expiration` (`date_expiration`),
   KEY `users_id_tech` (`users_id_tech`),
   KEY `groups_id_tech` (`groups_id_tech`),
-  KEY `date_mod` (`date_mod`),
   KEY `is_deleted` (`is_deleted`),
+  KEY `entities_id` (`entities_id`),
   KEY `is_template` (`is_template`),
   KEY `is_active` (`is_active`),
-  KEY `date_expiration` (`date_expiration`),
+  KEY `date_creation` (`date_creation`),
   KEY `date_domaincreation` (`date_domaincreation`),
-  KEY `date_creation` (`date_creation`)
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_entities".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `email` varchar(255),
   `admin_email` varchar(255),
   `admin_email_name` varchar(255),
-  `from_email` varchar(255),
-  `from_email_name` varchar(255),
-  `noreply_email` varchar(255),
-  `noreply_email_name` varchar(255),
   `replyto_email` varchar(255),
   `replyto_email_name` varchar(255),
   `notification_subject_tag` varchar(255),
@@ @@
   `autoclose_delay` int NOT NULL DEFAULT -2,
   `autopurge_delay` int NOT NULL DEFAULT -2,
   `notclosed_delay` int NOT NULL DEFAULT -2,
-  `calendars_strategy` tinyint NOT NULL DEFAULT -2,
   `calendars_id` int NOT NULL DEFAULT 0,
   `auto_assign_mode` int NOT NULL DEFAULT -2,
   `tickettype` int NOT NULL DEFAULT -2,
@@ @@
   `autofill_buy_date` varchar(255) NOT NULL DEFAULT -2,
   `autofill_delivery_date` varchar(255) NOT NULL DEFAULT -2,
   `autofill_order_date` varchar(255) NOT NULL DEFAULT -2,
-  `tickettemplates_strategy` tinyint NOT NULL DEFAULT -2,
   `tickettemplates_id` int NOT NULL DEFAULT 0,
-  `changetemplates_strategy` tinyint NOT NULL DEFAULT -2,
   `changetemplates_id` int NOT NULL DEFAULT 0,
-  `problemtemplates_strategy` tinyint NOT NULL DEFAULT -2,
   `problemtemplates_id` int NOT NULL DEFAULT 0,
-  `entities_strategy_software` tinyint NOT NULL DEFAULT -2,
   `entities_id_software` int NOT NULL DEFAULT 0,
   `default_contract_alert` int NOT NULL DEFAULT -2,
   `default_infocom_alert` int NOT NULL DEFAULT -2,
@@ @@
   `autofill_decommission_date` varchar(255) NOT NULL DEFAULT -2,
   `suppliers_as_private` int NOT NULL DEFAULT -2,
   `anonymize_support_agents` int NOT NULL DEFAULT -2,
+  `contracts_id_default` int NOT NULL DEFAULT 0,
   `display_users_initials` int NOT NULL DEFAULT -2,
-  `contracts_strategy_default` tinyint NOT NULL DEFAULT -2,
-  `contracts_id_default` int unsigned NOT NULL DEFAULT 0,
   `enable_custom_css` int NOT NULL DEFAULT -2,
   `custom_css_code` text,
   `latitude` varchar(255),
   `longitude` varchar(255),
   `altitude` varchar(255),
+  `calendars_strategy` tinyint NOT NULL DEFAULT -2,
+  `changetemplates_strategy` tinyint NOT NULL DEFAULT -2,
+  `contracts_strategy_default` tinyint NOT NULL DEFAULT -2,
+  `entities_strategy_software` tinyint NOT NULL DEFAULT -2,
+  `problemtemplates_strategy` tinyint NOT NULL DEFAULT -2,
+  `tickettemplates_strategy` tinyint NOT NULL DEFAULT -2,
   `transfers_strategy` tinyint NOT NULL DEFAULT -2,
+  `from_email` varchar(255),
+  `from_email_name` varchar(255),
+  `noreply_email` varchar(255),
+  `noreply_email_name` varchar(255),
   `transfers_id` int NOT NULL DEFAULT 0,
   `agent_base_url` varchar(255),
   PRIMARY KEY (`id`),
   UNIQUE KEY `unicity` (`entities_id`,`name`),
-  KEY `name` (`name`),
   KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`),
   KEY `tickettemplates_id` (`tickettemplates_id`),
@@ @@
   KEY `authldaps_id` (`authldaps_id`),
   KEY `calendars_id` (`calendars_id`),
   KEY `entities_id_software` (`entities_id_software`),
+  KEY `name` (`name`),
   KEY `contracts_id_default` (`contracts_id_default`),
   KEY `level` (`level`)
 )
Le schéma diffère pour la table "glpi_fieldblacklists".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_creation` datetime,
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
+  KEY `date_mod` (`date_mod`),
+  KEY `date_creation` (`date_creation`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
-  KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_fieldunicities".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
+  KEY `date_mod` (`date_mod`),
+  KEY `date_creation` (`date_creation`),
   KEY `entities_id` (`entities_id`),
+  KEY `is_active` (`is_active`),
   KEY `is_recursive` (`is_recursive`),
-  KEY `is_active` (`is_active`),
-  KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_groups".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `name` (`name`),
   KEY `ldap_field` (`ldap_field`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `date_mod` (`date_mod`),
   KEY `ldap_value` (`ldap_value`(200)),
   KEY `ldap_group_dn` (`ldap_group_dn`(200)),
   KEY `groups_id` (`groups_id`),
   KEY `is_requester` (`is_requester`),
-  KEY `is_watcher` (`is_watcher`),
   KEY `is_assign` (`is_assign`),
   KEY `is_notify` (`is_notify`),
   KEY `is_itemgroup` (`is_itemgroup`),
@@ @@
   KEY `is_usergroup` (`is_usergroup`),
   KEY `is_manager` (`is_manager`),
   KEY `date_creation` (`date_creation`),
+  KEY `is_watcher` (`is_watcher`),
+  KEY `is_recursive` (`is_recursive`),
   KEY `level` (`level`)
 )
Le schéma diffère pour la table "glpi_groups_users".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   UNIQUE KEY `unicity` (`users_id`,`groups_id`),
   KEY `groups_id` (`groups_id`),
-  KEY `is_dynamic` (`is_dynamic`),
   KEY `is_manager` (`is_manager`),
-  KEY `is_userdelegate` (`is_userdelegate`)
+  KEY `is_userdelegate` (`is_userdelegate`),
+  KEY `is_dynamic` (`is_dynamic`)
 )
Le schéma diffère pour la table "glpi_holidays".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_creation` datetime,
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
-  KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `begin_date` (`begin_date`),
   KEY `end_date` (`end_date`),
   KEY `is_perpetual` (`is_perpetual`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `entities_id` (`entities_id`),
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_ipaddresses".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `mainitems_id` int NOT NULL DEFAULT 0,
   `mainitemtype` varchar(255),
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
   KEY `binary` (`binary_0`,`binary_1`,`binary_2`,`binary_3`),
   KEY `is_deleted` (`is_deleted`),
   KEY `is_dynamic` (`is_dynamic`),
   KEY `item` (`itemtype`,`items_id`,`is_deleted`),
-  KEY `mainitem` (`mainitemtype`,`mainitems_id`,`is_deleted`)
+  KEY `mainitem` (`mainitemtype`,`mainitems_id`,`is_deleted`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_ipnetworks".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `network_definition` (`entities_id`,`address`,`netmask`),
   KEY `address` (`address_0`,`address_1`,`address_2`,`address_3`),
   KEY `netmask` (`netmask_0`,`netmask_1`,`netmask_2`,`netmask_3`),
@@ @@
   KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`),
   KEY `ipnetworks_id` (`ipnetworks_id`),
+  KEY `is_recursive` (`is_recursive`),
   KEY `level` (`level`)
 )
Le schéma diffère pour la table "glpi_itilcategories".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `itilcategories_id` (`itilcategories_id`),
   KEY `tickettemplates_id_incident` (`tickettemplates_id_incident`),
   KEY `tickettemplates_id_demand` (`tickettemplates_id_demand`),
-  KEY `changetemplates_id` (`changetemplates_id`),
-  KEY `problemtemplates_id` (`problemtemplates_id`),
   KEY `is_incident` (`is_incident`),
   KEY `is_request` (`is_request`),
   KEY `is_problem` (`is_problem`),
@@ @@
   KEY `is_change` (`is_change`),
   KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`),
+  KEY `changetemplates_id` (`changetemplates_id`),
+  KEY `problemtemplates_id` (`problemtemplates_id`),
   KEY `level` (`level`)
 )
Le schéma diffère pour la table "glpi_knowbaseitems".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   KEY `users_id` (`users_id`),
   KEY `is_faq` (`is_faq`),
-  KEY `date_creation` (`date_creation`),
   KEY `date_mod` (`date_mod`),
   KEY `begin_date` (`begin_date`),
   KEY `end_date` (`end_date`),
+  KEY `date_creation` (`date_creation`),
   FULLTEXT KEY `fulltext` (`name`,`answer`),
   FULLTEXT KEY `name` (`name`),
   FULLTEXT KEY `answer` (`answer`)
 )
Le schéma diffère pour la table "glpi_lines".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `comment` text,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
-  KEY `is_deleted` (`is_deleted`),
   KEY `users_id` (`users_id`),
   KEY `lineoperators_id` (`lineoperators_id`),
+  KEY `is_deleted` (`is_deleted`),
   KEY `groups_id` (`groups_id`),
   KEY `linetypes_id` (`linetypes_id`),
   KEY `locations_id` (`locations_id`),
   KEY `states_id` (`states_id`),
   KEY `date_creation` (`date_creation`),
-  KEY `date_mod` (`date_mod`)
+  KEY `date_mod` (`date_mod`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_links".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
+  KEY `date_mod` (`date_mod`),
+  KEY `date_creation` (`date_creation`),
   KEY `is_recursive` (`is_recursive`),
-  KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_mailcollectors".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `collect_only_unread` tinyint NOT NULL DEFAULT 0,
   `last_collect_date` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `is_active` (`is_active`),
   KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`),
+  KEY `name` (`name`),
   KEY `last_collect_date` (`last_collect_date`)
 )
Le schéma diffère pour la table "glpi_monitors".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `states_id` int NOT NULL DEFAULT 0,
   `ticket_tco` decimal(20,4) DEFAULT 0.0000,
   `is_dynamic` tinyint NOT NULL DEFAULT 0,
+  `uuid` varchar(255),
   `autoupdatesystems_id` int NOT NULL DEFAULT 0,
-  `uuid` varchar(255),
   `date_creation` datetime,
   `is_recursive` tinyint NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
@@ @@
   KEY `is_deleted` (`is_deleted`),
   KEY `groups_id_tech` (`groups_id_tech`),
   KEY `is_dynamic` (`is_dynamic`),
-  KEY `autoupdatesystems_id` (`autoupdatesystems_id`),
   KEY `serial` (`serial`),
   KEY `otherserial` (`otherserial`),
-  KEY `uuid` (`uuid`),
   KEY `date_creation` (`date_creation`),
   KEY `is_recursive` (`is_recursive`),
-  KEY `date_mod` (`date_mod`)
+  KEY `autoupdatesystems_id` (`autoupdatesystems_id`),
+  KEY `date_mod` (`date_mod`),
+  KEY `uuid` (`uuid`)
 )
Le schéma diffère pour la table "glpi_networkequipments".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `name` (`name`),
   KEY `is_template` (`is_template`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `manufacturers_id` (`manufacturers_id`),
   KEY `groups_id` (`groups_id`),
   KEY `users_id` (`users_id`),
@@ @@
   KEY `is_dynamic` (`is_dynamic`),
   KEY `serial` (`serial`),
   KEY `otherserial` (`otherserial`),
-  KEY `uuid` (`uuid`),
   KEY `date_creation` (`date_creation`),
   KEY `autoupdatesystems_id` (`autoupdatesystems_id`),
-  KEY `snmpcredentials_id` (`snmpcredentials_id`)
+  KEY `snmpcredentials_id` (`snmpcredentials_id`),
+  KEY `is_recursive` (`is_recursive`),
+  KEY `uuid` (`uuid`)
 )
Le schéma diffère pour la table "glpi_networkportfiberchannels".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   UNIQUE KEY `networkports_id` (`networkports_id`),
   KEY `card` (`items_devicenetworkcards_id`),
-  KEY `type` (`networkportfiberchanneltypes_id`),
   KEY `wwn` (`wwn`),
   KEY `speed` (`speed`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `type` (`networkportfiberchanneltypes_id`)
 )
Le schéma diffère pour la table "glpi_networkports".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `trunk` tinyint NOT NULL DEFAULT 0,
   `lastup` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `item` (`itemtype`,`items_id`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
@@ @@
   KEY `is_deleted` (`is_deleted`),
   KEY `is_dynamic` (`is_dynamic`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_notepads".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   KEY `item` (`itemtype`,`items_id`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`),
   KEY `users_id_lastupdater` (`users_id_lastupdater`),
-  KEY `users_id` (`users_id`)
+  KEY `users_id` (`users_id`),
+  KEY `date_creation` (`date_creation`)
 )
Le schéma diffère pour la table "glpi_passivedcequipments".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
   KEY `locations_id` (`locations_id`),
@@ @@
   KEY `states_id` (`states_id`),
   KEY `manufacturers_id` (`manufacturers_id`),
   KEY `date_creation` (`date_creation`),
-  KEY `date_mod` (`date_mod`)
+  KEY `date_mod` (`date_mod`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_peripherals".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `states_id` int NOT NULL DEFAULT 0,
   `ticket_tco` decimal(20,4) DEFAULT 0.0000,
   `is_dynamic` tinyint NOT NULL DEFAULT 0,
+  `uuid` varchar(255),
   `autoupdatesystems_id` int NOT NULL DEFAULT 0,
-  `uuid` varchar(255),
   `date_creation` datetime,
   `is_recursive` tinyint NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
@@ @@
   KEY `date_mod` (`date_mod`),
   KEY `groups_id_tech` (`groups_id_tech`),
   KEY `is_dynamic` (`is_dynamic`),
-  KEY `autoupdatesystems_id` (`autoupdatesystems_id`),
   KEY `serial` (`serial`),
   KEY `otherserial` (`otherserial`),
-  KEY `uuid` (`uuid`),
   KEY `date_creation` (`date_creation`),
-  KEY `is_recursive` (`is_recursive`)
+  KEY `is_recursive` (`is_recursive`),
+  KEY `autoupdatesystems_id` (`autoupdatesystems_id`),
+  KEY `uuid` (`uuid`)
 )
Le schéma diffère pour la table "glpi_phones".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `states_id` int NOT NULL DEFAULT 0,
   `ticket_tco` decimal(20,4) DEFAULT 0.0000,
   `is_dynamic` tinyint NOT NULL DEFAULT 0,
+  `uuid` varchar(255),
   `autoupdatesystems_id` int NOT NULL DEFAULT 0,
-  `uuid` varchar(255),
   `date_creation` datetime,
   `is_recursive` tinyint NOT NULL DEFAULT 0,
   `last_inventory_update` datetime,
@@ @@
   KEY `date_mod` (`date_mod`),
   KEY `groups_id_tech` (`groups_id_tech`),
   KEY `is_dynamic` (`is_dynamic`),
-  KEY `autoupdatesystems_id` (`autoupdatesystems_id`),
   KEY `serial` (`serial`),
   KEY `otherserial` (`otherserial`),
-  KEY `uuid` (`uuid`),
   KEY `date_creation` (`date_creation`),
-  KEY `is_recursive` (`is_recursive`)
+  KEY `is_recursive` (`is_recursive`),
+  KEY `autoupdatesystems_id` (`autoupdatesystems_id`),
+  KEY `uuid` (`uuid`)
 )
Le schéma diffère pour la table "glpi_plugins".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `license` varchar(255),
   PRIMARY KEY (`id`),
   UNIQUE KEY `unicity` (`directory`),
-  KEY `name` (`name`),
-  KEY `state` (`state`)
+  KEY `state` (`state`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_printers".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `is_template` (`is_template`),
   KEY `is_global` (`is_global`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `manufacturers_id` (`manufacturers_id`),
   KEY `groups_id` (`groups_id`),
   KEY `users_id` (`users_id`),
@@ @@
   KEY `is_dynamic` (`is_dynamic`),
   KEY `serial` (`serial`),
   KEY `otherserial` (`otherserial`),
-  KEY `uuid` (`uuid`),
   KEY `date_creation` (`date_creation`),
   KEY `snmpcredentials_id` (`snmpcredentials_id`),
-  KEY `autoupdatesystems_id` (`autoupdatesystems_id`)
+  KEY `autoupdatesystems_id` (`autoupdatesystems_id`),
+  KEY `is_recursive` (`is_recursive`),
+  KEY `uuid` (`uuid`)
 )
Le schéma diffère pour la table "glpi_problems".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `solvedate` (`solvedate`),
   KEY `urgency` (`urgency`),
   KEY `impact` (`impact`),
-  KEY `time_to_resolve` (`time_to_resolve`),
   KEY `users_id_lastupdater` (`users_id_lastupdater`),
   KEY `date_creation` (`date_creation`),
+  KEY `time_to_resolve` (`time_to_resolve`),
   KEY `locations_id` (`locations_id`)
 )
Le schéma diffère pour la table "glpi_problemtasks".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   UNIQUE KEY `uuid` (`uuid`),
   KEY `problems_id` (`problems_id`),
   KEY `users_id` (`users_id`),
-  KEY `users_id_editor` (`users_id_editor`),
   KEY `users_id_tech` (`users_id_tech`),
-  KEY `groups_id_tech` (`groups_id_tech`),
   KEY `date` (`date`),
-  KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`),
   KEY `begin` (`begin`),
   KEY `end` (`end`),
   KEY `state` (`state`),
   KEY `taskcategories_id` (`taskcategories_id`),
+  KEY `date_mod` (`date_mod`),
+  KEY `date_creation` (`date_creation`),
+  KEY `groups_id_tech` (`groups_id_tech`),
   KEY `tasktemplates_id` (`tasktemplates_id`),
+  KEY `users_id_editor` (`users_id_editor`),
   KEY `is_private` (`is_private`)
 )
Le schéma diffère pour la table "glpi_profiles".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `managed_domainrecordtypes` text,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `interface` (`interface`),
   KEY `is_default` (`is_default`),
   KEY `date_mod` (`date_mod`),
@@ @@
   KEY `date_creation` (`date_creation`),
   KEY `tickettemplates_id` (`tickettemplates_id`),
   KEY `changetemplates_id` (`changetemplates_id`),
-  KEY `problemtemplates_id` (`problemtemplates_id`)
+  KEY `problemtemplates_id` (`problemtemplates_id`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_projects".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `code` (`code`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
-  KEY `is_deleted` (`is_deleted`),
   KEY `projects_id` (`projects_id`),
   KEY `projectstates_id` (`projectstates_id`),
   KEY `projecttypes_id` (`projecttypes_id`),
@@ @@
   KEY `show_on_global_gantt` (`show_on_global_gantt`),
   KEY `date_creation` (`date_creation`),
   KEY `projecttemplates_id` (`projecttemplates_id`),
-  KEY `is_template` (`is_template`)
+  KEY `is_template` (`is_template`),
+  KEY `is_deleted` (`is_deleted`)
 )
Le schéma diffère pour la table "glpi_projecttasks".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `is_recursive` (`is_recursive`),
   KEY `projects_id` (`projects_id`),
   KEY `projecttasks_id` (`projecttasks_id`),
-  KEY `date_creation` (`date_creation`),
   KEY `date_mod` (`date_mod`),
   KEY `users_id` (`users_id`),
   KEY `plan_start_date` (`plan_start_date`),
@@ @@
   KEY `percent_done` (`percent_done`),
   KEY `projectstates_id` (`projectstates_id`),
   KEY `projecttasktypes_id` (`projecttasktypes_id`),
+  KEY `is_milestone` (`is_milestone`),
   KEY `projecttasktemplates_id` (`projecttasktemplates_id`),
   KEY `is_template` (`is_template`),
-  KEY `is_milestone` (`is_milestone`)
+  KEY `date_creation` (`date_creation`)
 )
Le schéma diffère pour la table "glpi_registeredids".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `device_type` varchar(100) NOT NULL,
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
-  KEY `item` (`itemtype`,`items_id`),
-  KEY `device_type` (`device_type`)
+  KEY `device_type` (`device_type`),
+  KEY `item` (`itemtype`,`items_id`)
 )
Le schéma diffère pour la table "glpi_reminders".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_creation` datetime,
   PRIMARY KEY (`id`),
   UNIQUE KEY `uuid` (`uuid`),
-  KEY `name` (`name`),
   KEY `date` (`date`),
   KEY `begin` (`begin`),
   KEY `end` (`end`),
@@ @@
   KEY `is_planned` (`is_planned`),
   KEY `state` (`state`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_requesttypes".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
   KEY `is_helpdesk_default` (`is_helpdesk_default`),
-  KEY `is_followup_default` (`is_followup_default`),
   KEY `is_mail_default` (`is_mail_default`),
-  KEY `is_mailfollowup_default` (`is_mailfollowup_default`),
   KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`),
   KEY `is_active` (`is_active`),
   KEY `is_ticketheader` (`is_ticketheader`),
+  KEY `is_followup_default` (`is_followup_default`),
+  KEY `is_mailfollowup_default` (`is_mailfollowup_default`),
   KEY `is_itilfollowup` (`is_itilfollowup`)
 )
Le schéma diffère pour la table "glpi_rulerightparameters".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_rules".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `condition` int NOT NULL DEFAULT 0,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
   KEY `is_active` (`is_active`),
   KEY `sub_type` (`sub_type`),
@@ @@
   KEY `date_mod` (`date_mod`),
   KEY `is_recursive` (`is_recursive`),
   KEY `condition` (`condition`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_slalevels".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `uuid` varchar(255),
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
+  KEY `is_active` (`is_active`),
+  KEY `slas_id` (`slas_id`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
-  KEY `is_active` (`is_active`),
-  KEY `slas_id` (`slas_id`)
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_olalevels".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `uuid` varchar(255),
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
+  KEY `is_active` (`is_active`),
+  KEY `olas_id` (`olas_id`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
-  KEY `is_active` (`is_active`),
-  KEY `olas_id` (`olas_id`)
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_slms".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `entities_id` int NOT NULL DEFAULT 0,
   `is_recursive` tinyint NOT NULL DEFAULT 0,
   `comment` text,
-  `use_ticket_calendar` tinyint NOT NULL DEFAULT 0,
   `calendars_id` int NOT NULL DEFAULT 0,
   `date_mod` datetime,
   `date_creation` datetime,
+  `use_ticket_calendar` tinyint NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
+  KEY `calendars_id` (`calendars_id`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
-  KEY `calendars_id` (`calendars_id`),
   KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`)
 )
Le schéma diffère pour la table "glpi_slas".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `type` int NOT NULL DEFAULT 0,
   `comment` text,
   `number_time` int NOT NULL,
-  `use_ticket_calendar` tinyint NOT NULL DEFAULT 0,
   `calendars_id` int NOT NULL DEFAULT 0,
   `date_mod` datetime,
   `definition_time` varchar(255),
@@ @@
   `end_of_working_day` tinyint NOT NULL DEFAULT 0,
   `date_creation` datetime,
   `slms_id` int NOT NULL DEFAULT 0,
+  `use_ticket_calendar` tinyint NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
-  KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
+  KEY `calendars_id` (`calendars_id`),
   KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`),
-  KEY `calendars_id` (`calendars_id`),
-  KEY `slms_id` (`slms_id`)
+  KEY `slms_id` (`slms_id`),
+  KEY `entities_id` (`entities_id`),
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_olas".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `type` int NOT NULL DEFAULT 0,
   `comment` text,
   `number_time` int NOT NULL,
-  `use_ticket_calendar` tinyint NOT NULL DEFAULT 0,
   `calendars_id` int NOT NULL DEFAULT 0,
   `date_mod` datetime,
   `definition_time` varchar(255),
@@ @@
   `end_of_working_day` tinyint NOT NULL DEFAULT 0,
   `date_creation` datetime,
   `slms_id` int NOT NULL DEFAULT 0,
+  `use_ticket_calendar` tinyint NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
-  KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
+  KEY `calendars_id` (`calendars_id`),
   KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`),
-  KEY `calendars_id` (`calendars_id`),
-  KEY `slms_id` (`slms_id`)
+  KEY `slms_id` (`slms_id`),
+  KEY `entities_id` (`entities_id`),
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_softwarecategories".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `ancestors_cache` longtext,
   `sons_cache` longtext,
   PRIMARY KEY (`id`),
+  KEY `softwarecategories_id` (`softwarecategories_id`),
   KEY `name` (`name`),
-  KEY `softwarecategories_id` (`softwarecategories_id`),
   KEY `level` (`level`)
 )
Le schéma diffère pour la table "glpi_softwarelicenses".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `softwarelicenses_id` int NOT NULL DEFAULT 0,
   `completename` text,
   `level` int NOT NULL DEFAULT 0,
-  `ancestors_cache` longtext,
-  `sons_cache` longtext,
   `entities_id` int NOT NULL DEFAULT 0,
   `is_recursive` tinyint NOT NULL DEFAULT 0,
   `number` int NOT NULL DEFAULT 0,
@@ @@
   `comment` text,
   `date_mod` datetime,
   `is_valid` tinyint NOT NULL DEFAULT 1,
+  `is_template` tinyint NOT NULL DEFAULT 0,
+  `template_name` varchar(255),
+  `is_deleted` tinyint NOT NULL DEFAULT 0,
   `date_creation` datetime,
-  `is_deleted` tinyint NOT NULL DEFAULT 0,
   `locations_id` int NOT NULL DEFAULT 0,
   `users_id_tech` int NOT NULL DEFAULT 0,
   `users_id` int NOT NULL DEFAULT 0,
@@ @@
   `groups_id_tech` int NOT NULL DEFAULT 0,
   `groups_id` int NOT NULL DEFAULT 0,
   `is_helpdesk_visible` tinyint NOT NULL DEFAULT 0,
-  `is_template` tinyint NOT NULL DEFAULT 0,
-  `template_name` varchar(255),
   `states_id` int NOT NULL DEFAULT 0,
   `manufacturers_id` int NOT NULL DEFAULT 0,
   `contact` varchar(255),
@@ @@
   `contact_num` varchar(255),
   `allow_overquota` tinyint NOT NULL DEFAULT 0,
   `pictures` text,
+  `ancestors_cache` longtext,
+  `sons_cache` longtext,
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
-  KEY `is_template` (`is_template`),
   KEY `serial` (`serial`),
   KEY `otherserial` (`otherserial`),
   KEY `expire` (`expire`),
   KEY `softwareversions_id_buy` (`softwareversions_id_buy`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `softwarelicensetypes_id` (`softwarelicensetypes_id`),
   KEY `softwareversions_id_use` (`softwareversions_id_use`),
   KEY `date_mod` (`date_mod`),
-  KEY `softwares_id_expire_number` (`softwares_id`,`expire`,`number`),
+  KEY `is_template` (`is_template`),
+  KEY `date_creation` (`date_creation`),
   KEY `locations_id` (`locations_id`),
   KEY `users_id_tech` (`users_id_tech`),
   KEY `users_id` (`users_id`),
@@ @@
   KEY `groups_id_tech` (`groups_id_tech`),
   KEY `groups_id` (`groups_id`),
   KEY `is_helpdesk_visible` (`is_helpdesk_visible`),
+  KEY `states_id` (`states_id`),
+  KEY `manufacturers_id` (`manufacturers_id`),
   KEY `is_deleted` (`is_deleted`),
-  KEY `date_creation` (`date_creation`),
-  KEY `manufacturers_id` (`manufacturers_id`),
-  KEY `states_id` (`states_id`),
+  KEY `softwares_id_expire_number` (`softwares_id`,`expire`,`number`),
   KEY `allow_overquota` (`allow_overquota`),
+  KEY `is_recursive` (`is_recursive`),
   KEY `softwarelicenses_id` (`softwarelicenses_id`),
   KEY `level` (`level`)
 )
Le schéma diffère pour la table "glpi_softwarelicensetypes".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `completename` text,
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
-  KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`),
   KEY `softwarelicensetypes_id` (`softwarelicensetypes_id`),
+  KEY `entities_id` (`entities_id`),
+  KEY `is_recursive` (`is_recursive`),
   KEY `level` (`level`)
 )
Le schéma diffère pour la table "glpi_softwares".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `is_update` (`is_update`),
   KEY `softwarecategories_id` (`softwarecategories_id`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `manufacturers_id` (`manufacturers_id`),
   KEY `groups_id` (`groups_id`),
   KEY `users_id` (`users_id`),
@@ @@
   KEY `is_deleted` (`is_deleted`),
   KEY `is_helpdesk_visible` (`is_helpdesk_visible`),
   KEY `groups_id_tech` (`groups_id_tech`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_softwareversions".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_creation` datetime,
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
-  KEY `arch` (`arch`),
   KEY `softwares_id` (`softwares_id`),
   KEY `states_id` (`states_id`),
   KEY `entities_id` (`entities_id`),
@@ @@
   KEY `is_recursive` (`is_recursive`),
   KEY `operatingsystems_id` (`operatingsystems_id`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `arch` (`arch`)
 )
Le schéma diffère pour la table "glpi_itilsolutions".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `users_id_approval` (`users_id_approval`),
   KEY `status` (`status`),
   KEY `itilfollowups_id` (`itilfollowups_id`),
-  KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `date_mod` (`date_mod`)
 )
Le schéma diffère pour la table "glpi_ssovariables".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_states".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   UNIQUE KEY `unicity` (`states_id`,`name`),
   KEY `name` (`name`),
-  KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `is_visible_computer` (`is_visible_computer`),
   KEY `is_visible_monitor` (`is_visible_monitor`),
   KEY `is_visible_networkequipment` (`is_visible_networkequipment`),
@@ @@
   KEY `is_visible_phone` (`is_visible_phone`),
   KEY `is_visible_printer` (`is_visible_printer`),
   KEY `is_visible_softwareversion` (`is_visible_softwareversion`),
+  KEY `date_mod` (`date_mod`),
+  KEY `date_creation` (`date_creation`),
   KEY `is_visible_softwarelicense` (`is_visible_softwarelicense`),
+  KEY `is_visible_certificate` (`is_visible_certificate`),
   KEY `is_visible_line` (`is_visible_line`),
-  KEY `is_visible_certificate` (`is_visible_certificate`),
   KEY `is_visible_rack` (`is_visible_rack`),
-  KEY `is_visible_passivedcequipment` (`is_visible_passivedcequipment`),
   KEY `is_visible_enclosure` (`is_visible_enclosure`),
   KEY `is_visible_pdu` (`is_visible_pdu`),
   KEY `is_visible_cluster` (`is_visible_cluster`),
+  KEY `is_visible_passivedcequipment` (`is_visible_passivedcequipment`),
   KEY `is_visible_contract` (`is_visible_contract`),
   KEY `is_visible_appliance` (`is_visible_appliance`),
+  KEY `is_visible_cable` (`is_visible_cable`),
   KEY `is_visible_databaseinstance` (`is_visible_databaseinstance`),
-  KEY `is_visible_cable` (`is_visible_cable`),
-  KEY `is_visible_unmanaged` (`is_visible_unmanaged`),
-  KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`),
-  KEY `level` (`level`)
+  KEY `entities_id` (`entities_id`),
+  KEY `is_recursive` (`is_recursive`),
+  KEY `level` (`level`),
+  KEY `is_visible_unmanaged` (`is_visible_unmanaged`)
 )
Le schéma diffère pour la table "glpi_suppliers".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `suppliertypes_id` (`suppliertypes_id`),
   KEY `is_deleted` (`is_deleted`),
   KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`),
-  KEY `is_active` (`is_active`)
+  KEY `is_active` (`is_active`),
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_taskcategories".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `taskcategories_id` (`taskcategories_id`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
-  KEY `is_active` (`is_active`),
   KEY `is_helpdeskvisible` (`is_helpdeskvisible`),
   KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`),
+  KEY `is_active` (`is_active`),
   KEY `knowbaseitemcategories_id` (`knowbaseitemcategories_id`),
   KEY `level` (`level`)
 )
Le schéma diffère pour la table "glpi_ticketrecurrents".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `calendars_id` int NOT NULL DEFAULT 0,
   `end_date` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
   KEY `is_active` (`is_active`),
   KEY `tickettemplates_id` (`tickettemplates_id`),
   KEY `next_creation_date` (`next_creation_date`),
-  KEY `calendars_id` (`calendars_id`)
+  KEY `calendars_id` (`calendars_id`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_recurrentchanges".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `calendars_id` int NOT NULL DEFAULT 0,
   `end_date` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
   KEY `is_active` (`is_active`),
   KEY `changetemplates_id` (`changetemplates_id`),
   KEY `next_creation_date` (`next_creation_date`),
-  KEY `calendars_id` (`calendars_id`)
+  KEY `calendars_id` (`calendars_id`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_tickets".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `olas_id_tto` int NOT NULL DEFAULT 0,
   `olas_id_ttr` int NOT NULL DEFAULT 0,
   `olalevels_id_ttr` int NOT NULL DEFAULT 0,
-  `ola_tto_begin_date` datetime,
   `ola_ttr_begin_date` datetime,
   `internal_time_to_resolve` datetime,
   `internal_time_to_own` datetime,
@@ @@
   `locations_id` int NOT NULL DEFAULT 0,
   `validation_percent` int NOT NULL DEFAULT 0,
   `date_creation` datetime,
+  `ola_tto_begin_date` datetime,
   PRIMARY KEY (`id`),
   KEY `date` (`date`),
   KEY `closedate` (`closedate`),
@@ @@
   KEY `entities_id` (`entities_id`),
   KEY `users_id_recipient` (`users_id_recipient`),
   KEY `solvedate` (`solvedate`),
-  KEY `takeintoaccountdate` (`takeintoaccountdate`),
   KEY `urgency` (`urgency`),
   KEY `impact` (`impact`),
   KEY `global_validation` (`global_validation`),
-  KEY `slas_id_tto` (`slas_id_tto`),
-  KEY `slas_id_ttr` (`slas_id_ttr`),
-  KEY `time_to_resolve` (`time_to_resolve`),
-  KEY `time_to_own` (`time_to_own`),
-  KEY `olas_id_tto` (`olas_id_tto`),
-  KEY `olas_id_ttr` (`olas_id_ttr`),
-  KEY `slalevels_id_ttr` (`slalevels_id_ttr`),
-  KEY `internal_time_to_resolve` (`internal_time_to_resolve`),
-  KEY `internal_time_to_own` (`internal_time_to_own`),
   KEY `users_id_lastupdater` (`users_id_lastupdater`),
   KEY `type` (`type`),
   KEY `itilcategories_id` (`itilcategories_id`),
@@ @@
   KEY `name` (`name`),
   KEY `locations_id` (`locations_id`),
   KEY `date_creation` (`date_creation`),
+  KEY `time_to_own` (`time_to_own`),
+  KEY `internal_time_to_resolve` (`internal_time_to_resolve`),
+  KEY `internal_time_to_own` (`internal_time_to_own`),
+  KEY `time_to_resolve` (`time_to_resolve`),
   KEY `ola_waiting_duration` (`ola_waiting_duration`),
-  KEY `olalevels_id_ttr` (`olalevels_id_ttr`)
+  KEY `olas_id_tto` (`olas_id_tto`),
+  KEY `olas_id_ttr` (`olas_id_ttr`),
+  KEY `olalevels_id_ttr` (`olalevels_id_ttr`),
+  KEY `slas_id_tto` (`slas_id_tto`),
+  KEY `slas_id_ttr` (`slas_id_ttr`),
+  KEY `slalevels_id_ttr` (`slalevels_id_ttr`),
+  KEY `takeintoaccountdate` (`takeintoaccountdate`)
 )
Le schéma diffère pour la table "glpi_tickettasks".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   UNIQUE KEY `uuid` (`uuid`),
   KEY `date` (`date`),
-  KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`),
   KEY `users_id` (`users_id`),
-  KEY `users_id_editor` (`users_id_editor`),
   KEY `tickets_id` (`tickets_id`),
   KEY `is_private` (`is_private`),
   KEY `taskcategories_id` (`taskcategories_id`),
   KEY `state` (`state`),
   KEY `users_id_tech` (`users_id_tech`),
-  KEY `groups_id_tech` (`groups_id_tech`),
   KEY `begin` (`begin`),
   KEY `end` (`end`),
+  KEY `date_mod` (`date_mod`),
+  KEY `date_creation` (`date_creation`),
+  KEY `groups_id_tech` (`groups_id_tech`),
   KEY `tasktemplates_id` (`tasktemplates_id`),
+  KEY `users_id_editor` (`users_id_editor`),
   KEY `sourceitems_id` (`sourceitems_id`),
   KEY `sourceof_items_id` (`sourceof_items_id`)
 )
Le schéma diffère pour la table "glpi_transfers".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `keep_cartridge` int NOT NULL DEFAULT 0,
   `keep_consumable` int NOT NULL DEFAULT 0,
   `date_mod` datetime,
-  `date_creation` datetime,
   `comment` text,
   `keep_disk` int NOT NULL DEFAULT 0,
+  `date_creation` datetime,
   `keep_certificate` int NOT NULL DEFAULT 0,
   `clean_certificate` int NOT NULL DEFAULT 0,
   `lock_updated_fields` int NOT NULL DEFAULT 0,
   `keep_location` int NOT NULL DEFAULT 1,
   PRIMARY KEY (`id`),
+  KEY `date_mod` (`date_mod`),
   KEY `name` (`name`),
-  KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`)
 )
Le schéma diffère pour la table "glpi_users".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `csv_delimiter` char(1),
   `is_ids_visible` tinyint,
   `use_flat_dropdowntree` tinyint,
-  `use_flat_dropdowntree_on_search_result` tinyint,
   `show_jobs_at_login` tinyint,
   `priority_1` char(20),
   `priority_2` char(20),
@@ @@
   `nickname` varchar(255),
   `timeline_action_btn_layout` tinyint,
   `timeline_date_format` tinyint,
+  `use_flat_dropdowntree_on_search_result` tinyint,
   PRIMARY KEY (`id`),
   UNIQUE KEY `unicityloginauth` (`name`,`authtype`,`auths_id`),
   KEY `firstname` (`firstname`),
@@ @@
   KEY `date_mod` (`date_mod`),
   KEY `authitem` (`authtype`,`auths_id`),
   KEY `is_deleted_ldap` (`is_deleted_ldap`),
-  KEY `date_creation` (`date_creation`),
   KEY `begin_date` (`begin_date`),
   KEY `end_date` (`end_date`),
+  KEY `date_creation` (`date_creation`),
   KEY `sync_field` (`sync_field`),
   KEY `groups_id` (`groups_id`),
   KEY `users_id_supervisor` (`users_id_supervisor`),
Le schéma diffère pour la table "glpi_virtualmachinestates".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_virtualmachinesystems".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_virtualmachinetypes".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_vlans".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `tag` (`tag`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_wifinetworks".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_creation` datetime,
   PRIMARY KEY (`id`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `essid` (`essid`),
   KEY `name` (`name`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_knowbaseitems_comments".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `knowbaseitems_id` (`knowbaseitems_id`),
   KEY `parent_comment_id` (`parent_comment_id`),
   KEY `users_id` (`users_id`),
-  KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `date_mod` (`date_mod`)
 )
Le schéma diffère pour la table "glpi_datacenters".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_creation` datetime,
   `pictures` text,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
   KEY `locations_id` (`locations_id`),
   KEY `is_deleted` (`is_deleted`),
+  KEY `date_creation` (`date_creation`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_dcrooms".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
   KEY `locations_id` (`locations_id`),
   KEY `datacenters_id` (`datacenters_id`),
   KEY `is_deleted` (`is_deleted`),
+  KEY `date_creation` (`date_creation`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_racks".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
   KEY `locations_id` (`locations_id`),
@@ @@
   KEY `is_deleted` (`is_deleted`),
   KEY `dcrooms_id` (`dcrooms_id`),
   KEY `date_creation` (`date_creation`),
-  KEY `date_mod` (`date_mod`)
+  KEY `date_mod` (`date_mod`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_enclosures".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
   KEY `locations_id` (`locations_id`),
@@ @@
   KEY `is_deleted` (`is_deleted`),
   KEY `states_id` (`states_id`),
   KEY `manufacturers_id` (`manufacturers_id`),
+  KEY `date_creation` (`date_creation`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_pdus".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
   KEY `locations_id` (`locations_id`),
@@ @@
   KEY `manufacturers_id` (`manufacturers_id`),
   KEY `pdutypes_id` (`pdutypes_id`),
   KEY `date_creation` (`date_creation`),
-  KEY `date_mod` (`date_mod`)
+  KEY `date_mod` (`date_mod`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_itilfollowups".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `sourceitems_id` int NOT NULL DEFAULT 0,
   `sourceof_items_id` int NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
-  KEY `item` (`itemtype`,`items_id`),
   KEY `date` (`date`),
+  KEY `users_id` (`users_id`),
+  KEY `is_private` (`is_private`),
+  KEY `requesttypes_id` (`requesttypes_id`),
   KEY `date_mod` (`date_mod`),
   KEY `date_creation` (`date_creation`),
-  KEY `users_id` (`users_id`),
   KEY `users_id_editor` (`users_id_editor`),
-  KEY `is_private` (`is_private`),
-  KEY `requesttypes_id` (`requesttypes_id`),
+  KEY `item` (`itemtype`,`items_id`),
   KEY `sourceitems_id` (`sourceitems_id`),
   KEY `sourceof_items_id` (`sourceof_items_id`)
 )
Le schéma diffère pour la table "glpi_clusters".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `users_id_tech` (`users_id_tech`),
   KEY `group_id_tech` (`groups_id_tech`),
   KEY `is_deleted` (`is_deleted`),
@@ @@
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
   KEY `date_creation` (`date_creation`),
-  KEY `date_mod` (`date_mod`)
+  KEY `date_mod` (`date_mod`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_planningexternalevents".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_creation` datetime,
   PRIMARY KEY (`id`),
   UNIQUE KEY `uuid` (`uuid`),
-  KEY `name` (`name`),
   KEY `planningexternaleventtemplates_id` (`planningexternaleventtemplates_id`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
@@ @@
   KEY `state` (`state`),
   KEY `planningeventcategories_id` (`planningeventcategories_id`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_planningexternaleventtemplates".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_mod` datetime,
   `date_creation` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
   KEY `state` (`state`),
   KEY `planningeventcategories_id` (`planningeventcategories_id`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_domains_items".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `is_deleted` tinyint NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
   UNIQUE KEY `unicity` (`domains_id`,`itemtype`,`items_id`),
+  KEY `item` (`itemtype`,`items_id`),
   KEY `domainrelations_id` (`domainrelations_id`),
-  KEY `item` (`itemtype`,`items_id`),
   KEY `is_dynamic` (`is_dynamic`),
   KEY `is_deleted` (`is_deleted`)
 )
Le schéma diffère pour la table "glpi_domainrecords".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `domains_id` (`domains_id`),
   KEY `domainrecordtypes_id` (`domainrecordtypes_id`),
   KEY `users_id_tech` (`users_id_tech`),
@@ @@
   KEY `groups_id_tech` (`groups_id_tech`),
   KEY `date_mod` (`date_mod`),
   KEY `is_deleted` (`is_deleted`),
-  KEY `date_creation` (`date_creation`)
+  KEY `date_creation` (`date_creation`),
+  KEY `is_recursive` (`is_recursive`)
 )
Le schéma diffère pour la table "glpi_appliances".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `groups_id` int NOT NULL DEFAULT 0,
   `groups_id_tech` int NOT NULL DEFAULT 0,
   `date_mod` datetime,
-  `date_creation` datetime,
   `states_id` int NOT NULL DEFAULT 0,
   `externalidentifier` varchar(255),
   `serial` varchar(255),
   `otherserial` varchar(255),
+  `is_helpdesk_visible` tinyint NOT NULL DEFAULT 1,
+  `pictures` text,
+  `date_creation` datetime,
   `contact` varchar(255),
   `contact_num` varchar(255),
-  `is_helpdesk_visible` tinyint NOT NULL DEFAULT 1,
-  `pictures` text,
   PRIMARY KEY (`id`),
   UNIQUE KEY `unicity` (`externalidentifier`),
   KEY `entities_id` (`entities_id`),
-  KEY `is_recursive` (`is_recursive`),
   KEY `name` (`name`),
   KEY `is_deleted` (`is_deleted`),
   KEY `appliancetypes_id` (`appliancetypes_id`),
@@ @@
   KEY `otherserial` (`otherserial`),
   KEY `is_helpdesk_visible` (`is_helpdesk_visible`),
   KEY `date_mod` (`date_mod`),
+  KEY `is_recursive` (`is_recursive`),
   KEY `date_creation` (`date_creation`)
 )
Le schéma diffère pour la table "glpi_agents".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `useragent` varchar(255),
   `tag` varchar(255),
   `port` varchar(6),
-  `remote_addr` varchar(255),
   `threads_networkdiscovery` int NOT NULL DEFAULT 1,
   `threads_networkinventory` int NOT NULL DEFAULT 1,
   `timeout_networkdiscovery` int NOT NULL DEFAULT 0,
   `timeout_networkinventory` int NOT NULL DEFAULT 0,
+  `remote_addr` varchar(255),
   `use_module_wake_on_lan` tinyint NOT NULL DEFAULT 0,
   `use_module_computer_inventory` tinyint NOT NULL DEFAULT 0,
   `use_module_esx_remote_inventory` tinyint NOT NULL DEFAULT 0,
@@ @@
   PRIMARY KEY (`id`),
   UNIQUE KEY `deviceid` (`deviceid`),
   KEY `name` (`name`),
-  KEY `agenttypes_id` (`agenttypes_id`),
   KEY `entities_id` (`entities_id`),
   KEY `is_recursive` (`is_recursive`),
-  KEY `item` (`itemtype`,`items_id`)
+  KEY `item` (`itemtype`,`items_id`),
+  KEY `agenttypes_id` (`agenttypes_id`)
 )
Le schéma diffère pour la table "glpi_rulematchedlogs".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `agents_id` int NOT NULL DEFAULT 0,
   `method` varchar(255),
   PRIMARY KEY (`id`),
+  KEY `item` (`itemtype`,`items_id`),
   KEY `agents_id` (`agents_id`),
-  KEY `item` (`itemtype`,`items_id`),
   KEY `rules_id` (`rules_id`)
 )
Le schéma diffère pour la table "glpi_lockedfields".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `items_id` int NOT NULL DEFAULT 0,
   `field` varchar(50) NOT NULL,
   `value` varchar(255),
-  `date_mod` datetime,
   `date_creation` datetime,
   `is_global` tinyint NOT NULL DEFAULT 0,
+  `date_mod` datetime,
   PRIMARY KEY (`id`),
   UNIQUE KEY `unicity` (`itemtype`,`items_id`,`field`),
+  KEY `date_creation` (`date_creation`),
   KEY `date_mod` (`date_mod`),
-  KEY `date_creation` (`date_creation`),
   KEY `is_global` (`is_global`)
 )
Le schéma diffère pour la table "glpi_unmanageds".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   KEY `locations_id` (`locations_id`),
   KEY `networks_id` (`networks_id`),
   KEY `states_id` (`states_id`),
-  KEY `groups_id_tech` (`groups_id_tech`),
   KEY `is_deleted` (`is_deleted`),
   KEY `date_mod` (`date_mod`),
   KEY `is_dynamic` (`is_dynamic`),
@@ @@
   KEY `autoupdatesystems_id` (`autoupdatesystems_id`),
   KEY `agents_id` (`agents_id`),
   KEY `snmpcredentials_id` (`snmpcredentials_id`),
+  KEY `groups_id_tech` (`groups_id_tech`),
   KEY `users_id_tech` (`users_id_tech`)
 )
Le schéma diffère pour la table "glpi_printerlogs".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `bw_copies` int NOT NULL DEFAULT 0,
   `color_copies` int NOT NULL DEFAULT 0,
   `scanned` int NOT NULL DEFAULT 0,
+  `faxed` int NOT NULL DEFAULT 0,
   `date` date,
   `date_creation` datetime,
   `date_mod` datetime,
-  `faxed` int NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
   UNIQUE KEY `unicity` (`printers_id`,`date`),
   KEY `date` (`date`),
Le schéma diffère pour la table "glpi_networkportconnectionlogs".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `networkports_id_destination` int NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
   KEY `date` (`date`),
-  KEY `networkports_id_source` (`networkports_id_source`),
-  KEY `networkports_id_destination` (`networkports_id_destination`)
+  KEY `networkports_id_destination` (`networkports_id_destination`),
+  KEY `networkports_id_source` (`networkports_id_source`)
 )
Le schéma diffère pour la table "glpi_networkportmetrics".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   PRIMARY KEY (`id`),
   UNIQUE KEY `unicity` (`networkports_id`,`date`),
   KEY `date` (`date`),
-  KEY `date_creation` (`date_creation`),
-  KEY `date_mod` (`date_mod`)
+  KEY `date_mod` (`date_mod`),
+  KEY `date_creation` (`date_creation`)
 )
Le schéma diffère pour la table "glpi_refusedequipments".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_creation` datetime,
   `date_mod` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `entities_id` (`entities_id`),
   KEY `agents_id` (`agents_id`),
   KEY `autoupdatesystems_id` (`autoupdatesystems_id`),
   KEY `rules_id` (`rules_id`),
   KEY `date_creation` (`date_creation`),
-  KEY `date_mod` (`date_mod`)
+  KEY `date_mod` (`date_mod`),
+  KEY `name` (`name`)
 )
Le schéma diffère pour la table "glpi_items_remotemanagements".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `is_deleted` tinyint NOT NULL DEFAULT 0,
   PRIMARY KEY (`id`),
   KEY `is_dynamic` (`is_dynamic`),
-  KEY `is_deleted` (`is_deleted`),
-  KEY `item` (`itemtype`,`items_id`)
+  KEY `item` (`itemtype`,`items_id`),
+  KEY `is_deleted` (`is_deleted`)
 )
Le schéma diffère pour la table "glpi_manuallinks".
--- Schéma de base de données attendu
+++ Schéma de base de données actuel
@@ @@
   `date_creation` datetime,
   `date_mod` datetime,
   PRIMARY KEY (`id`),
-  KEY `name` (`name`),
   KEY `item` (`itemtype`,`items_id`),
   KEY `items_id` (`items_id`),
   KEY `date_creation` (`date_creation`),
-  KEY `date_mod` (`date_mod`)
+  KEY `date_mod` (`date_mod`),
+  KEY `name` (`name`)
 )

@btry
Copy link
Collaborator

btry commented Apr 1, 2025

Hi

This output shows that there is no problem with the tables of the plugin. It seems that the main differences is the order if columns or keys which is not a problem for GLPI. Only Formcreator requires a strict order of columns in one of its tables and it is correct in your instance. The problem is elsewhere.

@Azgar1998
Copy link
Author

Do you have any idea where this problem comes from?

@btry
Copy link
Collaborator

btry commented Apr 1, 2025

Not yet

@Azgar1998
Copy link
Author

The fact that the history is not complete in the simplified interface, can you have a link with my initial problem?

@Azgar1998
Copy link
Author

I think I have a clue:

I noticed that when I create a ticket, it creates an f_XXXX, as I entered in my initial request.

As you told me, this happens because there are multiple tickets linked to the form completed by the user. I noticed that the second linked ticket was from 2020 or 2021. I think something happened at that point (uninstalling/reinstalling the formcreator plugin didn't work correctly, for example, due to a bug in the plugin or a related bug).

In the database, there is a table called glpi_items_ticket.

I deleted all the links between the forms and the 2020 and 2021 tickets. Then I ran the "SyncIssues" task in GLPI's automatic tasks. When creating a new ticket from the form, it creates a t_XXXX. Those that were in f_XXX have moved to t_XXXXX after all the manipulation of what I just told you

@Azgar1998
Copy link
Author

This can help to make a connection with a past bug, over a more specific period

@btry
Copy link
Collaborator

btry commented Apr 10, 2025

Hi

As you told me, this happens because there are multiple tickets linked to the form completed by the user. I noticed that the second linked ticket was from 2020 or 2021. I think something happened at that point (uninstalling/reinstalling the formcreator plugin didn't work correctly, for example, due to a bug in the plugin or a related bug).

Indeed, it the plugin is uninstalled the form answers are deleted. If the plugin is reinstalled later, then tie form answers are missing and the generated tickets are considered created bu GLPI, without Formcreator. The best way to check this scenario is to investigate in the database and see if there is a relation entry in glpi_items_tickets between a ticket and an object FormAnswer (in SQL : WHERE tickets_id=42 AND itemtype='PluginFormcreatorFormAnswer' The ID must be changed to the ID of the ticket that you want to examine). The column items_id in the result (if any) is the ID of a form answer. You must check that this row exists in glpi_plugin_formcreator_formanswers.

If you deleted the relations I believe this is not longer possible to check if all FormAnswers objects exist in DB for the relation rows in glpi_items_tickets, but the action "SyncIssues" seems to work now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants