{sCertificado} é a string que representa o certificado digital que será usado na transmissão dos dados. Se não for informado, uma tela será exibida para o usuário escolher um dos certificados instalados. Você pode obter esta string e armazená-la em um campo de sua base de dados com a função NFSePegaNomeCertificado. No caso do provedor SIMPLISS, em vez de passar o nome do certificado deve-se passar uma string no formato "CNPJ|00000000000000|SENHA" (LITERAL CNPJ, PIPE, número do CNPJ, PIPE e senha);
{iTpAmbiente} é o código que indica o ambiente para onde o lote será enviado: 1-Produção e 2-Homologação. ATENÇÃO: verifique se existe o ambiente de homologação, pois algumas cidades/provedores não possuem, assim todos os RPS’s são enviados para o ambiente de produção sendo necessário o seu cancelamento;
{sVersao} é a versão do XML. Este parâmetro não é usado atualmente e pode ser passado em branco, mas foi mantido por questão de compatibilidade com versões anteriores para que o desenvolvedor não tenha que alterar seu código;
&{sXMLResposta} é o XML de retorno do WS. Normalmente será útil somente para propósitos de depuração e homologação de novas prefeituras. Por exemplo, se o XML de retorno não estiver no padrão correto a função pode não devolver o código de retorno no parâmetro icResultado e/ou em iSituacao, e neste caso o desenvolvedor poderá ler o retorno diretamente do XML devolvido;
&{icResultado} é uma variável do tipo Integer que precisa ser passada por referência e que após a execução da função receberá o código do resultado da execução. Um código igual a 5000 indica que a comunicação com o Web Service foi bem sucedida e qualquer outro código de retorno indica um erro. Para saber o retorno da consulta faz-se necessário analisar os demais retornos;
&{sMsgResultado} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá a mensagem literal do resultado da chamada do Web Service;
{sCNPJPrestador} é número do CNPJ do prestador, que deverá ser informado sem espaços e caracteres separadores;
{sIMPrestador} é número da inscrição municipal do prestador, que deverá ser informada sem espaços e caracteres separadores. ATENÇÃO: nos municípios atendidos pelo provedor Equiplano informe o idEntidade neste parâmetro;
{sNrNFSe} é número da NFS-e que se deseja cancelar;
{sCdMunicipioDSF} é o código do município do SIAFI, mas este parâmetro só precisa ser informado para prefeituras atendidas pelo provedor DSF;
{sCdCancelamento} é o código do cancelamento adotado pelo usuário ou pela prefeitura. Nas prefeituras atendidas pelo provedor DSF deve ser informado o código de verificação neste parâmetro.
Tiplan:
1-Erro na emissão
2-Serviço não prestado
3-Duplicidade de nota
9-Outros;
Ábaco:
MC01-Serviço não realizado
MC02-Dados cadastrais incorretos
MC03-Divergência no preço do serviço
MC04-Outros dados incorretos;
Pública:
C001-Dados do tomador incorretos
C002-Erro na descrição do serviço
C003-Erro no valor do serviço
C004-Natureza da Operação e/ou Código do Item da Lista incorreto
C005-Informações de descontos/outros tributos incorretas
C999-Outros (descrever);
{sMotivoCancelamento} é motivo do cancelamento, necessário apenas nas prefeituras que adotam os provedores DSF e Equiplan; No caso da prefeitura de Bauru-SP, informar o seguinte conteúdo neste parâmetro: "<CancelarNota soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><DadosPrestador xsi:type="urn:tcDadosPrestador"><ccm xsi:type="xsd:int">12345</ccm><cnpj xsi:type="xsd:string">01234567890123</cnpj><senha xsi:type="xsd:string">12345</senha><nota xsi:type="xsd:int">123</nota><motivo xsi:type="xsd:string">Motivo do cancelamento</motivo><email xsi:type="xsd:string">cliente@dominio.com.br</email></DadosPrestador></CancelarNota>".
&{sSucesso} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá o sucesso ou não da solicitação de cancelamento. Se for bem sucedido, será retornado "true" em letras minúsculas. ATENÇÃO: este parâmetro não existe nos seguintes municípios ou provedores: Ábaco, Betha, Belo Horizonte, Curitiba, ISSIntel, Recife-PE, Rio de Janeiro-RJ, WebISS e em vários provedores que não aderiram ao padrão ABRASF. Nestes casos o retorno deste parâmetro será sempre em branco. Para saber se a solicitação foi bem sucedida, verifique o parâmetro sDtHoraCancelamento (se ele estiver em branco, então o cancelamento não foi bem sucedido). No caso do provedor DSF, além de testar se sSucesso="true" é necessário verificar também se não retornou nenhum erro ou advertência em sListaMensagemRetorno;
&{sDtHoraCancelamento} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá a data e hora da aprovação do cancelamento se foi bem sucedido. ATENÇÃO: não são todas as prefeituras/provedores que retornam esta informação, então é necessário verificar o schema de retorno de cancelamento da prefeitura onde está sendo implementando;
&{sListaMensagemRetorno} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá as mensagens de erro ou advertência do WS. Se o lote foi processado com erros o conteúdo desta variável é que indicará os erros que precisam ser corrigidos. ATENÇÃO: não são todas as prefeituras/provedores que retornam esta informação, então é necessário verificar o schema de retorno de cancelamento da prefeitura onde está sendo implementando;
{sProxy} é usado para informar o endereço do servidor proxy, se necesário. Por exemplo ’http://proxyserver:port’. Verificar com o cliente qual é o endereço do servidor proxy e a porta https, pois a porta padrão do https é 443, e sendo assim teríamos algo como ’http://192.168.15.1:443’;
{sUsuario} é usado para informar o usuário para autenticação no proxy, se necessário;
{sSenha} é usado informar a senha de autenticação no proxy, se necessário;
{sLicenca} é usado para informar a chave da licença de uso ou registro. O cancelamento pode ser utilizado sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro da DLL. Entre em contato para mais informações;
{bExibeErro} é usado para indicar se a função deve exibir ou não os erros que ocorrerem na execução;
{bRet} é uma variável do tipo Integer que recebe o retorno da função, sendo 0 (zero) o retorno positivo, ou -1 caso ocorra algum erro. Este retorno não indica necessariamente se a NFS-e foi ou não cancelada, mas sim que a comunicação com o servidor foi bem sucedida.
Exemplo
Um exemplo de uso da função pode ser encontrado dentro da Workspace de Exemplo no DD cRpsDataDictioanry.dd procedimento CancelarNFSe. Abaixo em destaque a função citada e a chamada da função da Library na linha 42.