niet meer gebruikt sinds 15/02/2010 !!! Converteren van een Tekstbestanden en XML Files naar een offerte Het converteren van een XML gebeurt in 4 faze : 1. Conversie van het externe XML formaat naar een interne XML structuur via XSLT (call to FOP) 2. Inlezen van het XML File in de proxy klasse pxHoofding 3. Conversie van pxHoofding naar Flow.Offerte.Hoofding 4. Opslaan van Flow.Offerte.Hoofding en email naar OV persistent BL.EC.Common,BL.Derde.KlantSpecifiek,vhLib.Macro,%occStatus 1 %Persistent \EDICUST_IN\ ARCHIVE\ TEMP\ Welke XSLT er voor een Hafele Printjob moet gebruikt worden om te converteren naar een XML geschikt voor de proxyklasse EDI-HAEFELE Conversie specifieke elementen HAFELE Omzetting van de pxOfferte.Klant.Naam naar een klantnr Mettertijd moet dit verplaatst worden naar het klantenbestand en werken via een lookup Häfele BELGIE;4875\HAEFELE BELGIE;4875\Häfele BELGIUM;4875\HAEFELE BELGIUM;4875\Häfele NEDERLAND;2671\HAEFELE NEDERLAND;2671 Welke proxyklasse door de business logic ConvertProxy wordt verwerkt BL.Flow.Offerte.pxHoofding Conversie type : om de conversie klant en/of EDI-doc afhankelijk te maken Het programma kan op dit veld testen om specifieke algoritmes uit te voeren %String %Boolean 1 %Boolean 0 %Integer 1 Debug Do ##class(BL.Flow.Offerte.XML2Offerte).Scan() Achtergrond job dat alle EDI-bestellingen van klantenverwerkt 1 0 XSLT translatie toepassen en daarna inlezen van het FilePath Dir,FileName,TempDir Oproepen via : d ##class(BL.Flow.Offerte.XML2Offerte).Instantiate(1).ImportTXT("\\notes01\shared\J C L","Franssen.txt") Dir,FileName FileName 1)&&..DebugMode . Set pxHoofding = ##class(BL.Flow.Offerte.pxHoofding).%New() . Set pxHoofding.KlantID = ..KLNr . Set pxHoofding.OrderRef = aOrders(idxRef) . Set pxHoofding.OrderCommRef = $ZSTRIP(idxRef,"<>"," ") . Set pxHoofding.OrderDatum = $TR($ZD($H,1),"/",".") . Set pxHoofding.DocDate = $TR($ZD($H,1),"/",".") . Set idxLine = "" . For Set idxLine = $O(aOrders(idxRef,idxLine)) Quit:idxLine="" Do // Lijn gegevens opvullen . . Set LnInfo = aOrders(idxRef,idxLine) . . Set pxLijn = ##class(BL.Flow.Offerte.pxLijn).%New() . . Set pxLijn.LijnType = "P" . . Set pxLijn.Aantal = $LG(LnInfo,1) . . Set pxLijn.KlantProdRef = $LG(LnInfo,2) . . Set pxLijn.ProdRef = $LG(LnInfo,2) . . Do pxHoofding.Lijnen.SetAt(pxLijn,idxLine) . set ..pxOfferte = pxHoofding . Set OrderCnt=OrderCnt+1 . Do ..ConvertProxy() Do ..Mail2OrderVerwerking(OrderCnt) Quit ]]> Line,aResult:%String %Boolean ", " ") Set aResult("BestNr") = $ZSTRIP($P(Line,"|",4),"<>", " ") Set aResult("Ref") = $ZSTRIP($P(Line,"|",5),"<>", " ") Quit 1 ]]> Het verwerken van een offerte tot een order Do ##class(BL.Flow.Offerte.XML2Offerte).%New().ReadXML("//Notes01/MSMGateWay/EDICUST_IN/temp/","Hafele.be.20060927.xml") Dir,FileName Conversie van de pxOfferte naar een Flow.Offerte oOfferte:Flow.Offerte.Hoofding,pxLijn:BL.Flow.Offerte.pxLijn Aantal 0 Strip LF en de bijhorende spaties Copieren van het leveringadres oOfferte:Flow.Offerte.Hoofding,pxAdres:BL.Flow.Offerte.pxAdres String Aanvullen van identnr met eerste cijfer IDNr,StartList Datum Number %Library.CacheStorage ^BL.Flow.Offerte.XML2OfferteD XML2OfferteDefaultData ^BL.Flow.Offerte.XML2OfferteD ^BL.Flow.Offerte.XML2OfferteI ^BL.Flow.Offerte.XML2OfferteS listnode %%CLASSNAME pxOfferte Aantal ConvType GrootteOrde KlantProdRef LevDatum LeverDatum LijnPos LijnRef Prijs ProdBeschrijving ProdRef Referentie SearchKeys SearchOmschrijving TextAfter TextBefore TotaalPrijs VerwachteEPrijs MailEachOrder DebugMode KlNr KLNr