Leveringsperformantie vertrekt van de facturen, de leveringsdagen in de factuurlijnen wordt vergelijken met de leveringsdag van de leveringbon er kan op 3 nivos worden gegropeerd : - detail - lijn per lijn (gigantisch bestand) - per leveringsbon - per klant en maand het bestand wordt BL.Derde.LevSpecifiek,BL.Derde.KlantSpecifiek,vhLib.Macro 1 %RegisteredObject %List 1 %String 1 %String 1 %Integer 1 %Date 1 %Date 1 17-5-2010 %Date 61863 tijdelijke opslag %String 1 1 D = Detail, elke productlijn apart L = Groepeerd per leveringsbon en prodgrp M = Groepeerd per klant, maand en prodgrp %String 1 Derde.Klant.Klant 1 Do ##class(APPS.TRANSP.impl.LeveringsPerformantieExport).Test() 1 Do ##class(APPS.TRANSP.impl.LeveringsPerformantieExport).MaandAll() 1 Name lbRegios:%List,KLNr:%List,Detail:%List,AantalMaanden:%Integer=12 %Status Begin,Eind Geef de eerstvolgende leverdag op basis van de verzendwijze en aanleverdagen Dev KLNr FAKNr,ULRef FAKNr,BONNr,LRec:%String,LevDatum:%Date,VerzendWijze:%String 0 ; Geen terugnames Set ASAP=$P(LRec,"\",47)="A" ; ASAP ingesteld dus vroeger leveren mag als de goederen beschikbaar zijn Set KredietLim=$P(LRec,"\",49) ; KredietLimiet ingesteld bij het doorsturen Set ProdGrp=$$PRODGRP^PRODUKT(PRNr,1) Set OrdDat=$P(LRec,"\",25) Set:OrdDat["/" OrdDat=$$INTDATE^vhLib.DataTypes(OrdDat,"DW") ; backwards compatible, vroeger stond er de week met een "/" Set:(LevDatum<..#StartLevOpDag)&&($$CALCDATE^vhLib.DataTypes(OrdDat,"W","FD")=$$CALCDATE^vhLib.DataTypes(LevDatum,"W","FD")) OrdDat=LevDatum ; backwards compatible, vroeger was de nauwkeurigheid per week dus als het binnen de week valt dan is alles OK Set:ASAP&&(OrdDat>LevDatum) OrdDat=LevDatum ; ASAP was ingesteld dus het mag vroeger geleverd worden Set Kom=$P(LRec,"\",28)'="" Set Omzet=$P(LRec,"\",34) Set LCORR=$P(LRec,"\",50) Do ..Add(FAKNr,BONNr,LevDatum,VerzendWijze,OrdDat,PRNr,ProdGrp,Kom,Omzet,KredietLim,LCORR) ]]> FAKNr,BONNr,LevDat,VerzendWijze,OrdDat,PRNr,ProdGrp,Kom,Omzet,KredietLim,LCORR Delta 10 Set NewDelta=-99 Quit NewDelta ; Set NewDelta=Delta If Delta<0 Do ; te laat . If Delta<-7 Set NewDelta=Delta\7*7 . If Delta<-30 Set NewDelta=Delta\30*30 Else If Delta>0 Do ; te vroeg . Set NewDelta=(Delta+7)\7*7 . If Delta>30 Set NewDelta=Delta\30*30 Quit NewDelta ]]>