Tempo aproximado para leitura: 00:00:40 min
Ocorrência
No modulo Controle Manutenção Industrial, ao exportar para Excel a Consulta de Os, ocorre a mensagem "Erro de conversão, talvez o valor inserido seja de tamanho maior que o correto."
Ambiente
TOTVS Agro - TOTVS Agro - Bioenergia - Controle Manutenção Industrial - MI - Versão 12
Causa
Esse incidente ocorre, pois o campo DATA_INICIO e DATA_FIM, está com o valor 00/00/0000.
Solução
Para solucionar essa ocorrência, realize os seguintes passos:
1. Execute o Select abaixo, modificando as datas do Campo ord_dtcomunica e ord_dtgeracaoos, que foram informadas na geração da consulta;
select to_date(o.ORD_DTGERACAOOS) Geracao,
o.emp_codemp Empresa,
o.cal_safra Safra,
o.ord_codos OS,
o.ord_descri Descricao_OS,
nvl(se.ser_itord, '1') cod_servico,
nvl(se.ser_dscsuc, o.ord_descri) Descricao_serv,
trunc(o.ord_dtcomunica) Data_Comunic,
substr(o.ord_hrcomunica, 1, 2) || ':' ||
substr(o.ord_hrcomunica, 3, 2) Hora_Comunic,
o.set_codset Cod_Setor,
s.set_desset Desc_Setor,
o.are_codigo Cod_Area,
a.are_descri Desc_Area,
c.sub_codigo Cod_SubC_Custo,
c.sub_descri Desc_SubC_Custo,
o.id_conta Cod_Conta_Gerenc,
t.con_descri Desc_Conta_Gerenc,
decode(t.con_maninv, 'I', 'INVESTIMENTO', 'MANUTENÇÃO') Tipo_Conta_Gerenc,
m.mis_codigo MIS,
m.mis_descri Desc_MIS,
e.eqp_codeqp Equipamento,
e.eqp_descri Desc_Equipamento,
decode(o.ord_tipo,
'M',
'MANUT. CORRETIVA',
'R',
'REG. SERVIÇO',
'E',
'ENTRESSAFRA',
'X',
'SERV. EXTERNO',
'P',
'PREVENTIVA/PREDITIVA') Tipo_OS,
o.tip_codigo Cod_Tipo_Ativi,
tp.tip_descri Desc_Tipo_Ativi,
o.mod_codmod Cod_Modalidade,
md.mod_desmod Desc_Modalidade,
o.id_contrato Cod_Contrato,
ct.con_descricao Desc_Contrato,
o.cau_codigo,
mcpcausa.cau_descri CausaDescri,
o.ord_desccausa Desc_Causa,
o.def_codigo Cod_Defeito,
df.def_descricao Desc_Defeito,
o.mod_codmoddef Cod_Modal_Defeito,
mf.mod_desmodi Desc_Modal_Defeito,
f.fun_cracha Cracha,
f.fun_nome Nome_Funci,
o.ord_obs Observ,
fHomemHoraPrevOs(o.emp_codemp, o.ord_codos) nHomemHoraPrevisto,
fMoRealOs(o.emp_codemp, o.ord_codos) nHomemHoraReal,
fCustoMoProp(o.emp_codemp, o.ord_codos) nCustoMObraPropria,
fCustoMoTerc(o.emp_codemp, o.ord_codos) nCustoMObraTerceiro,
fCustoRepMaterOs(o.emp_codemp, o.ord_codos) nCustoMaterial,
o.ord_status,
case
when o.ord_status = '0' then
'0 - Em andamento'
when o.ord_status = '1' then
'1 - Programada'
when o.ord_status = '2' then
'2 - Não Programada'
when o.ord_status = '3' then
'3 - Interrompida'
when o.ord_status = '4' then
'4 - Encerrada'
when o.ord_status = '5' then
'5 - Cancelada'
end status,
decode('C', 'C', cc.con_tag, sc.sub_tag) TAG,
trunc(o.ord_dtencerramento) Encerramento,
se.equ_codigo,
se.equ_descri,
decode(se.id_seros,
null,
0,
fhorcent(se.ser_durprev) * se.ser_numpessoas) hh,
decode(se.id_seros, null, 0, fmorealservico(se.id_seros)) MORealServ,
trunc(o.ord_dtinicio) Data_Inicio,
substr(o.ord_hrini, 1, 2) || ':' ||
substr(o.ord_hrini, 3, 2) Hora_Inicio,
trunc(o.ord_dtfim) Data_Fim,
substr(o.ord_hrfim, 1, 2) || ':' ||
substr(o.ord_hrfim, 3, 2) Hora_Fim,
case se.ser_status
when '0' then
'0 - Andamento'
when '1' then
'1 - Não Iniciado'
when '2' then
'2 - Programado'
when '3' then
'3 - Interrompido'
when '4' then
'4 - Encerrado'
when '5' then
'5 - Cancelado'
end ServStatus,
se.ser_dtdesejada,
se.ser_priori,
decode(se.ser_preprogramado, '1', 'Sim', 'Não') as ser_preprogramado
from mcpordem o,
mcparea a,
mcpsetor s,
mcpsubcusto c,
mcpconta t,
mcpmis m,
mcpeqpto e,
mcptipoativi tp,
mcpmodal md,
mcpcontrato ct,
mcpdefeito df,
mcpmodaldef mf,
mcpfunci f,
mcpconjunto cc,
mcpsubconjunto sc,
mcpcausa,
(select ser.*,
eq.equ_codigo,
eq.equ_descri
from mcpseord ser,
mcpequipe eq
where ser.id_equipe = eq.id_equipe) se
where o.set_codset = a.set_codset
and o.are_codigo = a.are_codigo
and o.emp_codemp = se.emp_codemp(+)
and o.ord_codos = se.ord_codos(+)
and a.set_codset = s.set_codset
and o.id_scusto = c.id_scusto
and o.emp_codemp = t.emp_codemp
and o.cal_safra = t.cal_safra
and o.id_conta = t.id_conta
and o.id_eqpto = e.id_eqpto(+)
and o.tip_codigo = tp.tip_codigo
and o.mod_codmod = md.mod_codmod(+)
and o.id_contrato = ct.id_contrato(+)
and o.def_codigo = df.def_codigo(+)
and o.mod_codmoddef = mf.mod_codmoddef(+)
and o.id_funci = f.id_funci(+)
and o.id_mis = m.id_mis(+)
and o.emp_codemp = '1'
and o.id_conju = cc.id_conju(+)
and o.id_conju = sc.id_conju(+)
and o.id_subconju = sc.id_subconju(+)
and o.cau_codigo = mcpcausa.cau_codigo(+)
and o.ord_tipo != 'P'
and trunc(o.ord_dtcomunica) >= to_date('26/09/2022', 'DD/MM/YYYY')
and trunc(o.ord_dtcomunica) <= to_date('02/10/2022', 'DD/MM/YYYY')
and trunc(o.ord_dtgeracaoos) >= to_date('26/09/2022', 'DD/MM/YYYY')
and trunc(o.ord_dtgeracaoos) <= to_date('02/10/2022', 'DD/MM/YYYY')
order by to_date(Geracao)
2. Exporte para Excel e localize o campo DATA_INICIO e DATA_FIM avalie se contem registro com as informações 00/00/0000;
3. Execute o comando abaixo na tabela MCPORDEM e realize a correção do registro.
select ORD_CODOS,
ord_dtgeracaoos,
ord_dtexecprp,
ORD_DTINICIO,
ORD_DTFIM,
ORD_DTCOMUNICA,
ORD_DTDESEJSOL,
ORD_DTENCERRAMENTO
from mcpordem
where to_char(ord_dtgeracaoos) = '00/00/0000'
or to_char(ord_dtexecprp) = '00/00/0000'
or to_char(ORD_DTINICIO) = '00/00/0000'
or to_char(ORD_DTFIM) = '00/00/0000'
or to_char(ORD_DTCOMUNICA) = '00/00/0000'
or to_char(ORD_DTDESEJSOL) = '00/00/0000'
or to_char (ORD_DTENCERRAMENTO) = '00/00/0000' for update
0 Comentários