Tenho o código abaixo php misturado com SQL onde é exibido os seguintes dados: Dia | Sistema | Regional | Site | Tipo | Chamado | Abertura | SLA | Fechamento | Tempo afetado | Fila | Descrição
Obs.: esses dados estão no banco MySQL !!!
<?php
set_time_limit(0);
require_once 'autenticacao.php';
require_once 'vantiveAPI.php';
require_once 'atualizaWorkFlow.php';
require_once 'queryOracle.php';
if( !temPerfil('relatorios') )
morrer('Acesso negado');
require_once('relatorios.entrada.php');
require_once ('vantiveAPI.php');
$sql = "
SELECT
chamado.sq_chamado,
sistema.no_class3,
group_concat(regional.no_regional order by regional.no_regional separator '<br />') as regional,
chamado.nu_chamado,
sistema.no_class4,
chamado.fg_aberto,
chamado.tx_descricao,
chamado.sq_site,
site.no_site,
(select fila.no_fila from fila, workflow
where fila.sq_fila = workflow.sq_fila and workflow.nu_chamado = chamado.nu_chamado
order by workflow.dt_data desc limit 1) as fila,
(select fila.sq_fila from fila
where fila.no_fila = fila) as sq_fila,
date_format(chamado.dt_abertura,'%d') as dabertura,
date_format(chamado.dt_abertura,'%H:%i') as habertura,
if( chamado.fg_aberto,
'Em aberto',
if( date(chamado.dt_abertura) = date(chamado.dt_fechamento),
date_format(chamado.dt_fechamento,'%H:%i'),
date_format(chamado.dt_fechamento,'%d/%m %H:%i')
)
) as fechamento,
chamado.hr_sla,
if( chamado.fg_aberto,
timediff(now(),chamado.dt_abertura),
timediff(chamado.dt_fechamento,chamado.dt_abertura)
) as duracao,
if( chamado.fg_aberto,
if(unix_timestamp(now()) - unix_timestamp(chamado.dt_abertura) > chamado.hr_sla * 3600,1,0),
if(unix_timestamp(chamado.dt_fechamento) - unix_timestamp(chamado.dt_abertura) > chamado.hr_sla * 3600,1,0)
) as estourado
FROM chamado
left join chamado_regional using(nu_chamado)
left join regional on chamado_regional.sq_regional = regional.sq_regional
left join sistema on chamado.sq_sistema = sistema.sq_sistema
left join site on chamado.sq_site = site.sq_site
WHERE 1 and chamado.fg_excluido is null and (chamado.fg_publico or chamado.fg_critico)"
. ($data ? " and date(chamado.dt_abertura) >= '$data'" : "")
. ($data2 ? " and date(chamado.dt_abertura) <= '$data2'" : "")
. ($andamento == 1 ? " and fg_aberto = 0" : ($andamento == 2 ? " and fg_aberto = 1" : ""))
. ($class3 ? " and sistema.no_class3 = '$class3'" : "")
. ($class4 ? " and sistema.no_class4 = '$class4'" : "")
. ($status ? " and sistema.status = '$status'" : "")
. ($sq_regional ? " and chamado_regional.sq_regional = '$sq_regional'" : "")
. ($no_site ? " and site.no_site = '$no_site'" : "")
. " GROUP BY chamado.sq_chamado "
. " HAVING 1"
. ($sla == 1 ? " and estourado = 0" : ($sla == 2 ? " and estourado = 1" : ""))
. ($sq_fila ? " and sq_fila = '$sq_fila'" : "")
. ($sq_site ? " and sq_site = '$sq_site'" : "")
. " ORDER BY chamado.dt_abertura";
$res = mysql_query($sql) or morrer("Erro na query: \n $sql \n\n " . mysql_error());
require_once 'relatorios.head.php';
?>
<table>
<thead>
<tr>
<th>Dia
<th>Sistema
<th>Regional
<th>Site
<th>Tipo
<th>Chamado
<th>Abertura
<th>SLA
<th>Fechamento
<th>Tempo afetado
<th>Fila
<th>Ação
<th>Descrição
<tbody>
<?
$i = 0;
while( $row = mysql_fetch_assoc($res) ){
if( $i == 0 ){ $cor = "par"; }else{ $cor = "impar"; }
?>
<tr>
<td class="<?=$cor;?> "><div align="center"><?=$row['dabertura'];?></div>
<td class="<?=$cor;?> "><div align="center"><?=$row['no_class3'];?></div>
<td class="<?=$cor;?> "><div align="center"><?=$row['regional'];?></div>
<td class="<?=$cor;?> "><div align="center"><?=$row['no_site'];?></div>
<td class="<?=$cor;?> "><div align="center"><?=$row['no_class4'];?></div>
<td class="<?=$cor;?> "><div align="center"><?=$row['nu_chamado'];?></div>
<td class="<?=$cor;?> "><div align="center"><?=$row['habertura'];?></div>
<td class="<?=$cor;?> "><div align="center"><?=$row['hr_sla'];?>:00</div>
<td class="<?=$cor;?> "><div align="center"><?=$row['fechamento'];?></div>
<td class="<?=$cor;?> <?=$row['estourado']?"vermelho":"";?>"><div align="center"><?=substr($row['duracao'],0,-3);?></div>
<td class="<?=$cor;?> "><div align="center"><?=$row['fila'];?></div>
<td class="<?=$cor;?> "><div align="center"><?=htmlentities($row['tx_acao']);?></div>
<td class="<?=$cor;?> "><div align="center"><?=htmlentities($row['tx_descricao']);?></div>
<?
$i = pow($i-1,2);
}
?>
</table>
<?
require_once 'relatorios.rodape.php';
?>
Agora o que eu preciso que seja exibido o campo ação, porem ele não está no Banco Mysql e sim no Banco Oracle.
A minha dúvida é como mesclar as informações do campo ações do Banco Oracle com os chamados que está no Mysql.
Por enquanto o campo ação está vindo em branco.
A query abaixo fornece o campo Ação que está no Banco Oracle:
----------------------------------------- CHAMADOS ABERTOS E ENCAMINHADOS PARA DETERMINADA FILA-------------------------------------
/* OBS.: UTILIZADA PELA FILA SUPORTE LOCAL E INFORMA OS CHAMADOS QUE FORRM ABERTOS OU ENCAMINHADOS POR ESSA FILA EM DETERMINADO PERÍODO.
PARA ALTERAR O PERÍODO BASTA ALTERAR O INTERVALO DA DATA NO SEGUINTE CAMPO:
where trunc(chwf.tadatarealfinal) between '01-jul-2007' and '08-jul-2007'
PARA EXECUTÁ-LA BASTA CLICAR EM QUALQUER PARTE DENTRO DA QUERY E TECLAR "CTRL+ENTER"
SALVAR O ARQUIVO .XLS EM:
\\niteroi\Qualidade_de_Serviço\Relatórios Gerais\Relatórios Diários\Suporte Local\Fechados e Encaminhados
(DENTRO DA PASTA REFERENTE AO MÊS DA GERAÇÃO DA QUERY)
NO PORTAL, É ADICIONADA ABAIXO DA ABA SUPORTE LOCAL
*/
select '' FLAG
, cham.swhdcaseid chamado
, to_char(cham.swdatecreated, 'dd/mm/yyyy hh24:mi:ss') data_abertura
, c.taname solicitante
, c.swofficephone fone_solicitante
, c.swofficephoneext ramal_solicitante
, c.tasmstarget celular_solicitante
, c.swemailaddress email_solicitante
, c.swjobfunction cargo_solicitante
, bene.taname beneficiado
, bene.swofficephone fone_beneficiado
, bene.swofficephoneext ramal_beneficiado
, bene.tasmstarget celular_beneficiado
, bene.swemailaddress email_beneficiado
, bene.swjobfunction cargo_beneficiado
, stat.taname status
, sdet.taname detalhe_status
, func.taname ultima_acao_por
, decode(cham.tasecret, 1, '*** CONFIDENCIAL ***',cham.swnote) descricao_chamado
, x.fila fila
, x.grupo grupo
, to_char(x.recebido, 'dd/mm/yyyy hh24:mi:ss') recebido_em
, to_char(x.enviado_ou_fechado, 'dd/mm/yyyy hh24:mi:ss') enviado_ou_fechado
, to_char(w.SWDATECREATED, 'dd/mm/yyyy hh24:mi:ss') data_acao
, w.swnote acao
, w.SWCREATEDBY acao_criada_por
, ccusto.taname centro_custo_solicitante
, ccusto.tacostcentercode codigo_centro_custo
, empr.swname empresa
, cham.tacustomerid
, site.swsitename site
, cham.tasiteid
, tipo.tm_name classificacao1
, cla1.tm_name classificacao2
, cla2.tm_name classificacao3
, cla3.tm_name classificacao4
, x.tasla sla_previsto
, x.taslareal sla_realizado
, cham.swcreatedby Criado_Por
from swbappsp.tm_motivo tipo
, swbappsp.tm_motivo cla1
, swbappsp.tm_motivo cla2
, swbappsp.tm_motivo cla3
, swbappsp.sw_site site
, swbappsp.sw_customer empr
, swbappsp.ta_status_detail sdet
, swbappsp.ta_status stat
, swbappsp.sw_person c
, swbappsp.sw_person bene
, swbappsp.sw_hd_case cham
, swbappsp.ta_cost_center ccusto
, swbappsp.sw_person func
, swbappsp.sw_work_log w
, ( select chwf.swhdcaseid chamado
, f.taname fila
, g.swname grupo
, chwf.tadatarealinicial recebido
, chwf.tadatarealfinal enviado_ou_fechado
, chwf.tasla tasla
, chwf.taslareal taslareal
from swbappsp.ta_hd_case_workflow chwf, swbappsp.ta_fila f, swbappsp.sw_provider_grp g--, swbappsp.sw_hd_case cham
where trunc(chwf.tadatarealinicial) between '13-jul-2009' and '31-jul-2009'
--and cham.swhdcaseid = chwf.swhdcaseid
and chwf.tafimfilaid = f.tafilaid(+) --or (chwf.tainiciofilaid = f.tafilaid))
and f.swprovidergrpid = g.swprovidergrpid
--and f.swprovidergrpid in ('8909')) x
--and f.swprovidergrpid = '207' and f.taname NOT LIKE '%ADM TELEFONIA%') x
--and f.swprovidergrpid = '207') x
and f.tafilaid = '10709') x
--and f.tafilaid in('8569','8629')) x
where tipo.tm_motivoid = cham.tatype
and cla3.tm_motivoid(+) = cham.talevel3
and cla2.tm_motivoid(+) = cham.talevel2
and cla1.tm_motivoid = cham.talevel1
--and tipo.tm_name <> 'ATENDIMENTO PRIMEIRO NIVEL'
--and cla2.tm_name = 'NICE GRAVADOR DIGITAL'
and site.swsiteid(+) = cham.tasiteid
and empr.swcustomerid(+) = cham.tacustomerid
and sdet.tastatusdetailsid = cham.tastatusdetailid
and stat.tastatusid = cham.tastatusid
and bene.swpersonid (+) = cham.swcontactid
and cham.swreportedby = c.swpersonid
and ccusto.tacostcenterid(+) = c.tacostcenterid
and func.swlogin(+) = cham.taclosedby
and cham.swhdcaseid = w.swobjectid(+)
and cham.swhdcaseid = x.chamado
and (w.swworklogid = (select max(w2.swworklogid) from swbappsp.sw_work_log w2 where cham.swhdcaseid = w2.swobjectid or w2.swworklogid is null)
or w.swworklogid is null)
order by 2;
select *
from swbappsp.ta_hd_case_workflow
where swhdcaseid= '3351303'
select *
from swbappsp.sw_work_log
where swobjectid = 3351303
select *
from swbappsp.sw_provider_grp
SELECT *
FROM swbappsp.ta_hd_case_workflow
,'4849','3969','2229','2231','7949','2650','6629','6189'
Aplicação
Sistema desenvolvido em PHP, HTML, CSS e Javascript, acessando o banco de dados local MySQL e integrando a inclusão de chamados consultando a base Oracle do Outro sistema.
Integração Outro sistema
A inclusão de novas ocorrências é realizada informando o número do chamado registrado no Outro sistema, a regional e site afetados.
O sistema consulta o número do chamado no Outro sistema e recupera as seguintes informações:
· Classificação
· SLA
· Informação de criticidade
· Status
· Data de criação
· Data de conclusão
· Descrição
· Workflow
Uma vez recuperadas, as informações são inseridas no banco local ao incluir o chamado na base, não sendo mais utilizada a base do Outro sistema para este chamado. A exceção é para o workflow, que é checado no Outro sistema ao consultar um chamado aberto, no intervalo mínimo de 15 minutos.
Já estou em desespero e não sei como deslinchar essa situação.
Pergunta
Martinsrj
Olá pessoal, beleza?
Pessoal estou com uma dúvida.
Tenho o código abaixo php misturado com SQL onde é exibido os seguintes dados: Dia | Sistema | Regional | Site | Tipo | Chamado | Abertura | SLA | Fechamento | Tempo afetado | Fila | Descrição
Obs.: esses dados estão no banco MySQL !!!
Agora o que eu preciso que seja exibido o campo ação, porem ele não está no Banco Mysql e sim no Banco Oracle. A minha dúvida é como mesclar as informações do campo ações do Banco Oracle com os chamados que está no Mysql. Por enquanto o campo ação está vindo em branco. A query abaixo fornece o campo Ação que está no Banco Oracle:Aplicação
Sistema desenvolvido em PHP, HTML, CSS e Javascript, acessando o banco de dados local MySQL e integrando a inclusão de chamados consultando a base Oracle do Outro sistema.
Integração Outro sistema
A inclusão de novas ocorrências é realizada informando o número do chamado registrado no Outro sistema, a regional e site afetados.
O sistema consulta o número do chamado no Outro sistema e recupera as seguintes informações:
· Classificação
· SLA
· Informação de criticidade
· Status
· Data de criação
· Data de conclusão
· Descrição
· Workflow
Uma vez recuperadas, as informações são inseridas no banco local ao incluir o chamado na base, não sendo mais utilizada a base do Outro sistema para este chamado. A exceção é para o workflow, que é checado no Outro sistema ao consultar um chamado aberto, no intervalo mínimo de 15 minutos.
Já estou em desespero e não sei como deslinchar essa situação.
Agradeço desde já ajuda de todos!
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.