IF ( nPos := AScan( aSoapList, { | oElement | oElement[ 1 ] == ::cUF .AND. oElement[ 2 ] == nWsServico } ) ) != 0
não é ==, e sim $, porque não se trata de uma UF, e sim uma lista de UFs.
Nota:
Esta alteração salvei hoje no git, e como uso SPaulo, acabou não me afetando, a não ser quando fosse consultar nota de alguma UF da lista que iria falhar.
O post acabou me ajudando a corrigir um erro antes que acontecesse....
Como sempre digo: "enxergar o que está na frente do nariz", vi que estava errado quando postei... rs