07-20-04 10:53 PM
Removing the accept changes did the trick
Thanks
Matthew
""Vinayak Tadas[MSFT]"" wrote:
> To create a variant you should be calling the AddVariant method on the
> Product object.
> Also you should not call the AcceptChanges methods on the Variants
> datatable.
> objVariants.CatalogItems.AcceptChanges()
> objVariants.AcceptChanges()
>
>
> --------------------
> Thread-Topic: Creating Product Variants using FP1 API
> thread-index: AcRuiIwdAVUKMSU9RUe24/i6xit3aQ==
> X-WBNR-Posting-Host: 81.178.227.60
> From: examnotes <Matthew
> Watkins@discussions.microsoft.com>
> Subject: Creating Product Variants using FP1 API
> Date: Tue, 20 Jul 2004 11:37:01 -0700
> Lines: 91
> Message-ID: <D2B6C9A2-9925-4DEC-B20B-B143DEAD69B4@microsoft.com>
> MIME-Version: 1.0
> Content-Type: text/plain;
> charset="Utf-8"
> Content-Transfer-Encoding: 7bit
> X-Newsreader: Microsoft CDO for Windows 2000
> Content-Class: urn:content-classes:message
> Importance: normal
> Priority: normal
> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.0
> Newsgroups: microsoft.public.commerceserver.general
> NNTP-Posting-Host: TK2MSFTNGXA03.phx.gbl 127.0.0.1
> Path: cpmsftngxa06.phx.gbl!TK2MSFTNGXA01.phx.gbl!TK2MSFTNGXA03.phx.gbl
> Xref: cpmsftngxa06.phx.gbl microsoft.public.commerceserver.general:14312
> X-Tomcat-NG: microsoft.public.commerceserver.general
>
> I am trying to create a new Product and its variants using the
> Microsoft.CatalogServer API.
>
> The code I have runs to completion, but when I look at the resulting
> product in the Catalog Manager, the product is correct but no variants are
> created, and no error is returned, and no error is recorded in the event
> log.
>
> Does anyone have working code that creates Products, its variants and sets
> the variant information.
>
> Thanks in Advance
>
> The code is as follows
>
> If IsNewBln Then
> objProduct = objBaseCatalog.CreateProduct(_ProductDefinition,
> UniqueIDStr, _Price, _Category, NameStr)
> Else
> objProduct = objBaseCatalog.GetProduct(UniqueIDStr)
> End If
>
>
> Dim objCategory As Category = GetCategory()
>
> Dim objProductInfo As CatalogItemsDataSet
>
> Dim objItem As CatalogItemsDataSet.CatalogItem
>
>
>
> objProductInfo = objProduct.Information
>
> objItem = objProductInfo.CatalogItems(0)
>
> If ProductDs.Tables(CatalogProductTable).Rows.Count <> 1 Then
> Throw New ApplicationException("1 and only 1 Product row is
> required")
> Else
> Dim rw As DataRow
> rw = ProductDs.Tables(CatalogProductTable).Rows(0)
>
> For Each dc As DataColumn In
> ProductDs.Tables(CatalogProductTable).Columns
> objItem(dc.ColumnName) = rw(dc.ColumnName)
> Next
>
>
>
> Dim objVariants As CatalogItemsDataSet
> Dim dv As DataView = New DataView
>
>
>
>
> objVariants = objProduct.Variants
>
>
> dv.Table = objVariants.CatalogItems
>
> dv.RowFilter = ""
>
> For Each rwVariant As CatalogItemsDataSet.CatalogItem In
> objVariants.CatalogItems
> dv.Table = ProductDs.Tables(CatalogVariantTable)
> dv.RowFilter = "VariantID = '" + rw("VariantID") + "'"
> Dim drv As DataRowView = dv.Item(0)
>
> rwVariant.BeginEdit()
> rwVariant.ListPrice = drv("cy_List_Price")
>
>
> For Each dc As DataColumn In
> ProductDs.Tables(CatalogVariantTable).Columns
> If dc.ColumnName <> "VariantID" And dc.ColumnName <>
> "cy_List_Price" Then
>
> rwVariant(dc.ColumnName) = drv(dc.ColumnName)
> End If
>
>
>
>
>
> Next
> rwVariant.EndEdit()
>
> rwVariant.AcceptChanges()
> Dim str As String = rwVariant.RowError
>
> Next
> objVariants.CatalogItems.AcceptChanges()
> objVariants.AcceptChanges()
>
>
> 'All Information should now be in synch
> objProduct.Save()
>
>
>
>
>
>
>
> Thanks
> Vinayak Tadas
> Microsoft
> http://blogs.msdn.com/vinayakt
>
> This posting is provided "AS IS" with no warranties, and confers no rights
.
> You assume all risk for your use. © 2002 Microsoft Corporation. All right
s
> reserved.
> Use of included script samples are subject to the terms specified at
> http://www.microsoft.com/info/cpyright.htm
> Get Secure! For more info visit http://www.microsoft.com/security. Pleas
e
> reply to the newsgroups only
[ Post a follow-up to this message ]
|