Estou trocando o componente do ACBRNFSe pelo ACBRNFSeX, eu procurei e li uns tópicos referente a como configurar o path para buscar o devido "Schemas do Provedor", mas a solução é copiar um único schema de um provedor e deixar ele em uma pasta fixa e apontar para ela, mas tem a opção de "Montar automaticamente o Path dos Schemas" no próprio exemplo, conforme abaixo as funções:
procedure TACBrNFSeXProvider.ValidarSchema(Response: TNFSeWebserviceResponse; aMetodo: TMetodo);
var
...
if TACBrNFSeX(FAOwner).Configuracoes.Geral.MontarPathSchema then
Schema := PathWithDelim(GetSchemaPath) + Schema
else
Schema := FAOwner.Configuracoes.Arquivos.PathSchemas + Schema;
...
Que faz chamada a outra função abaixo:
function TACBrNFSeXProvider.GetSchemaPath: string;
begin
with TACBrNFSeX(FAOwner).Configuracoes do
begin
Result := PathWithDelim(Arquivos.PathSchemas + Geral.xProvedor);
Result := PathWithDelim(Result + VersaoNFSeToStr(Geral.Versao));
end;
end;
O problema, vem no trecho abaixo se marcado a opção de montar automaticamente, da erro porque a principio não tem a pasta com o numero da versão:
procedure TACBrNFSeXProvider.ValidarSchema(Response: TNFSeWebserviceResponse; aMetodo: TMetodo);
var
...
if TACBrNFSeX(FAOwner).Configuracoes.Geral.MontarPathSchema then
Schema := PathWithDelim(GetSchemaPath) + Schema
else
Schema := FAOwner.Configuracoes.Arquivos.PathSchemas + Schema;
Minha duvida é porque colocar a versão "Geral.Versao" no path? Senão tivesse ela, daria para referenciar a pasta ...\Exemplos\ACBrDFe\ACBrNFSe\Schemas e ficaria dinamico mudar de provedor já que dentro da pasta não tem este numero de versão e parece ser mantido sem o numero de versão, poderiam me explicar melhor como eu faria para ficar dinamico essa mudança de provedor e não ter de trabalhar com este numero de versão, como disse ele nem parece ser mantido na pasta de schemas?