Pelo fato de voce ter de capturar a resposta e tratá-la sugiro que modifique as funções do meu set como segue o exemplo:
Código: Selecionar todos
Function ConsultarSAT( nSessionRandom )
// Consulta entre AC e Equipamento SAT
// numeroSessao - Número aleatório gerado pelo AC para controle da comunicação
cString := DllCall( hACBrDLL, 0x0020, "ConsultarSAT", nSessionRandom ) // SATConsultar( nSessionRandom )
aString := StringToArray( cString, "|" )
? cString
return iif(valtype(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
Function AtivarSAT( numeroSessao, subComando, codigoDeAtivacao, CNPJ, cUF )
cString := DllCall( hACBrDll, 0x0020, "AtivarSAT", numeroSessao, subComando, codigoDeAtivacao, CNPJ, cUF ) // SATAtivar( numeroSessao, subComando, codigoDeAtivacao, CNPJ, cUF )
aString := StringToArray( cString, "|" )
? cString
return iif(valtype(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
Código: Selecionar todos
Function ConsultarSAT( nSessionRandom )
// Consulta entre AC e Equipamento SAT
// numeroSessao - Número aleatório gerado pelo AC para controle da comunicação
cString := SATConsultar( nSessionRandom )
aString := StringToArray( cString, "|" )
? cString
return iif(valtype(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
Function ConsultarStatusOperacionalSAT( nSessionRandom, codigoDeAtivacao )
// Consulta entre AC e Equipamento SAT
// numeroSessao - Número aleatório gerado pelo AC para controle da comunicação
cString := SATConsultarStatusOperacional( nSessionRandom, codigoDeAtivacao )
aString := StringToArray( cString, "|" )
? cString
return iif(valtype(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
Function AtivarSAT( numeroSessao, subComando, codigoDeAtivacao, CNPJ, cUF )
cString := SATAtivar( numeroSessao, subComando, codigoDeAtivacao, CNPJ, cUF )
aString := StringToArray( cString, "|" )
? cString
return iif(valtype(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
Function AssociarAssinaturaSAT( numeroSessao, codigoDeAtivacao, CNPJ, CNPJSH )
cString := SATAssociarAssinatura( numeroSessao, codigoDeAtivacao, CNPJ, CNPJSH )
aString := StringToArray( cString, "|" )
? cString
return iif(valtype(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
Function DesligarSAT()
cString := SATDesligar()
aString := StringToArray( cString, "|" )
? cString
return iif(valtype(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
Function ConsultarNumeroSessao( nSessionRandom, codigoAtivacao, numeroSessao )
// Consulta de número de sessão processada pelo Equipamento SAT
// numeroSessao - Número aleatório gerado pelo AC para controle da comunicação
// cNumeroDeSessao - Número de sessão a ser consultado no SAT-CF-e
cString := SATConsultarNumeroSessao( nSessionRandom, codigoAtivacao, numeroSessao )
aString := StringToArray( cString, "|" )
? cString
return iif(valtype(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
Function TesteFimAFim( numeroSessao, codigoAtivacao, dados )
// Teste fim-a-fim de comunicação de venda (envio de dados para venda de teste).
cString := SATTesteFimAFim( numeroSessao, codigoAtivacao, dados )
aString := StringToArray( cString, "|" )
? cString
return iif(valtype(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
Function EnviarDadosVenda( numeroSessao, codigoAtivacao, dados )
// Geração do Cupom de Venda
// numeroSessao - Número aleatório gerado pelo AC para controle da comunicação
// codigoDeAtivacao - senha definida pelo contribuinte no software de ativação.
// dadosVenda - refere-se aos dados de venda gerados pelo AC e utilizados para compor o CF-e-SAT.
cString := SATEnviarDadosVenda( numeroSessao, codigoAtivacao, dados )
aString := StringToArray( cString, "|" )
? cString
return iif(valtype(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
Function CancelarUltimaVenda( numeroSessao, codigoAtivacao, chaveAcesso, dados )
// Cancelamento da última venda
// numeroSessao - Número aleatório gerado pelo AC para controle da comunicação e vendas
// codigoDeAtivacao - senha definida pelo contribuinte no software de ativação.
// chave - Chave de acesso do CF-e-SAT a ser cancelado
// dadosCancelamento - refere-se aos dados da venda gerados pelo AC e utilizados para compor o CF-e-SAT de cancelamento
cString := SATCancelarUltimaVenda( numeroSessao, codigoAtivacao, chaveAcesso, dados )
aString := StringToArray( cString, "|" )
? cString
return iif(valtype(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
/* OK */ DLL32 FUNCTION SATConsultar( numeroSessao AS _INT ) AS STRING FROM "ConsultarSAT" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATAtivar( numeroSessao AS _INT, subComando AS _INT, codigoDeAtivacao AS STRING, CNPJ AS STRING, cUF AS _INT ) AS STRING FROM "AtivarSAT" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATAssociarAssinatura( numeroSessao AS _INT, codigoDeAtivacao AS STRING, CNPJ AS STRING, AssinaturaCNPJ AS STRING ) AS STRING FROM "AssociarAssinatura" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATDesligar() AS STRING FROM "DesligarSAT" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATConsultarNumeroSessao( getRandom AS _INT, codigoAtivacao AS STRING, numeroSessao AS STRING) AS STRING FROM "ConsultarNumeroSessao" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATTesteFimAFim( numeroSessao AS _INT, codigoAtivacao AS STRING, dados AS STRING) AS STRING FROM "TesteFimAFim" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATEnviarDadosVenda( numeroSessao AS _INT, codigoAtivacao AS STRING, dados AS STRING) AS STRING FROM "EnviarDadosVenda" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATCancelarUltimaVenda( numeroSessao AS _INT, codigoAtivacao AS STRING, chaveAcesso AS STRING, dados AS STRING) AS STRING FROM "CancelarUltimaVenda" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATConsultarStatusOperacional( numeroSessao AS _INT, codigoAtivacao AS STRING ) AS STRING FROM "ConsultarStatusOperacional" LIB hSATDLL