CatalogManager3.ImportCSV Method (PIA)

Use this method to import a comma-separated-values (CSV) format file as catalog data.

Definition

[Visual Basic .NET]

Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub ImportCSV(strCSVFileSource As String,
  strProductIDColumnName As String,
  strPriceColumnName As String,
  strCatalogName As String,
  Optional fUpdateOnly As BooleanOptional fRunSynchronously As Boolean)

[C#]

using Microsoft.CommerceServer.Interop.Catalog;
…
 public void ImportCSV(stringstrCSVFileSource,
  stringstrProductIDColumnName,
  stringstrPriceColumnName,
  stringstrCatalogName,
  boolfUpdateOnly,boolfRunSynchronously);

Parameters

[Visual Basic .NET]

  • strCSVFileSource
    A String that contains the path and file name of the CSV file to import.
  • strProductIDColumnName
    A String that contains the name of the column that provides a unique ID for products to be imported into the catalog.
  • strPriceColumnName
    A String that contains the name of the column in the CSV file containing the product prices.
  • strCatalogName
    A String that contains the name of the catalog into which the CSV file will be imported. The name of the catalog cannot begin with "#" or consist solely of spaces.
  • fUpdateOnly
    A Boolean that specifies whether to update an existing catalog or create a new one. A value of True indicates that if the system contains a catalog whose name is the same as the one specified in the strCatalogName parameter, it will be updated with the imported data. A value of False indicates to delete the catalog if it already exists and create a new one with the imported data. The default value is False.
  • fRunSynchronously
    A Boolean that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the import is completed. A value of False indicates that the method will return immediately after spawning the import thread. The default value is False.

[C#]

  • strCSVFileSource
    A string that contains the path and file name of the CSV file to import.
  • strProductIDColumnName
    A string that contains the name of the column that provides a unique ID for products to be imported into the catalog.
  • strPriceColumnName
    A string that contains the name of the column in the CSV file containing the product prices.
  • strCatalogName
    A string that contains the name of the catalog into which the CSV file will be imported. The name of the catalog cannot begin with "#" or consist solely of spaces.
  • fUpdateOnly
    A bool that specifies whether to update an existing catalog or create a new one. A value of True indicates that if the system contains a catalog whose name is the same as the one specified in the strCatalogName parameter, it will be updated with the imported data. A value of False indicates to delete the catalog if it already exists and create a new one with the imported data.
  • fRunSynchronously
    A bool that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the import is completed. A value of False indicates that the method will return immediately after spawning the import thread.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name Value Description
E_CAT_CATMGR_NOT_INITIALIZED

[C#] 0x889800B5

[Visual Basic .NET] &H889800B5

The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_CATALOGNAME

[C#] 0x88980063

[Visual Basic .NET] &H88980063

The Catalog name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH

[C#] 0x88980042

[Visual Basic .NET] &H88980042

The Catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED

[C#] 0x8898003D

[Visual Basic .NET] &H8898003D

The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_INVALID_LANGUAGE

[C#] 0x8898009E

[Visual Basic .NET] &H8898009E

The value you specified for the Language parameter is either empty or exceeds the maximum length of 10 characters.
E_CAT_INVALID_PROPERTY_NAME

[C#] 0x889800A2

[Visual Basic .NET] &H889800A2

The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_FILE_OPEN_ERROR

[C#] 0x88980020

[Visual Basic .NET] &H88980020

Unable to open the file . Check that the file exists and you have the necessary permissions on the file.
E_CAT_IMPORT_IN_PROGRESS

[C#] 0x88980025

[Visual Basic .NET] &H88980025

This operation cannot be started because an import operation is currently in progress.
E_CAT_CONFLICTING_PRODUCTID

[C#] 0x88980113

[Visual Basic .NET] &H88980113

The ProductID property you specified for this Catalog does not match the existing PrIoductID property. When importing a catalog in the update mode the ProductID property should match the existing ProductID property

Remarks

If the parameter strCatalogName specifies a catalog that does not exist, a new catalog will be created and the value of the fUpdateOnly parameter is ignored.

The ImportCSV method is used to bring existing data from a wide variety of sources into the Product Catalog System. The CSV file must conform to the following format:

  • The first row of data consists of column names, separated by commas. Rows are delimited by new lines in the text file.
  • Each subsequent row (called a data row) must have the same number of commas as the very first row. In other words, all columns in the CSV must be defined by the first row.
  • All items in the CSV file (one row per item) are assumed to be products, and are created from a common product definition. If no product definition exists in the destination catalog then one will be created during the import process.
  • Each item must specify a value for the column specified as the ProductID column, as well as for the column specified as the Price column.
  • Missing data is represented by two adjacent commas.

Ee823483.note(en-US,CS.20).gif Notes

  • This method runs in a separate thread. Prior to spawning the thread, it checks that the specified file can be opened and that there is not an existing ExportCSV, ExportXML, ImportCSV or ImportXML method in progress. Once the new thread is spawned, this method returns immediately, if fRunSynchronously is False, with no errors. Any errors that occurred while importing the catalog are logged to the Windows NT Event Log. Use the Windows Event Viewer to view the Windows NT Event Log.
  • This method cannot be called in a transacted object. This method involves the creation, deletion, or updating of free text indexes. SQL Server does not allow these operations in a transaction.
  • If there is a temporary loss of the SQL Server connection, longer than two minutes, an import or export will be aborted. Other methods should work after the interruption.

[Visual Basic .NET]

Example

myCatalogManager.ImportCSV( _
  "c:\imports\ourcatalog.csv", "SKU", "Price", _
  "OurCatalog", True)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows Server 2003

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.ExportCSV

CatalogManager3.ImportXML

Copyright © 2005 Microsoft Corporation.
All rights reserved.