FWSX1Util():GetGroup("GRUPO") traz Nil

FWSX1Util():GetGroup("GRUPO") traz Nil

Bom dia Arthur, como você escreveu o código? Consegue colocar o exemplo por favor.

Bom dia Arthur, você poderia dar mais informações? Como por exemplo, o que estava tentando fazer?

Muito bom, funcionou. Me pareceu meio contraditório usar AddGroup no objeto em o grupo estando gravado já em SX1.

Obrigado Daniel

Boa tarde Arthur,

Existe algumas questões que precisam ser analisadas:

  • Você instanciou a classe, adicionou o grupo pesquisado e pesquisou (SearchGroup) antes de chamar o método GetGroup?
    • O grupo pesquisado existe em seu SX1?
    • Retornou null ou um array vazio?

Essa classe tem certos passos que precisam ser seguidos para que a mesma retorne os valores do SX1, abaixo um exemplo:


#include "protheus.ch"

user function testSX1()
local oFWSX1 as object
local aPergunte as array

oFWSX1 := FWSX1Util():New()

oFWSX1:AddGroup("ACA480")
oFWSX1:SearchGroup()

aPergunte := oFWSX1:GetGroup("ACA480")

if !Empty(aPergunte)
    ConOut("Pergunte: " + aPergunte[1])
    ConOut("Quantidade de perguntas: " + cValToChar(Len(aPergunte[2])))
endif

aSize(aPergunte,0)
oFWSX1:Destroy()

FreeObj(oFWSX1)

return nil

O que pode causar o problema descrito:

  • Não ter adicionado o grupo (AddGroup) antes de chamar o método GetGroup
    • Não ter efetuar pesquisado (SearchGroup) antes de chamar o método GetGroup

A documentação da classe também possui um exemplo:

https://tdn.totvs.com/display/public/PROT/FWSX1Util

Queria saber qual a estrutura do array retornado, porque no tdn nao tem um exemplo completo. E no caso de pessoas que ainda nao tem o sistema atualizado mas tem que realizar as modificacoes nos fontes.

Olha, estava olhando no TDN e ele tem uma parte que explica o retorno : “onde a posição [1] contem o nome do Grupo de Perguntas e a posição [2] é um Array de Objetos contendo as perguntas daquele Grupo”

E bacana o funcionalidade porem, não é útil para validar o conteúdo de um parâmetro atribuído. Não sei se existe algo para trazer um array com todas as perguntas atribuídas pelo usuario, assim facilitaria em uma validação em laço (For,While)

só encontrei a SETMVValue() para atribuir, seria interessante um GEt e até um List