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
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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)