This commit is throwing a lot of exceptions during data loading. See the buildbot report.

-Adrian

On 12/19/2011 6:40 AM, hans...@apache.org wrote:
Author: hansbak
Date: Mon Dec 19 06:40:18 2011
New Revision: 1220622

URL: http://svn.apache.org/viewvc?rev=1220622&view=rev
Log:
new producttype: configurable product service, using inventory

Modified:
     ofbiz/trunk/applications/manufacturing/data/ManufacturingExampleData.xml
     ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
     
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java
     
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
     
ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/Product.groovy
     
ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/productsummary.ftl
     ofbiz/trunk/applications/product/data/ProductTypeData.xml
     
ofbiz/trunk/applications/product/script/org/ofbiz/shipment/issuance/IssuanceServices.xml
     
ofbiz/trunk/applications/product/script/org/ofbiz/shipment/receipt/ShipmentReceiptServices.xml
     
ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java
     
ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java
     ofbiz/trunk/specialpurpose/ecommerce/data/DemoProduct.xml

Modified: 
ofbiz/trunk/applications/manufacturing/data/ManufacturingExampleData.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/manufacturing/data/ManufacturingExampleData.xml?rev=1220622&r1=1220621&r2=1220622&view=diff
==============================================================================
--- ofbiz/trunk/applications/manufacturing/data/ManufacturingExampleData.xml 
(original)
+++ ofbiz/trunk/applications/manufacturing/data/ManufacturingExampleData.xml 
Mon Dec 19 06:40:18 2011
@@ -45,6 +45,11 @@ under the License.
      <FixedAsset fixedAssetId="DEMO_PROD_EQUIPMT_2" fixedAssetName="Demo Production Equipment Two" fixedAssetTypeId="PRODUCTION_EQUIPMENT" 
dateAcquired="2005-01-01 00:01:00.0" expectedEndOfLife="2010-01-01" calendarId="DEMO_CALENDAR" salvageValue="50" 
purchaseCost="1000" purchaseCostUomId="USD"/>
      <FixedAssetGeoPoint fixedAssetId="DEMO_PROD_EQUIPMT_2" geoPointId="9000" 
fromDate="2009-01-09 00:00:00.000"/>

+<FixedAsset fixedAssetId="DEMO_BOOK_GROUP" fixedAssetTypeId="GROUP_EQUIPMENT" 
fixedAssetName="Demo Book Group"/>
+<FixedAssetGeoPoint fixedAssetId="DEMO_BOOK_GROUP" geoPointId="9000" 
fromDate="2011-08-02 00:00:00.000"/>
+<FixedAsset fixedAssetId="DEMO_BOOK" fixedAssetName="Demo Book" fixedAssetTypeId="PRODUCTION_EQUIPMENT" 
parentFixedAssetId="DEMO_BOOK_GROUP" calendarId="DEMO_CALENDAR" purchaseCost="200" purchaseCostUomId="USD"/>
+<FixedAssetGeoPoint fixedAssetId="DEMO_BOOK" geoPointId="9000" fromDate="2011-08-02 
00:00:00.000"/>
+
      <FixedAssetDepMethod depreciationCustomMethodId="STR_LINE_DEP_FORMULA" 
fixedAssetId="DEMO_PROD_EQUIPMT_1"/>
      <FixedAssetDepMethod depreciationCustomMethodId="DBL_DECL_DEP_FORMULA" 
fixedAssetId="DEMO_PROD_EQUIPMT_2"/>
  </entity-engine-xml>

Modified: 
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java?rev=1220622&r1=1220621&r2=1220622&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java 
(original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java 
Mon Dec 19 06:40:18 2011
@@ -1138,7 +1138,7 @@ public class OrderServices {
                      String productId = (String) orderItem.get("productId");
                      GenericValue product = delegator.getRelatedOne("Product", 
orderItem);

-                    if("SERVICE_PRODUCT".equals(product.get("productTypeId"))){
+                    if("SERVICE_PRODUCT".equals(product.get("productTypeId")) || 
"AGGREGATEDSERV_CONF".equals(product.get("productTypeId"))){
                          String inventoryFacilityId = null;
                          if 
("Y".equals(productStore.getString("oneInventoryFacility"))) {
                              inventoryFacilityId = 
productStore.getString("inventoryFacilityId");

Modified: 
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java?rev=1220622&r1=1220621&r2=1220622&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java
 (original)
+++ 
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java
 Mon Dec 19 06:40:18 2011
@@ -644,7 +644,7 @@ public class CheckOutHelper {
                      GenericValue permUserLogin = delegator.findByPrimaryKeyCache("UserLogin", 
UtilMisc.toMap("userLoginId", "system"));
                      GenericValue productStore = 
ProductStoreWorker.getProductStore(productStoreId, delegator);
                      GenericValue product = delegator.findByPrimaryKey("Product", 
UtilMisc.toMap("productId", productId));
-                    if 
("AGGREGATED_CONF".equals(product.getString("productTypeId"))) {
+                    if ("AGGREGATED_CONF".equals(product.getString("productTypeId")) || 
"AGGREGATEDSERV_CONF".equals(product.getString("productTypeId"))) {
                          org.ofbiz.product.config.ProductConfigWrapper config 
= this.cart.findCartItem(counter).getConfigWrapper();
                          Map<String, Object>  inputMap = new HashMap<String, 
Object>();
                          inputMap.put("config", config);

Modified: 
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?rev=1220622&r1=1220621&r2=1220622&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
 (original)
+++ 
ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
 Mon Dec 19 06:40:18 2011
@@ -3430,7 +3430,11 @@ public class ShoppingCart implements Ite
              serviceContext.put("internalName", internalName);
              serviceContext.put("productName", productName);
              serviceContext.put("description", description);
-            serviceContext.put("productTypeId", "AGGREGATED_CONF");
+            if(ProductWorker.isAggregateService(delegator, 
item.getProductId()))
+                serviceContext.put("productTypeId", "AGGREGATEDSERV_CONF");
+            else
+                serviceContext.put("productTypeId", "AGGREGATED_CONF");
+
              serviceContext.put("configId", configId);
              if 
(UtilValidate.isNotEmpty(product.getString("requirementMethodEnumId"))) {
                  serviceContext.put("requirementMethodEnumId", 
product.getString("requirementMethodEnumId"));

Modified: 
ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/Product.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/Product.groovy?rev=1220622&r1=1220621&r2=1220622&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/Product.groovy
 (original)
+++ 
ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/Product.groovy
 Mon Dec 19 06:40:18 2011
@@ -124,7 +124,7 @@ if (productId) {
          }

          // Set the default template for aggregated product (product component 
configurator ui)
-        if (product.productTypeId&&  
"AGGREGATED".equals(product.productTypeId)&&  context.configproductdetailScreen) {
+        if (product.productTypeId&&  ("AGGREGATED".equals(product.productTypeId) || 
"AGGREGATED_SERVICE".equals(product.productTypeId))&&  context.configproductdetailScreen) {
              detailScreen = context.configproductdetailScreen;
          }


Modified: 
ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/productsummary.ftl
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/productsummary.ftl?rev=1220622&r1=1220621&r2=1220622&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/productsummary.ftl 
(original)
+++ 
ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/productsummary.ftl 
Mon Dec 19 06:40:18 2011
@@ -101,7 +101,7 @@ ${virtualJavaScript?if_exists}
            <#elseif product.productTypeId?if_exists == "ASSET_USAGE">
              <a href="${productUrl}" 
class="buttontext">${uiLabelMap.OrderMakeBooking}...</a>
            <#-- check to see if it is an aggregated or configurable product; will 
enter parameters on the detail screen-->
-<#elseif product.productTypeId?if_exists == "AGGREGATED">
+<#elseif product.productTypeId?if_exists == "AGGREGATED" || product.productTypeId?if_exists 
== "AGGREGATED_SERVICE">
              <a href="${productUrl}" 
class="buttontext">${uiLabelMap.OrderConfigure}...</a>
            <#-- check to see if the product is a virtual product -->
            <#elseif product.isVirtual?exists&&  product.isVirtual == "Y">

Modified: ofbiz/trunk/applications/product/data/ProductTypeData.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/data/ProductTypeData.xml?rev=1220622&r1=1220621&r2=1220622&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/data/ProductTypeData.xml (original)
+++ ofbiz/trunk/applications/product/data/ProductTypeData.xml Mon Dec 19 
06:40:18 2011
@@ -500,7 +500,9 @@ under the License.
      <ProductType description="Work In Process" isPhysical="Y" isDigital="N" hasTable="N" 
parentTypeId="GOOD" productTypeId="WIP"/>
      <ProductType description="Configurable Good Configuration" isPhysical="Y" isDigital="N" 
hasTable="N" parentTypeId="AGGREGATED" productTypeId="AGGREGATED_CONF"/>
      <ProductType description="Fixed Asset Usage For Rental of an asset which is shipped from and returned to inventory" 
isPhysical="Y" isDigital="N" hasTable="N" parentTypeId="" 
productTypeId="ASSET_USAGE_OUT_IN"/>
-<ProductType description="Service a product which is received to- and shipped from inventory" isPhysical="Y" 
isDigital="N" hasTable="N" parentTypeId="" productTypeId="SERVICE_PRODUCT"/>
+<ProductType description="Service a product using inventory" isPhysical="Y" isDigital="N" 
hasTable="N" parentTypeId="" productTypeId="SERVICE_PRODUCT"/>
+<ProductType description="Configurable Service using inventory" isPhysical="Y" isDigital="N" 
hasTable="N" parentTypeId="SERVICE_PRODUCT" productTypeId="AGGREGATED_SERVICE"/>
+<ProductType description="Configurable Service Configuration" isPhysical="Y" isDigital="N" 
hasTable="N" parentTypeId="AGGREGATED_SERVICE" productTypeId="AGGREGATEDSERV_CONF"/>

      <EnumerationType description="Product Requirement Method" enumTypeId="PROD_REQ_METHOD" 
hasTable="N" parentTypeId=""/>
      <!-- NONE: no requirement is created (default) -->
@@ -618,7 +620,7 @@ under the License.
      <StatusItem description="Approved" sequenceId="02" statusCode="APPROVED" 
statusId="IM_APPROVED" statusTypeId="IMAGE_MANAGEMENT_ST"/>
      <StatusItem description="Rejected" sequenceId="03" statusCode="REJECTED" 
statusId="IM_REJECTED" statusTypeId="IMAGE_MANAGEMENT_ST"/>

-<ProductFeatureCategory productFeatureCategoryId="IMAGE" description="Image"/>
+<ProductFeatureCategory productFeatureCategoryI="IMAGE" description="Image"/>
      <ProductFeatureCategory productFeatureCategoryId="TEXT" 
description="Text"/>

      <ProductFeature productFeatureId="IMAGE_AVATAR" productFeatureTypeId="SIZE" 
productFeatureCategoryId="IMAGE" description="100 X 75 (avatar)" defaultSequenceNum="1"/>

Modified: 
ofbiz/trunk/applications/product/script/org/ofbiz/shipment/issuance/IssuanceServices.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/shipment/issuance/IssuanceServices.xml?rev=1220622&r1=1220621&r2=1220622&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/product/script/org/ofbiz/shipment/issuance/IssuanceServices.xml
 (original)
+++ 
ofbiz/trunk/applications/product/script/org/ofbiz/shipment/issuance/IssuanceServices.xml
 Mon Dec 19 06:40:18 2011
@@ -53,6 +53,7 @@ under the License.
                          <or>
                              <if-compare field="product.productTypeId" operator="equals" 
value="SERVICE_PRODUCT"/>
                              <if-compare field="product.productTypeId" operator="equals" 
value="ASSET_USAGE_OUT_IN"/>
+<if-compare field="product.productTypeId" operator="equals" 
value="AGGREGATEDSERV_CONF"/>
                          </or>
                      </condition>
                      <then>

Modified: 
ofbiz/trunk/applications/product/script/org/ofbiz/shipment/receipt/ShipmentReceiptServices.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/shipment/receipt/ShipmentReceiptServices.xml?rev=1220622&r1=1220621&r2=1220622&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/product/script/org/ofbiz/shipment/receipt/ShipmentReceiptServices.xml
 (original)
+++ 
ofbiz/trunk/applications/product/script/org/ofbiz/shipment/receipt/ShipmentReceiptServices.xml
 Mon Dec 19 06:40:18 2011
@@ -53,6 +53,7 @@ under the License.
                  <or>
                      <if-compare field="product.productTypeId" operator="equals" 
value="SERVICE_PRODUCT"/>
                      <if-compare field="product.productTypeId" operator="equals" 
value="ASSET_USAGE_OUT_IN"/>
+<if-compare field="product.productTypeId" operator="equals" 
value="AGGREGATEDSERV_CONF"/>
                  </or>
              </condition>
              <then>

Modified: 
ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java?rev=1220622&r1=1220621&r2=1220622&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java
 (original)
+++ 
ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java
 Mon Dec 19 06:40:18 2011
@@ -97,7 +97,7 @@ public class ProductConfigWrapper implem

      private void init(Delegator delegator, LocalDispatcher dispatcher, String 
productId, String productStoreId, String catalogId, String webSiteId, String 
currencyUomId, Locale locale, GenericValue autoUserLogin) throws Exception {
          product = delegator.findByPrimaryKey("Product", 
UtilMisc.toMap("productId", productId));
-        if (product == null || 
!product.getString("productTypeId").equals("AGGREGATED")) {
+        if (product == null || !product.getString("productTypeId").equals("AGGREGATED")&&  
!product.getString("productTypeId").equals("AGGREGATED_SERVICE")) {
              throw new ProductConfigWrapperException("Product " + productId + " is 
not an AGGREGATED product.");
          }
          this.dispatcher = dispatcher;
@@ -123,7 +123,7 @@ public class ProductConfigWrapper implem
              basePrice = price;
          }
          questions = FastList.newInstance();
-        if ("AGGREGATED".equals(product.getString("productTypeId"))) {
+        if ("AGGREGATED".equals(product.getString("productTypeId")) || 
"AGGREGATED_SERVICE".equals(product.getString("productTypeId"))) {
              List<GenericValue>  questionsValues = delegator.findByAnd("ProductConfig", 
UtilMisc.toMap("productId", productId), UtilMisc.toList("sequenceNum"));
              questionsValues = EntityUtil.filterByDate(questionsValues);
              Set<String>  itemIds = FastSet.newInstance();

Modified: 
ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java?rev=1220622&r1=1220621&r2=1220622&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java
 (original)
+++ 
ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java
 Mon Dec 19 06:40:18 2011
@@ -146,7 +146,7 @@ public class ProductWorker {
      public static String getInstanceAggregatedId(Delegator delegator, String 
instanceProductId) throws GenericEntityException {
          GenericValue instanceProduct = delegator.findByPrimaryKey("Product", 
UtilMisc.toMap("productId", instanceProductId));

-        if (UtilValidate.isNotEmpty(instanceProduct)&&  
"AGGREGATED_CONF".equals(instanceProduct.getString("productTypeId"))) {
+        if (UtilValidate.isNotEmpty(instanceProduct)&&  
("AGGREGATED_CONF".equals(instanceProduct.getString("productTypeId")) || 
"AGGREGATEDSERV_CONF".equals(instanceProduct.getString("productTypeId")))) {
              GenericValue productAssoc = 
EntityUtil.getFirst(EntityUtil.filterByDate(instanceProduct.getRelatedByAnd("AssocProductAssoc",
                      UtilMisc.toMap("productAssocTypeId", "PRODUCT_CONF"))));
              if (UtilValidate.isNotEmpty(productAssoc)) {
@@ -172,7 +172,7 @@ public class ProductWorker {
      public static List<GenericValue>  getAggregatedAssocs(Delegator 
delegator, String  aggregatedProductId) throws GenericEntityException {
          GenericValue aggregatedProduct = delegator.findByPrimaryKey("Product", 
UtilMisc.toMap("productId", aggregatedProductId));

-        if (UtilValidate.isNotEmpty(aggregatedProduct)&&  
"AGGREGATED".equals(aggregatedProduct.getString("productTypeId"))) {
+        if (UtilValidate.isNotEmpty(aggregatedProduct)&&  
("AGGREGATED".equals(aggregatedProduct.getString("productTypeId")) || 
"AGGREGATED_SERVICE".equals(aggregatedProduct.getString("productTypeId")))) {
              List<GenericValue>  productAssocs = 
EntityUtil.filterByDate(aggregatedProduct.getRelatedByAnd("MainProductAssoc",
                      UtilMisc.toMap("productAssocTypeId", "PRODUCT_CONF")));
              return productAssocs;
@@ -1193,4 +1193,16 @@ nextProd:
          return Boolean.TRUE;
      }

+    public static boolean isAggregateService(Delegator delegator, String 
aggregatedProductId) {
+        try {
+            GenericValue aggregatedProduct = delegator.findByPrimaryKeyCache("Product", 
UtilMisc.toMap("productId", aggregatedProductId));
+            if (UtilValidate.isNotEmpty(aggregatedProduct)&&  
"AGGREGATED_SERVICE".equals(aggregatedProduct.getString("productTypeId"))) {
+                return true;
+            }
+        } catch (GenericEntityException e) {
+            Debug.logWarning(e.getMessage(), module);
+        }
+
+        return false;
+    }
  }

Modified: ofbiz/trunk/specialpurpose/ecommerce/data/DemoProduct.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/data/DemoProduct.xml?rev=1220622&r1=1220621&r2=1220622&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/data/DemoProduct.xml (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/data/DemoProduct.xml Mon Dec 19 
06:40:18 2011
@@ -737,6 +737,93 @@ under the License.
      <ContentAssoc contentId="SV-1001-ALT" contentIdTo="CSV-1001-ALTEN" 
contentAssocTypeId="ALTERNATE_LOCALE" fromDate="2011-08-02 12:00:00.0"/>
      <ProductContent productId="SV-1001" contentId="SV-1001-ALT" 
productContentTypeId="ALTERNATIVE_URL" fromDate="2011-08-02 12:00:00.0"/>

+<!-- test for the configurable product type which is received to- and shipped 
from inventory-->
+<Product productId="CFSV1001" productTypeId="AGGREGATED_SERVICE" primaryProductCategoryId="SERV-001" productName="Scanning book service" internalName="The configurable product type which 
is received to- and shipped from inventory" description="The configurable product type which is received to- and shipped from inventory for demonstration use" taxable="Y" chargeShipping="N" 
autoCreateKeywords="Y" isVirtual="N" isVariant="N" createdDate="2008-12-02 12:00:00.0" createdByUserLogin="admin" lastModifiedDate="2008-12-02 12:00:00.0" 
lastModifiedByUserLogin="admin"/>
+<Product productId="SCAN_TYPE" productTypeId="SERVICE_PRODUCT" productName="Scanning Type" internalName="Scanning Type" 
description="Scanning Type" isVirtual="Y" isVariant="N" billOfMaterialLevel="0" createdDate="2004-08-20 12:50:54.794" 
createdByUserLogin="admin"/>
+<Product productId="SCAN-EC" productTypeId="SERVICE_PRODUCT" internalName="Economy Scanning type" productName="Economy Scanning type" description="Economy Scanning type" 
returnable="N" includeInPromotions="N" taxable="N" chargeShipping="N" isVirtual="N" isVariant="Y" createdDate="2003-11-20 13:48:19.105" 
createdByUserLogin="admin" lastModifiedDate="2003-11-20 13:48:19.105" lastModifiedByUserLogin="admin"/>
+<Product productId="SCAN-ST" productTypeId="SERVICE_PRODUCT" internalName="Standard Scanning type" productName="Standard Scanning type" description="Standard Scanning type" 
returnable="N" includeInPromotions="N" taxable="N" chargeShipping="N" isVirtual="N" isVariant="Y" createdDate="2003-11-20 13:48:19.105" 
createdByUserLogin="admin" lastModifiedDate="2003-11-20 13:48:19.105" lastModifiedByUserLogin="admin"/>
+<Product productId="SCAN-SU" productTypeId="SERVICE_PRODUCT" internalName="Superfine Scanning type" productName="Superfine Scanning type" description="Superfine Scanning type" 
returnable="N" includeInPromotions="N" taxable="N" chargeShipping="N" isVirtual="N" isVariant="Y" createdDate="2003-11-20 13:48:19.105" 
createdByUserLogin="admin" lastModifiedDate="2003-11-20 13:48:19.105" lastModifiedByUserLogin="admin"/>
+
+<ProductFeatureCategory productFeatureCategoryId="SCAN_TYPE" description="Scanning 
Type"/>
+<ProductFeature productFeatureId="ECONOMY" productFeatureTypeId="TYPE" 
productFeatureCategoryId="SCAN_TYPE" description="Economy Scan" defaultSequenceNum="1"/>
+<ProductFeature productFeatureId="STANDARD" productFeatureTypeId="TYPE" 
productFeatureCategoryId="SCAN_TYPE" description="Standard Scan" defaultSequenceNum="2"/>
+<ProductFeature productFeatureId="SUPERFINE" productFeatureTypeId="TYPE" 
productFeatureCategoryId="SCAN_TYPE" description="Superfine Scan" defaultSequenceNum="3"/>
+
+<Product productId="EXPRESS" productTypeId="SERVICE_PRODUCT" productName="Express" internalName="Express" description="Express" 
isVirtual="N" isVariant="N" billOfMaterialLevel="0" createdDate="2007-12-27 12:00:00.0" createdByUserLogin="admin"/>
+<Product productId="SUPER_EXPRESS" productTypeId="SERVICE_PRODUCT" productName="Super Express" internalName="Super Express" 
description="Super Express" isVirtual="N" isVariant="N" billOfMaterialLevel="0" createdDate="2007-12-27 12:00:00.0" 
createdByUserLogin="admin"/>
+<Product productId="SCAN_COVER" productTypeId="SERVICE_PRODUCT" productName="Scan Cover" internalName="Scan Cover" description="Scan 
Cover" isVirtual="N" isVariant="N" billOfMaterialLevel="0" createdDate="2007-12-27 12:00:00.0" createdByUserLogin="admin"/>
+<Product productId="OCR" productTypeId="SERVICE_PRODUCT" productName="OCR" internalName="OCR" description="OCR" 
isVirtual="N" isVariant="N" billOfMaterialLevel="0" createdDate="2007-12-27 12:00:00.0" createdByUserLogin="admin"/>
+<Product productId="METADATA" productTypeId="SERVICE_PRODUCT" productName="Metadata" internalName="Metadata" description="Metadata" 
isVirtual="N" isVariant="N" billOfMaterialLevel="0" createdDate="2007-12-27 12:00:00.0" createdByUserLogin="admin"/>
+<Product productId="DVD" productTypeId="SERVICE_PRODUCT" productName="DVD" internalName="DVD" description="DVD" 
isVirtual="N" isVariant="N" billOfMaterialLevel="0" createdDate="2007-12-27 12:00:00.0" createdByUserLogin="admin"/>
+
+<ProductAssoc productId="SCAN_TYPE" productIdTo="SCAN-EC" 
productAssocTypeId="PRODUCT_VARIANT" fromDate="2011-08-02 12:00:00.0"/>
+<ProductAssoc productId="SCAN_TYPE" productIdTo="SCAN-ST" 
productAssocTypeId="PRODUCT_VARIANT" fromDate="2011-08-02 12:00:00.0"/>
+<ProductAssoc productId="SCAN_TYPE" productIdTo="SCAN-SU" 
productAssocTypeId="PRODUCT_VARIANT" fromDate="2011-08-02 12:00:00.0"/>
+
+<ProductFeatureAppl productId="SCAN_TYPE" productFeatureId="ECONOMY" 
productFeatureApplTypeId="SELECTABLE_FEATURE" fromDate="2011-08-02 12:00:00.0" sequenceNum="1"/>
+<ProductFeatureAppl productId="SCAN_TYPE" productFeatureId="STANDARD" 
productFeatureApplTypeId="SELECTABLE_FEATURE" fromDate="2011-08-02 12:00:00.0" sequenceNum="2"/>
+<ProductFeatureAppl productId="SCAN_TYPE" productFeatureId="SUPERFINE" 
productFeatureApplTypeId="SELECTABLE_FEATURE" fromDate="2011-08-02 12:00:00.0" sequenceNum="3"/>
+
+<ProductFeatureAppl productId="SCAN-EC" productFeatureId="ECONOMY" 
productFeatureApplTypeId="STANDARD_FEATURE" fromDate="2011-08-02 12:00:00.0" sequenceNum="1"/>
+<ProductFeatureAppl productId="SCAN-ST" productFeatureId="STANDARD" 
productFeatureApplTypeId="STANDARD_FEATURE" fromDate="2011-08-02 12:00:00.0" sequenceNum="1"/>
+<ProductFeatureAppl productId="SCAN-SU" productFeatureId="SUPERFINE" 
productFeatureApplTypeId="STANDARD_FEATURE" fromDate="2011-08-02 12:00:00.0" sequenceNum="1"/>
+
+<ProductPrice productId="CFSV1001" productPricePurposeId="PURCHASE" productPriceTypeId="DEFAULT_PRICE" currencyUomId="USD" 
productStoreGroupId="_NA_" fromDate="2011-08-02 12:00:00.0" price="9.99" createdDate="2011-08-02 12:00:00.0" 
createdByUserLogin="admin"/>
+<ProductPrice productId="SCAN-EC" productPricePurposeId="PURCHASE" productPriceTypeId="DEFAULT_PRICE" currencyUomId="USD" 
productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="1.00" createdDate="2011-01-01 00:00:00.0"/>
+<ProductPrice productId="SCAN-EC" productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="1.00" createdDate="2011-01-01 
00:00:00.0"/>
+<ProductPrice productId="SCAN-ST" productPricePurposeId="PURCHASE" productPriceTypeId="DEFAULT_PRICE" currencyUomId="USD" 
productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="2.00" createdDate="2011-01-01 00:00:00.0"/>
+<ProductPrice productId="SCAN-ST" productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="2.00" createdDate="2011-01-01 
00:00:00.0"/>
+<ProductPrice productId="SCAN-SU" productPricePurposeId="PURCHASE" productPriceTypeId="DEFAULT_PRICE" currencyUomId="USD" 
productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="3.00" createdDate="2011-01-01 00:00:00.0"/>
+<ProductPrice productId="SCAN-SU" productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="3.00" createdDate="2011-01-01 
00:00:00.0"/>
+<ProductPrice productId="EXPRESS" productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="1.50" createdDate="2011-01-01 
00:00:00.0"/>
+<ProductPrice productId="SUPER_EXPRESS" productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="3.00" createdDate="2011-01-01 
00:00:00.0"/>
+<ProductPrice productId="SCAN_COVER" productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="1.00" createdDate="2011-01-01 
00:00:00.0"/>
+<ProductPrice productId="OCR" productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="2.00" createdDate="2011-01-01 
00:00:00.0"/>
+<ProductPrice productId="METADATA" productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="1.00" createdDate="2011-01-01 
00:00:00.0"/>
+<ProductPrice productId="DVD" productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="0.25" createdDate="2011-01-01 
00:00:00.0"/>
+
+<ProductConfigItem configItemId="SC00000" configItemTypeId="MULTIPLE" configItemName="Scanning 
Type" description="Select the scanning type :"/>
+<ProductConfigItem configItemId="SCF0001" configItemTypeId="MULTIPLE" configItemName="Scanning 
Options" description="Scanning options :"/>
+
+<ProductConfigOption configItemId="SC00000" configOptionId="SCOP001" configOptionName="OPT0001" 
description="Scanning Type" sequenceNum="10"/>
+<ProductConfigOption configItemId="SCF0001" configOptionId="SCOP006" configOptionName="OPT0006" 
description="Express" sequenceNum="10"/>
+<ProductConfigOption configItemId="SCF0001" configOptionId="SCOP007" configOptionName="OPT0007" 
description="Super Express" sequenceNum="20"/>
+<ProductConfigOption configItemId="SCF0001" configOptionId="SCOP008" configOptionName="OPT0008" 
description="Scan Cover" sequenceNum="30"/>
+<ProductConfigOption configItemId="SCF0001" configOptionId="SCOP009" configOptionName="OPT0009" 
description="OCR" sequenceNum="40"/>
+<ProductConfigOption configItemId="SCF0001" configOptionId="SCOP010" configOptionName="OPT0010" 
description="Metadata" sequenceNum="60"/>
+<ProductConfigOption configItemId="SCF0001" configOptionId="SCOP011" configOptionName="OPT0011" 
description="DVD" sequenceNum="50"/>
+
+<ProductConfigProduct configItemId="SC00000" configOptionId="SCOP001" productId="SCAN_TYPE" 
quantity="1"/>
+<ProductConfigProduct configItemId="SCF0001" configOptionId="SCOP006" productId="EXPRESS" 
quantity="1"/>
+<ProductConfigProduct configItemId="SCF0001" configOptionId="SCOP007" 
productId="SUPER_EXPRESS" quantity="1"/>
+<ProductConfigProduct configItemId="SCF0001" configOptionId="SCOP008" 
productId="SCAN_COVER" quantity="1"/>
+<ProductConfigProduct configItemId="SCF0001" configOptionId="SCOP009" productId="OCR" 
quantity="1"/>
+<ProductConfigProduct configItemId="SCF0001" configOptionId="SCOP010" productId="METADATA" 
quantity="1"/>
+<ProductConfigProduct configItemId="SCF0001" configOptionId="SCOP011" productId="DVD" 
quantity="1"/>
+
+<ProductCategoryMember productCategoryId="SERV-001" productId="CFSV1001" 
fromDate="2011-08-02 12:00:00.0"/>
+<ProductCategoryMember productCategoryId="CATALOG1_SEARCH" productId="CFSV1001" 
fromDate="2011-08-02 12:00:00.0"/>
+<DataResource dataResourceId="CFSV1001-ALT" dataResourceTypeId="LINK" 
objectInfo="scanning-book-service-CFSV1001-p"/>
+<DataResource dataResourceTypeId="ELECTRONIC_TEXT" dataResourceId="CFSV1001-ALT" 
localeString="en"/>
+<DataResource dataResourceTypeId="ELECTRONIC_TEXT" dataResourceId="DRCFSV1001-ALTEN" 
localeString="en_US"/>
+<ElectronicText dataResourceId="CFSV1001-ALT" 
textData="scanning-book-product"/>
+<ElectronicText dataResourceId="DRCFSV1001-ALTEN" 
textData="scanning-book-product"/>
+
+<ProductConfig productId="CFSV1001" configItemId="SC00000" sequenceNum="10" fromDate="2011-01-01 00:00:00.0" 
description="Select the scanning type :" configTypeId="QUESTION" isMandatory="N"/>
+<ProductConfig productId="CFSV1001" configItemId="SCF0001" sequenceNum="20" fromDate="2011-01-01 00:00:00.0" 
description="Scanning options :" configTypeId="QUESTION" isMandatory="N"/>
+
+<WorkEffort workEffortId="SCTASK01" workEffortTypeId="ROU_TASK" workEffortPurposeTypeId="ROU_ASSEMBLING" currentStatusId="ROU_ACTIVE" 
workEffortName="Stock out" description="Components" revisionNumber="1" fixedAssetId="DEMO_BOOK_GROUP" estimatedMilliSeconds="600000" 
estimatedSetupMillis="0"/>
+<WorkEffort workEffortId="SCTASK02" workEffortTypeId="ROU_TASK" workEffortPurposeTypeId="ROU_ASSEMBLING" currentStatusId="ROU_ACTIVE" 
workEffortName="Preparation" description="Preparation" revisionNumber="1" fixedAssetId="DEMO_BOOK_GROUP" estimatedMilliSeconds="900000" 
estimatedSetupMillis="0"/>
+<WorkEffort workEffortId="SCROUT01" workEffortTypeId="ROUTING" currentStatusId="ROU_ACTIVE" workEffortName="Pizza 
preparation" description="Scanning preparation" revisionNumber="1" quantityToProduce="0"/>
+<WorkEffortGoodStandard workEffortId="SCROUT01" productId="CFSV1001" 
workEffortGoodStdTypeId="ROU_PROD_TEMPLATE" statusId="WEGS_CREATED" fromDate="2011-01-01 00:00:00.0"/>
+<WorkEffortAssoc workEffortIdFrom="SCROUT01" workEffortIdTo="SCTASK01" 
workEffortAssocTypeId="ROUTING_COMPONENT" sequenceNum="10" fromDate="2011-01-01 00:00:00.0"/>
+<WorkEffortAssoc workEffortIdFrom="SCROUT01" workEffortIdTo="SCTASK02" 
workEffortAssocTypeId="ROUTING_COMPONENT" sequenceNum="20" fromDate="2011-01-01 00:00:00.0"/>
+
+<Content contentId="CFSV1001-ALT" contentTypeId="DOCUMENT" dataResourceId="CFSV1001-ALT" 
localeString="en"/>
+<Content contentId="CCFSV1001-ALTEN" contentTypeId="DOCUMENT" 
dataResourceId="DRCFSV1001-ALTEN" localeString="en_US"/>
+<ContentAssoc contentId="CFSV1001-ALT" contentIdTo="CCFSV1001-ALTEN" 
contentAssocTypeId="ALTERNATE_LOCALE" fromDate="2011-08-02 12:00:00.0"/>
+<ProductContent productId="CFSV1001" contentId="CFSV1001-ALT" 
productContentTypeId="ALTERNATIVE_URL" fromDate="2011-08-02 12:00:00.0"/>
+
      <ProductFeatureCategory productFeatureCategoryId="8000" description="License 
Features"/>
      <ProductFeatureCategoryAppl productFeatureCategoryId="8000" 
productCategoryId="CATALOG1_SEARCH" fromDate="2001-05-13 12:00:00.0"/>



Reply via email to