2013-06-25 55 views
-1

我是ATG的新手。最近我在ATG 10.2中开始了产品目录导出/导入项目。我成功导出了产品目录。然后我改变了我从导出得到的xml文件,并尝试导入它。但在我的导入过程中失败,出现以下错误。startSQLRepository数据导入错误

info Sun Jun 23 22:11:55 IST 2013 1372005715997 /atg/commerce/pricing/priceLists/PriceLists SQL Repository startup complete 
info Sun Jun 23 22:11:56 IST 2013 1372005716133 /atg/multisite/SiteRepository SQL Repository startup complete 
info Sun Jun 23 22:11:56 IST 2013 1372005716250 /atg/commerce/catalog/ProductCatalog SQL Repository startup complete 


Nucleus running 

-- creating definition of product:childxprod2099 
**** Error Sun Jun 23 22:12:00 IST 2013 1372005720063 /atg/commerce/catalog/ProductCatalog SQL Statement Failed: [++SQLInsert++] 
**** Error Sun Jun 23 22:12:00 IST 2013 1372005720063 /atg/commerce/catalog/ProductCatalog INSERT INTO crs_product(product_id,email_frnd_enabled,preorderable,use_inv_for_preord) 
**** Error Sun Jun 23 22:12:00 IST 2013 1372005720063 /atg/commerce/catalog/ProductCatalog VALUES(?,?,?,?) 
**** Error Sun Jun 23 22:12:00 IST 2013 1372005720063 /atg/commerce/catalog/ProductCatalog -- Parameters -- 
**** Error Sun Jun 23 22:12:00 IST 2013 1372005720063 /atg/commerce/catalog/ProductCatalog p[1] = {pd} childxprod2099 (java.lang.String) 
**** Error Sun Jun 23 22:12:00 IST 2013 1372005720063 /atg/commerce/catalog/ProductCatalog p[2] = {pd: emailAFriendEnabled} true (java.lang.Boolean) 
**** Error Sun Jun 23 22:12:00 IST 2013 1372005720063 /atg/commerce/catalog/ProductCatalog p[3] = {pd: preorderable} false (java.lang.Boolean) 
**** Error Sun Jun 23 22:12:00 IST 2013 1372005720063 /atg/commerce/catalog/ProductCatalog p[4] = {pd: useInventoryForPreorder} false (java.lang.Boolean) 
**** Error Sun Jun 23 22:12:00 IST 2013 1372005720063 /atg/commerce/catalog/ProductCatalog [--SQLInsert--] 
**** Error Sun Jun 23 22:12:00 IST 2013 1372005720063 /atg/commerce/catalog/ProductCatalog java.sql.SQLIntegrityConstraintViolationException: ORA-01400: cannot insert NULL into ("ATGUSER"."CRS_PRODUCT"."ASSET_VERSION") 
**** Error Sun Jun 23 22:12:00 IST 2013 1372005720063 /atg/commerce/catalog/ProductCatalog 
**** Error Sun Jun 23 22:12:00 IST 2013 1372005720063 /atg/commerce/catalog/ProductCatalog at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445) 
**** Error Sun Jun 23 22:12:00 IST 2013 1372005720063 /atg/commerce/catalog/ProductCatalog at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396) 
**** Error Sun Jun 23 22:12:00 IST 2013 1372005720063 /atg/commerce/catalog/ProductCatalog at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879) 
.... 
*** CONTAINER:atg.repository.RepositoryException; SOURCE:java.sql.SQLIntegrityConstraintViolationException: ORA-01400: cannot insert NULL into ("ATGUSER"."CRS_PRODUCT"."ASSET_VERSION") 
CONTAINER:atg.repository.RepositoryException; SOURCE:java.sql.SQLIntegrityConstraintViolationException: ORA-01400: cannot insert NULL into ("ATGUSER"."CRS_PRODUCT"."ASSET_VERSION") 
    at atg.adapter.gsa.GSAItemDescriptor.addItem(GSAItemDescriptor.java:7366) 
    at atg.adapter.gsa.GSARepository.addItem(GSARepository.java:1046) 
    at atg.adapter.gsa.xml.TemplateParser.addItem(TemplateParser.java:1354) 
....... 
    at atg.adapter.gsa.xml.TemplateParser.main(TemplateParser.java:5343) 
Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-01400: cannot insert NULL into ("ATGUSER"."CRS_PRODUCT"."ASSET_VERSION") 
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445) 
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396) 
    ............... 
    at atg.adapter.gsa.Table.insert(Table.java:1410) 
    at atg.adapter.gsa.GSAItemDescriptor.addItem(GSAItemDescriptor.java:7339) 
    ... 10 more 
**** info Sun Jun 23 22:12:00 IST 2013 1372005720124 /atg/dynamo/service/Scheduler Scheduler shutting down. 
**** info Sun Jun 23 22:12:00 IST 2013 1372005720125 /atg/dynamo/service/Scheduler Scheduler stopped. 

以下是我用来导入数据的文件。

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!DOCTYPE gsa-template SYSTEM "dynamosystemresource:/atg/dtds/gsa/gsa_1.0.dtd"> 
<gsa-template> 
    <import-items> 
    <add-item item-descriptor="product" id="childxprod2099"> 
     <set-property name="asset_version"><![CDATA[1]]></set-property> 
     <set-property name="workspace_id"><![CDATA[11200]]></set-property> 
     <set-property name="branch_id"><![CDATA[1100]]></set-property> 
     <set-property name="is_head"><![CDATA[1]]></set-property> 
     <set-property name="version_deleted"><![CDATA[0]]></set-property> 
     <set-property name="version_editable"><![CDATA[0]]></set-property> 
     <set-property name="childSKUs"><![CDATA[xsku2099,sku10001,sku10002]]></set-property> 
     <set-property name="description"><![CDATA[Modern luxurious comfort and style]]></set-property> 
     <set-property name="thumbnailImage"><![CDATA[m2733]]></set-property> 
     <set-property name="brand"><![CDATA[BrophyBuilt]]></set-property> 
     <set-property name="features"><![CDATA[leather,microfiber]]></set-property,> 
     <set-property name="displayName"><![CDATA[Contemporary Sofa Set]]></set-property> 
     <set-property name="fullImage"><![CDATA[m2732]]></set-property> 
     <set-property name="mediumImage"><![CDATA[xmContemporaryItalianSet]]></set-property> 
     <set-property name="longDescription"><![CDATA[Contemporary and ultra-comfortable, this modern Italian sofa and chair bring European style to your space.]]></set-property> 
     <set-property name="smallImage"><![CDATA[m2731]]></set-property> 
     <set-property name="fixedRelatedProducts"><![CDATA[xprod2055,xprod2057]]></set-property> 
     <set-property name="creationDate"><![CDATA[12/4/2007 13:19:43]]></set-property> 
     <set-property name="parentCategoriesForCatalog"><!`enter code here`[CDATA[homeStoreCatalog=homeStoreSeatingSofas]]></set-property> 
     <set-property name="largeImage"><![CDATA[m2734]]></set-property> 
     <set-property name="template"><![CDATA[m430011]]></set-property> 
    </add-item> 
    </import-items> 
</gsa-template> 

我需要紧急解决这个问题。感谢您的意见。

谢谢。

+0

有人有想法吗? – pathum83

回答

2

对于列“ATGUSER”,“CRS_PRODUCT”,“ASSET_VERSION”,您的数据为NULL。

如果您可以修改数据,这样做:

UPDATE ATGUSER.CRS_PRODUCT SET ASSET_VERSION = ' ' WHERE ASSET_VERSION IS NULL; 

和导入后做:

UPDATE ATGUSER.CRS_PRODUCT SET ASSET_VERSION = ' ' WHERE ASSET_VERSION = ' '; 

如果没有,你将需要删除约束和导入后重建:

ALTER TABLE ATGUSER.CRS_PRODUCT MODIFY(ASSET_VERSION NULL); 

而且进口后:

ALTER TABLE ATGUSER.CRS_PRODUCT MODIFY(ASSET_VERSION NOT NULL); 
+0

谢谢。我解决了它。将列更改为默认值。 – pathum83

+0

好!请投票给出一些额外的分数;-)。 –

+0

对不起,里卡多我没有足够的声望投票。 :-( – pathum83