[RESOLVIDO] essro no campo cod-estab no ems 206 x ems 204

Discussão em 'EMS , HCM e Totvs 11' iniciado por mpdelphi, Junho 20, 2011.

Status do Tópico:
Não esta aberto para novas mensagens.
  1. mpdelphi

    mpdelphi Membro Participativo

    Bom dia...

    No ems 204, eu tinha alguns customizados que referenciavamo o compo estabelecimento como nota-fiscal.cod-estab e no dicionario de dados a tabela se chamava cod-estabel
    agora que to migrando para o ems 206, quando vou compilar o programa ele apresenta o erro, falando que o campo cod-estab não existe.

    Se eu alterar para cod-estabel da certo.... a duvida é, o que mudou do ems 204 para o ems 206 que agora isso não funciona mais, será que tenho q por alguma include ?

    encontrou campos multiplos na tabela nota-fiscal. (3509)
    ** K:\ems\desenv10\206b\esp\essl0003.p Nao entendi a linha 67. (196)
  2. LFBuozi

    LFBuozi Membro Participativo

    O problema que você tem aí é que não tabela nota-fiscal temos os campos cod-estabel e cod-estab-estoq, e quando você chama o cod-estab, ele não sabe qual pegar.
    Não sei como é no 2.04, mas creio que não tem o cod-estab-estoq lá, e as maiores mudanças de um para outro são essas, campos a mais no banco de dados.
  3. eduardo.leite

    eduardo.leite Equipe de Suporte Moderador Equipe de Suporte

    Um problema que já vi em muitos especificos é que na programação o programado não escreve o campo todo, ou seja, quando ele está programando ao invés de colocar "cod-estabel" coloca apenas "cod-estab" (outro exemplo que vi muito foi "nr-nota-fisc" onde colocar somente "nr-nota-fis").

    O progress, ao compilar a rotina, substitui o que foi digitado pelo caminho completo no arquivo *.r, por exemplo, se você faz a seguinte rotina abaixo:

    Código:
    
    find first nota-fiscal
         where nota-fiscal.cod-estab = "1" no-error.
    
    if avail nota-fiscal then
        disp cod-estab
             serie
             nr-nota-fis.
     
    
    Nota que no DISP nem coloquei o nome da tabela, ao compilar a rotina, se não tiver nenhum erro ficará da seguinte maneira no arquivo compilado:

    Código:
    
    find first mgadm.nota-fiscal
         where mgadm.nota-fiscal.cod-estabel = "1" no-error.
    
    if available mgadm.nota-fiscal then
        disp mgadm.nota-fiscal.cod-estabel
             mgadm.nota-fiscal.serie
             mgadm.nota-fiscal.nr-nota-fisc.
    
    
    Ou seja, até os comandos são completados, o nome no banco e da tabela são inseridos, sendo assim, se na compilação você não colocar o nome do campo completo ele não saberá qual campo está sendo usado, o mesmo se não colocar a tabela, poderá ocorrer dele falar que o campo existe em uma ou outra tabela.

    O ideal, até mesmo para uma compilação mais rápida é sempre colocar a tabela e o nome do campo completo.
  4. mpdelphi

    mpdelphi Membro Participativo

    Eduardo,

    meu problema é exatamente esse.... sei que realmente o que eu coloquei nao foi o nome completo do campo.,.. o campo no banco ta cod-estabel e eu to colocando cod-estab.

    A duvida é pq no ems 2 funciona e no ems 206 nao funciona... tem bastante customizados para alterar.

    {}s

    Marcos
  5. LFBuozi

    LFBuozi Membro Participativo

    Neste caso específico foi o que te falei acima, o Progress completa os campos que você não coloca o nome inteiro, mas no 2.06 a nota-fiscal tem 2 campos que poderiam ser completados assim, os campos são cod-estabel e cod-estab-estoq, assim o Progress não sabe qual banco pegar.
  6. mpdelphi

    mpdelphi Membro Participativo

    obrigado.... vc esta certo... obrigado.
Status do Tópico:
Não esta aberto para novas mensagens.

Compartilhe esta Página