Pessoal, algumas tabelas especificas que crio geram o seguinte erro, quando executo um find na mesma dentro de upcs: Find first/last failed for table xxxxxx. Se eu fizer o mesmo comando no editor, o erro não acontece. Esse erro se dá quando um registro não é encontrado, porém eu faço o tratamento para criar o registro caso o mesmo não seja encontrado ou atualizar o existente. Alguém já passou por isso?
Caro colega, Poste um dos seus codigos por completo ou me envia por e-mail leite1969@yahoo.com.br para ver onde esta o problema.
Isso acontece porque não foi encontrado um registro na tabela com a condição informada. Tente no final da sua sintaxe colocar o comando NO-ERROR. e apos o seu FIND utilize o comando IF AVAIL <tabela> THEN DO: END. ELSE DO: END. Acredito que seja esse o problema.
Rogerio eu usei o no-error também. Consegui descobrir o problema, quer dizer, descobri a solução mas não entendi o problema. Alterei o evento onde fazia minha lógica. Antes fazia no "End-Update" e passei a fazer no "AFTER-END-UPDATE" e ae funcionou. Segue a lógica que funcionou: IF p-ind-event = "AFTER-END-UPDATE" AND p-ind-object = "VIEWER" AND c-objeto BEGINS "v34in172.w" THEN DO: FIND FIRST ITEM WHERE ROWID(ITEM) = p-row-table NO-LOCK NO-ERROR. IF AVAIL ITEM THEN DO: FIND FIRST item-eletronico USE-INDEX idx-elet WHERE item-eletronico.it-codigo = ITEM.it-codigo EXCLUSIVE-LOCK NO-ERROR. IF NOT AVAIL item-eletronico THEN DO: CREATE item-eletronico. ASSIGN item-eletronico.it-codigo = ITEM.it-codigo item-eletronico.eletronico = (IF h-eletronico:SCREEN-VALUE = "yes" THEN YES ELSE NO). END. ELSE ASSIGN item-eletronico.eletronico = (IF h-eletronico:SCREEN-VALUE = "yes" THEN YES ELSE NO). RELEASE item-eletronico. END. END.