Bom dia galera,
Essa foi a solução que achei para resolver o problema de inserção
automática dos Grupos ao abrir os chamados no GLPI.
Objetivo: Atualizar os grupos dos chamados abertos automaticamente, utilizando um script PHP e o crontab (linux) ou agendador de tarefas (windows).
Vamos lá, crie um arquivo chamado “update_grupos.php” e salve na raiz do GLPI. Depois copie e cole o código abaixo:
[php]
#!/usr/bin/php
<?php
/* Função – Conexão com MySQL <=> GLPI */
function AcessaMySQL($servidor, $usuario, $senha, $database){
mysql_connect($servidor, $usuario, $senha) or die (mysql_error());
mysql_select_db($database) or die (mysql_error());
}
/* Chama a função */
AcessaMysql(‘localhost’, ‘root’, ‘123456’, ‘glpi’);
/* Usuário */
$sql = "UPDATE glpi_tracking, glpi_users_groups SET glpi_tracking.FK_group = glpi_users_groups.FK_groups
WHERE glpi_tracking.author = glpi_users_groups.FK_users AND glpi_tracking.FK_group = ‘0’; ";
mysql_query($sql);
?>
[/php]
Se você utilizar o Linux como servidor GLPI, basta executar esse script utilizando o crontab, da seguinte forma:
[code]*/10 * * * * /var/www/glpi/update_grupos.php[/code]
Se você utilizar o Windows como servidor GLPI, basta adicionar/agendar uma tarefa para executar de 10 em 10 minutos um atalho para o http://servidor/glpi/update_grupos.php, e existe também uma forma de fazer via script (.bat) mas isso fica para um próximo post.
Até a próxima…
Comentários
4 respostas para “Resolvendo problema de inserção automática de Grupos no GLPI”
Pessoal,
Criar uma trigger que faz o direcionamento automático dos chamados para o grupo técnico sem utilizar as regras do sistema.
No meu caso, eu troquei cerca de 600 regras por essa trigger.
Basta informar os grupos no campo “Grupo encarregado do hardware” de cada categoria e criar a trigger abaixo:
——————————————————————————————————
— Trigger trg_insert_tickets
— versão GLPI .85
— Descrição: Após a inclusão do chamado, essa trigger atribui o chamado ao grupo técnico informado na tabela de categorias.
— Impacto: Caso essa trigger não seja executada, os chamados não serão atribuidos de forma automática.
— Autor: Carlos Moura
——————————————————————————————————-
FOR EACH ROW
BEGIN
DECLARE gid INT;
DECLARE gname VARCHAR(30);
SET gid = (SELECT groups_id FROM glpi_itilcategories where id = NEW.itilcategories_id);
SET gname = CONCAT((SELECT name FROM glpi_groups WHERE id = gid),’ (‘,gid,’)’);
IF NEW.itilcategories_id > 0
THEN
INSERT INTO glpi_groups_tickets(tickets_id, groups_id, type) VALUES (NEW.id,gid,2);
INSERT INTO glpi_logs(itemtype, items_id, itemtype_link, linked_action, user_name, date_mod, id_search_option, new_value) VALUES (‘Ticket’, NEW.id, ‘Group’, 15,’Regra catálogo’,sysdate(),0, gname);
END IF;
END;
@Cristiano realmente tem que alterar as tabelas para funcionar, pois na versão 0.80.4 não é mais glpi_tracking e sim glpi_tickets, houve também mudança de campos.
Vou atualizar o post com a query logo logo.
Ricardo,
Respondi essa sua pergunta no GLPI Brasil, creio que esse script não va ajudar você nessa versão que está utilizando, se estiver errado o Thiago me corrija, mais essa Querry serve para versão 72.4 do GLPI apenas.
Bom dia
Uso a versão GLPI 0.80.4 com as modificações feitas por vc, por sinal muito boas.
Mas ao tentar utilizar a inserção automática por groups o Mysql me diz que não existe a tabela glpi_tracking. Ess script funciona nessa versão?
Vi no forum que poderia utilizar as regras para fazer essa configuração mas não entendi como fazer isso. Teria que criar um regra para cada usuário do tipo se usuárioX então grupo Y? Existe alguma outra forma de fazer isso ?
Obrigado