Coach


In pieno rock ".net" roll
Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

Anno 2005

Linq to Objects per Tracking da SAP

Sempre di più Linq mi toglie dalle problematiche più ostiche in fatto di Integrazione con i sistemi LOB.

Vediamo il caso:

Su un portale di eCommerce che si integra con SAP per gli ordini è stato creato un web service per la gestione del Tracking per controllare la quantità consegnata di ogni singolo prodotto.

Per ogni prodotto abbiamo una posizione che contiene quantià ordinata e quanta consegnata, fin qui niente di particolare ma può capitare(in particolare per i prodotti in promozione) che SAP splitti le posizioni e che per uno stesso prodotto ci troviamo 2 o più posizioni.

Es:

Prodotto1-QtaOrdinata=100-QtaConsegnata=100

Prodotto2-QtaOrdinata=100-QtaConsegnata=80

Prodotto2-QtaOrdinata=50-QtaConsegnata=50

Prodotto3-QtaOrdinata=50-QtaConsegnata=50

Prodotto3-QtaOrdinata=40-QtaConsegnata=20

 

E il risultato che vogliamo mostrare al cliente finale è una singola riga per prodotto con la somma della quantità ordinata e la somma della quantià consegnata come avviene in tutti i tracking.

Se invece di sap il datasource era un database ci bastava fare un raggruppamento in base al codice prodotto, bene con LINQ possiamo fare la stessa identica cosa ma su un'array in questo modo

Posizioni[] posizioni = orderDetail.Posizioni;

var myPos = from p in posizioni

group p by p.CodiceProdotto into prod

select new { ProductID = prod.Key,

Desc = prod.First().ShortText,

orderQty = prod.Sum(p => p.QtaOrdinata),

consQty = prod.Sum(p => p.QtaConsegnata)

};

 

Che dire adoro sempre di più LINQ

Categoria: .NET 3.5
lunedì, 09 mar 2009 Ore. 12.32
  • Views Home Page: 300.662
  • Views Posts: 827.065
  • Views Gallerie: 356.739
  • n° Posts: 484
  • n° Commenti: 275












Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003