XML-versie van OL ProductList vhLib.Macro,Prod.Product 0 %CSP.Page text/xml UTF-8 /csp/OLProdCat/ProdListXML.csp 0 0 1 0 %Status 0) . If blnNewGroup Do . . Set ThisHG=$LG(##class(Prod.Kenmerk.DataDefinitie).Get(GroepID,$G(ArPR(i,1)),"ProductType"),1) . . Set blnPageBreakBefore=$$$Not((ThisHG=LastHG)||(LastHG="")||(LastHG_"\"_ThisHG="Antislipmatten\BOXSIDE")) . . Set LastHG=ThisHG . Else Do . . Set blnPageBreakBefore=0 . Set:(blnNewGroup)&&('blnFirstPR) sc=writer.EndElement() ; PRODUCTEN . Set:(blnNewGroup)&&('blnFirstPR) sc=writer.EndElement() ; SUBGROEP . Set:(blnNewGroup) sc=writer.Element("SUBGROEP") . Set:(blnNewGroup) sc=writer.WriteAttribute("oms",$$$Replace(ProdGHeader," & "," & ")) . Set:(1) sc=writer.WriteAttribute("pagebreakbefore", $S(blnPageBreakBefore:"page", 1:"auto")) . Set:(blnNewGroup) sc=writer.Element("PRODUCTEN") . Do opgBuildProdXML(i) . Set blnFirstPR=0 Set:('blnFirstPR) sc=writer.EndElement() ; PRODUCTEN Set:('blnFirstPR) sc=writer.EndElement() ; SUBGROEP Set sc=writer.EndElement() ; SUBGROEPEN Set:($G(blnWithHG)) sc=writer.EndElement() ; HOOFDGROEP Set:(blnWithComment) sc=writer.EndElement() ; DOCUMENT Set:(blnWithComment) sc=writer.Write("]]]]> ") Set sc=writer.EndRootElement() ; DOCUMENT If $$$ISERR(sc) Do $system.OBJ.DisplayError(sc) Quit Quit opgPreparePRValues(i) Kill BSVal Set BSVal("PRT","K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"ProductType","K","1") Set BSVal("SBT","K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"SubType","K","1") Set BSVal("SLT","O")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"Sleutel","O","1") Set BSVal("BRD","K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"Breedte","K","1") Set BSVal("DPT","K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"Diepte","K","*") Set BSVal("TOEP","K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"Toepassing","K","*") Set BSVal("AFM","K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"Afmetingen","K","1") Set BSVal("VRS","K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"Vereist","K","*") Set BSVal("BOW","K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"BOWeten","K","*") Set BSVal("DYN","K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"DynSpace","K","*") Set BSVal("TEKST" ,"O")=BSVal("SLT","O") Set BSVal("PRODGAMMA" ,"K")=BSVal("PRT","K") Set BSVal("GRPSLEUTEL" ,"K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"GroepSleutel","K","1") Set BSVal("WEBSITES" ,"K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"WebSites","","*") Set BSVal("ZONETOEP" ,"K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"ZoneToepassing","K","*") Set BSVal("MEUBELTOEP" ,"K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"MeubelToepassing","K","*") Set BSVal("PHOOGTE" ,"K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"ProductHoogte","K","1") Set BSVal("PBREEDTE" ,"K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"ProductBreedte","K","1") Set BSVal("PDIEPTE" ,"K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"ProductDiepte","K","1") Set BSVal("LBREEDTEMIN","K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"LadeBreedteMin","K","1") Set BSVal("LBREEDTEMAX","K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"LadeBreedteMax","K","1") ;Set tmpVal=$LG(lbData,$I(iCol)) Set BreedteSpeling=tmpVal Set BSVal("KLRFILTER" ,"K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"KleurFilter","K","*") Set BSVal("LADEFAMILIE","K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"LadeFamilie","K","*") Set BSVal("LADETYPE" ,"K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"LadeType","","*") Set BSVal("GENERATIETYPE","K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,$G(ArPR(i,1)),"GeneratieType","","1") Set CntToep=$LL(BSVal("TOEP","K")) Set CntVRS=$LL(BSVal("VRS","K")) Set CntVRSExtra=CntVRS+$LL(BSVal("BRD","K"))+$LL(BSVal("DPT","K")) ; Breedte en Diepte vallen onder de vereisten Set CntBOW=$LL(BSVal("BOW","K")) Set CntBOWExtra=CntBOW+$LL(BSVal("AFM","K")) Set CntDynS=$LL(BSVal("DYN","K")) Set lblDynSpace=$G(MetaArray("DynSpace","VTL"),"DynS-L") ; URL's ' Set BSVal("FOTO","LB")=##class(cspBasis.ProductList).DataDefValueURL(Taal,GroepID,$G(ArPR(i,1)),"InfoSleutel","LB") Set BSVal("FOTO","LI")=##class(cspBasis.ProductList).DataDefValueURL(Taal,GroepID,$G(ArPR(i,1)),"InfoSleutel","LI") Set BSVal("DYN","LB")=##class(cspBasis.ProductList).DataDefValueListURL(Taal,GroepID,$G(ArPR(i,1)),"DynSpace","LB","*") Set BSVal("DYN","LI")=##class(cspBasis.ProductList).DataDefValueListURL(Taal,GroepID,$G(ArPR(i,1)),"DynSpace","LI","*") Set BSVal("DYN","LX")=##class(cspBasis.ProductList).DataDefValueListURL(Taal,GroepID,$G(ArPR(i,1)),"DynSpace","LX","*",,"FOP") ; Hoofding voor de groepering Set ProdGHeader=$S(##class(cspBasis.ProductList).UseProdHeader(GroepID,.ArPR,i):$LG(BSVal("SBT","K"),1), 1:"") If $L(ProdGHeader), $L($G(ArPR(i,1,"NDX"))) Do . If ArPR(i,1,"NDX")'=PrevHeadNDX Do .. Set jj=0 .. Set PrevHeadNDX=ArPR(i,1,"NDX") . ;Set ProdGHeader=ArPR(i,1,"NDX")_"."_$INCREMENT(jj)_" "_ProdGHeader ;d WL^vhDBG("ProdListXML PreparePRValues finished for ("_i_")"_$G(ArPR(i,1))) Quit opgBuildProdXML(i) Set sc=writer.Element("PRODUCT") ;d WL^vhDBG("ProdListXML - BuildProdXML product-tag") For iDynS=1:1:CntDynS Do . Do opgWriteElem2("DYNSPACE",$LG(BSVal("DYN","K"),iDynS, ""),$LB("src",$LG(BSVal("DYN",$S(blnDynSSVG:"LX",1:"LB")),iDynS, ""))) ;d WL^vhDBG("ProdListXML - BuildProdXML FOTO-tag") Set ImgVTLType=$S(blnImgLarge:"LI", 1:"LB") Do:($L($G(BSVal("FOTO",ImgVTLType)))) opgWriteElem("FOTO","fixedtext",$LB("src",$G(BSVal("FOTO",ImgVTLType)))) Do opgWriteElem("OMSCHR",$LG(BSVal("TEKST","O"),1),,1) Do:($L($G(BSVal("PRODGAMMA","K")))) opgWriteElem("PRODUCTGAMMA",$LG(BSVal("PRODGAMMA","K"),1),,1) ; PRODUCT_PAST_IN Do . Set sc=writer.Element("PRODUCT_PAST_IN") . For iLadeFam=1:1:$LL(BSVal("LADEFAMILIE","K")) Do opgWriteElem("ITEM",$LI(BSVal("LADEFAMILIE","K"),iLadeFam),,1) . If $LL(BSVal("LADETYPE","K"))>0 Do . . Set txt="" . . For iLadeType=1:1:$LL(BSVal("LADETYPE","K")) Set txt=txt_$S(iLadeType>1:", ", 1:"")_$LI(BSVal("LADETYPE","K"),iLadeType) . . Do opgWriteElem("ITEM",txt,,1) . Do:($L($LG(BSVal("LBREEDTEMIN","K"),1))) opgWriteElem("ITEM",$G(MetaArray("Breedte","VTL"),"BRD-L")_": "_($LG(BSVal("LBREEDTEMIN","K"),1))_$S($LG(BSVal("LBREEDTEMAX","K"),1)>$LG(BSVal("LBREEDTEMIN","K"),1):" - "_($LG(BSVal("LBREEDTEMAX","K"),1)), 1:"")) . Do:($L($G(BSVal("DPT","K")))) opgWriteElem("ITEM",$G(MetaArray("Diepte","VTL"),"DPT-L")_": "_$$LCVTSimple^vhLib(BSVal("DPT","K")," / ")) . Do:($L($LG(BSVal("PHOOGTE","K"),1))) opgWriteElem("ITEM",$G(MetaArray("ProductHoogte","VTL"),"PHGT-L")_": "_($LG(BSVal("PHOOGTE","K"),1))) . If $LL(BSVal("KLRFILTER","K")) Do . . Set txt="Ladekleur"_": " . . For iKlrFilter=1:1:$LL(BSVal("KLRFILTER","K")) Set txt=txt_$S(iKlrFilter>1:", ", 1:"")_$LI(BSVal("KLRFILTER","K"),iKlrFilter) . . Do opgWriteElem("ITEM",txt,,1) . Set sc=writer.EndElement() ; PRODUCT_PAST_IN ; TIPS If (CntBOW>0) Do . Set sc=writer.Element("TIPS") . For iBow=1:1:CntBOW Do opgWriteElem("ITEM",$LI(BSVal("BOW","K"),iBow),,1) . Set sc=writer.EndElement() ; TIPS ; Extra Data Do:($L($G(BSVal("GRPSLEUTEL","K")))) opgWriteElem("GROEPSLEUTEL",$LG(BSVal("GRPSLEUTEL","K"),1),,1) Do:($L($G(BSVal("GENERATIETYPE","K")))) opgWriteElem("GENERATIETYPE",$LG(BSVal("GENERATIETYPE","K"),1),,1) Do:($L($G(BSVal("LBREEDTEMIN","K")))) opgWriteElem("LBREEDTEMIN",$LG(BSVal("LBREEDTEMIN","K"),1),,1) Do:($L($G(BSVal("LBREEDTEMAX","K")))) opgWriteElem("LBREEDTEMAX",$LG(BSVal("LBREEDTEMAX","K"),1),,1) Do:($L($G(BSVal("PHOOGTE","K")))) opgWriteElem("PRODUCTHOOGTE",$LG(BSVal("PHOOGTE","K"),1),,1) Do:($L($G(BSVal("PBREEDTE","K")))) opgWriteElem("PRODUCTBREEDTE",$LG(BSVal("PBREEDTE","K"),1),,1) Do:($L($G(BSVal("PDIEPTE","K")))) opgWriteElem("PRODUCTDIEPTE",$LG(BSVal("PDIEPTE","K"),1),,1) Do:($L($G(BSVal("AFM","K")))) opgWriteElem("AFMETINGEN",$LG(BSVal("AFM","K"),1),,1) ; (OLD) ; LADEFAMILIE + LADETYPE ; WEBSITES If ($LL(BSVal("WEBSITES","K"))>0) Do . Set sc=writer.Element("WEBSITES") . For iWebsite=1:1:$LL(BSVal("WEBSITES","K")) Do opgWriteElem("ITEM",$LI(BSVal("WEBSITES","K"),iWebsite),,1) . Set sc=writer.EndElement() ; WEBSITES ; MEUBELTOEPASSINGEN If ($LL(BSVal("MEUBELTOEP","K"))>0) Do . Set sc=writer.Element("MEUBELTOEPASSINGEN") . For iMeubelToep=1:1:$LL(BSVal("MEUBELTOEP","K")) Do opgWriteElem("ITEM",$LI(BSVal("MEUBELTOEP","K"),iMeubelToep),,1) . Set sc=writer.EndElement() ; MEUBELTOEPASSINGEN ; ZONETOEPASSINGEN If ($LL(BSVal("ZONETOEP","K"))>0) Do . Set sc=writer.Element("ZONETOEPASSINGEN") . For iZoneToep=1:1:$LL(BSVal("ZONETOEP","K")) Do opgWriteElem("ITEM",$LI(BSVal("ZONETOEP","K"),iZoneToep),,1) . Set sc=writer.EndElement() ; ZONETOEPASSINGEN /* ; TOEPASSINGEN ;d WL^vhDBG("ProdListXML - BuildProdXML Toepassing-tag") If (CntToep>0) Do . Set sc=writer.Element("TOEPASSING") . For iToep=1:1:CntToep Do opgWriteElem("ITEM",$LI(BSVal("TOEP","K"),iToep),,1) . Set sc=writer.EndElement() ; TOEPASSING ; VEREISTEN ;d WL^vhDBG("ProdListXML - BuildProdXML Vereisten-tag") If (CntVRSExtra>0) Do . Set sc=writer.Element("VEREISTEN") . Do:($L($G(BSVal("BRD","K")))) opgWriteElem("ITEM",$G(MetaArray("Breedte","VTL"),"BRD-L")_": "_$LG(BSVal("BRD","K"),1)) . Do:($L($G(BSVal("DPT","K")))) opgWriteElem("ITEM",$G(MetaArray("Diepte","VTL"),"DPT-L")_": "_$$LCVTSimple^vhLib(BSVal("DPT","K")," / ")) . For iVrs=1:1:CntVRS Do opgWriteElem("ITEM",$LI(BSVal("VRS","K"),iVrs),,1) . Set sc=writer.EndElement() ; VEREISTEN */ ; GROEPDATA Set sc=writer.Element("GROEPDATA") ;d WL^vhDBG("ProdListXML - BuildProdXML GROEPDATA-tag") Set j="" For Set j=$O(ArPR(i,j)) Quit:(j="") Do . ; Loop through products with same Basis . Set UnID=ArPR(i,j) . Set PRNr=$S(##class(BL.Kenm.ProdMulti).AllowsMultiple(GroepID):##class(BL.Kenm.ProdMulti).GetCommonID(UnID), 1:UnID) . If PRNr?4.7N Do . . Set CKortTxt=$E($$$PRGet($$$KortTekst),4,11) . . Set CPrijs=$$ConsumentenPrijs^ORGALUX(PRNr,LandCode,NoSa) ; LandCode = DEALER, BE of NL . Kill XTVal . Set XTVal("WDD","K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,UnID,"WandDikte","K","*","-") . Set XTVal("KLR","K")=##class(cspBasis.ProductList).DataDefValueList(Taal,GroepID,UnID,"Kleur","K","*") . ; XML tags . Set sc=writer.Element("DATA") . Do:(blnShowUnID) opgWriteElem("PRNR",$G(UnID)) . Do:($L($G(XTVal("WDD","K")))) opgWriteElem("WANDDIKTE_DISP",$LG(XTVal("WDD","K"),1)) . Do:($L($G(XTVal("KLR","K")))) opgWriteElem("KLEUR",$LG(XTVal("KLR","K"),1)) . Do opgWriteElem("CODE",$G(CKortTxt)) . Do opgWriteElem("CPRIJS",$S($G(CPrijs)>0:CPrijs, 1:""),$LB("munt","EUR")) . Set sc=writer.EndElement() ; DATA Set sc=writer.EndElement() ; GROEPDATA Set sc=writer.EndElement() ; PRODUCT ;d WL^vhDBG("ProdListXML - BuildProdXML product-tag finished") Quit opgWriteElem2(tag,value,lbAttrib01,blnCData) Set sc=writer.Element(tag) Set:($L($G(lbAttrib01))) sc=writer.WriteAttribute($LG(lbAttrib01,1),$LG(lbAttrib01,2)) Set sc=writer.Write(value) Set sc=writer.EndElement() Quit opgWriteElem(tag,value,lbAttrib01,blnCData) //#If ($ZCVT($ZUTIL(110),"U")="CACHE01")||(($ZCVT($ZUTIL(110),"U")="CACHE02")&&($ZCVT($ZUTIL(67,6,$J),"U")="JRNL-ADMIN1")) #If (##class(TECH.Config.ConfigMgr).Instance().GetOmgeving()="PROD") #define FindStr "/ORGALUX/OLProdCat/" #Else #define FindStr "http://cache01/ORGALUX/OLProdCat/" #EndIf #define cDomOL(%v) $$$Replace(%v,$$$FindStr,"http://www.orgalux.com/ProdCat/") #define cFileOL(%v) $$$Replace(%v,$$$FindStr,"\\cache01\c$\inetpub\wwwroot\ORGALUX\OLProdCat\") #define cShareOLprev(%v) $$$Replace(%v,$$$FindStr,"\\cache01\ORGALUX\OLProdCat\") #define cShareOL(%v) $$$Replace(%v,$$$FindStr,"http://cache01/ORGALUX/OLProdCat/") Set sc=writer.Element(tag) ;Set:($L($G(lbAttrib01))) sc=writer.WriteAttribute($LG(lbAttrib01,1),$$$cDomOL($LG(lbAttrib01,2))) Set:($L($G(lbAttrib01))) sc=writer.WriteAttribute($LG(lbAttrib01,1),$$$cShareOL($LG(lbAttrib01,2))) ;Set:($L($G(lbAttrib01))) sc=writer.WriteAttribute($LG(lbAttrib01,1),$TR($$$cFileOL($LG(lbAttrib01,2)),"/","\")) ;Set:($L($G(lbAttrib01))) sc=writer.WriteAttribute($LG(lbAttrib01,1),$$$cFileOL($LG(lbAttrib01,2))) If $G(blnCData) Do . Do opgReplaceHTMLTags(.value) /* . Set sc=writer.WriteCData(value) Else Do . Set sc=writer.Write(value) */ Set sc=writer.Write(value) Set sc=writer.EndElement() Quit opgReplaceHTMLTags(str) ; str als .local doorgeven For Quit:(str'?.E1"<".E.1">") Do . Set sTag=$$$TextBetween(str,"<",">") . Set str=$$$Replace(str,"<"_sTag_">","") Quit ]]>