Index: WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/ProductIdRecycleerder.cls.xml =================================================================== diff -u -r64463 -r64468 --- WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/ProductIdRecycleerder.cls.xml (.../ProductIdRecycleerder.cls.xml) (revision 64463) +++ WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/ProductIdRecycleerder.cls.xml (.../ProductIdRecycleerder.cls.xml) (revision 64468) @@ -3,6 +3,28 @@ TECH.Mockable + +^ProductIdRecycle + + + + +HET UITBREIDEN VAN EEN RANGE KAN DOOR SIMPELWEG AAN ONDERSTAANDE PARAMETERS TOE TE VOEGEN. OPGELET: WEES ZEKER DAT TOEVOEGINGEN ONGEBRUIKTE PRNs ZIJN !!! Gebruik eventueel lokale method BestaatProduct("PRNr"). +3027,3028,3029,3030,3031,3032,3033,3034,3035,3036,3037,3038,3039,3040,3041,3042,3043,3044,3045,3046,3047,3048,3049,3050,3051,3052,3053,3054,3055,3056 + + + +3057,3058,3059,3060,3061,3062,3063,3064,3065,3066,3067,3068,3069,3070,3071,3072,3073,3074,3075,3076,3077,3078,3079,3080,3081,3082,3083,3084,3085,3086 + + + +3087,3088,3089,3090,3091,3092,3093,3094,3095,3096,3097,3098,3099,3100,3101,3102,3103,3104,3105,3106,3107,3108,3109,3110,3111,3112,3113,3114,3115,3116 + + + +3117,3118,3119,3120,3121,3122,3123,3124,3125,3126,3127,3128,3129,3130,3131,3132,3133,3134,3135,3136,3137,3138,3139,3140,3141,3142,3143,3144,3145,3146 + + WSimpl.AX.CalculatedProduct.LadeVariantBepaler 1 @@ -49,8 +71,6 @@ Set ProductId = ..GeefEerstvolgendeVrijeProductId(##class(AXimpl.PM.enu.LadeVariant).TAX()) } ElseIf (LadeVariant = ##class(AXimpl.PM.enu.LadeVariant).TBX()) { Set ProductId = ..GeefEerstvolgendeVrijeProductId(##class(AXimpl.PM.enu.LadeVariant).TBX()) - } Else { - Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.UnimplementedException).%New("Onbekende LadeVariant voorzien: '"_LadeVariant_"' in de door AX aangeleverde Kenmerken. De range voor recyclage van een ProductId kan niet bepaald worden.")) } Set AantalVrijePlaatsenInRangeVolgensLadeVariant = ..GeefAantalVrijePlaatsenInRangeVolgensLadeVariant(LadeVariant) @@ -86,16 +106,18 @@ LadeVariant:AXimpl.PM.enu.LadeVariant,ForceerVolledigeReset:%Boolean=0 @@ -148,17 +170,32 @@ ]]> + + +Check los ProductId of er al een product voor bestaat en rapporteer in Console. Handig bij uitbreidingen van ranges. +ProductId:%String + + + Wordt aangeroepen vanuit WSimpl.AX.CalculatedProduct.RequestConverter om op het einde van de rit het ProductId weer vrij te geven. ProductId:%String ProductId niet gevonden in range om weer vrij te geven! } Else { - Set ^ProductIdRecycle(LadeVariantVanRangeVolgensProductId,ProductId) = 0 + Set GlobalKey = ..#GlobalNaam_"("""_LadeVariantVanRangeVolgensProductId_""","_ProductId_")" + Set @GlobalKey = 0 } ]]> @@ -205,14 +242,16 @@ #dim Range As %String = ..GeefRangeVolgensLadeVariant(LadeVariant) #dim IsVrijeProductIdGevonden As %Boolean = $$$False #dim ProductId As %String + #dim GlobalKey As %String Set RangeIterator = ##class(TECH.StringIterator).%New(Range, ",") While (RangeIterator.HasNext() && ($$$Not(IsVrijeProductIdGevonden))) { Set ProductId = RangeIterator.Next() + Set GlobalKey = ..#GlobalNaam_"("""_LadeVariant_""","_ProductId_")" - If (($Data(^ProductIdRecycle(LadeVariant,ProductId))) && (^ProductIdRecycle(LadeVariant,ProductId) = 0)) { + If (($Data(@GlobalKey)) && (@GlobalKey = 0)) { Set IsVrijeProductIdGevonden = $$$True - Set ^ProductIdRecycle(LadeVariant,ProductId) = 1 + Set @GlobalKey = 1 } } @@ -231,16 +270,28 @@ 0) { + Do ..PersisteerRange(LadeVariant) + } + Quit AantalVrijePlaatsenInRangeVolgensLadeVariant ]]> @@ -270,28 +321,28 @@ 1 %String - 1 %String - 1 %String - 1 %String -