Olá Pessoal ! Preciso criar um programa para trocar itens do pedido de venda... Para isso, certamente teria que salvar as infos atuais do item em questão, eliminá-lo e implantar novamente com o novo código usando as infos salvas anteriormente. Entretanto, não estou conseguindo eliminar o item via BO... Estou tentando utilizar a bodi154... Já fiz vários testes como os abaixo... RUN dibo/bodi154.p PERSISTENT SET bo-ped-item. run dibo/bodi154del.p persistent set h-bodi154del. run validateDelete in h-bodi154del(input ROWID(ped-item), input-output table RowErrors). ou então... chamando run deleteRecord in bo-ped-item. deve estar esquecendo ou me confundiando em algum lugar... Alguem teria um exemplo pra me enviar?
Tem como mandar o conteúdo da tt-rowerrors? Mas também certifique de que este pedido não foi faturado e nem efetivado.
Na tt-rowerrors não tem nada... exceto quando realmente tento eliminar um item que já está alocado, faturado, embarcado... Mas fora essas situações, não retorna erro na tt-rowerrors e não elimina o item... Veja o código que estou testando... DEFINE VARIABLE bo-ped-item AS HANDLE NO-UNDO. def var h-bodi154val as handle no-undo. def var h-bodi154del as handle no-undo. DEF TEMP-TABLE rowerrors NO-UNDO /* Temp-table dos erros */ FIELD errorsequence AS INT FIELD errornumber AS INT FIELD errordescription AS CHAR FORMAT "x(150)" FIELD errorparameters AS CHAR FIELD errortype AS CHAR FIELD errorhelp AS CHAR FORMAT "x(150)" FIELD errorsubtype AS CHAR. find first ped-venda where ped-venda.nr-pedido = 1020 no-lock no-error. if avail ped-venda then do: find first ped-item of ped-venda where nr-sequencia = 2 exclusive-lock no-error. if avail ped-item then do: MESSAGE ped-item.nome-abrev SKIP ped-item.nr-sequencia SKIP ped-item.it-codigo VIEW-AS ALERT-BOX INFO BUTTONS OK. RUN dibo/bodi154.p PERSISTENT SET bo-ped-item. run dibo/bodi154del.p persistent set h-bodi154del. run validateDelete in h-bodi154del(input ROWID(ped-item), input-output table RowErrors). for each RowErrors no-lock: disp RowErrors with 1 col scrollable. end. end. end.
Está faltando algum método para excluir este item, pois você usa o validateDelete para validar, mas não há algum que efetue isto. Na documentação técnica padrão, não achei documento para a bodi154del, mas seguindo o padrão de nomes, tentei colocar o seguinte trecho após o validateDelete: Código: IF NOT CAN-FIND(rowerrors) THEN DO: RUN updateDelete IN h-bodi154del (input ROWID(ped-item)). END. Isto não apresentou erros, mas também não funcionou. Alguém aí sabe a forma correta de usar este updateDelete? Marcosgiufrida, você tem a documentação para verificar este método?