XML PARA TRIBUNAL DE CONTAS

10/07/2017

0

BOA TARDE AMIGOS,

ESTOU EXTRAINDO DADOS DO MEU BANCO PARA GERAR UM XML PARA O TRIBUNAL DE CONTAS.
NÃO ENTENDO MUITO DE XML, PORÉM ESTOU ESBARRANDO EM ALGUNS PROBLEMAS.

O TRIBUNAL DE CONTAS DETERMINA UM FORMATO ESPECÍFICO PARA O XML, NÓS, IDENTAÇÃO, TUDO ESPECÍFICO, GERAR NO MODO AUTO SEM CHANCE, NO MODO EXPLICIT NÃO CONSIGO AJUSTAR OS NÓS DA FORMA CORRETA, O MODO PATH SE APROXIMOU MAIS DO QUE PRECISO, EXCETO PELO CABEÇALHO QUE NÃO CONSIGO SETA-LO COMO "CABEÇALHO" ELE SE REPETE A CADA DADO NOVO.

EXEMPLO DE COMO TEM QUE SER O XML:


<?xml version="1.0" encoding="ISO-8859-1"?>
<LotacaoAgentePublico xmlns:gen="http://www.tce.sp.gov.br/audesp/xml/generico" xmlns:ap="http://www.tce.sp.gov.br/audesp/xml/atospessoal" xmlns:qpla="http://www.tce.sp.gov.br/audesp/xml/quadrofuncional-lotacaoagentepublico" xmlns="http://www.tce.sp.gov.br/audesp/xml/quadrofuncional-lotacaoagentepublico" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.tce.sp.gov.br/audesp/xml/quadrofuncional-lotacaoagentepublico ../quadrofuncional/AUDESP_LOTACAOAGENTEPUBLICO_2016_A.XSD">
<Descritor>
<gen:AnoExercicio>2016</gen:AnoExercicio>
<gen:TipoDocumento>Lotação Agente Público</gen:TipoDocumento>
<gen:Entidade>11111</gen:Entidade>
<gen:Municipio>7107</gen:Municipio>
<gen:DataCriacaoXML>2017-06-01</gen:DataCriacaoXML>
</Descritor>
<ListaLotacaoAgentePublico>
<LotacaoAgentePublico>
<cpf Tipo="02">
<gen:Numero>19847020841</gen:Numero>
</cpf>
<dataLotacao>2004-05-14</dataLotacao>
<exercicioAtividade>1</exercicioAtividade>
<codigoMunicipioCargo>7107</codigoMunicipioCargo>
<codigoEntidadeCargo>11204</codigoEntidadeCargo>
<codigoCargo>27.18</codigoCargo> <!-- Exemplo de lotação em Cargo -->
<cargoRemunerado></cargoRemunerado>
<unidadeLotacao>CENTRO DE FINANCAS</unidadeLotacao>
<funcaoGoverno>06</funcaoGoverno>
<formaProvimento>1</formaProvimento>
<dataExercicio>1993-06-14</dataExercicio>
</LotacaoAgentePublico>
</ListaLotacaoAgentePublico>
<ListaHistoricoLotacaoAgentePublico>
<HistoricoLotacaoAgentePublico>
<cpf Tipo="02">
<gen:Numero>19847020841</gen:Numero>
</cpf>
<dataExercicio>1993-06-14</dataExercicio>
<dataLotacao>2004-05-14</dataLotacao>
<codigoMunicipioCargo>7107</codigoMunicipioCargo>
<codigoEntidadeCargo>11204</codigoEntidadeCargo>
<codigoCargo>27.18</codigoCargo>
<dataHistoricoLotacao>2004-05-14</dataHistoricoLotacao>
<situacao>1</situacao> <!-- Exemplo de Ativo -->
</HistoricoLotacaoAgentePublico>
</ListaHistoricoLotacaoAgentePublico>
</LotacaoAgentePublico>


O SELECT QUE ESTOU FAZENDO:

WITH XMLNAMESPACES ('http://www.tce.sp.gov.br/audesp/xml/generico' as gen,
'http://www.tce.sp.gov.br/audesp/xml/atospessoal' as ap,
'http://www.tce.sp.gov.br/audesp/xml/quadrofuncional-lotacaoagentepublico' as qpla,
'http://www.w3.org/2001/XMLSchema-instance' as xsi,
'http://www.tce.sp.gov.br/audesp/xml/quadrofuncional-lotacaoagentepublico ../quadrofuncional/AUDESP_LOTACAOAGENTEPUBLICO_2016_A.XSD' as schemaLocation)
SELECT H.NOTA,
'2016' as 'gen:Anoexercicio',
D.DOCTIPCOD AS [TIPO],
D.CPF AS 'gen:numero',
RTRIM(CONVERT(CHAR,P.PSEDAT,103)) AS 'dataLotacaoo',
RTRIM(CONVERT(CHAR,P.ADIDAT,103)) AS 'dataExercicio',
M.MUNCOD AS 'CodigoMunicipioCargo',
SA.UGECOD AS 'CodigoEntidadeCargo',
C.CRGCOD AS 'CodigoCargo',
RTRIM(CONVERT(CHAR,P.EMPDAT1,103)) AS 'dataHistoricoLotacao',
P.SLGCOD AS 'Situacao'
FROM DOCUMENTOS P
INNER JOIN MUN M
ON M.MUNCOD = P.PMNASMUNCOD
INNER JOIN RELUGEOPM SA
ON SA.OPMCOD = P.PMOPMEFE
INNER JOIN PMDOC D
ON D.RENUM = P.RENUM
INNER JOIN SCH001.CRGAUD C
ON C.POSCOD = P.POSCOD
INNER JOIN HEADER H
ON H.COD = 1
WHERE P.SLGCOD = 1
AND P.RENUM IN (138894,117957)
AND D.CPF <> -9
ORDER BY D.CPF DESC
FOR XML PATH ('ListaHistoricoLotacaoAgentePublico'), ROOT ('LotacaoAgentePublico'), ELEMENTS


O QUE EU OBTENHO COM ELE:

<LotacaoAgentePublico xmlns:schemaLocation="http://www.tce.sp.gov.br/audesp/xml/quadrofuncional-lotacaoagentepublico ../quadrofuncional/AUDESP_LOTACAOAGENTEPUBLICO_2016_A.XSD" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:qpla="http://www.tce.sp.gov.br/audesp/xml/quadrofuncional-lotacaoagentepublico" xmlns:ap="http://www.tce.sp.gov.br/audesp/xml/atospessoal" xmlns:gen="http://www.tce.sp.gov.br/audesp/xml/generico">
<ListaHistoricoLotacaoAgentePublico>
<NOTA>
<LotacaoAgentePublico xmlns:gen="http://www.tce.sp.gov.br/audesp/xml/generico" xmlns:ap="http://www.tce.sp.gov.br/audesp/xml/atospessoal" xmlns:qpla="http://www.tce.sp.gov.br/audesp/xml/quadrofuncional-lotacaoagentepublico" xmlns="http://www.tce.sp.gov.br/audesp/xml/quadrofuncional-lotacaoagentepublico" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.tce.sp.gov.br/audesp/xml/quadrofuncional-lotacaoagentepublico ../quadrofuncional/AUDESP_LOTACAOAGENTEPUBLICO_2016_A.XSD">
<Descritor>
<gen:AnoExercicio>2016</gen:AnoExercicio>
<gen:TipoDocumento>Lotação Agente Público</gen:TipoDocumento>
<gen:Entidade>11204</gen:Entidade>
<gen:Municipio>7107</gen:Municipio>
<gen:DataCriacaoXML>2017-06-01</gen:DataCriacaoXML>
</Descritor>
</LotacaoAgentePublico>
</NOTA>
<gen:Anoexercicio>2016</gen:Anoexercicio>
<TIPO>1</TIPO>
<gen:numero>39527487811</gen:numero>
<dataLotacaoo>01/02/2011</dataLotacaoo>
<dataExercicio>01/02/2011</dataExercicio>
<CodigoMunicipioCargo>3550308</CodigoMunicipioCargo>
<CodigoEntidadeCargo>180378</CodigoEntidadeCargo>
<CodigoCargo>27.23</CodigoCargo>
<dataHistoricoLotacao>01/08/2008</dataHistoricoLotacao>
<Situacao>1</Situacao>
</ListaHistoricoLotacaoAgentePublico>
<ListaHistoricoLotacaoAgentePublico>
<NOTA>
<LotacaoAgentePublico xmlns:gen="http://www.tce.sp.gov.br/audesp/xml/generico" xmlns:ap="http://www.tce.sp.gov.br/audesp/xml/atospessoal" xmlns:qpla="http://www.tce.sp.gov.br/audesp/xml/quadrofuncional-lotacaoagentepublico" xmlns="http://www.tce.sp.gov.br/audesp/xml/quadrofuncional-lotacaoagentepublico" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.tce.sp.gov.br/audesp/xml/quadrofuncional-lotacaoagentepublico ../quadrofuncional/AUDESP_LOTACAOAGENTEPUBLICO_2016_A.XSD">
<Descritor>
<gen:AnoExercicio>2016</gen:AnoExercicio>
<gen:TipoDocumento>Lotação Agente Público</gen:TipoDocumento>
<gen:Entidade>11204</gen:Entidade>
<gen:Municipio>7107</gen:Municipio>
<gen:DataCriacaoXML>2017-06-01</gen:DataCriacaoXML>
</Descritor>
</LotacaoAgentePublico>
</NOTA>
<gen:Anoexercicio>2016</gen:Anoexercicio>
<TIPO>1</TIPO>
<gen:numero>29133646830</gen:numero>
<dataLotacaoo>01/03/2004</dataLotacaoo>
<dataExercicio>01/03/2004</dataExercicio>
<CodigoMunicipioCargo>3543303</CodigoMunicipioCargo>
<CodigoEntidadeCargo>180154</CodigoEntidadeCargo>
<CodigoCargo>27.05</CodigoCargo>
<dataHistoricoLotacao>21/01/2002</dataHistoricoLotacao>
<Situacao>1</Situacao>
</ListaHistoricoLotacaoAgentePublico>
</LotacaoAgentePublico>

LEMBRANDO QUE O MEU XML ESTOU SÓ TESTANDO PARA TENTAR ACHAR O CAMINHO PARA GERA-LO... ENTÃO ALGUNS DADOS NÃO CONDIZEM COM OS PEDIDOS PELO TRIBUNAL DE CONTAS.

SE ALGUEM PUDER ME DAR UMA LUZ AGRADEÇO.

UMA DUVIDA POR EXEMPLO É O ELEMENTO TIPO, DEVERIA SER UM ID O ELEMENTO NUMERO DEVERIA SER UM FILHO DO TIPO... ENFIM...

AGRADEÇO
Ramon Penteado

Ramon Penteado

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar