PERGUNTAS E RESPOSTAS
 
Bem Vindo, Visitante  Todos os Fórums
  ADVPL
Enviar para a impressoraImprimir  Enviar e-mail para um amigoEnviar Para um Amigo
Precisa estar Logado

Subject Assunto:
PROBLEMA COM ALIAS TEMPORARIO
Versão:
12.1.7
Plataforma:
Microsoft
Complemento:
DB:
SQL Server
Complemento:
LinkedIn
Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário DAUGER DAUGER em 09/08/2019, 15:57 h
Local: PR  Registro: 09/08/2019  Postagens: 8
Boa tarde povo, tudo certo?

pra mim não faz sentido nenhum.. mas estou com um problema bem besta!


tenho uma parte de uma customizacao que é a seguinte:

     If Select(cAliasTMP) > 0
          (cAliasTMP)->( dBCloseArea( ) )
     EndIf

     cQuery := ""
     cQuery += "SELECT D2_ITEM, D2_COD, D2_QUANT "+ CRLF
     cQuery += "FROM " + RetSqlName( "SD2" ) + " "+ CRLF
     cQuery += "WHERE D_E_L_E_T_ <> ‘*‘ AND D2_FILIAL = ‘" + cFilBkp + "‘ AND D2_DOC = ‘"+ cDoc +"‘ ORDER BY D2_ITEM"


     TcQuery cQuery New Alias (cAliasTMP)

     DbSelectArea(cAliasTMP)
     (cAliasTMP)->(DbGoTop())

     //Inclusão no Vetor para futura transferencia

     While (cAliasTMP)->(!eof())
               aux := (cAliasTMP)->D2_ITEM
               aadd(aGrade1, { (cAliasTMP)->D2_COD, (cAliasTMP)->D2_QUANT, POSICIONE("SBZ",1,cFilLoc+(cAliasTMP)->D2_COD,"BZ_RF_CSTD"), "01"})
               (cAliasTMP)->(dbSkip())
     Enddo     


debugando.. pego o valor do cQuery e jogo no sql.. ele me retorna certinho uma tabelinha com o item, codigo do produto e quantidade.. são no total 4 itens..

na parte de baixo para atribuir esse alias no array aGrade1 usei uma variavel auxiliar para ver em qual item do aliasTMP está posicionado antes de fazer a inclusao.. acontece que ele está pulando o item 3!

passa o 1, insere.. 2, insere.. 4, insere.. e cai fora.. deixando o produto do item 3 para tras.. por que isso ocorre?

Grato pela ajuda!!!!


IN CODE WE TRUST

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário ERPC ERPC em 09/08/2019, 18:47 h
Local: SP  Registro: 14/08/2011  Postagens: 316
Experimenta rodar a Query no APSDU, e verifica se lá ele traz os 4 registros. Se ele trouxe os registros, pode ser que a Posicione() está "desposicionando"... Neste caso, eu acho que voce nem precisaria usar a posicione, mas já colocar na Query os campos que voce quer da SBZ com um JOIN. :D


Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário DAUGER DAUGER em 12/08/2019, 14:46 h
Local: PR  Registro: 09/08/2019  Postagens: 8
Boa tarde!

executando o select no query analyzer do apsdu, o resultado tambem consta 4 itens..

porem quando debugo o fonte.. apenas na montagem do meu alias temporario ja da problema.. re-executando o sql no apdsu ele pula o item 3! sem mudar nada.. cancelando o debug.. o sql volta a trazer os 4 itens..

ja viram algo parecido?

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário DAUGER DAUGER em 12/08/2019, 15:12 h
Local: PR  Registro: 09/08/2019  Postagens: 8
Respondendo a minha propria duvida..

o item 3 some por que a rotina ja comecou a executar.. no meu select eu removo os itens deletados e a rotina é exclusao de documento de saida.. sendo assim ele ja exclui o primeiro do indice doc + produto.. que o menor codigo é o do item 3.. removendo o d_e_l_e_t_ da d2, ele retorna certo.. porem com o item ja deletado..
descobri o por que some.. mas ainda assim nao tenho uma solucao para meu problema..

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário DAUGER DAUGER em 12/08/2019, 16:14 h
Local: PR  Registro: 09/08/2019  Postagens: 8
E resolvendo meu proprio problema...

estava usando o PE MSD2520, que na documentacao esta que é chamado cada vez antes de excluir cada item.. (ate havia feito uma flag para nao executar toda vez..)
porem ele executa DEPOIS de excluir cada item.. entao na primeira execucao ja trazia o item com menor codigo deletado.. o select nao pegava..

a solucao foi trocar de PE! usei o MS520VLD.

Obrigado a todos! encerrado.

Para postar no Fórum você precisa efetuar o seu login ou se registrar

 Mudar para Fórum

 

 

 
 
   
Pagina Principal Shopping PROTHEUS Tire suas duvidas Vagas Microsiga em todo Brasil Aprofunde seus conhecimentos Noticias Online Fale Conosco Pagina Principal