Boa tarde.
1 -> Quando envio uma nfe o retorno do processamento é "imediato", más parece-me que o mesmo não ocorre com a nfse, isso confere?
Isso varia de acordo com o município que você envia a NFSe. A estrutura de NFSe é diferente da estrutura de NFe, devido a isso o retorno , as vezes, não é imediato. Alguns WebServices tem essa lentidão para processar as notas, demorando assim para dar o retorno do XML da NFSe. Porem como disse acima, isso varia de prefeitura para prefeitura.
Obs: Em alguns casos pode ser uma oscilação do próprio servidor.
2 -> Quando envio a nfe eu sei na "hora" se foi aceita ou não mas na nfse parece-me que não ocorre desta forma, digo isso por que a nfse que enviei na consulta foi retornado na tag <Sucesso> o valor: "false", e na mensagem: "Lote nao processado ainda ", algum tempo depois chegou ao meu e-mail um e-mail da prefeitura com a nfse que enviei, então minha dúvida é: saberei se o resultado é positivo apenas com o retorno para o e-mail?
Não. Como citado acima o servidor pode demorar para pocessar o lote, ou seja, converter o Rps em uma NFSe. Sendo assim, quando você realiza a consulta e tem esse retorno, quer dizer que o lote ainda esta em processamento na prefeitura. Aguarde e faça uma nova consulta, pois se o lote estiver totalmente processado será retornado o XML da NFSe.
3 -> Em um lote com 5 rps supomos que 3 foram validados e 2 não(Validação cadastral, valores, etc... valições que o componente não comtempla), o que ocorre? As 3 que foram validadas são aceitas pela prefeitura e as outras 2 são retornadas com os erros?
Não, quando você envia um lote com 5 RPS's e em 2 ocorrefalha, rejeição, o lote inteiro é rejeitado.
4 -> Supomos que eu possua um lote com 500 rps enviados(em meu caso terei até mais), se eu quizer imprimir apenas um rps especifico desse lote é possivel?
Para realizar a impressão de um RPS dentro do lote, você deve seguir o seguinte procedimento: Após receber o lote autorizado com todas as NFSe's, você captura o número da NFSe que deseja imprimir.
Para localizar o número da NFSe você pode utilizar os métodos:
procedure ObterNumerosImpressao(aXml: XMLString; var AList : TStrings);
Alimenta uma lista com os números das NFSe ou RPS de um XML. Quando o componente está configurado para impressão de NFSe, deve-se usar um XML recebido de retorno de uma das funções de consulta (ConsultarSituacaoLoteRps, ConsultarNfsePorRps ou ConsultarNfse), e quando configurado para impressão de RPS deve-se usar um XML de envio gerado via dataset ou TX2. Caso não seja encontrada nenhum NFSe ou RPS a lista é retornada vazia. Comumente essa rotina é usada em conjunto com a ExtrairXmlParaImpressao. RPS encontradas no XML.
Parâmetros
aXml
XML válido, contendo uma ou mais NFSe ou RPS.
AList
TStrings: lista onde serão armazenados os números das NFSe ou
Exceções
EspdNFSeException
levantada quando o XML não é válido
function ExtrairXmlParaImpressao(aXml: XMLString; aNumero: string): XMLString;
Retorna o XML da NFSe ou RPS que possui um determinado número. Quando o componente está configurado para impressão de NFSe, deve-se usar um XML recebido de retorno de uma das funções de consulta (ConsultarSituacaoLoteRps, ConsultarNfsePorRps ou ConsultarNfse), e quando configurado para impressão de RPS deve-se usar um XML de envio gerado via dataset ou TX2. Caso não seja encontrada uma NFSe ou RPS com o número estipulado, o retorno é vazio. O XML retornado pode ser usado diretamente em uma das rotinas de impressão (Visualizar, Imprimir, Editar ou Exportar).
Parâmetros
aXml
XML válido, contendo uma ou mais NFSe ou RPS.
aNumero
Número da NFSe ou RPS que se deseja extrair.
Retornos
string contendo o XML da NFSe ou RPS.
Exceções
EspdNFSeException
levantada quando o XML não é válido
Exemplo de utilização dos métodos:
procedure TfrmExemplo.Button3Click(Sender: TObject);
var
_str : TStrings;
i : integer;
begin
try
_str := TStringList.Create;
NFSe.ObterNumerosImpressao(mmXML.Text,_str);
for i:= 0 to _str.Count -1 do
begin
mmXMLFormatado.Lines.Add(ProxyNFSe.ComponenteNFSe.ExtrairXmlParaImpressao(mmXML.Text,_str.Strings[ i]));
end;
finally
_str.Free;
end;
end;
Obs: Lembrando que o limite do arquivo é 500k.
5 - Enviei um rps de um tx2 onde o campo NumeroRPS tinha o valor 1, porem o no retorno a minha nota veio como 86, essa numeração é automatica?
Sim, o controle do número da NFSe é feito pelo servidor do WebService e não pelo componente ou o emitente.


