-1

我是 ATG 的新手。最近我在 ATG 10.2 中启动了产品目录导出/导入项目。我成功导出了产品目录。然后我更改了从导出中获得的 xml 文件并尝试导入它。但是在我的导入过程中失败并出现以下错误。

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>

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

谢谢。

4

1 回答 1

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);
于 2013-06-25T20:05:06.377 回答