XML-versie van OL ProductList
%VHMacro,%Prod.Product
%CSP.Page
62073,39079.702423
59946,56381.196973
0
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
]]>