ancora su compressione movimenti

Buongiorno, sto tentando di comprimere i movimenti di magazzino ormai da parecchio tempo (nel DB di prova). Ho eseguito ‘rettifica costo -mov art.’ inserendo nelle opzioni la data attuale. Ho poi lanciato la compressione data dei movimenti contabili inserendo come data iniziale 010103 , data finale 311204 e durata periodo ‘mese’. Osservo che per molti prodotti non viene fatta alcuna compressione e guardando il report 798 e precisamente il trigger ‘ItemEntryAdjusted’ questo controlla che per ogni prodotto non vi siano movimenti con il campo “Applied Entry to Adjust” settato a TRUE. Questo indipendentemente dalla data movimento. Ma a me sembra evidente che ad oggi ci siano movimenti di acquisto non ancora fatturati e quindi con il flag TRUE, dunque non riusciro’ mai a comprimere questi articoli. A questo punto mi sono perso qualcosa per strada?, non capisco piu’ la logica Navision (se mai l’ho capita) Grazie di cuore saluti Riccardo

quote:

Ma a me sembra evidente che ad oggi ci siano movimenti di acquisto non ancora fatturati e quindi con il flag TRUE, dunque non riusciro’ mai a comprimere questi articoli.
Originally posted by ricluc - 2006 May 03 : 08:36:55

movimenti di acquisto del 2004 non ancora fatturati? [?] come è possibile?

Ciao sgrunt, intanto scusami del ritardo con cui Ti rispondo ma ho avuto altri problemi. I movimenti del 2004, 2005 sono tutti fatturati, il fatto e’ che il programma controlla tutti i movimenti dell’articolo senza riguardo per le date che ho inserito. Di seguito la routine incriminata de report 798 ItemEntryAdjusted(ItemLedgEntry : Record “Item Ledger Entry”) : Boolean WITH ItemLedgEntry DO BEGIN ItemLedgEntry2.SETCURRENTKEY(“Applied Entry to Adjust”,“Item No.”,“Location Code”,“Variant Code”); ItemLedgEntry2.SETRANGE(“Applied Entry to Adjust”,TRUE); ItemLedgEntry2.SETRANGE(“Item No.”,“Item No.”); ItemLedgEntry2.SETRANGE(“Location Code”,“Location Code”); ItemLedgEntry2.SETRANGE(“Variant Code”,“Variant Code”); IF ItemLedgEntry2.FIND(’-’) THEN EXIT(FALSE); … ItemLedgEntry2 non ha alcun filtro data e quindi controlla tutti i movimenti anche quelli del 2006 o sbaglio ? grazie Ciao Riccardo

Scusa, non avevo capito il problema. Sì infatti controlla anche il 2006 … non capisco [?][V] a logica non ha senso, ma non vorrei sbagliare. Inoltre nell’OnAfterGetRecord del report in questione la prima condizione della IF: IF NOT “Completely Invoiced” OR NOT ItemEntryAdjusted(“Item Ledger Entry”) THEN CurrReport.SKIP; non ha molto senso visto che nelle proprietà del dataitem filtra solo i record “Completely Invoiced”=TRUE… forse non ha senso nemmeno la seconda parte … mah!? hai provato a chiedere al supporto o cercare nel knowledge base

mi sono dato questa spiegazione: il controllo che non considera le date, serve ad impedire che un movimento che necessita di rettifica venga compresso. Tieni presente che Navision rettifica i valori dei movimenti di uscita e che il flag è assegnato ai movimenti in entrata. Questo potrebbe forse accadere quando un movimento di entrata nel 2006 abbia il flag “Applied entry to adjust” = TRUE e i movimenti di uscita ad esso collegati siano del 2005. Se così fosse potrebbe essere sufficiente modificare la funzione andando a verificare le date dei movimenti collegati e quindi escludere dalla compressione solo quegli articoli che presentino il caso suddetto (che mi sembra abbastanza improbabile). Un altro discorso andrebbe fatto anche alle performance, considerando che la funzione ItemEntryAdjusted è:

  • relativa ad una condizione dell’articolo e non del singolo movimento
  • viene richiamata ad ogni movimento letto
    quindi ripetuta innumerevoli volte per uno stesso articolo … Va bene che è un’attività che viene eseguita raramente … ma io riscriverei il report

a dire la verita’ nella routine ho inserito un filtro per le date che compaiono nella request form del report 798. Mi ha compresso tutto quello che volevo (2003-2004) lasciando fuori i movimenti con il flag, ma come ben sai, in Navision se sposti una virgola non si sa quale catastrofe possa succedere essendo tutto collegato. Ad esempio succede che una volta fatta la compressione, visualizzo i movimenti di un articolo, ne scelgo uno e voglio vedere i movimenti collegati ad esso (si allaccia alla tab. 339). Se uno di questi movimenti collegati e’ stato compresso non lo trova piu’ e segnala l’errore, ma allora perche’ non togliere il collegamento dalla 339. Quasi qausi mi faccio frate. Ciao Riccardo