Commerce Server 2000 Product Catalog Import DTS Task Fails to Import Catalog into Data Warehouse (285051)



The information in this article applies to:

  • Microsoft Commerce Server 2000

This article was previously published under Q285051

SYMPTOMS

When you run a Commerce Server 2000 Product Catalog Import DTS task, the DTS task will fail, and the following error message will appear in the event log:
Err: DoAsyncFuncCall(), exception in async funct, seqID:
This problem can occur when you use either a partial or a complete import into a Data Warehouse that was previously created or modified with the RC0 version of Commerce Server 2000. This error is known to also occur during the operation of the Commerce Server 2000 User Profile and Web Server Log Import DTS tasks.

CAUSE

In the Data Warehouse stored procedures that begin with SPIL_, the following IF statement appears:
IF(@@rowcount = 0)
				
When this statement is processed with Commerce Server 2000, the DTS task will fail, and the error message that is mentioned in the "Symptoms" section will appear in the event log.

RESOLUTION

Delete the current Data Warehouse resource, and the re-create it by using any post-RC0 version of Commerce Server 2000. Alternatively, you can edit the stored procedures to replace the problem code (see the "More Information" section of this article).

STATUS

This problem has been resolved in the post-RC0 versions of Commerce Server 2000.

MORE INFORMATION

IMPORTANT: Use caution when modifying SQL stored procedures. Microsoft recommends seeking assistance from your Database Administrator. Also, see "How to Modify a Stored Procedure (Enterprise Manager)" in the SQL Online Books.

If you want to resolve this bug by modifying the SPIL_ stored procedures, replace the following code in all of the SPIL_ stored procedures.

Original Code:
SELECT * FROM ... WHERE [xxx]...
IF(@@rowcount = 0)
				
New Code:
IF NOT EXISTS (SELECT [xxx] FROM ... WHERE [xxx]...)
				
where [xxx] is the first column referenced in the WHERE clause.

For example:

Original code the in stored procedure:
SELECT * FROM [LinkValRegisteredUserproduct_interest] WHERE
(([RegisteredUserID]=@instID) AND ([product_interestVID]=@valID))
IF(@@rowcount = 0) 
				
New code in the stored procedure:
IF NOT EXISTS (SELECT [RegisteredUserID] FROM 
[LinkValRegisteredUserproduct_interest] WHERE (([RegisteredUserID]=@instID)
AND ([product_interestVID]=@valID)) )
				

Modification Type:MajorLast Reviewed:10/18/2002
Keywords:kbbug kberrmsg KB285051