Encontramos uma situação utilizando o provedor ProvinV2, cidade de Campo Ere/SC com o WebService http://campoere.govbr.cloud
Durante a geração do XML do RPS, se não tem alíquota de ISS o componente não gera a TAG <Aliquota>0</Aliquota>.
Se enviar o XML sem esta TAG, no site, recebemos a seguinte resposta
E se informar a TAG <Aliquota>0</Aliquota> é processado com sucesso.
Para gerar essa TAG, as modificações abaixo foram realizadas:
no fonte: \Fontes\ACBrDFe\ACBrNFSe\PCNNFSe\pnfsNFSeW_ABRASFv2.pas na procedure GerarServicoValores; (Linha 514)
Adicionado o Case:
proPronimv2:
Gerador.wCampo(tcDe4, '#25', 'Aliquota', 01, 05, 1, NFSe.Servico.Valores.Aliquota, DSC_VALIQ);
case FProvedor of
proCoplan, proDigifred, proELv2, proFriburgo, proNEAInformatica,
proNotaInteligente, proSisPMJP, proVitoria, proSmarAPDABRASF, proGiss,
proDeISS, proTcheInfov2, proCenti, proRLZ, proiiBrasilv2, proTecnos,
proSigCorp, proSiapSistemas, proISSJoinville, proSmarAPDv23,
proAbacov2:
Gerador.wCampo(tcDe2, '#25', 'Aliquota', 01, 05, 0, NFSe.Servico.Valores.Aliquota, DSC_VALIQ);
proABase, proDesenvolve, proEReceita, proProdata, proSafeWeb,
proSimplISSv2:
Gerador.wCampo(tcDe2, '#25', 'Aliquota', 01, 05, 1, NFSe.Servico.Valores.Aliquota, DSC_VALIQ);
pro4R, proISSDigital, proISSe, proLink3, proSaatri, proSystemPro, proVirtual,
proVersaTecnologia, proAdm,
proSH3:
Gerador.wCampo(tcDe4, '#25', 'Aliquota', 01, 05, 1, NFSe.Servico.Valores.Aliquota, DSC_VALIQ);
proGoiania:
if NFSe.OptanteSimplesNacional = snSim then
Gerador.wCampo(tcDe4, '#25', 'Aliquota', 01, 05, 0, NFSe.Servico.Valores.Aliquota, DSC_VALIQ);
proModernizacaoPublica:
if NFSe.OptanteSimplesNacional = snSim then
Gerador.wCampo(tcDe2, '#25', 'Aliquota', 01, 05, 0, NFSe.Servico.Valores.Aliquota, DSC_VALIQ);
proPronimv2: // Adicionado
Gerador.wCampo(tcDe4, '#25', 'Aliquota', 01, 05, 1, NFSe.Servico.Valores.Aliquota, DSC_VALIQ);
else
Gerador.wCampo(tcDe4, '#25', 'Aliquota', 01, 05, 0, NFSe.Servico.Valores.Aliquota, DSC_VALIQ);
end;
Com este case é informado para a procedure wCampo da unit pcnGerador o parametro "ocorrencias" como 1, com essa informação no parâmetro, a variável "EstaVazio" da unit wCampo fica como False e gera a TAG da Alíquota
EstaVazio := (valorDbl = 0) and (ocorrencias = 0);
Não encontrei outra maneira para a geração da TAG sem que seja desta maneira.