Usuários mais ativos no mês 12/2019
  1. henrique.muller

    843 Pontos

  2. paulo.silva

    842 Pontos

  3. maicon.pereira

    582 Pontos

  4. juliano.pezzini

    464 Pontos

  5. leandro.piscke

    428 Pontos

  6. diuari.molinari

    391 Pontos

  7. dirceu.schlickmann

    347 Pontos

  8. Camila

    288 Pontos

  9. bruno.cardoso

    272 Pontos

  10. Rafael Leonhardt

    253 Pontos

Alterar o valor de um campo tipo tabela no python

+2 votos
50 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

perguntou Jun 26, 2015 por ricardo.caresia (23 pontos)

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);   
respondida Jul 15, 2015 por bruno.cardoso (272 pontos)
selecionada Jul 15, 2015 por ricardo.caresia
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.

 

respondida Jun 29, 2015 por andre.gielow (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 42 visitas
0 votos
1 resposta 37 visitas
+5 votos
1 resposta 29 visitas
29 visitas perguntou Mai 9, 2014 por Camila (288 pontos)
+1 voto
1 resposta 26 visitas
...