MVC - Validação de campos Cliente e Loja cliente - Ao validar loja, validação não lê código do cliente

Boa tarde,

Possuo uma tabela customizada contendo dois campos que apontam para a tabela SA1, de nome ZDH com campos ZDH_CODCLI e ZDH_LOJA.

Estou com problemas para criar a validação do campo ZDH_CODCLI em meu formulário MVC, que quando é executada não está conseguindo ler a informação do campo ZDH_CODCLI.

Segue trecho do código que crio a estrutura do model e adiciono as Triggers:

Local oStModZDH  := FWFormStruct(1,"ZDH")

Local cValCODCLI := 'ExistCpo("SA1",M->ZDH_CODCLI+IIF(EMPTY(M->ZDH_LOJA),"",RTRIM(M->ZDH_LOJA)))'
Local cValLOJCLI := 'Vazio().OR.ExistCpo("SA1",M->ZDH_CODCLI+M->ZDH_LOJA)'

Local bValCODCLI := FWBuildFeature(STRUCT_FEATURE_VALID, cValCODCLI)
Local bValLOJCLI := FWBuildFeature(STRUCT_FEATURE_VALID, cValLOJCLI)

oStModZDH:SetProperty("ZDH_CODCLI",MODEL_FIELD_VALID, bValCODCLI)
oStModZDH:SetProperty("ZDH_LOJA",MODEL_FIELD_VALID, bValLOJCLI)

No momento da execução da validação do campo ZDH_LOJA, acontece o seguinte erro:

THREAD ERROR ([4948], ti09, TI09) 14/07/2020 13:50:04 type mismatch on + on {|a,b,c,d| FWInitCpo(a,b,c),lRet:=(Vazio().OR.ExistCpo("SA1",M->ZDH_CODCLI+M->ZDH_LOJA)),FWCloseCpo(a,b,c,lRet),lRet }(PROTHEUSFUNCTIONMVC.PRX) 01/04/2020 19:16:48 line : 5460 [TOTVS build: 7.00.191205P-20200331] Called from FWFORMGRIDMODEL:SETVALUE(FWFORMGRIDMODEL.PRX) 01/04/2020 19:16:48 line : 2362 Called from FWFORMMODEL:SETVALUE(FWFORMMODEL.PRX) 01/04/2020 19:16:48 line : 2024 Called from FWFORMVIEW:VALIDFIELD(FWFORMVIEW.PRW) 01/04/2020 19:16:48 line : 1419

Cheguei a colocar a alterar a validação do campo para fazer um teste, colocando o seguinte:

Local cValLojCLI := 'MsgInfo(M->ZDH_CODCLI),.T.'

E a mensagem impressa na tela foi uma mensagem vazia, mesmo tendo valor preenchido no campo ZDH_CODCLI.

Há algo que posso fazer para ler o valor de ZDH_CODCLI na validação do campo ZDH_LOJA?

Obrigado!

-- Edit --

Fiz um novo teste, alterando a validação do campo ZDH_CODCLI para ler ZDH_LOJA:

Local cValCODCLI  := 'MsgInfo(IIF(EMPTY(M->ZDH_LOJA),"",RTRIM(M->ZDH_LOJA))),.T.'

E o resultado foi também uma janela vazia impressa, mesmo havendo conteúdo preenchido no campo ZDH_LOJA.

Pelo que parece o problema é ler um campo através de "M->" que não seja o próprio campo da validação.

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags mvc ou faça a sua própria pergunta.