Index: APPS/Halux/TBX/impl/ZaagBatchBuild.cls.xml =================================================================== diff -u --- APPS/Halux/TBX/impl/ZaagBatchBuild.cls.xml (revision 0) +++ APPS/Halux/TBX/impl/ZaagBatchBuild.cls.xml (revision 917) @@ -0,0 +1,124 @@ + + + +TECH.Error +1 +%RegisteredObject,DOM.PM.TBXProduct.TBXProductVisitor +62137,71941.883629 +62123,54831.264395 +0 + + +DS.PPS.TBX.Batch + + + +%RegisteredObject + + + +DS.PPS.TBX.Queue + + + +BatchID +%Status + + + + +%SQLQuery +BatchID:%Integer +1 + Select %ID from PPS.TBX_Queue where BatchId = :BatchID + order by Sequence + + + + + + + + + + + +Triggered by visitor +Sifonlade:DOM.PM.TBXProduct.TBXSifonlade + + + + + +Triggered by visitor +Spoelbaklade:DOM.PM.TBXProduct.TBXSpoelbaklade + + + + + +Triggered by visitor +Lade:DOM.PM.TBXProduct.TBXLade + + + + +Lade:DOM.PM.TBXProduct.TBXLade,SubBatch:APPS.Halux.TBX.enu.SubBatch +1 + + + + + + + + + Index: APPS/PM/dto/kenm/ProductKenmerk.cls.xml =================================================================== diff -u --- APPS/PM/dto/kenm/ProductKenmerk.cls.xml (revision 0) +++ APPS/PM/dto/kenm/ProductKenmerk.cls.xml (revision 917) @@ -0,0 +1,28 @@ + + + + +JBL + 2011-02-28 +1 +%RegisteredObject,%XML.Adaptor +62153,46472.219108 +62153,42301.194572 +0 + + +%String + + + + +Waarden, opgeslaan als lijst van strings +%String +list + + + +%String + + + + Index: APPS/PM/OL/ProductRepository.cls.xml =================================================================== diff -u -r734 -r917 --- APPS/PM/OL/ProductRepository.cls.xml (.../ProductRepository.cls.xml) (revision 734) +++ APPS/PM/OL/ProductRepository.cls.xml (.../ProductRepository.cls.xml) (revision 917) @@ -1,10 +1,10 @@ - + APPS.PM.OL.Common,,%Prod.Product,BL.Prod 1 %RegisteredObject -61989,38414.770076 +62157,56313.739707 0 @@ -19,6 +19,7 @@ Set pxCriteria=##class(BL.Prod.sub.pxSearchCriteria).Create("ALL") Set pxCriteria.At=Via Set pxCriteria.SearchTxt=ZoekKey + Do WLIP^vhDBG(127,"Zoek : "_ZoekKey) Set pxCriteria.Active=$LB($$$ProdCritActive,$$$ProdCritActiveLimited,$$$ProdCritActiveNon) ; Alleen Actieve producten Set ProdSearch=##class(BL.Prod.Search).Instantiate() @@ -60,5 +61,5 @@ ]]> - + Index: APPS/PM/OL/ExcelImport.cls.xml =================================================================== diff -u -r734 -r917 --- APPS/PM/OL/ExcelImport.cls.xml (.../ExcelImport.cls.xml) (revision 734) +++ APPS/PM/OL/ExcelImport.cls.xml (.../ExcelImport.cls.xml) (revision 917) @@ -1,10 +1,10 @@ - + APPS.PM.OL.Common,%Prod.Product,BL.Derde.KlantSpecifiek 1 %RegisteredObject -62083,42749.303082 +62125,36998.501917 0 @@ -209,6 +209,8 @@ Do ..VerwerkLogging() Write !,! + w !,"Nog uit te voeren (met flagReadOnly=0) : s sc=##class(APPS.PM.OL.ExcelImport).AfterImport(flagReadOnly) w sc,!",! + Write !,! Quit $$$OK PiecesToListRemoveQuotes(Pieces,Sep) @@ -837,5 +839,5 @@ ]]> - + Index: APPS/Halux/TBX/enu/Status.cls.xml =================================================================== diff -u --- APPS/Halux/TBX/enu/Status.cls.xml (revision 0) +++ APPS/Halux/TBX/enu/Status.cls.xml (revision 917) @@ -0,0 +1,44 @@ + + + +datatype +1 +%String +62127,68478.164821 +62123,54830.484983 +0 + + +,W,X,F,B + + + +1 +expression + + + + +1 +expression + + + + +1 +expression + + + + +1 +expression + + + + + Index: APPS/common/enu/MagazijnMetStock.cls.xml =================================================================== diff -u --- APPS/common/enu/MagazijnMetStock.cls.xml (revision 0) +++ APPS/common/enu/MagazijnMetStock.cls.xml (revision 917) @@ -0,0 +1,33 @@ + + + +datatype +1 +TECH.Enumeration +62154,57778.032585 +0 + + +,VHMag,VHwv,HALxv + + + +1 + + + + +1 + + + + +1 + + + + + Index: APPS/PM/dto/kenm/TekstBeperking.cls.xml =================================================================== diff -u --- APPS/PM/dto/kenm/TekstBeperking.cls.xml (revision 0) +++ APPS/PM/dto/kenm/TekstBeperking.cls.xml (revision 917) @@ -0,0 +1,18 @@ + + + + +JBL + 2011-02-28 +1 +DataTypeBeperking,%XML.Adaptor +62153,29162.745829 +62153,42302.130769 +0 + + +%Integer +list + + + + Index: APPS/P2L/P2LRuggen.cls.xml =================================================================== diff -u -r734 -r917 --- APPS/P2L/P2LRuggen.cls.xml (.../P2LRuggen.cls.xml) (revision 734) +++ APPS/P2L/P2LRuggen.cls.xml (.../P2LRuggen.cls.xml) (revision 917) @@ -1,5 +1,5 @@ - + Dit is de hoofdklasse voor pick to light van Keller ruggen. @@ -10,7 +10,7 @@ vhLib.Macro 1 %RegisteredObject -62062,61795.384695 +62124,58179.442819 61947,42257.208792 0 @@ -284,7 +284,7 @@ { Do Document.VoegLijnToe(it.Next(),"\") } - Do Document.PrintDocument("HALUX",1) + Do Document.PrintDocument("HALUX") Set Status = $$$OK If (OnbekendeRuggenLijst.Size > 0) { @@ -297,7 +297,7 @@ Set Rug = OnbekendeRuggenIterator.Next() Set Body=Body_Rug.Aantal_" stuk"_$Select(Rug.Aantal>1:"s",1:"")_" met productnummer "_Rug.PRNr_"
" } - Do SendMiniMail^vhLib($$$SystemMail("Pick To Light Admin"),$ListBuild("csc@vanhoecke.be"),"[Pick To Light] Niet gedefinieerde ruggen aanwezig in kellerbatch "_BatchID,Body,0,1) + Do SendMiniMail^vhLib($$$SystemMail("Pick To Light Admin"),$$PiecesToList^vhLib(##CLASS(TECH.Config.ConfigMgr).Instance().GetString("APPS.P2L.P2LRuggen_OnbekendeRuggenMailenNaar"),";"),"[Pick To Light] Niet gedefinieerde ruggen aanwezig in kellerbatch "_BatchID,Body,0,1) } Quit Status ]]> @@ -316,5 +316,5 @@ ]]>
- +
Index: APPS/Halux/TBX/impl/PlaatMateriaalHelper.cls.xml =================================================================== diff -u --- APPS/Halux/TBX/impl/PlaatMateriaalHelper.cls.xml (revision 0) +++ APPS/Halux/TBX/impl/PlaatMateriaalHelper.cls.xml (revision 917) @@ -0,0 +1,116 @@ + + + +1 +%RegisteredObject +62144,28886.58791 +0 + + +%Query +BodemRug:APPS.Halux.TBX.enu.BodemRug +1 + + + + +1 + +%Status + + + + +1 + +qPlatenLijstExecute +%Status + + + + +1 + +qPlatenLijstExecute +%Status + + + + + +d ##class(APPS.Halux.TBX.impl.PlaatMateriaalHelper).GetPlaten() +1 +%ArrayOfObjects + + + + +1 +BodemRug:APPS.Halux.TBX.enu.BodemRug,ArrayRef:%String,ArrayOfObjects:%ArrayOfObjects + + + + +1 +ArrayRef:%String,BodemRug:APPS.Halux.TBX.enu.BodemRug + + + + + Index: APPS/Halux/Planning/dto/VerplaatsToeleveringenResultaat.cls.xml =================================================================== diff -u --- APPS/Halux/Planning/dto/VerplaatsToeleveringenResultaat.cls.xml (revision 0) +++ APPS/Halux/Planning/dto/VerplaatsToeleveringenResultaat.cls.xml (revision 917) @@ -0,0 +1,20 @@ + + + +1 +%RegisteredObject,%XML.Adaptor +62153,43492.803436 +0 + + +%Integer +list + + + +%Integer +list + + + + Index: APPS/PM/Vertaling/ExcelImport.cls.xml =================================================================== diff -u -r734 -r917 --- APPS/PM/Vertaling/ExcelImport.cls.xml (.../ExcelImport.cls.xml) (revision 734) +++ APPS/PM/Vertaling/ExcelImport.cls.xml (.../ExcelImport.cls.xml) (revision 917) @@ -1,9 +1,9 @@ - + 1 %RegisteredObject -62117,28643.107307 +62125,36652.307422 0 @@ -65,38 +65,43 @@ Set Intern = $Piece(Line,$$$TAB,1) Set Type = $Piece(Line,$$$TAB,2) - Set VertalingsObject = ##class(Res.Vertaling).%OpenId(VertaalGroep_"||"_Intern_"||"_Type_"||"_TaalCode) - if (VertalingsObject '= "") { - // De vertaling bestond en is gewijzigd - Set VertalingsObject.Vertaling = Vertaling - If ((Tijdstip '= "") && (VertalingsObject.WijzigingsDatumTijd > Tijdstip) && VertalingsObject.%IsModified()) - { - w !,"Combinatie van ("_Intern_", "_Type_", "_TaalCode_") is gewijzigd sinds de exporttijd, gelieve deze handmatig te importeren!" + If ((VertaalGroep '= "") && (Intern '= "") && (Type '= "") && (TaalCode '= "")) + { + + Set VertalingsObject = ##class(Res.Vertaling).%OpenId(VertaalGroep_"||"_Intern_"||"_Type_"||"_TaalCode) + If (VertalingsObject '= "") { + // De vertaling bestond en is gewijzigd + Set VertalingsObject.Vertaling = Vertaling + If ((Tijdstip '= "") && (VertalingsObject.WijzigingsDatumTijd > Tijdstip) && VertalingsObject.%IsModified()) + { + w !,"Combinatie van ("_Intern_", "_Type_", "_TaalCode_") is gewijzigd sinds de exporttijd, gelieve deze handmatig te importeren!" + } + Else + { + Set Status = VertalingsObject.%Save() + If ($$$ISERR(Status)) { + w !,"Fout: "_$$ParseStatus^vhLib(Status) + } + } } - Else - { + elseif (##class(APPS.PM.Vertaling.ExcelImport).ComboKeyTypeBestaat(Intern,Type,VertaalGroep)) { + // De vertaling is nieuw en moet worden toegevoegd + Set VertalingsObject = ##class(Res.Vertaling).%New() + Do VertalingsObject.GroepSetObjectId(VertaalGroep) + Set VertalingsObject.Intern = Intern + Do VertalingsObject.TypeSetObjectId(Type) + Do VertalingsObject.TaalSetObjectId(TaalCode) + Set VertalingsObject.Vertaling = Vertaling Set Status = VertalingsObject.%Save() - If ($$$ISERR(Status)) { + if ($$$ISERR(Status)) { w !,"Fout: "_$$ParseStatus^vhLib(Status) } } - } - elseif ('##class(APPS.PM.Vertaling.ExcelImport).ComboKeyTypeBestaat(Intern,Type)) { - // De vertaling is nieuw en moet worden toegevoegd - Set VertalingsObject = ##class(Res.Vertaling).%New() - Do VertalingsObject.GroepSetObjectId(VertaalGroep) - Set VertalingsObject.Intern = Intern - Do VertalingsObject.TypeSetObjectId(Type) - Do VertalingsObject.TaalSetObjectId(TaalCode) - Set VertalingsObject.Vertaling = Vertaling - Set Status = VertalingsObject.%Save() - if ($$$ISERR(Status)) { - w !,"Fout: "_$$ParseStatus^vhLib(Status) + else { + w !,"Combinatie van ("_VertaalGroep_", "_Intern_", "_Type_") bestaat nog niet in de databank!" } + } - else { - w !,"Combinatie van ("_Intern_", "_Type_") bestaat nog niet in de databank!" - } } } } @@ -106,14 +111,14 @@ 1 -Intern:%String,TekstType:%String +Intern:%String,TekstType:%String,Groep:%String %Boolean - + Index: APPS/MAG/Optibox/OptiboxImpl.cls.xml =================================================================== diff -u --- APPS/MAG/Optibox/OptiboxImpl.cls.xml (revision 0) +++ APPS/MAG/Optibox/OptiboxImpl.cls.xml (revision 917) @@ -0,0 +1,41 @@ + + + + +JBL + 2011-03-02 +Optibox processen afsluiten en indien nodig opnieuw opstarten van het toestel +%RegisteredObject +62153,53863.050125 +0 + + + +Afsluiten van de optibox processen op de opgegeven server. +1 + + + + + Index: APPS/Halux/TBX/enu/Werkpost.cls.xml =================================================================== diff -u --- APPS/Halux/TBX/enu/Werkpost.cls.xml (revision 0) +++ APPS/Halux/TBX/enu/Werkpost.cls.xml (revision 917) @@ -0,0 +1,43 @@ + + + + +
  • Spoelbak en Syfon laden
  • +
  • Tipon
  • +]]>
    +datatype +1 +%String +62131,30627.747193 +62123,54830.753447 +0 + + +,Z1,P1,P2 + + + +1 +expression + + + + +1 +expression + + + + +1 +expression + + +
    + +
    Index: APPS/PM/Maatwerk/OOM/ProductOpMaatFactory.cls.xml =================================================================== diff -u --- APPS/PM/Maatwerk/OOM/ProductOpMaatFactory.cls.xml (revision 0) +++ APPS/PM/Maatwerk/OOM/ProductOpMaatFactory.cls.xml (revision 917) @@ -0,0 +1,10 @@ + + + +1 +%RegisteredObject +62147,42248.053473 +0 + + + Index: APPS/PM/dto/ProductZoekResultaatList.cls.xml =================================================================== diff -u --- APPS/PM/dto/ProductZoekResultaatList.cls.xml (revision 0) +++ APPS/PM/dto/ProductZoekResultaatList.cls.xml (revision 917) @@ -0,0 +1,18 @@ + + + + +JBL + 2011-03-03 +ifv webservice toegevoegd +1 +%RegisteredObject,%XML.Adaptor +62153,31007.966389 +0 + + +APPS.PM.dto.ProductZoekResultaat +list + + + + Index: APPS/PM/dto/kenm/KenmerkMetadataList.cls.xml =================================================================== diff -u --- APPS/PM/dto/kenm/KenmerkMetadataList.cls.xml (revision 0) +++ APPS/PM/dto/kenm/KenmerkMetadataList.cls.xml (revision 917) @@ -0,0 +1,19 @@ + + + + +JBL + 2011-03-03 +ifv webservice +1 +%RegisteredObject,%XML.Adaptor +62153,29781.28575 +62153,42300.444393 +0 + + +APPS.PM.dto.Kenm.KenmerkMetadata +list + + + + Index: APPS/Halux/Planning/impl/ResourceDrempel.cls.xml =================================================================== diff -u --- APPS/Halux/Planning/impl/ResourceDrempel.cls.xml (revision 0) +++ APPS/Halux/Planning/impl/ResourceDrempel.cls.xml (revision 917) @@ -0,0 +1,68 @@ + + + +persistent +1 +%Persistent +62150,51913.486995 +0 + + +%String + + + +%Float + + + +%Float + + + +%Float + + + +%Float + + + +1 +ResourceNaam +1 + + + +%Library.CacheStorage +^APPS.Halux8A9.ResourceDrem611D +ResourceDrempelDefaultData +^APPS.Halux8A9.ResourceDrem611D +^APPS.Halux8A9.ResourceDrem611I +^APPS.Halux8A9.ResourceDrem611S + +listnode + + +%%CLASSNAME + + +Hoog + + +Laag + + +ResourceNaam + + +VoormiddagHoog + + +VoormiddagLaag + + + + + + Index: APPS/PM/Maatwerk/OLM/OrgaluxOpMaatFactory.cls.xml =================================================================== diff -u --- APPS/PM/Maatwerk/OLM/OrgaluxOpMaatFactory.cls.xml (revision 0) +++ APPS/PM/Maatwerk/OLM/OrgaluxOpMaatFactory.cls.xml (revision 917) @@ -0,0 +1,238 @@ + + + +1 +%RegisteredObject +62157,35047.011595 +0 + + + +Produceert een orgaluxproduct waarvan 1 van de kinderen (InTeKortenPRNr) op maat te maken is. +OrgaluxProduct:DOM.PM.OLProduct.OLProduct,InbouwBreedte:%Integer +DOM.PM.OLProduct.OLProduct + mm + Set WandDikte = $LG(##class(Prod.Kenmerk.DataDefinitie).Get("OL",KenmPRNr,"WandDikte"),1) + If (WandDikte = "") Set WandDikte = 18 + Set BreedteOLProduct = BreedteOLProduct - (2 * WandDikte) + + Set Delta = BreedteOLProduct - BreedteInTeKortenProduct + + Set IngekortProduct = ..BerekenIngekortProduct(InTeKortenPRNr, (InbouwBreedte - Delta), $Piece(Rec,"\",2)) + Set VrijLabel = $Order(^PRBS("BS",PRNr,"KIND.999"),-1) + Set VolgendNr = $E(1000+$Piece(VrijLabel,".",2)+1,2,4) + Set ^PRBS("BS",PRNr,"KIND."_VolgendNr) = IngekortProduct.GeefPRNr()_"\"_AantalIndienMoederIngekort_"\K\\\\\\\\PROD\" + Kill ^PRBS("BS",PRNr,Label) + } + Else + { + If (AantalIndienMoederIngekort '= 0) + { + If (IsInkortbaar '= "") Set $Piece(^PRBS("BS",PRNr,Label),"\",2) = AantalIndienMoederIngekort + } + } + } + + Set Label = $Order(^PRBS("BS",PRNr,Label)) + } + + // Product op "niet-stock" plaatsen + Set $Piece(^KPR(PRNr,1),"\",20) = "" + + // Korttekst herwerken + Set Korttekst = $Piece(^KPR(PRNr,0),"\",1) + Set $Piece(^KPR(PRNr,0),"\",1) = $Extract(Korttekst,1,11)_" INGEKORT "_IngekortProduct.GeefDossierNr() + + // Classficiatie correct instellen + Set Classificatie = 1328 + Set $Piece(^KPR(PRNr,"I1"),"\",1) = $$GETSORT^KLASS(Classificatie,1) + Set $Piece(^KPR(PRNr,"I1"),"\",2) = $$GETSORT^KLASS(Classificatie,2) + Set $Piece(^KPR(PRNr,"I1"),"\",3) = $$GETSORT^KLASS(Classificatie,3) + Set $Piece(^KPR(PRNr,"I1"),"\",4) = Classificatie + + // INGEKORT toevoegen aan het einde van de langtekst + + For Positie = "0.2","0.11","6.1","6.2","6.3","6.4","6.5","6.6","6.7","6.8","6.9","6.10" + { + Set Node = $Piece(Positie,".",1) + Set Piece = $Piece(Positie,".",2) + If ($Piece($Get(^KPR(PRNr,Node),""),"\",Piece) = "") + { + Set $Piece(^KPR(PRNr,Node),"\",Piece) = "INGEKORT" + Quit + } + } + + For Positie = "1.22","3.21","8.1","8.2","8.3","8.4","8.5","8.6","8.7","8.8","8.9","8.10" + { + Set Node = $Piece(Positie,".",1) + Set Piece = $Piece(Positie,".",2) + If ($Piece($Get(^KPR(PRNr,Node),""),"\",Piece) = "") + { + Set $Piece(^KPR(PRNr,Node),"\",Piece) = "TRONQUé" + Quit + } + } + + For Positie = "2.2","3.23","10.1","10.2","10.3","10.4","10.5","10.6","10.7","10.8","10.9","10.10" + { + Set Node = $Piece(Positie,".",1) + Set Piece = $Piece(Positie,".",2) + If ($Piece($Get(^KPR(PRNr,Node),""),"\",Piece) = "") + { + Set $Piece(^KPR(PRNr,Node),"\",Piece) = "ABGESCHNITTEN" + Quit + } + } + + For Positie = "2.1","3.22","12.1","12.2","12.3","12.4","12.5","12.6","12.7","12.8","12.9","12.10" + { + Set Node = $Piece(Positie,".",1) + Set Piece = $Piece(Positie,".",2) + If ($Piece($Get(^KPR(PRNr,Node),""),"\",Piece) = "") + { + Set $Piece(^KPR(PRNr,Node),"\",Piece) = "TRUNCATED" + Quit + } + } + + Do RECALC^PRODUKT2(PRNr) + Do BLDIND^PRODUKT2(PRNr) + + // Herrekenen van het orgalux product met nieuwe kinderen + Set Som = 0 + Do CALC^PRBS(PRNr,.Som,,,,.NoSa) + Set NewPPL=$P(Som,"\") + Do PRIJSUPD^PRBSC(PRNr,+$J(NewPPL,0,2),"A","") + + Quit ##class(DOM.DomeinContext).Instance().GeefProductAPI().GeefProduct(PRNr) +]]> + + + +InTeKortenPRNr:%Integer,TeBekomenLengte:%Integer,Aantal:%Integer +1 +DOM.PM.Product + + + + + Index: APPS/TBXWeb.inc.rou =================================================================== diff -u -r760 -r917 --- APPS/TBXWeb.inc.rou (.../TBXWeb.inc.rou) (revision 760) +++ APPS/TBXWeb.inc.rou (.../TBXWeb.inc.rou) (revision 917) @@ -12,4 +12,5 @@ #Include APPS.TBXWeb.DomeinNamen #define Vertaling(%s,%t) ##class(Res.Vertaling).GetVertaling("TBW",%s,"L",%t) - \ No newline at end of file + + ; \ No newline at end of file Index: APPS/Halux/TBX/ZaagOpdrachten.cls.xml =================================================================== diff -u --- APPS/Halux/TBX/ZaagOpdrachten.cls.xml (revision 0) +++ APPS/Halux/TBX/ZaagOpdrachten.cls.xml (revision 917) @@ -0,0 +1,176 @@ + + + +persistent +TECH.Error +1 +%Persistent +62145,29492.153996 +62123,54831.536178 +0 + + +DS.PPS.TBX.Batch +1 + + + + + +APPS.Halux.TBX.enu.BodemRug +1 + + + + +Resultaat van de meeting +%Float + + + +DS.PPS.TBX.Queue +1 + + + +APPS.Halux.TBX.enu.ProductieLijn + + + + + +APPS.Halux.TBX.enu.Status + + + +%Boolean + + + +Prod.Product + + + + + +APPS.Halux.TBX.enu.SubBatch + + + +%TimeStamp + + + +Batch + + + +1 +Batch:DS.PPS.TBX.Batch,SubBatch:APPS.Halux.TBX.enu.SubBatch,BodemRug:APPS.Halux.TBX.enu.BodemRug,Queue:DS.PPS.TBX.Queue,Lade:DOM.PM.TBXProduct.TBXLade + + + + + +Beslissen welke onderdelen er moeten gezaagd worden +1 +SubBatch,Lade + + + + +%Library.CacheStorage +^APPS.Halux.TBX.ZaagOpdrachtenD +ZaagOpdrachtenDefaultData +^APPS.Halux.TBX.ZaagOpdrachtenD +^APPS.Halux.TBX.ZaagOpdrachtenI +^APPS.Halux.TBX.ZaagOpdrachtenS + + +%%CLASSNAME + + +Batch + + +BodemRug + + +ControleMeting + + +QueueID + + +Status + + +SubBatch + + +ZaagID + + +Queue + + +StilstandDuur + + +StilstandReden + + +Product + + +ProductieLijn + + +IsHerstelliing + + +IsHerstelling + + + + + + Index: APPS/PM/KenmerkenService/1.int.rou =================================================================== diff -u --- APPS/PM/KenmerkenService/1.int.rou (revision 0) +++ APPS/PM/KenmerkenService/1.int.rou (revision 917) @@ -0,0 +1,828 @@ + ;APPS.PM.KenmerkenService.1 + ;(C)InterSystems, generated for class APPS.PM.KenmerkenService. Do NOT edit. 03/03/2011 09:52:24AM + ;;05A6EE1074D8488C;APPS.PM.KenmerkenService + Quit + ; +%ClassName(fullname) public { Quit $select($get(fullname,0):"APPS.PM.KenmerkenService",1:"KenmerkenService") } +%Close(%this) Quit ..%Close() +%ConstructClone(%this,deep,cloned) public { Set deep=$get(deep,0) Set object=%this + If $data(cloned(+object)) Do (cloned(+object)).%IncrementCount() Quit cloned(+object) + Set %this=$zobjnew("APPS.PM.KenmerkenService") + Set cloned(+object)=%this,cloned(+object,0)=object + Set $zobjval(,1)=$zobjval(object,1),$zobjval(,2)=$zobjval(object,2),$zobjval(,3)=$zobjval(object,3) + Set $zobjval(,4)=$zobjval(object,4),$zobjval(,5)=$zobjval(object,5),$zobjval(,6)=$zobjval(object,6) + Set $zobjval(,7)=$zobjval(object,7),$zobjval(,8)=$zobjval(object,8),$zobjval(,9)=$zobjval(object,9) + Set $zobjval(,10)=$zobjval(object,10),$zobjval(,11)=$zobjval(object,11),$zobjval(,12)=$zobjval(object,12) + Set $zobjval(,13)=$zobjval(object,13) + If deep>0 { + If object.HeadersIn'="" Set $zobjval(,2,0)=$zobjval(object,2,0).%ConstructClone(1,.cloned) If $zobjval(,2,0)'="" Do ($zobjval(,2,0)).%Close() + If object.HeadersOut'="" Set $zobjval(,4,0)=$zobjval(object,4,0).%ConstructClone(1,.cloned) If $zobjval(,4,0)'="" Do ($zobjval(,4,0)).%Close() + If object.SoapFault'="" Set $zobjval(,9,0)=$zobjval(object,9,0).%ConstructClone(1,.cloned) If $zobjval(,9,0)'="" Do ($zobjval(,9,0)).%Close() + If object.Transport'="" Set $zobjval(,12,0)=$zobjval(object,12,0).%ConstructClone(1,.cloned) If $zobjval(,12,0)'="" Do ($zobjval(,12,0)).%Close() + } Else { + If object.HeadersIn'="" Set $zobjval(,2,0)=$zobjval(object,2,0).%ConstructClone(0,.cloned) If $zobjval(,2,0)'="" Do ($zobjval(,2,0)).%Close() + If object.HeadersOut'="" Set $zobjval(,4,0)=$zobjval(object,4,0).%ConstructClone(0,.cloned) If $zobjval(,4,0)'="" Do ($zobjval(,4,0)).%Close() + } + Quit %this } +%Extends(isclass) public { Quit "~APPS.PM.KenmerkenService~%SOAP.WebService~%CSP.Page~%SOAP.WebBase~%Library.RegisteredObject~"[("~"_$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,$l(isclass)))_"~") } +%GetParameter(paramname) public { Set paramname=$get(paramname) Quit $case(paramname,"CHARSET":"UTF-8","CONTENTTYPE":"text/xml","ENCODED":0,"LOCATION":"http://cache02/csp/Admin1","NAMESPACE":"http://tempuri.org","OUTPUTTYPEATTRIBUTE":0,"PAGETIMING":1,"PRIVATE":0,"PROPERTYVALIDATION":0,"SERVICENAME":"APPS.PM.KenmerkenService","TIMINGSLOTS":48,"VeldBreedteInTekens":15,:"") +} +%IncrementCount(%this) Quit ..%IncrementCount() +%IsA(isclass) public { Quit "~APPS.PM.KenmerkenService~%SOAP.WebService~%CSP.Page~"[("~"_$s(isclass[".":isclass,$e(isclass)'="%":"User."_isclass,1:"%Library."_$e(isclass,2,$l(isclass)))_"~") } +%IsModified(%this) public { Quit 1 } +%New(initvalue) public { Quit ##class(APPS.PM.KenmerkenService).%New($get(initvalue)) +} +%Construct(%this,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10) Set $zobjval(,1,0,0,1)="",$zobjval(,2,0,0,1)="",$zobjval(,3,0,0,2)="",$zobjval(,4,0,0,2)="",$zobjval(,5,0,0,3)="http://cache02/csp/Admin1",$zobjval(,6,0,0,4)=0 + Set $zobjval(,7,0,0,5)=31-16,$zobjval(,8,0,0,6)="",$zobjval(,9,0,0,6)="",$zobjval(,10,0,0,7)="",$zobjval(,11,0,0,8)="",$zobjval(,12,0,0,8)="" + Set $zobjval(,13,0,0,9)="" + Quit 1 +%NormalizeObject(%this) Set:$zobjval(,5,0,0,3)'="" $zobjval(,5,0,0,3)=(..LocationNormalize($zobjval(,5,0,0,3))) + Set:$zobjval(,6,0,0,4)'="" $zobjval(,6,0,0,4)=(..OutputTypeAttributeNormalize($zobjval(,6,0,0,4))) + Set:$zobjval(,7,0,0,5)'="" $zobjval(,7,0,0,5)=(..SAXFlagsNormalize($zobjval(,7,0,0,5))) + Set:$zobjval(,10,0,0,7)'="" $zobjval(,10,0,0,7)=(..TimeoutNormalize($zobjval(,10,0,0,7))) + Set:$zobjval(,13,0,0,9)'="" $zobjval(,13,0,0,9)=(..WriteSOAPBodyMethodNormalize($zobjval(,13,0,0,9))) + Quit 1 +%ObjectModified(%this) public { Quit 1 } +%PackageName() Quit "APPS.PM" +%SerializeObject(%this,serial,partial) Set partial=$get(partial,0) New %objOBJ,sc,id + Set $Ztrap = "%SerializeObjectERR" + Set sc=..%ValidateObject() If ('sc) { Ztrap "SO" } + Set sc=..%NormalizeObject() If ('sc) { Ztrap "SO" } + If $zobjval(,2,0,0,1)'="" { Set:'$data(%objTX(1,+$zobjval(,2,0,0,1),1)) %objTX(1,+$zobjval(,2,0,0,1))=$zobjval(,2,0,0,1),%objTX(1,+$zobjval(,2,0,0,1),1)=..HeadersInGetObject(1),%objTX(1,+$zobjval(,2,0,0,1),6)=2 Set %objOBJ(30)=$lg(%objTX(1,+$zobjval(,2,0,0,1),1)),$zobjval(,1,0,0,1)=%objOBJ(30) } Else { Set %objOBJ(30)=$zobjval(,1,0,0,1) } + If $zobjval(,4,0,0,2)'="" { Set:'$data(%objTX(1,+$zobjval(,4,0,0,2),1)) %objTX(1,+$zobjval(,4,0,0,2))=$zobjval(,4,0,0,2),%objTX(1,+$zobjval(,4,0,0,2),1)=..HeadersOutGetObject(1),%objTX(1,+$zobjval(,4,0,0,2),6)=2 Set %objOBJ(31)=$lg(%objTX(1,+$zobjval(,4,0,0,2),1)),$zobjval(,3,0,0,2)=%objOBJ(31) } Else { Set %objOBJ(31)=$zobjval(,3,0,0,2) } + Quit sc +%SerializeObjectERR Set $ZTrap="" If $extract($zerror,1,5)'="" Set sc=$$Error^%apiOBJ(5002,$ZE) + Quit sc +%AddToSaveSet(%this,depth,refresh,norecurseon) public { Set depth=$get(depth,3),refresh=$get(refresh,0),norecurseon=$get(norecurseon) If ($data(%objTX(1,+%this))) && ('refresh) Quit 1 + Set sc=1,intOref=+%this + If refresh { + Set intPoref=$order(%objTX(1,intOref,2,"")) + While intPoref'="" { Kill %objTX(1,intPoref,3,intOref),%objTX(1,intOref,2,intPoref) Set intPoref=$order(%objTX(1,intOref,2,intPoref)) } + } + Set tDepth=$select(depth'=2:depth,1:1) + If $zobjval(,2,0,0,1)'="" { + If '$data(%objTX(1,+$zobjval(,2,0,0,1))) Set sc=..HeadersIn.%AddToSaveSet(tDepth) Quit:('sc) sc + Set intPoref=+$zobjval(,2,0,0,1),%objTX(1,intPoref,3,intOref)="",%objTX(1,intOref,2,intPoref)="" + } + If $zobjval(,4,0,0,2)'="" { + If '$data(%objTX(1,+$zobjval(,4,0,0,2))) Set sc=..HeadersOut.%AddToSaveSet(tDepth) Quit:('sc) sc + Set intPoref=+$zobjval(,4,0,0,2),%objTX(1,intPoref,3,intOref)="",%objTX(1,intOref,2,intPoref)="" + } + Set %objTX(2,intOref)=0 +exit Quit sc } +%RemoveFromSaveSet(%this) public { + If '($data(%objTX(1,+%this))) Quit 1 + Set intRef=+%this + Set intSucc="" For Set intSucc=$order(%objTX(1,intRef,3,intSucc)) Quit:intSucc="" Kill %objTX(1,intSucc,2,intRef) + Set intPred="" For Set intPred=$order(%objTX(1,intRef,2,intPred)) Quit:intPred="" Kill %objTX(1,intPred,3,intRef) + Kill %objTX(1,intRef),%objTX(2,intRef) + Quit 1 } +%SetModified(%this,value) public { Quit 1 } +%ValidateObject(%this,force) Set force=$get(force,0) Quit 1 +zBeginSOAPEnvelope(bindingStyle,bodyUse,namespace,typeNamespace,forcePrefix,namespaces) public { Set elementQualified=##class(APPS.PM.KenmerkenService).GetElementQualified(bodyUse) + Set namespaces=##class(%XML.Namespaces).%New() + Do namespaces.AddInstanceNamespace("xsi") + Do namespaces.AddSchemaNamespace("s") + Do namespaces.AddNamespace("http://schemas.xmlsoap.org/soap/envelope/","SOAP-ENV") + Set namespaces.OutputTypeAttribute=0 + Write "",! + Write "",! + Do namespaces.DefineAllNamespacePrefixes() + Set namespaces.CurrentNamespace="" + Set namespaces.DefaultNamespace=typeNamespace + Set namespaces.ElementQualified=elementQualified + Quit 1 } +zConvertParameter(url,name,value) public { Set url=$Piece(url,"?") + Set className=$$GetCSPClassName^%cspServer(url,%request.URL) + Quit:className="" 1 + If $s($d(^oddCOM(className,"p","ENCODED",22))#2:^(22),$d(^oddCOM($g(^(2),className),"p","ENCODED",22))#2:^(22),1:$s($d(^oddDEF($g(^(2),className),"p","ENCODED",22))#2:^(22),1:$g(^%qCacheObjectKey(1,"p",22))))'=0 { + Set value=$translate($System.Encryption.RijndaelBase64Encode($listbuild($listbuild(name,value)),%session.Key),"+="_$char(32,13,10),"_-") + Set name="CSPToken" + } + Quit 1 } +zDecrypt(data) public { Quit $System.Encryption.RijndaelBase64Decode($translate(data,"_-","+="),%session.Key) } +zEncrypt(data) public { Quit $translate($System.Encryption.RijndaelBase64Encode(data,%session.Key),"+="_$char(32,13,10),"_-") } +zEndSOAPEnvelope() public { Write "",! } +zEscapeHTML(in) public { Quit $zconvert(in,"O","HTML") } +zEscapeURL(in) public { Quit $zconvert(in,"O","URL") } +zFault(fault) public { If $get(%request)'="" && %request.CSPGatewayRequest { + Do %response.Abort() + Do %response.WriteHTTPHeader(.dummy) + } + Write "",! + Write "",! + Write " ",! + Write " ",! + Write " "_fault.faultcode_"",! + Write " "_$ZConvert(fault.faultstring,"O","HTML")_"",! + If fault.faultactor'="" Write " "_$ZConvert(fault.faultactor,"O","HTML")_"",! + Write " "_fault.detail_"",! + Write " ",! + Write " ",! + Write "",! + Quit } +zFileWSDL(pFileName) public { Set sc=1,tFileFlag=0,tIO=$IO + Do + . Set tFileFlag=0 + . Open pFileName:"wsn":0 Else Set sc=$$Error^%apiOBJ(5005,tFileName) Quit + . Use pFileName Set tFileFlag=1 + . Do $ZU(96,18,2,"UTF8") + . Do ##class(APPS.PM.KenmerkenService).GenerateWSDL() + If tFileFlag Close pFileName + Use tIO + Quit sc } +zGeefMetadata(KenmerkGroepen) public { Set Metadata = ##class(APPS.PM.dto.kenm.KenmerkMetadataList).%New() + if ($Data(KenmerkGroepen) && $IsObject(KenmerkGroepen.Items)){ + Set KenmerkGroepen = KenmerkGroepen.Items + } + /// Nagaan of KenmerkGroepen niet leeg is, indien dit zo is mogen alle groepen worden opgevraagd. + if ('$Data(KenmerkGroepen) || ('$IsObject(KenmerkGroepen) && (KenmerkGroepen.Count() = 0))){ + Set KenmerkGroepen = ##class(Prod.Kenmerk.MetaGroep).GetAllMetaGroupsAsList() + } + /// Alle opgegeven kenmerkgroepen overlopen + Set KenmerkGroepIterator = ##class(TECH.ListIterator).%New(KenmerkGroepen) + While (KenmerkGroepIterator.HasNext()){ + Set KenmerkGroep = KenmerkGroepIterator.Next() + Set RS = ##class(%Library.ResultSet).%New("Prod.Kenmerk.MetaDefinitie:FilterMetaDefsViaGroep") + Do RS.Execute(KenmerkGroep) + While (RS.Next()){ + Set KenmerkMetadata = ##class(APPS.PM.dto.kenm.KenmerkMetadata).%New() + /// JBL : TO DO : niet duidelijk van waar de data moet komen om verschillende mogelijkheden in te vullen + ///Do KenmerkMetadata.Mogelijkheden.Insert("Mogelijkheid1") + /// + Set KenmerkMetadata.Multipliciteit = ##class(APPS.PM.dto.kenm.Multipliciteit).%New() + Set KenmerkMetadata.Multipliciteit.Minimum = 0 + If (RS.Get("Verplicht")){ + Set KenmerkMetadata.Multipliciteit.Minimum = 1 + } + Set KenmerkMetadata.Multipliciteit.Maximum = RS.Get("Multiple") + Set KenmerkMetadata.Naam = RS.Get("Kenmerk") + Set KenmerkMetadata.VeldBreedteInTekens = 15 + If (RS.Get("Format") = "T"){ + Set KenmerkMetadata.DataType = ##class(APPS.PM.dto.kenm.DataType).Tekst() + Set KenmerkMetadata.DataTypeBerperking = ##class(APPS.PM.dto.kenm.TekstBeperking).%New() + If (RS.Get("Lengte") '= ""){ + Do KenmerkMetadata.DataTypeBerperking.Insert(RS.Get("Lengte")) + } + }ElseIf (RS.Get("Format") = "B"){ + Set KenmerkMetadata.DataType = ##class(APPS.PM.dto.kenm.DataType).Boolean() + }ElseIf((RS.Get("Format") = "I") || (RS.Get("Format") = "F")){ + Set KenmerkMetadata.DataType = ##class(APPS.PM.dto.kenm.DataType).Getal() + Set KenmerkMetadata.DataTypeBerperking = ##class(APPS.PM.dto.kenm.GetalBeperking).%New() + Set KenmerkMetadata.DataTypeBerperking.AantalDecimalen = RS.Get("Decimalen") + Set KenmerkMetadata.DataTypeBerperking.Eenheid = RS.Get("Eenheid") + Set KenmerkMetadata.DataTypeBerperking.Maximum = RS.Get("MaxValue") + Set KenmerkMetadata.DataTypeBerperking.Minimum = RS.Get("MinValue") + } + Do Metadata.Items.Insert(KenmerkMetadata) + } + } + Quit Metadata } +zGeefProductKenmerken(%this,PRNrs,KenmerkGroepen) public { + Set $ETRAP="Do ##class(TECH.Error.impl.ErrorHandler).TrapHandler()" + Set ProductenKenmerken = ##class(APPS.PM.dto.kenm.ProductenKenmerken).%New() + if ($Data(KenmerkGroepen) && $IsObject(KenmerkGroepen.Items)){ + Set KenmerkGroepen = KenmerkGroepen.Items + } + if ('$Data(KenmerkGroepen) || ('$IsObject(KenmerkGroepen) && (KenmerkGroepen.Count() = 0))){ + Set KenmerkGroepen = ##class(Prod.Kenmerk.MetaGroep).GetAllMetaGroupsAsList() + } + Set PRNrIterator = ##class(TECH.ListIterator).%New(PRNrs.Items) + While (PRNrIterator.HasNext()){ + Set PRNr = PRNrIterator.Next() + Set ProductAPI = ##class(DOM.DomeinContext).Instance().GeefProductAPI() + Set Product = ProductAPI.GeefProduct(PRNr) + /// TODO + Set ProductKenmerken = ##class(APPS.PM.dto.kenm.ProductKenmerken).%New() + Set ProductKenmerken.IDs = ##class(APPS.PM.dto.kenm.ProductIDs).%New() + Set ProductKenmerken.IDs.IdentNr = Product.GeefIdentNr() + Set ProductKenmerken.IDs.PRNr = PRNr + Set ProductKenmerken.IDs.KortTekst = Product.GeefKorttekst() + Set KenmerkGroepIterator = ##class(TECH.ListIterator).%New(KenmerkGroepen) + While (KenmerkGroepIterator.HasNext()){ + Set KenmerkGroep = KenmerkGroepIterator.Next() + //MetaDefinities voor een hoofdgroep inlezen... + Set RS=##class(%Library.ResultSet).%New("Prod.Kenmerk.MetaDefinitie:FilterMetaDefsViaGroep") + ///Multiple's inlezen + Set MultipleNrs = ##class(BL.Kenm.ProdMulti).Create(KenmerkGroep).GetMultiplesLB(PRNr) + If ($ll(MultipleNrs)=0) Set MultipleNrs = $lb("") + If ($Data(MultipleNrs)){ + for i=1:1:$ll(MultipleNrs) + { + Set MultipleNr = $p($lg(MultipleNrs,i),".",2) + Set ProductKenmerken = ##class(APPS.PM.dto.kenm.ProductKenmerken).%New() + Set ProductKenmerken.IDs = ##class(APPS.PM.dto.kenm.ProductIDs).%New() + Set ProductKenmerken.IDs.IdentNr = Product.GeefIdentNr() + Set ProductKenmerken.IDs.PRNr = PRNr + Set ProductKenmerken.IDs.KortTekst = Product.GeefKorttekst() + Set ProductKenmerken.IDs.MultipleNr = MultipleNr + Set UnID = ##class(BL.Kenm.ProdMulti).%New().GetFullID(PRNr,MultipleNr) + Set tmpStatus=RS.Execute(KenmerkGroep) + Set KenmerkAanwezig = 0 + If (+tmpStatus){ + While (RS.Next()){ + Set DataDefID= ##class(Prod.Kenmerk.DataDefinitie).BuildDataDefinitionID(KenmerkGroep,UnID,RS.Get("Kenmerk")) + If ##class(Prod.Kenmerk.DataDefinitie).%ExistsId(DataDefID){ + Set tmpDataDef=##class(Prod.Kenmerk.DataDefinitie).%OpenId(DataDefID) + Set ProductKenmerk = ##class(APPS.PM.dto.kenm.ProductKenmerk).%New() + Set ProductKenmerk.KenmerkNaam = tmpDataDef.Kenmerk.Kenmerk + Set ProductKenmerk.Waarden = tmpDataDef.Waarden + Set ProductKenmerk.Groep = KenmerkGroep + Do ProductKenmerken.Kenmerken.Insert(ProductKenmerk) + Set KenmerkAanwezig = 1 + } + } + } + if (KenmerkAanwezig){ + /// ProductKenmerken toevoegen. + Do ProductenKenmerken.Kenmerken.Insert(ProductKenmerken) + } + } + } + } + } + Set $ETRAP="" + Quit ProductenKenmerken } +zGenerateWSDL() New tSchema,tMsgClass,tLocation,tPort,tServer,imports,classes,importNamespace + Set tLocation="http://cache02/csp/Admin1/APPS.PM.KenmerkenService.cls" + Set tMsgClass(1)=##class(APPS.PM.KenmerkenService.GeefMetadata).%New() + If tMsgClass(1)="" Quit $$Error^%apiOBJ(6201,"APPS.PM.KenmerkenService.GeefMetadata") + Set tMsgClass(2)=##class(APPS.PM.KenmerkenService.GeefProductKenmerken).%New() + If tMsgClass(2)="" Quit $$Error^%apiOBJ(6201,"APPS.PM.KenmerkenService.GeefProductKenmerken") + Write "",! + Write "",! + Do ##class(APPS.PM.KenmerkenService.GeefMetadata).XMLGetSchemaImports(.imports,.classes) + Do ##class(APPS.PM.KenmerkenService.GeefProductKenmerken).XMLGetSchemaImports(.imports,.classes) + Set importNamespace=$order(imports("")) + While importNamespace'="" { + If imports(importNamespace)'="" { + Write "",! + } + Set importNamespace=$order(imports(importNamespace)) + } + Write "",! + Write "",! + Set importNamespace=$order(imports("")) + While importNamespace'="" { + Write "",! + Set importNamespace=$order(imports(importNamespace)) + } + Do (tMsgClass(1)).XMLSchema("GeefMetadata","element","s0",1,0,.tSchema) + Kill tSchema("APPS.PM.KenmerkenService.GeefMetadata") + Do (tMsgClass(1)).XMLSchema("GeefMetadataResponse","element","s0",0,0,.tSchema) + Do (tMsgClass(2)).XMLSchema("GeefProductKenmerken","element","s0",1,0,.tSchema) + Kill tSchema("APPS.PM.KenmerkenService.GeefProductKenmerken") + Do (tMsgClass(2)).XMLSchema("GeefProductKenmerkenResponse","element","s0",0,0,.tSchema) + Write "",! + Write "",! + Do (tMsgClass(1)).WSDLMessageSchema("s0",1) + Do (tMsgClass(1)).WSDLMessageSchema("s0",0) + Do (tMsgClass(2)).WSDLMessageSchema("s0",1) + Do (tMsgClass(2)).WSDLMessageSchema("s0",0) + Write "",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write "",! + Write "",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write " ",! + Write "",! + Write "",! + Write " ",! + Write " ",! + Write " ",! + Write "",! + Write "",! + Quit +zGetElementQualified(bodyUse) public { Set elementQualified="" + Quit $select(elementQualified="":(bodyUse="literal"),1:elementQualified) } +zGetEncodedAttribute(tree,node) public { If $get(^CacheTemp(tree,node,"a","encodingStyle"))'="http://schemas.xmlsoap.org/soap/encoding/" Quit 0 + If $get(^CacheTemp(tree,node,"a","encodingStyle","u"))'=%soapenv Quit 0 + Quit 1 } +zHyperEventBody() Quit $select(%session.BrokerImplementation#2=1:""_$select($data(^%SYS("CSP","broker","debug")):"",1:"")_$select($data(^%SYS("CSP","broker","UseGetMethod")):"",1:"")_"",1:"") +zHyperEventCall(methodName,args,type) public { Set type=$get(type,0) Quit $Select(type=0:$case(%session.BrokerImplementation,1:"cspRunServerMethod",2:"cspHttpServerMethod",:"cspSelectServerMethod"),1:"cspCallServerMethod")_"("""_##class(APPS.PM.KenmerkenService).Encrypt($listbuild($select($extract(methodName,1,2)="..":"APPS.PM.KenmerkenService"_$extract(methodName,2,$length(methodName)),1:methodName)_":"_##class(APPS.PM.KenmerkenService).%ClassName(1)))_$select(%session.UseSessionCookie'=2:"&CSPCHD="_%session.CSPSessionCookie,1:"")_$select(type=1:"&WCHARSET="_%response.CharSet,1:"")_""""_$select($get(args)'="":","_args,1:"")_")" } +zHyperEventFrame() Quit ""_$C(13,10)_""_$C(13,10)_"" +zHyperEventHead(iframeOnly) Quit $select('$get(iframeOnly)&&(%session.BrokerImplementation>1):"",1:"")_"" +zImportSOAP(%this,pAction,requestStream,FaultCode,FaultReason) public { Set FaultCode="SOAP-ENV:Client" + Set FaultReason=$$FormatMessage^%occMessages("","%ObjectErrors",6220) + Do ##class(APPS.PM.KenmerkenService).LogInput(1,pAction,requestStream) + Set pAction=$Piece($Translate(pAction,""""),"/",$Length(pAction,"/")) + Set tHandler=##class(%XML.ImportHandler).%New() + If tHandler="" Quit $$Error^%apiOBJ(6201,"%XML.ImportHandler") + Set tHandler.KeepWhitespace=1 // Need whitespace for XMLImport + Set tResolver=##class(%XML.SAX.EntityResolver).%New() + If tResolver="" Quit $$Error^%apiOBJ(6201,"%XML.SAX.EntityResolver") + Set sc=##class(%XML.SAX.Parser).ParseStream(requestStream,tHandler,tResolver,$zobjval(,7,0,0,5)) + If ('sc) Quit sc + Set sc=..ProcessSOAPEnvelope(tHandler,0,.message,.versionMismatch) + If ('sc) { + Set FaultReason=$$FormatMessage^%occMessages("","%ObjectErrors",6228) + Set FaultCode=$select(versionMismatch:"SOAP-ENV:VersionMismatch",1:"SOAP-ENV:Client") + Quit sc + } + If pAction="" Set pAction=##class(APPS.PM.KenmerkenService).NormalizeName(^CacheTemp(tHandler.Tree,message)) + Set className=$piece(pAction,".",1,$length(pAction,".")-1) + If className'="" { + If className'=##class(APPS.PM.KenmerkenService).%ClassName(1) Quit $$Error^%apiOBJ(6207,pAction) + } Else { + Set className=##class(APPS.PM.KenmerkenService).%ClassName(1) + } + Set methodName=$Piece(pAction,".",$Length(pAction,".")) + Set tMsgClass=$zobjclassmethod(className_"."_methodName,"%New") + If '$isObject(tMsgClass) Quit $$Error^%apiOBJ(6207,pAction) + Set sc=tMsgClass.ImportSOAPMessage(methodName,"*",tHandler,message) + If ('sc) { + Set FaultCode="SOAP-ENV:Client" + Set FaultReason=$$FormatMessage^%occMessages("","%ObjectErrors",6228) + Quit sc + } + Set sc=tMsgClass.InvokeService(%this) + If sc="" Quit 1 + If ('sc) { + Set FaultCode="SOAP-ENV:Server" + Set FaultReason=$$FormatMessage^%occMessages("","%ObjectErrors",6227) + Quit sc + } + Set sc=..WriteSOAPMessage(tMsgClass,methodName_"Response",1) + If ('sc) { + Set FaultCode="SOAP-ENV:Server" + Set FaultReason=$$FormatMessage^%occMessages("","%ObjectErrors",6227) + } + Quit sc } +zInclude(url) public { Set %CSPsc=$$cspInclude^%cspServer(url) + If ('%CSPsc) { + Set %request.Data("Error:IncludePage",1)=url + ZTrap "THROW" + } + Kill %CSPsc } +zInsertHiddenField(url,name,value,extra) public { Set extra=$get(extra) Do ##class(APPS.PM.KenmerkenService).ConvertParameter(url,.name,.value) + Quit "W")_">" } +zInsertHiddenFields(url,query) public { Quit $$cspHiddenForm^%cspServer(url,.query) } +zIsPrivate() Quit 0 +zLink(link,query,addQ) public { Set addQ=$get(addQ,0) Quit $$cspLink^%cspServer(link,.query,addQ) } +zLogInput(isService,action,inputStream) public { If $get(^ISCSOAP("Log"))'["i" Quit + Set file=$get(^ISCSOAP("LogFile")) + If file="" Quit + Open file:"waes":1 else close file Quit + Use file + Write !,!,"Web "_$select(isService:"service",1:"client")_" with SOAP action = "_action,! + Do inputStream.OutputToDevice() + Do inputStream.Rewind() + Close file + Quit } +zMakeFault(pFaultCode,pFaultString,pDetail,pFaultActor) public { Set pDetail=$get(pDetail),pFaultActor=$get(pFaultActor) Set fault=##class(%SOAP.Fault).%New() + Set fault.faultcode=pFaultCode + Set fault.faultstring=pFaultString + Set fault.detail=pDetail + Set fault.faultactor=pFaultActor + Quit fault } +zNamespace() public { Quit "http://tempuri.org" +} +zNormalizeName(pName,pMaxLen) public { + Set pMaxLen=$Get(pMaxLen,31) + Set pName=$Translate(pName,"_- +","") + For i=1:1:$Length(pName,".") { + Set part=$Piece(pName,".",i) + If $Extract(part,1)?1N { + Set pPrefix=$Case(+$Extract(part),1:"one",2:"two",3:"three",4:"four",5:"five",6:"six",7:"seven",8:"eight",9:"nine") + Set part=pPrefix_$Extract(part,2,$Length(part)) + Set $Piece(pName,".",i)=part + } + } + If $Length(pName)>pMaxLen { + Set tVowelCount=0,tLen=$Length(pName) + For tI=tLen:-1:1 { + If "AEIOUaeiou"[$Extract(pName,tI) Set $Extract(pName,tI)="+",tVowelCount=tVowelCount+1 + If tLen-tVowelCount=pMaxLen Quit + } + } + Set pName=$Translate(pName,"+","") + Quit $extract(pName,1,pMaxLen) } +zOnInternalFault(fault,status) public { Quit } +zOnPage() public { If $Data(%request.Data("WSDL"))!$Data(%request.Data("wsdl")) { + Do ##class(APPS.PM.KenmerkenService).GenerateWSDL() + } Else { + Set service=##class(APPS.PM.KenmerkenService).%New() + Set tAction=$Get(%request.CgiEnvs("HTTP_SOAPACTION")) + If tAction'="" { + Do service.ProcessSOAP($zconvert(tAction,"I","URL"),%request.Content) + } Else { + Do service.ProcessHTTP() + } + } + Quit 1 } +zOnPreHTTP() public { + If $Get(%request.CgiEnvs("HTTP_SOAPACTION"))]"" Quit 1 + If $Data(%request.Data("WSDL",1)) Quit 1 + If $Data(%request.Data("wsdl",1)) Quit 1 + If $Data(%request.Data("soap_method",1)) Quit 1 + Set %response.ContentType="text\html" + Set %response.ServerSideRedirect="%SOAP.WebServiceInfo.cls?CLS="_##class(APPS.PM.KenmerkenService).%ClassName(1) + Quit 1 } +zOnPreHyperEvent() Quit 1 +zOnSOAPRequest(%this,pAction,requestStream,responseStream) public { Set io=$io + If '$data(responseStream) || '$isObject(responseStream) { + Set responseStream=##class(%Library.FileBinaryStream).%New() + Set filestream=1 + } Else { + Set filestream = responseStream.%IsA("%Library.FileBinaryStream") + } + If filestream { + Set stream=responseStream + } Else { + Set stream=##class(%Library.FileBinaryStream).%New() + } + Do stream.Write("") ; force stream's file to open + Set file=stream.Filename ; get filename and make current device + Use file + do $zu(96,18,2,"UTF8") + Do ..ProcessSOAP(pAction,requestStream) + // Don't Close file to leave stream positioned + Use io + If filestream Quit + Do responseStream.CopyFrom(stream) } +zPage(skipheader) public { Set skipheader=$get(skipheader,1) Do ##class(APPS.PM.KenmerkenService).StartTimer("Page") + New %CSPsc,%ZCS Set $ZTrap="PageErr" + Set dopage=(%request.Method'="HEAD") + Set %response.ContentType="text/xml" + Set %response.CharSet="UTF-8" + If ##class(APPS.PM.KenmerkenService).OnPreHTTP()=0 Set dopage=0 + If 'skipheader Set %CSPsc=%response.WriteHTTPHeader(.dopage) Set:('%CSPsc) dopage=0 + If $get(dopage) Set %CSPsc=##class(APPS.PM.KenmerkenService).OnPage() + Do ##class(APPS.PM.KenmerkenService).StopTimer("Page") + Quit $Select($get(%CSPsc)="":1,1:%CSPsc) +PageErr Set $ZTrap="" + If $ZError'["",! + Do ShowError^%apiCSP(sc) + Quit } +zStartTimer(name) public { Set %response.Timers(name)=$zhorolog,%response.Timers(name,"globals")=$zu(67,9,$job),%response.Timers(name,"lines")=$zu(67,8,$job) + Quit } +zStatusFault(pFaultCode,pFaultString,pStatus,pFaultActor) public { Set pStatus=$get(pStatus),pFaultActor=$get(pFaultActor) Do DecomposeStatus^%apiOBJ(pStatus,.tErr) + Set detail=$c(13,10)_" "_$c(13,10) + Set detail=detail_" "_$ZConvert(tErr(1),"O","HTML")_""_$c(13,10) + Set detail=detail_" "_$c(13,10) + Set fault=##class(APPS.PM.KenmerkenService).MakeFault(pFaultCode,pFaultString,detail,pFaultActor) + Do ##class(APPS.PM.KenmerkenService).OnInternalFault(fault,pStatus) + Do ##class(APPS.PM.KenmerkenService).Fault(fault) + Quit } +zStopTimer(name) public { If '$data(%response.Timers(name)) Quit + Set time=$zhorolog-%response.Timers(name),day=$zdate($horolog,3),slot=$piece($horolog,",",2)*48\86400,url=$select($get(%request.Data("CSPInclude",1))'="":%request.Data("CSPInclude",1),1:%request.URL) + If $increment(^%CspPerformance(name,url,day,slot,"hit")),$increment(^%CspPerformance(name,url,day,slot,"time"),time) + If $increment(^%CspPerformance(name,url,day,slot,"globals"),$zu(67,9,$job)-%response.Timers(name,"globals")-2) + If $increment(^%CspPerformance(name,url,day,slot,"lines"),$zu(67,8,$job)-%response.Timers(name,"lines")-6) + If $get(^%CspPerformance(name,url,day,slot,"min"),99999999)>time Set ^("min")=time + If $get(^("max"),0)