Index: vhTestFiles/UnitTests/AXimpl.Dynamics.ProductItemUpsertIn.Converter.ProductItemConverter/Test/ProductItemInUpdateKorttekst.xml =================================================================== diff -u -r48844 -r49487 --- vhTestFiles/UnitTests/AXimpl.Dynamics.ProductItemUpsertIn.Converter.ProductItemConverter/Test/ProductItemInUpdateKorttekst.xml (.../ProductItemInUpdateKorttekst.xml) (revision 48844) +++ vhTestFiles/UnitTests/AXimpl.Dynamics.ProductItemUpsertIn.Converter.ProductItemConverter/Test/ProductItemInUpdateKorttekst.xml (.../ProductItemInUpdateKorttekst.xml) (revision 49487) @@ -44,7 +44,7 @@ AVENTOS SERVO-DRIVE schakelaarhouder nl-be - + korttekst 08629 Index: vhUnitTest/AXimpl/Dynamics/ProductItemUpsertIn/Converter/ProductItemConverter/Test.cls.xml =================================================================== diff -u -r49271 -r49487 --- vhUnitTest/AXimpl/Dynamics/ProductItemUpsertIn/Converter/ProductItemConverter/Test.cls.xml (.../Test.cls.xml) (revision 49271) +++ vhUnitTest/AXimpl/Dynamics/ProductItemUpsertIn/Converter/ProductItemConverter/Test.cls.xml (.../Test.cls.xml) (revision 49487) @@ -134,6 +134,24 @@ ]]> + + + + @@ -298,6 +316,7 @@ Set Converter.NieuwProductMock = ProductMock #dim Envelope as AXif.Dynamics.ProductItemIn.Envelope = ..GeefEnvelope("ProductItemInUpdateKorttekst.xml") + Do Converter.ConvertProductItem(Envelope.Body.MessageParts.MessagePart.Item.GetAt(1),"vhbe") Do $$$AssertEquals(Converter.DoorgestuurdNaarEWMS,$$$True) Index: AXimpl/Dynamics/ProductItemUpsertIn/Converter/ProductItemConverter.cls.xml =================================================================== diff -u -r49271 -r49487 --- AXimpl/Dynamics/ProductItemUpsertIn/Converter/ProductItemConverter.cls.xml (.../ProductItemConverter.cls.xml) (revision 49271) +++ AXimpl/Dynamics/ProductItemUpsertIn/Converter/ProductItemConverter.cls.xml (.../ProductItemConverter.cls.xml) (revision 49487) @@ -70,29 +70,35 @@ quit } try { - if ..ProductAPI.BestaatIdentNr(ProductItem.ItemId) { - Do ..Logger.Info("AX ProductSynchronizatie","Bestaand product met ident nummer '"_ProductItem.ItemId_"'") - #dim Product as DOM.PM.Product = ..ProductAPI.GeefProductVolgensIdentNr(ProductItem.ItemId) - if $$$Not(Product.IsGenerischProduct()){ - Do ..UpdateProduct(ProductItem,Product,LegalEntity) - } else { - Do ..Logger.Info("AX ProductSynchronizatie","Update van product '"_ProductItem.ItemId_"' niet toegepast om dat het generisch is.") - } + If $$$Not(..ValideerKorttekstInTranslations(ProductItem)){ + #dim Melding as %String = "Product "_ProductItem.ItemId_"' niet gesynchronizeerd wegens productnaam niet gelijk in alle talen. PM is op de hoogte gesteld, geen actie nodig van ICT." + Do ..StuurKorttekstNietUniformMail(ProductItem.ItemId) + Do ##class(TECH.Exceptions.IllegalArgumentException).Throw(Melding) } else { - Do ..Logger.Info("AX ProductSynchronizatie","Nieuw product met ident nummer '"_ProductItem.ItemId_"'") - Set Product = ..GeefNieuwProduct() - Do Product.ZetDummyVeldOm1NodeTeBewaren("1") ; anders wordt de 1-node niet gepersisteerd - Do Product.ZetLeverancierId(..BepaalLeverancierId(ProductItem,LegalEntity)) ;PrimaryVendorId - Do Product.ZetIdentNr(..BepaalIdentNr(ProductItem)) ;alleen bij nieuw product aangezien we bij een update het product vinden via identnummer.... - ; Bij een nieuw product defaulten we Opslagzone op 9 - Do Product.ZetOpslagZone("9") - Do Product.ZetMuntAankoop("EUR") - if ..MagLinktypeAangepastWordenBijCreatie(ProductItem,Product) { - Do Product.ZetLinkType(..BepaalLinkType(ProductItem,LegalEntity)) ; Ook ReqCovType - } + if ..ProductAPI.BestaatIdentNr(ProductItem.ItemId) { + Do ..Logger.Info("AX ProductSynchronizatie","Bestaand product met ident nummer '"_ProductItem.ItemId_"'") + #dim Product as DOM.PM.Product = ..ProductAPI.GeefProductVolgensIdentNr(ProductItem.ItemId) + if $$$Not(Product.IsGenerischProduct()){ + Do ..UpdateProduct(ProductItem,Product,LegalEntity) + } else { + Do ..Logger.Info("AX ProductSynchronizatie","Update van product '"_ProductItem.ItemId_"' niet toegepast om dat het generisch is.") + } + } else { + Do ..Logger.Info("AX ProductSynchronizatie","Nieuw product met ident nummer '"_ProductItem.ItemId_"'") + Set Product = ..GeefNieuwProduct() + Do Product.ZetDummyVeldOm1NodeTeBewaren("1") ; anders wordt de 1-node niet gepersisteerd + Do Product.ZetLeverancierId(..BepaalLeverancierId(ProductItem,LegalEntity)) ;PrimaryVendorId + Do Product.ZetIdentNr(..BepaalIdentNr(ProductItem)) ;alleen bij nieuw product aangezien we bij een update het product vinden via identnummer.... + ; Bij een nieuw product defaulten we Opslagzone op 9 + Do Product.ZetOpslagZone("9") + Do Product.ZetMuntAankoop("EUR") + if ..MagLinktypeAangepastWordenBijCreatie(ProductItem,Product) { + Do Product.ZetLinkType(..BepaalLinkType(ProductItem,LegalEntity)) ; Ook ReqCovType + } - Do ..UpdateProduct(ProductItem,Product,LegalEntity) - Do ..StuurDoorNaarEWMS(Product) + Do ..UpdateProduct(ProductItem,Product,LegalEntity) + Do ..StuurDoorNaarEWMS(Product) + } } } catch { #dim Exception As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Catch(##class(TECH.Exceptions.IllegalArgumentException).%ClassName(1)) @@ -635,6 +641,23 @@ ]]> + +ItemId:%String +1 + + + ItemId:%String,HoofdGroep:%String,Groep:%String,SubGroep:%String 1 @@ -649,6 +672,23 @@ Do ..Logger.Warning("Productsynchronizatie AX - Admin","Geen actie nodig, PM is verwittigd van :" _$$$CRLF _ MeldingTekst,0) ]]> + + +ProductItem:AXif.Dynamics.ProductItemIn.MessageParts.AxdEntityItem +1 +%Boolean + +