+2 votos
71 visitas

Como faço para alterar o valor de um campo do tipo tabela, no python? Tentei o código 

def Load(widget):
        entity = widget.Entity
	widget.Entity.Fields["PARTICIPANTE"] = 191

e não obtive sucesso, apesar de não acusar nenhum erro. Onde 191 é o Handle da pessoa, na tabela GN_PESSOAS, com que gostaria de preencher o campo de Participante, no cadastro da PR_PROCESSOPARTICIPANTE.

Estou usando o WES 13.1

por (23 pontos) | 71 visitas

2 Respostas

+1 voto
Melhor resposta

Ricardo, já passei por esta situação. Você deve passar o entity definition junto ao handle. Tente o exemplo abaixo:

entityDefinitionParticipante = EntityDefinition.GetByName(entity.Definition.EntitySource.SystemInstanceName, "NOME_TABELA");

widget.Entity.Fields["PARTICIPANTE"] = 191
widget.Entity.Fields["PARTICIPANTE"] = EntityAssociation(191, entityDefinitionParticipante);   

 

Caso não de certo, tente tipar o Handle:

widget.Entity.Fields["PARTICIPANTE"] = EntityAssociation(Handle(191), entityDefinitionParticipante);   
por (272 pontos)
selecionada por
Perfeito Bruno.

Preencheu corretamente. Pra quem quiser o código completo de como ficou meu script:

def Load(widget):
        from Benner.Tecnologia.Common import EntityDefinition
    from Benner.Tecnologia.Common import EntityAssociation
    from Benner.Tecnologia.Common import Handle
    entity = widget.Entity
    entityDefinitionParticipante = EntityDefinition.GetByName(entity.Definition.EntitySource.SystemInstanceName,"GN_PESSOAS");
    widget.Entity.Fields["PARTICIPANTE"] = EntityAssociation(Handle(343),entityDefinitionParticipante);

Muito obrigado pela ajuda Bruno!
0 votos

Ricardo,

Respeite a identação, a identação (espaços/tabulação) é utilizada para determinar blocos de código em Python.

Acesse http://wiki.benner.com.br/wiki/index.php?title=Evento_Load_em_scripts_(WES_2008) e veja o exemplo onde é alterado o valor de um campo do tipo Tab, porém apenas substitua a linha de atribuição do tab pela atribuição do campo tipo tabela conforme seu código.

 

por (353 pontos)
André. Tentei da forma como você me passou, mas o efeito é o mesmo. Sem acusar erro algum, mas não seleciona nenhum registro no campo de participante.
Bem, se está conforme o exemplo que a própria tecnologia fez e não funciona entre em contato com eles. Posteriormente poste aqui a solução do seu problema.

Perguntas relacionadas

+9 votos
2 respostas
0 votos
1 resposta
+5 votos
1 resposta
perguntado 9 Mai, 2014 por Camila (288 pontos) | 79 visitas
Melhores May 2020
  1. henrique.muller

    18 Pontos

  2. joao.melo

    14 Pontos

  3. diego.luiz

    12 Pontos

  4. SlimShady

    11 Pontos

  5. joseglauber

    11 Pontos

  6. willian.metalsystem

    8 Pontos

  7. lucas.melo

    3 Pontos

  8. fluipress.luciano

    2 Pontos

  9. pajucara.wallacef

    2 Pontos

  10. jean.filho

    2 Pontos

200 pontos
Melhores 2020 May 25 - 31
  1. diego.luiz

    12 Pontos

  2. SlimShady

    4 Pontos

  3. willian.metalsystem

    2 Pontos

434 perguntas
480 respostas
349 comentários
466 usuários