APPS.TBXWeb,PRGACNTs,ErrorVHCNTs %RegisteredObject,%XML.Adaptor Deze parameter SOAPServer... is pseudo: De werkelijke target voor de WebService wordt bepaald door PeekSOAPServer() routine. Parameter alleen om te testen of de bewerking WEL OF NIET via WebService moet uitgevoerd worden : If $ZU(110)'=..#SOAPServerComputer Do call via WS Else direct call to method CACHE02 Deze parameter SOAPServer... is pseudo: zie: Parameter SOAPServerComputer DEV-ADMIN1 Methods: ======== =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | DATA INPUT/OUTPUT + OPERATIONS | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Get KlantData via Soap on Cache01/ADMIN1 1 sDomVERW:%String,KLNr:%String,lbFlags:%List="" 0 WS.TBX.KlantMini locNdx="_$G(locNdx)) Do:(locNdx<0) gkdSoapAddToLog ; Problem: no location Quit:('Result) Do:(locNdx>1) gkdSoapAddToLog ; Not the first location Set $ZTRAP="gkdSoapErrorKL" Set KLMini=Client.GetKlant(KLNr) Set $ZTRAP="" Quit gkdSoapAddToLog New lbExtras Set lbExtras=$$PeekSOAPBuildLog^cspBasis.SOAPlib(SoapClass,method,lbLocations,locNdx) Do ##class(cspBasis.GAProdTBox).AddToLog("SOAP_BACKUP",$G(%session.Data("DOMAIN")),$G(%session.Data("KLNR")),$G(%session.Data("MODE")),wsID,$G(%session.Data("VERW")),$G(Taal),,lbExtras) Quit /* // DEPRECATED subroutine gdkAddToLog New lbExtras Set lbExtras=$$PeekSOAPBuildLog^cspBasis.SOAPlib(SoapClass,method,lbLocations,locNdx) Do ##class(cspBasis.GAProdTBox).AddToLog("SOAP_BACKUP",$G(sDomain),$G(KLNr),$G(sMode),$G(wsID),$G(sDomVERW),$G(Taal),,lbExtras) Quit */ gkdSoapErrorKL Set $ZTRAP="" New CustomMsg Set CustomMsg=SoapClass_" - "_method_"() : KLNr="_KLNr_"."_$S(locNdx>1:" ["_$LG(lbLocations,locNdx)_"]" ,1:"") Do SOAPErrorMail^cspBasis.SOAPlib("TBX_ERR",,CustomMsg,,Client) Set KLMini="" ;Set $ZE="" Quit ]]> Lookup for Optima KLNr via encrypted DATA-ref. Use this method if encDataOpt is a Bad encrypted DATA-ref. Returns the first (and only) KLNr that matches the encDataOpt in the global 1 encDataOpt:%String 1 %String Lookup for Optima KLNr via encrypted DATA-ref. Use this method if encData is a Bad encrypted DATA-ref. Or use KLNr and blnDeleteFixData=1 for deleting data for KLNr. Returns the Status. 1 OrigDataOpt:%String,KLNr:%String,DataOpt:%String,blnDeleteFixData:%Boolean=0 1 %Status 1 KLNr:%String %List locNdx="_$G(locNdx)_" "_$$$LCVT(lbLocations)) Do:(locNdx<0) geaSoapAddToLog2 ; Problem: no location Quit:('Result) Do:(locNdx>1) geaSoapAddToLog2 ; Not the first location Set $ZTRAP="geaSoapErrorLW" Set lbEmails=Client.GetEmailAdressenLB(KLNr) Set $ZTRAP="" Quit $G(lbEmails) geaSoapAddToLog2 New lbExtras Set lbExtras=$$PeekSOAPBuildLog^cspBasis.SOAPlib(SoapClass,method,lbLocations,locNdx) Do ##class(cspBasis.GAProdTBox).AddToLog("SOAP_BACKUP",$G(%session.Data("DOMAIN")),$G(%session.Data("KLNR")),$G(%session.Data("MODE")),wsID,$G(%session.Data("VERW")),$G(Taal),,lbExtras) Quit geaSoapErrorLW Set $ZTRAP="" New CustomMsg Set CustomMsg=SoapClass_" - "_method_"() : KLNr"_$G(KLNr)_"."_$S(locNdx>1:" ["_$LG(lbLocations,locNdx)_"]" ,1:"") Do SOAPErrorMail^cspBasis.SOAPlib("TBX_ERR",,CustomMsg,,Client) Set KLMini="" ;Set $ZE="" Quit ]]> Get LeverWeken $LB() via Soap on Cache01/ADMIN1 1 sDomVERW:%String,Taal:%String %List locNdx="_$G(locNdx)) Do:(locNdx<0) cdwSoapAddToLog2 ; Problem: no location Quit:('Result) Do:(locNdx>1) cdwSoapAddToLog2 ; Not the first location Set $ZTRAP="glwSoapErrorLW" Set lbLevT=Client.GetLeverWekenLB(Taal) Set $ZTRAP="" Quit cdwSoapAddToLog2 New lbExtras Set lbExtras=$$PeekSOAPBuildLog^cspBasis.SOAPlib(SoapClass,method,lbLocations,locNdx) Do ##class(cspBasis.GAProdTBox).AddToLog("SOAP_BACKUP",$G(%session.Data("DOMAIN")),$G(%session.Data("KLNR")),$G(%session.Data("MODE")),wsID,$G(%session.Data("VERW")),$G(Taal),,lbExtras) Quit glwSoapErrorLW Set $ZTRAP="" New CustomMsg Set CustomMsg=SoapClass_" - "_method_"() : Taal="_$G(Taal)_"."_$S(locNdx>1:" ["_$LG(lbLocations,locNdx)_"]" ,1:"") Do SOAPErrorMail^cspBasis.SOAPlib("TBX_ERR",,CustomMsg,,Client) Set KLMini="" ;Set $ZE="" Quit ]]> Get Bulk settings from global, specifiek voor KLNr 1 sDomVERW:%String,KLNr:%String 1 %List different approach for intivo/standard/... (antaro?) Returns I for intivo, S for standard/F-design/baliko ]]> 1 DC:%String 1 %String Get Design Choices for DCM - from global, specifiek voor KLNr, default if not defined Returns a $LB() , max=$LB("S","I","B","F") 1 DCM:%String,KLNr:%String,sDomVERW:%String="",sDomKLNr:%String 1 %List 0 Do Quit:($LG(lbDCs,1)'="") lbDCs . Set lbDCs=$$gdcGetDCsList(sDomVERW,KLNr) // Default op extern Domein --> settings via sDomKLNr op VHEPN-domein If sDomVERW'="VHEPN" Do Quit:($LG(lbDCs,1)'="") lbDCs . Set lbDCs=$$gdcGetDCsList("VHEPN",sDomKLNr) // Default op VHEPN-Domein Set:(sDomVERW'="VHEPN")||($G(sDomKLNr)="") sDomKLNr=$LG(##class(WS.TBX.Order).DomainLookUp("www.tandem-box.com",$LB("KLNR")),1) Set lbDCs=$$gdcGetDCsList("VHEPN",sDomKLNr) Quit:($LG(lbDCs,1)'="") lbDCs // Defaults from the code Quit $CASE(DCM, "S":$$$DCsDefaultS, "I":$$$DCsDefaultI, "A":$$$DCsDefaultA, "X":$$$DCsDefaultX, :ERROR) ; ERROR will not occur gdcGetDCsList(sDomVERW,KLNr) Set KlantDCs=$G($$$GlobalKLData(0,sDomVERW,KLNr,"DESIGNCHOICES")) ; contains e.g. "S:S\F~I:I~X:S\I\F\MA" Set lbDCs="" For i=1:1:$L(KlantDCs,$$$Delim1) Set:($P($P(KlantDCs,$$$Delim1,i),":",1)=DCM) lbDCs=$$PiecesToList^vhLib($P($P(KlantDCs,$$$Delim1,i),":",2),"\") Quit:($L(lbDCs)) Quit lbDCs ]]> Get list of SPZK id's for the specified LadeCode. 1 DC:%String,LC:%String 1 %List ItemCode INTO :SPZK FROM Prod_GAMeta_BT.TBSPZijkant_BeperkGUI AS BxBP1, Prod_GAMeta_BT.TBSPZijkant_BeperkGUI AS BxBP2 WHERE (BxBP1.TBSPZijkant = BxBP2.TBSPZijkant) AND ($ListFind(BxBP1.TBSPZijkant->FilterDC,:DC)>0) AND (BxBP1.element_key = 'TBRugHoogte' and ((';' || BxBP1.BeperkGUI || ';') LIKE :MatchRH OR BxBP1.BeperkGUI='*')) AND (BxBP2.element_key = 'TBKlasse' and ((';' || BxBP2.BeperkGUI || ';') LIKE :MatchKLAS OR BxBP2.BeperkGUI='*')) ORDER BY BxBP1.TBSPZijkant->VolgNr ) &SQL(OPEN crsSPZKLC) For &SQL(FETCH crsSPZKLC) Quit:(SQLCODE) Set:($L(SPZK)) tmpLB=tmpLB_$LB(SPZK) &SQL(CLOSE crsSPZKLC) Quit tmpLB ]]> Save Klant Defaults pdlKleurDfl is piece-delimited list : DS\KB\KR\KV pdlMatenDfl is piece-delimited list : DC\DS\FB\BM\WD\VPK Returns error message as string or "" (empty) 1 KLNr:%String,sDomVERW:%String,DCM:%String,DC:%String,DS:%String,pdlKleurDfl:%String,pdlMatenDfl:%String 1 %Status Test BeursUser %RemoteIP moet gedefinieerd zijn voor een geldige test 1 1 %List 61645)&&($H < 61646) #define MatchIP(%v) (%v?1(1"x82x.170.242.136",1"192.168.1.195")) ; Quit ($$$IsBeurs)&&($G(%OptieBeurs)=1) Quit ($$$IsBeurs)&&($$$MatchIP($G(%RemoteIP))) ]]> Get default message to use when showing the "Bestelling plaatsen" page (SendMail.csp), specifiek voor KLNr 1 sDomVERW:%String,KLNr:%String 1 %String Creëert Piece-Delimited Lists "pdlKleurKeuze", "pdlMData" en "pdlPData" van een WS-object (bepaald door wsID). Deze worden deze teruggegeven via ...? . 1 wsID:%String,blnNewFromOrd:%Integer=0 0 0) $P(pdlPrices,"\",i)="99.99" Write "window.document.TagPData = "_$$$QuoteJS(pdlPData)_";" Write "window.document.TagKleurKeuze = "_$$$QuoteJS(pdlKleurKeuze)_";" Write "window.document.TagMData = "_$$$QuoteJS(pdlMData)_";" Write "window.document.TagPrices = "_$$$QuoteJS(pdlPrices)_";" Quit gdsCleanCopyInto() Set arFullData("KLT","ID")="" If $G(arFullData("KLT","BonType"))?1(1"BBON",1"INKP") Set arFullData("KLT","BonType")="OFF" Set arFullData("KLT","TotPrijs")="" Set arFullData("KLT","Commissie")="" Set arFullData("KLT","LeverTijd")="" Set i="" For Set i=$O(arFullData("LN",i)) Quit:(i="") Do . Set arFullData("LN",i,"PRIJS")="" Set pdlPrices="" ; $G(arPData("TotPrijs"))_D1_pdlPrices Quit ]]> Converteert de argumenten "pdlKleurKeuze" en "pdlMData" naar CacheArrays en roept CheckDataWS() op. Die creëert een WS-object dat de consistenties van MData nagaat. Als er inconsistenties zijn, worden deze teruggegeven in de vorm van een Piece-Delimited List. 1 pdlKleurKeuze:%String,pdlMData:%String 0 %String Creëert een WSOrd-object, dat de consistenties van de array arFullData (als .local doorgeven) nagaat. Als er inconsistenties zijn, worden deze teruggegeven via de array "arErrs". Als blnUpdateData=1 dan worden de gegevens van de WSLijnen bijgewerkt (i.e. Propt Diverse berekend/ingevuld) 1 arFullData:%String,arErrs:%String,blnUpdateData:%Boolean=0,Taal:%String 1 %String Converteert de argumenten "pdlKleurKeuze", "pdlMData" en "pdlPData" naar CacheArrays en roept CalcDataWS() op. Die creëert een WS-object dat de prijzen berekent van de producten van MData. De prijzen worden teruggegeven in de vorm van een Piece-Delimited List. 1 pdlKleurKeuze:%String,pdlMData:%String,pdlPData:%String 0 %String Creëert een WS-object van de array arFullData (als .local doorgeven) en berekent de prijzen via WEB-SERVICE voor de producten van WS.Order Lijnen. Deze prijzen worden teruggegeven via de array "arPrices". 1 arFullData:%String,arPrices:%String,wsID:%String 0 %String 0)||($G(%session.Data("UserType"))>$$$utKlantAnon)) } Do cdwSetURLValues Set SaveOK=WSOrd.%Save() Set PreCalcID=WSOrd.%Id() Do cdwBuildFromWS Do:(WSOrd.mID=PreCalcID) WSOrd.OverwriteOID(PreCalcID) Do cdwBuildPricesArray ; + calc TotAantal Set:(blnCalcPrs)&&(WSOrd.BonType="OFFAV") WSOrd.BonType="OFF" ; Status wordt OFFERTE omdat prijzen nu gekend zijn. Set WSOrd.IngaveTijdStip=$ZDT($H,3) Set WSOrd.SubmitTS="" ; bij (her)berekening vervalt de (vorige) sumbit-flag. Set WSOrd.TransferLog="" /* */ // Status voor ShowInHist invullen Set ClientHostIP=$G(%RemoteIP) If (##class(TECH.Config.ConfigMgr).Instance().GetBoolean("cspBasis.GAProdTBox_ForceerBooleanIsExternIP")) { // Op de DEMO-versie van TBoxWeb : geen orders verbergen in de historiek, dus niet testen op IP-adres en doen alsof iedere request van extern komt. Set blnIsExternIP=1 } Else { Set blnIsExternIP=(ClientHostIP'?1"192.168.1.".E) } ;d WL^vhDBG("Old Hist :"_WSOrd.ShowInHist_" IsExternIP:"_blnIsExternIP) Set blnVHEPN=$G(blnVHEPN,1) If WSOrd.ShowInHist="" Do . Set WSOrd.ShowInHist=$S(blnIsExternIP:$$$shShownForKlant, 'blnVHEPN:$$$shShownForVERW, 1:$$$shShownForVHEPN) Else If (WSOrd.ShowInHist=$$$shShownForVHEPN)&&(blnIsExternIP) Do . Set WSOrd.ShowInHist=$$$shShownForKlant Else Do . ; Don't change the ShowInHist value ;d WL^vhDBG("New Hist :"_WSOrd.ShowInHist) /* */ Set SaveOK=WSOrd.%Save() Set wsID=WSOrd.%Id() Do cdwAddToLog d cdwDEBUG Set WSOrd="" ; Close s TmrStop=$PIECE($ZTIMESTAMP,",",2) d DbgWrite("Totale tijd voor CalcDataWS : "_$J(TmrStop-TmrBegin,0,3)) Quit:('SaveOK) SaveOK Quit wsID cdwSetURLValues New tmpAr Set WSOrd.WebDomain=$$$LCase($G(%session.Data("DOMAIN"))) Set WSOrd.WebURL=$G(%session.Data("URL")) Merge tmpAr=%session.Data("QSDATA") Kill tmpAr("CSPToken") Kill tmpAr("REFMN") Kill tmpAr("CSPPAGE") Set WSOrd.WebQSData=##class(cspBasis.GAProdTBox).CQueryString(.tmpAr) Quit cdwBuildFromWS Set OptiePRS="PRS="_blnCalcPrs_";" ; ||($G(Opties)["PRS=1;"))_";" d DbgWrite(OptiePRS_" KLNr:"_WSOrd.KLNummer_" UserTp:"_$G(%session.Data("UserType"))) If $$cdwUseSoapMsg Do . ;Set SoapErrorMsg="" . Do cdwBuildViaSoapMsg(OptiePRS) Else Do . ; Uitvoeren in huidige namespace: . If $$$SoapMethod Do .. Do cdwBuildViaSoapMethod(OptiePRS) .. ;Set SaveOK=WSOrd.%Save() .. ;Do cdwAddToLog . Else Do .. Do ##class(BL.PR.GA.TandemBox).BuildFromWSNew(WSOrd,OptiePRS) Quit cdwBuildViaSoapMethod(Opties) Set WSOrd=##class(WS.TBX.Calc).BuildWS(WSOrd,.Opties) ; Class Method Quit cdwUseSoapMsg() Quit ##class(TECH.Config.ConfigMgr).Instance().GetBoolean("cspBasis.GAProdTBox_OrderRecalcViaSoapMsg") cdwBuildViaSoapMsg(Opties) Do cdwBuildViaSoapMsgSub("WS.TBX.CalcSoap","BuildWS") Quit cdwBuildViaSoapMsgSub(SoapClass,method) New Client,Result,lbLocations,locNdx Set Client=$System.OBJ.New(SoapClass) Set Result=Client.PrepareBuildWS(.lbLocations,.locNdx) ; Uses PeekServer and TimeOut=(120-1)sec ;d WL^vhDBG("PeekServer (PrepareBuildWS) finished ==> locNdx="_$G(locNdx)) Do:(locNdx<0) cdwSoapAddToLog ; Problem: no location Quit:('Result) Do:(locNdx>1) cdwSoapAddToLog ; Not the first location Set $ZTRAP="cdwSoapErrorCalc" Set WSOrd=Client.BuildWS(WSOrd,.Opties) Set $ZTRAP="" Quit cdwSoapAddToLog New lbExtras Set lbExtras=$$PeekSOAPBuildLog^cspBasis.SOAPlib(SoapClass,method,lbLocations,locNdx) Do ##class(cspBasis.GAProdTBox).AddToLog("SOAP_BACKUP",$G(%session.Data("DOMAIN")),$G(%session.Data("KLNR")),$G(%session.Data("MODE")),wsID,$G(%session.Data("VERW")),$G(Taal),,lbExtras) Quit cdwSoapErrorCalc New CustomMsg,arOrdKLT Do . Quit:($G(%objlasterror,1)) . // Hyperevent JS error messagebox . New msg,blnOnServer . Set blnOnServer=($$$GETERRORCODE(%objlasterror)=$$$SOAPFaultReceived) . Set msg="'Calculation Failed."_"\n\n"_"SOAP message: '"_"+"_##class(%CSP.Page).QuoteJS($S(blnOnServer:"the SOAP server returned a SOAP fault.", 1:$$ParseStatus^vhLib(%objlasterror))) . Write "alert("_msg_");" // Send mail Merge arOrdKLT=arFullData("KLT") Set CustomMsg="WSOrd: ID="_wsID Set CustomMsg=CustomMsg_$$ArrayToText^vhLib("arOrdKLT")_$$$CRLF Do SOAPErrorMail^cspBasis.SOAPlib("TBX_ERR",,CustomMsg,,Client) Set $ZE="" Quit cdwBuildPricesArray New i,SomAant Kill arPrices Set SomAant=0 Set i="" For Set WSLn=WSOrd.Lijnen.GetNext(.i) Quit:(i="") Do . Set arPrices(i)=$S($G(%session.Data("BeursUser")):99.99, 1:WSLn.KostPrijs) . Set:(WSLn.KostPrijs'="ERROR") SomAant=SomAant+WSLn.Qty Set arPrices($O(arPrices(""))-1)=$S($G(%session.Data("BeursUser")):99.99, 1:WSOrd.TotPrijs) Set WSOrd.TotAantal=SomAant Quit cdwAddToLog New sDomain,lbExtras,sMode,DCM Set lbExtras="" Set:($L($G(%Location))) lbExtras=lbExtras_$LB("SoapServer="_%Location) Set:($L($G(%Action)) ) lbExtras=lbExtras_$LB("SoapAction="_%Action) Set:($L($G(OptiePRS))) lbExtras=lbExtras_$LB("Opties="_OptiePRS) Set:($L($G(SoapErrorMsg))) lbExtras=lbExtras_$LB("Msg="_SoapErrorMsg) Set DCM=$S(wsID>0:##class(WS.TBX.Order).DCMCalc(wsID), 1:"") Set sMode=$G(%session.Data("MODE"))_$S(DCM'?1(1"S",1""):" - "_DCM,1:"") Do ##class(cspBasis.GAProdTBox).AddToLog("WIZARD_CALC",$G(%session.Data("DOMAIN")),$G(%session.Data("KLNR")),sMode,wsID,$G(%session.Data("VERW")),,,lbExtras) ;Do ##class(cspBasis.GAProdTBox).AddToLog(Actie,Domain,KLNr,WizMode,wsID,Verwerker,Taal,VhisieLogin,lbExtras) Quit cdwDEBUG d DbgWrite("DEBUG WSOrd:"_$S('$G(WSOrd):" !!! GEEN WSOrd-Object !!!", 1:"")) Quit:('$G(WSOrd)) d DbgWrite("Prijzen"_$$ArrayToText^vhLib("arPrices")) Quit DbgWrite(msg) Do WL^vhDBG(msg) ;Write msg,! Quit ]]> Converteert het argument "pdlPData" naar een CacheArray en roept UpdateDataWS() op. Die opent het WS-object en wijzigt de properties van PData. Result="" 1 pdlPData:%String,wsID:%String 1 %String Opent het WS-object en wijzigt de properties van PData. Result="" 1 arFullDataNew:%String,wsID:%String 1 %String creëert een WS-object van de argumenten en geeft het object terug. 1 pdlKleurKeuze:%String,pdlMData:%String,pdlPData:%String,wsID:%String,WSOrd:%RegisteredObject 1 WS.TBX.Order creëert een WS-object van de argumenten en geeft het object terug. 1 pdlKleurKeuze:%String,pdlMData:%String,pdlPData:%String,wsOrder:%RegisteredObject 1 WS.TBX.Order Transfer van een WSOrder naar ADMIN via WEB-SERVICE. Creëert daar een Flow.Offerte.Hoofding+Lijnen Geeft $LB(oHfd.ID,"info...") terug. 1 wsID:%String,OFFToAdmin:%String 1 %List Herrekend de prijzen van het WSOrder via WEB-SERVICE. Geeft $LB(wsID,"info...") terug. 1 wsID:%String 1 %List Markeert het order (of in de log) zodat het getoond zal worden in de historiek Deze method vervalt wanneer de orders in de historiek getoond worden op basis van de property "ShowInHist" en niet meer a.d.h. van de IP-adressen in de Log. Update okt-2009. 1 wsID:%String,KLNr:%String,ClientIP:%String,Domain:%String,VhisieLogin:%String 1 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | DATA CONVERSION | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= 1 0 Converteert het BonType van "INKP" naar "BBON" in bepaalde situaties 1 sBonType:%String,VERW:%String="",sMode:%String="" 1 Maakt een link (URL) naar de MainPage van een WSOrder, vertrekkende van de KlantNr en het EDINr (en ev. sMode). 1 KLNr:%String,EDINr:%String,sMode:%String="COMPLETE",SwitchDomain:%Boolean=0 1 %String " ; "#ALL# voor anonymous ;Set EDINr="" ;Set sMode="PROCESS" ; "PROCESS" voor onmiddellijke verwerking Set WSOrdID=##class(WS.TBX.Order).IDViaEDINr(EDINr,0) Quit:(WSOrdID="")&&(sMode'="START") "" ; Geen ID gevonden, EDINr ongeldig! Set VERW="VHEPN" Set RefEnc=$$CreateHashedRef^cspBasis.TBX.DecodeURL.tmpDev($LB(KLNr,VERW,WSOrdID,sMode)) Quit UrlBase_"?REF="_$$$EscapeURL(RefEnc) ]]> Converteert de argumenten "pdlKleurKeuze", "pdlMData" en "pdlPData" naar één CacheArray "arFullData" De parameter "arFullData" moet als .Local doorgegeven worden. 1 arFullData:%String,pdlPData:%String,pdlKleur:%String,pdlMData:%String 1 arPData Do:($D(pdlKleur)) fdtPDLToKleur(.pdlKleur) ; ==> arKlr Do:($D(pdlMData)) fdtPDLToMData(.pdlMData) ; ==> arMData Do fdtCompactToFullMData ; ==> arFullData Quit fdtPDLToPData(pdlPData,D) Set D=$G(D,"`") Kill arPData Set arPData("KLNaam") =$P(pdlPData,D,1) Set arPData("KLNummer") =$P(pdlPData,D,2) ;Set:(arPData("KLNummer")="") arPData("KLNummer")=$G(%session.Data("KLNR"),"") Set arPData("KLStraatNrBus") =$P(pdlPData,D,3) Set arPData("KLPostNr") =$P(pdlPData,D,4) Set arPData("KLWoonPlaats") =$P(pdlPData,D,5) Set arPData("KLTelefoon") =$P(pdlPData,D,6) Set arPData("KLFax") =$P(pdlPData,D,7) Set arPData("Commissie") =$P(pdlPData,D,8) Set arPData("LeverTijd") =$P(pdlPData,D,9) Set arPData("BonType") =$P(pdlPData,D,10) Set arPData("Taal") =$P(pdlPData,D,11) Set arPData("NietMeeleveren")=$P(pdlPData,D,12) Set arPData("KLEMail") =$P(pdlPData,D,13) Set arPData("TotPrijs") =$P(pdlPData,D,14) Set ID =$P(pdlPData,D,15) Set:(+ID) arPData("ID")=ID Set arPData("KLPrijsKlasse") =$P(pdlPData,D,16) Set arPData("TotAantal") =$P(pdlPData,D,17) Set arPData("SubmitTS") =$P(pdlPData,D,18) Set arPData("KLKorting") =$P(pdlPData,D,19) Set arPData("KLBTWNr") =$P(pdlPData,D,20) Set arPData("ShowInHist") =$P(pdlPData,D,21) Quit fdtPDLToKleur(pdlKlr,D) Set D=$G(D,"`") Kill arKlr Set arKlr("KL")=$P(pdlKlr,D,1) Set arKlr("KB")=$P(pdlKlr,D,2) Set arKlr("RK")=$P(pdlKlr,D,3) Set arKlr("KV")=$P(pdlKlr,D,4) ; arKlr("KX") Set arKlr("DS")=$P(pdlKlr,D,5) ;Set arKlr("FB")=$P(pdlKlr,D,5) Quit fdtPDLToMData(pdlMData,D1,D2) Set D1=$G(D1,"\") Set D2=$G(D2,"`") Kill arMData For i=1:1:$L(pdlMData,D1) Do . Set pdlMDRow=$P(pdlMData,D1,i) . Set LijnNr=$P(pdlMDRow,D2,1) . Quit:(LijnNr'>0) . Do ..MDRowFromPDL(.tmpAr, pdlMDRow, .D2, LijnNr) . Merge arMData("LN",LijnNr)=tmpAr Quit fdtCompactToFullMData ; arData-structuur: zie ##class(WS.TBX.Order).NewFromData() Kill arFullData Merge:($D(arPData)) arFullData("KLT")=arPData ;Merge:($D(arKlr)) arFullData("ALG,"KLR")=arKlr Do fdtAddKleurToMData Merge arFullData=arMData Quit fdtAddKleurToMData Quit:('$D(arMData("LN"))) Quit:('$D(arKlr)) Set j="" For Set j=$O(arMData("LN",j)) Quit:(j="") Do . Merge arMData("LN",j,"KLR")=arKlr Quit ]]> Converteert de CacheArray "arFullData" naar de strings "pdlKleurKeuze", "pdlMData" en "pdlPData" De parameter "arFullData" moet als .Local doorgegeven worden, de andere ook (bevatten het resultaat!). 1 1 Converteert de string pdlMDRow naar de CacheArray arMDRow. Deze moet als .Local doorgegeven worden. Door LijnNr als parameter door te geven wordt het LijnNr uit pdlMDRow over-ruled. 1 1 Converteert de CacheArray arMDRow naar de string pdlMDRow en geeft deze terug. 1 arMDRow:%String,D2:%String 1 %String ") Set $P(pdlMDRow,D2,19)=$G(arMDRow("OLP")) Set $P(pdlMDRow,D2,20)=$G(arMDRow("ASM")) Set $P(pdlMDRow,D2,21)=$G(arMDRow("BGRP")) Set $P(pdlMDRow,D2,22)=$G(arMDRow("FB")) ; arMDRow("DS") Set $P(pdlMDRow,D2,23)=$G(arMDRow("KLANTREF")) Set $P(pdlMDRow,D2,24)=$G(arMDRow("FS")) Set $P(pdlMDRow,D2,25)=$G(arMDRow("DWV")) Quit pdlMDRow ]]> Met GetSet="SET" wordt het ID van het WSOrd met definities van de Standaard-laden voor KLNr opgeslagen in de global. Met GetSet="GET" (default) geeft de method het ID terug. 1 KLNr:%String,GetSet:%String="GET",newID:%String 1 %String Met GetSet="GET" (default) geeft de method het ID terug. 1 PRNr:%String %String =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | LOGGING AND ERROR HANDLING | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Logging Oproepen via ;Do ##class(cspBasis.GAProdTBox).AddToLog(Actie,Domain,KLNr,WizMode,wsID,Verwerker,Taal,VhisieLogin,lbExtras) Mogelijke waarden voor Actie: - MAINPAGE : Openen van de Start-pagina. Van hieruit vertrekt de hele navigatie - WIZARD_NEW : Openen van de Wizard voor een nieuwe ingave - WIZARD_OPEN : Openen van de Wizard om een ingave te wijzigen - WIZARD_CALC : Soap-method voor het berekenen van de TBX-Lijnen op Cache01/ADMIN1 of Cache02/JRNL-ADMIN1 - PRINTPAGE : Bekijken van de afdruk-pagina - MAIL_SEND : Mail verzonden via MiniMail - SOAP_BACKUP : SOAP - wanneer PeekServer() naar eerste SoapServer niet gelukt is - MAIL_DLGERR : Fout bij openen van Dialog window MailSend.csp - CSP_ERROR : Onvoorziene csp-fout, of TimeOut (by user) - BUILDREF : Hulppagina voor Administrator (only on Cache02) 1 Actie:%String,Domain:%String,KLNr:%String,WizMode:%String,wsID:%String,Verwerker:%String,Taal:%String,VhisieLogin:%String,lbExtras:%List 1 1 lbErrTypes:%List 1 1 0 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= | BASIC OPERATIONS | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Ophalen van de vertaalde waarde van de interne code en omzetten naar HTML-code. lbFlags om extra conversies te doen (zoals Uppercase, Lowercase, ...) 1 Intern:%String,Taal:%String="N",TextType:%String="L",lbFlags:%List="" 1 %String 1 1 %Library.Boolean De CSP-query's worden opgeroepen vanuit "wizMaten.csp", maar voor dezelfde query uit een polymorfe klasse geeft dit geen zinvolle resultaten. Bepaalde variabelen verhinderen de query van zijn rijen af te lopen. Daarom is de query geïsoleerd van de rest. De Query moet kolommen "ID" en "Omschrijving" bevatten. DC doorgeven om FilterDC toe te passen (zie ook Prod.GAMeta.BT.TBAbstract) arItems als .local doorgeven; moet op voorhand leeggemaakt worden. 1 1 %Status QueryData(param1)=value1
OF
QueryData(param1,i)=value-i , zoals %Request.Data

(output: param1=value1¶m2=value2¶m3=value3 )]]>
1 1 %String
Debug method 1 Msg:%String 1