This is problem in your code that is custom if I understand the email.

I suggest you follow the code that does use it, in ofbiz, to compare
what you are doing to what ofbiz does. and after that why not use the
ofbiz code?
you can start from the page that displays it and work backwards.


madppiper sent the following on 5/19/2009 10:28 AM:
> Hey everybody,
> 
> I created a new product with locales and attributes just fine and wanted to
> add two new features/attributes to it: size & color. Just like in WG-9943. I
> am doing the following steps, but neither color nor size show up:
> 
> 1) check if product with detailed information exists, if not create
> 2) check if product is set to Virtual = Y, if not, edit and add Virtual
> Variant Method = varianttree
> 3) create a new product with id similar to originalproduct (eg:
> productIdcolor) with Virtual = No, Variant = Y
> 4) create ProductAssoc with createProductI18nRollup.productIdTo =
> productIdColor, productId = productId, productAssocTypeId= PRODUCT_VARIANT
> 5) create ProductFeatureCategory if needed
> 6) create ProductFeature with productFeatureTypeId = COLOR,
> productFeatureId= FproductIdcolor
> 7) create ProductFeatureAppl with productFeatureApplTypeId = 
> SELECTABLE_FEATURE & productId = productIdColor
> 8) iterate through available sizes do
> 8a) create ProductFeature with productFeatureTypeId=SIZE, productId=
> productIdColor, productFeatureId=FproductIdColorSize
> 8b) create ProductFeatureIactn with productFeatureIactnTypeId =
> FEATURE_IACTN_INCOMP, productFeatureIdTo = FproductIdColor,
> productFeatureId=FproductIdColorSize
> 8c) create ProductFeatureAppl with productFeatureId= FproductIdColorSize,
> productFeatureApplTypeId=STANDARD_FEATURE, productId= productIdColor
> 8d) create ProductAssoc with productAssocTypeId= PRODUCT_VARIANT,
> productIdTo= productIdColor, productId = product
> 
> 
> As I do here: 
> 
> 
>                                                            
>                               
>                                                   <entity-and 
> entity-name="Product" list="resourceList">
>                                               <field-map 
> field-name="productId"
> from-field="parameters.productId"/>
>                                       </entity-and>
>                                       
>                                       <first-from-list entry="resource" 
> list="resourceList"/>                                         
>                                       <if-not-empty field="resource">
>                                                                       
>                                                                       <log 
> level="warning" message="Updating
> ${parameters.productId}"></log>
>                                                                       <set 
> field="createProductI18nRollup.productId"
> value="${parameters.productId}"/>                                     
>                                                                       <set 
> field="createProductI18nRollup.isVirtual" value="Y"/>
>                                                                       <set 
> field="createProductI18nRollup.isVariant" value="N"/>
>                                                                       <set 
> field="createProductI18nRollup.virtualVariantMethodEnum"
> value="VV_VARIANTTREE"/>                                                      
>                                                                               
>   
>                                                                       
> <set-service-fields map="createProductI18nRollup"
> service-name="editProductI18n" to-map="createProductI18nMap"/>
>                                                                       
>                                                               <call-service 
> service-name="editProductI18n"
> in-map-name="createProductI18nMap" break-on-error="true" /> 
>                                                       </if-not-empty>
>                               
>                                                            
>         <call-bsh><![CDATA[
>             color = parameters.get("color");
>             if(color != null && color !=""){
>             
>                parameters.put("colorId", color.substring(0, 3).replace("
> ","_"));
>             }
>         ]]></call-bsh>
>                                                               
>                                                               
>                                                               
>                                                            <!-- Create the 
> basic item -->
>                               
>                                                                       
> <map-to-map map="parameters" to-map="createProductI18nRollup"/>
>                               
>                                                               <set 
> field="createProductI18nRollup.taxable" value="Y"/>
>                                                       <set 
> field="createProductI18nRollup.chargeShipping"
> value="Y"/>
>                                                                       <set 
> field="createProductI18nRollup.isVirtual" value="N"/>
>                                                                       <set 
> field="createProductI18nRollup.isVariant" value="Y"/>
>                                                                       
>                                                                       <log 
> level="warning" message="COLORID : ${parameters.colorId}"/>
>                                                                       <set 
> field="createProductI18nRollup.productId"
> value="${parameters.productId}${parameters.colorId}"/>
>                                                                       <set 
> field="createProductI18nRollup.productTypeId"
> value="FINISHED_GOOD"/>               
>                                                               
>                                                                               
>                                                 
>                                                               
> <set-service-fields map="createProductI18nRollup"
> service-name="createProductI18n" to-map="createProductI18nMap"/>
>                                           
>                                           
>                                                       <entity-and 
> entity-name="Product" list="resourceList">
>                                                               <field-map 
> field-name="productId"
> from-field="createProductI18nRollup.productId"/>
>                                                       </entity-and>
>                                                       
>                                                       <first-from-list 
> entry="resource" list="resourceList"/> 
>                                                       <if-empty 
> field="resource">
>                                                                             
>                                                                              
> <call-service service-name="createProductI18n"
> in-map-name="createProductI18nMap"/> 
>                                                                       <else>
>                                                                               
> <call-service service-name="editProductI18n"
> in-map-name="createProductI18nMap"/> 
>                                                                       </else>
>                                                                       
> </if-empty>
> 
>                                                       
>                                                       <!-- Create Assoc -->
>                                                       
>                                                       
>                                                               <now-timestamp 
> field="createProductI18nRollup.fromDate"/>
>                                                               <set 
> field="createProductI18nRollup.productIdTo"
> value="${createProductI18nRollup.productId}"/>
>                                                               <set 
> field="createProductI18nRollup.productId"
> value="${parameters.productId}"/>
>                                                               <set 
> field="createProductI18nRollup.productAssocTypeId"
> value="PRODUCT_VARIANT"/>
>                                                               
>                                                                       
> <entity-and entity-name="ProductAssoc" list="resourceList">
>                                                               <field-map 
> field-name="productId"
> from-field="createProductI18nRollup.productId"/>
>                                                               <field-map 
> field-name="productIdTo"
> from-field="createProductI18nRollup.productIdTo"/>
>                                                            <field-map 
> field-name="productAssocTypeId"
> from-field="createProductI18nRollup.productAssocTypeId"/>
>                                                       </entity-and>
>                                                       
>                                                       <first-from-list 
> entry="resource" list="resourceList"/> 
>                                                       <if-empty 
> field="resource">
>                                                                              
> <set-service-fields map="createProductI18nRollup"
> service-name="createProductAssocI18n"
> to-map="createProductFeatureCategoryI18nMap"/>
>                                                                              
> <call-service service-name="createProductAssocI18n"
> in-map-name="createProductFeatureCategoryI18nMap"/> 
>                                                                       <else>
>                                                                               
> <set field="createProductI18nRollup.fromDate"
> value="${resource.fromDate}"/>
>                                                                       
> <set-service-fields map="createProductI18nRollup"
> service-name="editProductAssocI18n"
> to-map="createProductFeatureCategoryI18nMap"/>
>                                                                               
> <call-service service-name="editProductAssocI18n"
> in-map-name="createProductFeatureCategoryI18nMap"/> 
>                                                                       </else>
>                                                                       
> </if-empty>
>                                                       
>                                                       <set 
> field="createProductI18nRollup.productId"
> value="${createProductI18nRollup.productIdTo}"/>
>                                                       
>                                                       
>                                                               <!-- Create the 
> ProductFeatureCategory if needed -->
>                                                               
>                                                               <set 
> field="createProductI18nRollup.productFeatureCategoryId"
> value="BPfeatcat"/>
>                                                               <set 
> field="createProductI18nRollup.description"
> value="Brandsparadise Features"/>
>                                                               
>                                                               <entity-and 
> entity-name="ProductFeatureCategory"
> list="resourceList">
>                                                               <field-map 
> field-name="productFeatureCategoryId"
> from-field="createProductI18nRollup.productFeatureCategoryId"/>
>                                                       </entity-and>
>                                                       
>                                                       <first-from-list 
> entry="resource" list="resourceList"/> 
>                                                       <if-empty 
> field="resource">
>                                                                              
> <set-service-fields map="createProductI18nRollup"
> service-name="createProductFeatureCategoryI18n"
> to-map="createProductFeatureCategoryI18nMap"/>
>                                                                              
> <call-service
> service-name="createProductFeatureCategoryI18n"
> in-map-name="createProductFeatureCategoryI18nMap"/> 
>                                                                       <else>
>                                                                       
> <set-service-fields map="createProductI18nRollup"
> service-name="editProductFeatureCategoryI18n"
> to-map="createProductFeatureCategoryI18nMap"/>
>                                                                               
> <call-service service-name="editProductFeatureCategoryI18n"
> in-map-name="createProductFeatureCategoryI18nMap"/> 
>                                                                       </else>
>                                                                       
> </if-empty>
> 
> 
> 
>                                                               <!-- Create 
> Product Feature Color -->
>                                                                       <set 
> field="createProductI18nRollup.productFeatureTypeId"
> value="COLOR"/>               
>                                                                       <set 
> field="createProductI18nRollup.description"
> value="${parameters.color}"/>         
>                                                                       <set 
> field="createProductI18nRollup.productFeatureId"
> value="F${parameters.productId}${parameters.colorId}"/>
>                                                                               
>                                 
>                                                               <entity-and 
> entity-name="ProductFeature"
> list="resourceList">
>                                                               <field-map 
> field-name="productFeatureId"
> from-field="createProductI18nRollup.productFeatureId"/>
>                                                       </entity-and>
>                                                       
>                                                       <first-from-list 
> entry="resource" list="resourceList"/> 
>                                                       <if-empty 
> field="resource">
>                                                                             
> <set-service-fields map="createProductI18nRollup"
> service-name="createProductFeatureI18n"
> to-map="createProductFeatureI18nMap"/>                      
>                                                                              
> <call-service service-name="createProductFeatureI18n"
> in-map-name="createProductFeatureI18nMap"/> 
>                                                                       <else>
>                                                                          
> <set-service-fields map="createProductI18nRollup"
> service-name="editProductFeatureI18n" to-map="createProductFeatureI18nMap"/>
>                                                                               
> <call-service service-name="editProductFeatureI18n"
> in-map-name="createProductFeatureI18nMap"/> 
>                                                                       </else>
>                                                                       
> </if-empty>
> 
> 
> 
>                                                                <!-- Create 
> Product Feature Appl -->
>                                                               
>                                                                               
> <set field="createProductI18nRollup.productFeatureApplTypeId"
> value="SELECTABLE_FEATURE"/>          
>                                                                               
>                                         
>                                                                       
> <entity-and entity-name="ProductFeatureAppl"
> list="resourceList">
>                                                                       
> <field-map field-name="productId"
> from-field="createProductI18nRollup.productId"/>
>                                                                   <field-map 
> field-name="productFeatureId"
> from-field="createProductI18nRollup.productFeatureId"/>
>                                                                   <field-map 
> field-name="productFeatureApplTypeId"
> from-field="createProductI18nRollup.productFeatureApplTypeId"/>       
>                                                               </entity-and>
>                                                               
>                                                               
> <first-from-list entry="resource"
> list="resourceList"/> 
>                                                               <if-empty 
> field="resource">
>                                                                               
>       <set-service-fields map="createProductI18nRollup"
> service-name="createProductFeatureApplI18n"
> to-map="createProductFeatureI18nMap"/>                      
>                                                                               
>        <call-service service-name="createProductFeatureApplI18n"
> in-map-name="createProductFeatureI18nMap"/> 
>                                                                               
> <else>
>                                                                               
>    <set-service-fields map="createProductI18nRollup"
> service-name="editProductFeatureApplI18n"
> to-map="createProductFeatureI18nMap"/>
>                                                                               
>         <call-service service-name="editProductFeatureApplI18n"
> in-map-name="createProductFeatureI18nMap"/> 
>                                                                               
> </else>
>                                                                               
> </if-empty>
> 
>                                                       
> <set field="newMap.colorId" from-field="parameters.colorId"/>
> 
>                                                               <!-- Create 
> Product Feature Size -->
> 
>                                                               <iterate 
> entry="size" list="parameters.size" >
>                                                              
>                                                               
> <call-bsh><![CDATA[
>                                                                   color = 
> parameters.get("color");
>                                                                   if(color != 
> null && color !=""){
>                                                                   
>                                                                      
> parameters.put("colorId", color.substring(0,
> 3).replace(" ","_"));
>                                                                   }
>                                                               ]]></call-bsh>
> 
>                                                               <set 
> field="createProductI18nRollup.productId"
> value="${parameters.productId}${newMap.colorId}"/>            
>                                                                       <set 
> field="createProductI18nRollup.productFeatureTypeId"
> value="SIZE"/>                
>                                                                       <set 
> field="createProductI18nRollup.description" value="${size}"/>              
>                                                                       <set 
> field="createProductI18nRollup.productFeatureId"
> value="F${parameters.productId}${parameters.colorId}${size}"/>
>                                                                               
>                                 
>                                                               <entity-and 
> entity-name="ProductFeature"
> list="resourceList">
>                                                               <field-map 
> field-name="productFeatureId"
> from-field="createProductI18nRollup.productFeatureId"/>
>                                                       </entity-and>
>                                                       
>                                                       <first-from-list 
> entry="resource" list="resourceList"/> 
>                                                       <if-empty 
> field="resource">
>                                                                             
> <set-service-fields map="createProductI18nRollup"
> service-name="createProductFeatureI18n"
> to-map="createProductFeatureI18nMap"/>                      
>                                                                              
> <call-service service-name="createProductFeatureI18n"
> in-map-name="createProductFeatureI18nMap"/> 
>                                                                       <else>
>                                                                          
> <set-service-fields map="createProductI18nRollup"
> service-name="editProductFeatureI18n" to-map="createProductFeatureI18nMap"/>
>                                                                               
> <call-service service-name="editProductFeatureI18n"
> in-map-name="createProductFeatureI18nMap"/> 
>                                                                       </else>
>                                                                       
> </if-empty>                                             
>                                                                               
>         
>                                                                               
>         
>                                                               <log 
> level="warning" message="createProductI18nRollup.productId is
> now ${createProductI18nRollup.productId}"></log>
>                                                                               
>         
>                                                                               
>         <!-- Link to color -->
>                                                                               
>         
>                                                                               
>                 <set field="createProductI18nRollup.productFeatureIdTo"
> value="F${parameters.productId}${parameters.colorId}"/>
>                                                                               
>                 <set field="createProductI18nRollup.productFeatureIactnTypeId"
> value="FEATURE_IACTN_INCOMP"/>
>                                                                               
>                 <set field="createProductI18nRollup.productFeatureId"
> value="F${parameters.productId}${parameters.colorId}${size}"/>
>                                                                               
>         <entity-and entity-name="ProductFeatureIactn"
> list="resourceList">
>                                                                               
>         <field-map field-name="productFeatureId"
> from-field="createProductI18nRollup.productFeatureId"/>
>                                                                               
>         <field-map field-name="productFeatureIdTo"
> from-field="createProductI18nRollup.productFeatureIdTo"/>
>                                                                               
> </entity-and>
>                                                                               
>                                                                               
>                                                                               
> <first-from-list entry="resource"
> list="resourceList"/> 
>                                                                               
> <if-empty field="resource">
>                                                                               
>                                                                               
> <now-timestamp
> field="createProductI18nRollup.fromDate"/>
>                                                                               
>                      <set field="createProductI18nRollup.productId"
> value="${createProductI18nRollup.productId}"/>
>                                                                               
>                       <set-service-fields map="createProductI18nRollup"
> service-name="createProductFeatureIactnI18n"
> to-map="createProductFeatureI18nMap"/>                      
>                                                                               
>                        <call-service
> service-name="createProductFeatureIactnI18n"
> in-map-name="createProductFeatureI18nMap"/> 
>                                                                               
>                 <else>
>                                                                               
>                 <!-- 
>                                                                               
>                 <set field="createProductI18nRollup.productFeatureId"
> value="${resource.productFeatureId}"/>
>                                                                               
>                 <set field="createProductI18nRollup.productFeatureIdTo"
> value="${resource.productFeatureIdTo}"/>
>                                                                               
>         
>                                                                               
>                    <set-service-fields map="createProductI18nRollup"
> service-name="editProductFeatureIactnI18n"
> to-map="createProductFeatureI18nMap"/>
>                                                                               
>                         <call-service 
> service-name="editProductFeatureIactnI18n"
> in-map-name="createProductFeatureI18nMap"/> -->
>                                                                               
>                 </else>
>                                                                               
>                 </if-empty>     
>                                                                               
>                 
>                                                               <log 
> level="warning" message="createProductI18nRollup.productId is
> now ${createProductI18nRollup.productId}"></log>
>                                                                               
>                 
>                                                                               
>         <!-- Product Feature Appl -->   
>                                                                               
>         
>                                                                               
>                         <set 
> field="createProductI18nRollup.productFeatureApplTypeId"
> value="STANDARD_FEATURE"/>            
>                                                                               
>                         <now-timestamp 
> field="createProductI18nRollup.fromDate"/>                                    
>    
>                                                                               
>                 <entity-and entity-name="ProductFeatureAppl"
> list="resourceList">
>                                                                               
>                 <field-map field-name="productId"
> from-field="createProductI18nRollup.productId"/>
>                                                                               
>             <field-map field-name="productFeatureId"
> from-field="createProductI18nRollup.productFeatureId"/>       
>                                                                               
>         </entity-and>
>                                                                               
>         
>                                                                               
>         <first-from-list entry="resource"
> list="resourceList"/> 
>                                                                               
>         <if-empty field="resource">
>                                                                               
>                               <set-service-fields 
> map="createProductI18nRollup"
> service-name="createProductFeatureApplI18n"
> to-map="createProductFeatureI18nMap"/>                      
>                                                                               
>                                <call-service
> service-name="createProductFeatureApplI18n"
> in-map-name="createProductFeatureI18nMap"/> 
>                                                                               
>                         <else>
>                                                                               
>                                 <set field="createProductI18nRollup.fromDate"
> value="${resource.fromDate}"/>                
>                                                                               
>                         
>                                                                               
>                            <set-service-fields map="createProductI18nRollup"
> service-name="editProductFeatureApplI18n"
> to-map="createProductFeatureI18nMap"/>
>                                                                               
>                                 <call-service 
> service-name="editProductFeatureApplI18n"
> in-map-name="createProductFeatureI18nMap"/> 
>                                                                               
>                         </else>
>                                                                               
>                         </if-empty>
>                                                               
> 
>                                                               <log 
> level="warning" message="createProductI18nRollup.productId is
> now ${createProductI18nRollup.productId}"></log>
>                                                               
>                                                                               
>                                         <!-- Create Assoc -->
>                                                       
>                                                       
>                                                                               
>                                 <now-timestamp 
> field="createProductI18nRollup.fromDate"/>
>                                                                               
>                                 <set 
> field="createProductI18nRollup.productIdTo"
> value="${createProductI18nRollup.productId}"/>
>                                                                               
>                                 <set field="createProductI18nRollup.productId"
> value="${parameters.productId}"/>
>                                                                               
>                                 <set 
> field="createProductI18nRollup.productAssocTypeId"
> value="PRODUCT_VARIANT"/>
>                                                                               
>                                 <log level="warning" message="Adding 
> ProductAssoc for
> Product_Variant ${createProductI18nRollup.productId} to
> ${createProductI18nRollup.productIdTo}"></log>
>                                                                               
>                                         <entity-and 
> entity-name="ProductAssoc" list="resourceList">
>                                                                               
>                                 <field-map field-name="productId"
> from-field="createProductI18nRollup.productId"/>
>                                                                               
>                                 <field-map field-name="productIdTo"
> from-field="createProductI18nRollup.productIdTo"/>
>                                                                               
>                              <field-map field-name="productAssocTypeId"
> from-field="createProductI18nRollup.productAssocTypeId"/>
>                                                                               
>                         </entity-and>
>                                                                               
>                         
>                                                                               
>                         <first-from-list entry="resource"
> list="resourceList"/> 
>                                                                               
>                         <if-empty field="resource">
>                                                                               
>                                                <set-service-fields 
> map="createProductI18nRollup"
> service-name="createProductAssocI18n"
> to-map="createProductFeatureCategoryI18nMap"/>
>                                                                               
>                                                <call-service 
> service-name="createProductAssocI18n"
> in-map-name="createProductFeatureCategoryI18nMap"/> 
>                                                                               
>                                         <else>
>                                                                               
>                                                 <set 
> field="createProductI18nRollup.fromDate"
> value="${resource.fromDate}"/>
>                                                                               
>                                         <set-service-fields 
> map="createProductI18nRollup"
> service-name="editProductAssocI18n"
> to-map="createProductFeatureCategoryI18nMap"/>
>                                                                               
>                                                 <call-service 
> service-name="editProductAssocI18n"
> in-map-name="createProductFeatureCategoryI18nMap"/> 
>                                                                               
>                                         </else>
>                                                                               
>                                         </if-empty>
>                                                                               
>                         
>                                                                               
>                         <set field="createProductI18nRollup.productId"
> value="${createProductI18nRollup.productIdTo}"/>
>                                                               
>                                                               
>                                                               
>                                                               </iterate>
>                                                               
>                                                               
>                                                               
>                                                               
>                                                               
>                                                       
> 
> 
> 
> I tried to follow the steps for WG-9943 in ProductDemo.xml carefully, but
> the variants won't show up on my application. What am I missing?

-- 
BJ Freeman
http://www.businessesnetwork.com/automation
http://bjfreeman.elance.com
http://www.linkedin.com/profile?viewProfile=&key=1237480&locale=en_US&trk=tab_pro
Systems Integrator.

Reply via email to