Index: VerpakkingsDefinitie/WS/ProductsAgent.pas =================================================================== diff -u -r581 -r582 --- VerpakkingsDefinitie/WS/ProductsAgent.pas (.../ProductsAgent.pas) (revision 581) +++ VerpakkingsDefinitie/WS/ProductsAgent.pas (.../ProductsAgent.pas) (revision 582) @@ -2,7 +2,7 @@ interface -uses SysUtils, System.Classes, +uses SysUtils, System.Classes, System.Generics.Collections, ObserverPattern, ApplicationContext, SelectService, OptiServerService, UI_Data; @@ -30,8 +30,8 @@ pxBoxDataObj: OptiServerService.pxBoxData); overload; procedure RegistreerMislukteOpzoeking(ProductDetailContext: TProductDetailContext; pxStatusObj: OptiServerService.pxStatus); overload; - function GetBoxDataIDsViaProduct(ProductNr: Integer; UserContext: TUserContext; - ProductDetailContext: TProductDetailContext): string; + function GetBoxDataIDsViaProduct(ProductNr: Integer; UserContext: TUserContext; ProductDetailContext: TProductDetailContext) + : TList; public Constructor Create(); procedure LaadUIInstellingen(UserContext: TUserContext; UiInstellingenContext: TUiInstellingenContext); @@ -313,7 +313,7 @@ end; function TProductsAgent.GetBoxDataIDsViaProduct(ProductNr: Integer; UserContext: TUserContext; - ProductDetailContext: TProductDetailContext): string; + ProductDetailContext: TProductDetailContext): TList; var ZoekData: OptiServerService.GetBoxDataIDsViaProduct; GetBoxDataIDsViaProductResponseObj: OptiServerService.GetBoxDataIDsViaProductResponse; @@ -322,9 +322,11 @@ Lijnen: TStringList; LijnenBoxDataID: TStringList; XMLDoc: IXMLDocument; + ResultaatLijst: TList; begin - ZoekData := nil; try + ResultaatLijst := TList.Create(); + // Request ZoekData := OptiServerService.GetBoxDataIDsViaProduct.Create(); ZoekData.SessionKey := UserContext.SessionKey; @@ -334,91 +336,154 @@ // Response if GetBoxDataIDsViaProductResponseObj.GetBoxDataIDsViaProductResult <> nil then + begin // Mislukt RegistreerMislukteOpzoeking(ProductDetailContext, GetBoxDataIDsViaProductResponseObj.GetBoxDataIDsViaProductResult); + Result := ResultaatLijst; + exit; + end; - // Bruikbare informatie uit antwoord halen + // Gelukt, Bruikbare informatie uit antwoord halen // Producten inladen LijnenBoxDataID := TStringList.Create; Lijnen := GeefBruikbareLijnenUitXMLDataSet(GetBoxDataIDsViaProductResponseObj.varDataSet); try - // 'GetBoxDataIDsViaObjTypeAndRef' element overlopen en mappen naar een instantie. + // 'GetBoxDataIDsViaObjTypeAndRef' elementen overlopen en mappen naar een XML document. + // Hieruit het ID veld halen en toevoegen aan de lijst. for Lijn in Lijnen do begin - LijnenBoxDataID.Add(Lijn); if ContainsStr(Lijn, '') then begin - // Er zit een volledig item in de lijst + // Product blok afgerond + + // De eindtag zit geplakt aan de tag voor het nieuwe product. Bv