You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by nm...@apache.org on 2014/10/05 21:34:17 UTC

svn commit: r1629523 - in /ofbiz/trunk: applications/product/script/org/ofbiz/product/product/ProductServices.xml applications/product/servicedef/services.xml framework/common/data/CommonTypeData.xml

Author: nmalin
Date: Sun Oct  5 19:34:17 2014
New Revision: 1629523

URL: http://svn.apache.org/r1629523
Log:
Convert CRUD service to entity-auto for GoodIdentification, ProductAttribute, ProductGeo, ProductMeter, ProductMaint, ProductGlAccount, ProductAssoc and ProductKeyword. For this last, add StatusValidChange data for keyword to autorize from status KW_PENDING to KW_APPORVED and from status KW_PENDING to KW_DISAPPROVED. Related issue OFBIZ-5734

Modified:
    ofbiz/trunk/applications/product/script/org/ofbiz/product/product/ProductServices.xml
    ofbiz/trunk/applications/product/servicedef/services.xml
    ofbiz/trunk/framework/common/data/CommonTypeData.xml

Modified: ofbiz/trunk/applications/product/script/org/ofbiz/product/product/ProductServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/product/product/ProductServices.xml?rev=1629523&r1=1629522&r2=1629523&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/script/org/ofbiz/product/product/ProductServices.xml (original)
+++ ofbiz/trunk/applications/product/script/org/ofbiz/product/product/ProductServices.xml Sun Oct  5 19:34:17 2014
@@ -352,21 +352,6 @@ under the License.
     </simple-method>
 
     <!-- Product Keyword Services -->
-    <simple-method method-name="createProductKeyword" short-description="create a ProductKeyword">
-        <make-value entity-name="ProductKeyword" value-field="newEntity"/>
-        <set-pk-fields map="parameters" value-field="newEntity"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateProductKeyword" short-description="update a ProductKeyword">
-        <entity-one entity-name="ProductKeyword" value-field="lookedUpValue"/>
-        <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
-        <store-value value-field="lookedUpValue"/>
-    </simple-method>
-    <simple-method method-name="deleteProductKeyword" short-description="delete a ProductKeyword">
-        <entity-one entity-name="ProductKeyword" value-field="lookedUpValue"/>
-        <remove-value value-field="lookedUpValue"/>
-    </simple-method>
     <simple-method method-name="forceIndexProductKeywords" short-description="induce all the keywords of a product">
         <entity-one entity-name="Product" value-field="product"/>
         <call-class-method class-name="org.ofbiz.product.product.KeywordIndex" method-name="forceIndexKeywords">
@@ -489,78 +474,6 @@ under the License.
         </if-not-empty>
     </simple-method>
 
-    <!-- GoodIdentification methods -->
-    <simple-method method-name="createGoodIdentification" short-description="Create an GoodIdentification">
-        <set value="createGoodIdentification" field="callingMethodName"/>
-        <set value="CREATE" field="checkAction"/>
-        <call-simple-method method-name="checkProductRelatedPermission"/>
-        <check-errors/>
-
-        <make-value value-field="newEntity" entity-name="GoodIdentification"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-        <set-pk-fields map="parameters" value-field="newEntity"/>
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateGoodIdentification" short-description="Update an GoodIdentification">
-        <set value="updateGoodIdentification" field="callingMethodName"/>
-        <set value="UPDATE" field="checkAction"/>
-        <call-simple-method method-name="checkProductRelatedPermission"/>
-        <check-errors/>
-
-        <make-value entity-name="GoodIdentification" value-field="lookupPKMap"/>
-        <set-pk-fields map="parameters" value-field="lookupPKMap"/>
-        <find-by-primary-key map="lookupPKMap" value-field="lookedUpValue"/>
-        <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
-        <store-value value-field="lookedUpValue"/>
-    </simple-method>
-    <simple-method method-name="deleteGoodIdentification" short-description="Delete an GoodIdentification">
-        <set value="deleteGoodIdentification" field="callingMethodName"/>
-        <set value="DELETE" field="checkAction"/>
-        <call-simple-method method-name="checkProductRelatedPermission"/>
-        <check-errors/>
-
-        <make-value entity-name="GoodIdentification" value-field="lookupPKMap"/>
-        <set-pk-fields map="parameters" value-field="lookupPKMap"/>
-        <find-by-primary-key map="lookupPKMap" value-field="lookedUpValue"/>
-        <remove-value value-field="lookedUpValue"/>
-    </simple-method>
-
-    <!-- ProductGlAccount methods -->
-    <simple-method method-name="createProductGlAccount" short-description="Create an ProductGlAccount">
-        <set value="createProductGlAccount" field="callingMethodName"/>
-        <set value="CREATE" field="checkAction"/>
-        <call-simple-method method-name="checkProductRelatedPermission"/>
-        <check-errors/>
-
-        <make-value value-field="newEntity" entity-name="ProductGlAccount"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-        <set-pk-fields map="parameters" value-field="newEntity"/>
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateProductGlAccount" short-description="Update an ProductGlAccount">
-        <set value="updateProductGlAccount" field="callingMethodName"/>
-        <set value="UPDATE" field="checkAction"/>
-        <call-simple-method method-name="checkProductRelatedPermission"/>
-        <check-errors/>
-
-        <make-value entity-name="ProductGlAccount" value-field="lookupPKMap"/>
-        <set-pk-fields map="parameters" value-field="lookupPKMap"/>
-        <find-by-primary-key entity-name="ProductGlAccount" map="lookupPKMap" value-field="lookedUpValue"/>
-        <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
-        <store-value value-field="lookedUpValue"/>
-    </simple-method>
-    <simple-method method-name="deleteProductGlAccount" short-description="Delete an ProductGlAccount">
-        <set value="deleteProductGlAccount" field="callingMethodName"/>
-        <set value="DELETE" field="checkAction"/>
-        <call-simple-method method-name="checkProductRelatedPermission"/>
-        <check-errors/>
-
-        <make-value entity-name="ProductGlAccount" value-field="lookupPKMap"/>
-        <set-pk-fields map="parameters" value-field="lookupPKMap"/>
-        <find-by-primary-key entity-name="ProductGlAccount" map="lookupPKMap" value-field="lookedUpValue"/>
-        <remove-value value-field="lookedUpValue"/>
-    </simple-method>
-
     <simple-method method-name="createProductReview" short-description="Create a ProductReview" login-required="false">
         <make-value value-field="newEntity" entity-name="ProductReview"/>
         <set-nonpk-fields map="parameters" value-field="newEntity"/>
@@ -753,125 +666,6 @@ under the License.
         </iterate>
     </simple-method>
 
-    <!-- for managing product to product associations -->
-    <simple-method method-name="createProductAssoc" short-description="Create an association between two products">
-        <set value="createProductAssoc" field="callingMethodName"/>
-        <set value="CREATE" field="checkAction"/>
-        <call-simple-method method-name="checkProductRelatedPermission"/>
-        <check-errors/>
-
-        <make-value value-field="newEntity" entity-name="ProductAssoc"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-        <set-pk-fields map="parameters" value-field="newEntity"/>
-
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateProductAssoc" short-description="Update an association between two products">
-        <set value="updateProductAssoc" field="callingMethodName"/>
-        <set value="UPDATE" field="checkAction"/>
-        <call-simple-method method-name="checkProductRelatedPermission"/>
-        <check-errors/>
-
-        <make-value value-field="lookupPKMap" entity-name="ProductAssoc"/>
-        <set-pk-fields map="parameters" value-field="lookupPKMap"/>
-        <find-by-primary-key entity-name="ProductAssoc" map="lookupPKMap" value-field="productAssocInstance"/>
-        <set-nonpk-fields map="parameters" value-field="productAssocInstance"/>
-        <store-value value-field="productAssocInstance"/>
-    </simple-method>
-    <simple-method method-name="deleteProductAssoc" short-description="Delete an association between two products">
-        <set value="deleteProductAssoc" field="callingMethodName"/>
-        <set value="DELETE" field="checkAction"/>
-        <call-simple-method method-name="checkProductRelatedPermission"/>
-        <check-errors/>
-
-        <make-value value-field="lookupPKMap" entity-name="ProductAssoc"/>
-        <set-pk-fields map="parameters" value-field="lookupPKMap"/>
-        <find-by-primary-key entity-name="ProductAssoc" map="lookupPKMap" value-field="productAssocInstance"/>
-        <remove-value value-field="productAssocInstance"/>
-    </simple-method>
-
-    <!-- Create/Update/Delete Product Maint Record -->
-    <simple-method method-name="createProductMaint" short-description="Create an Product Maintenance">
-        <set value="createProductMaint" field="callingMethodName"/>
-        <set value="CREATE" field="checkAction"/>
-        <call-simple-method method-name="checkProductRelatedPermission"/>
-        <check-errors/>
-
-        <make-value value-field="newEntity" entity-name="ProductMaint"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-        <set-pk-fields map="parameters" value-field="newEntity"/>
-        <make-next-seq-id value-field="newEntity" seq-field-name="productMaintSeqId"/> <!-- this finds the next sub-sequence ID -->
-        <field-to-result field="newEntity.productMaintSeqId" result-name="productMaintSeqId"/>
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateProductMaint" short-description="Update an existing Product Maintenance">
-        <set value="updateProductMaint" field="callingMethodName"/>
-        <set value="UPDATE" field="checkAction"/>
-        <call-simple-method method-name="checkProductRelatedPermission"/>
-        <check-errors/>
-
-        <entity-one entity-name="ProductMaint" value-field="lookedUpValue"/>
-        <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
-        <store-value value-field="lookedUpValue"/>
-    </simple-method>
-    <simple-method method-name="deleteProductMaint" short-description="Delete Product Maint from PRODUCT_MAINT">
-        <set value="deleteProductMaint" field="callingMethodName"/>
-        <set value="DELETE" field="checkAction"/>
-        <call-simple-method method-name="checkProductRelatedPermission"/>
-        <check-errors/>
-
-        <entity-one entity-name="ProductMaint" value-field="lookedUpValue"/>
-        <remove-value value-field="lookedUpValue"/>
-    </simple-method>
-    <!-- Create/Update/Delete Product Meter Record -->
-    <simple-method method-name="createProductMeter" short-description="Create an Product Meter">
-        <set value="createProductMeter" field="callingMethodName"/>
-        <set value="CREATE" field="checkAction"/>
-        <call-simple-method method-name="checkProductRelatedPermission"/>
-        <check-errors/>
-
-        <make-value value-field="newEntity" entity-name="ProductMeter"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-        <set-pk-fields map="parameters" value-field="newEntity"/>
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateProductMeter" short-description="Update an existing Product Meter">
-        <set value="updateProductMeter" field="callingMethodName"/>
-        <set value="UPDATE" field="checkAction"/>
-        <call-simple-method method-name="checkProductRelatedPermission"/>
-        <check-errors/>
-
-        <entity-one entity-name="ProductMeter" value-field="lookedUpValue"/>
-        <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
-        <store-value value-field="lookedUpValue"/>
-    </simple-method>
-    <simple-method method-name="deleteProductMeter" short-description="Delete an existing Product Meter">
-        <set value="deleteProductMeter" field="callingMethodName"/>
-        <set value="DELETE" field="checkAction"/>
-        <call-simple-method method-name="checkProductRelatedPermission"/>
-        <check-errors/>
-
-        <entity-one entity-name="ProductMeter" value-field="lookedUpValue"/>
-        <remove-value value-field="lookedUpValue"/>
-    </simple-method>
-
-    <!-- ProductGeo Services -->
-    <simple-method method-name="createProductGeo" short-description="Create an Product Geo">
-        <make-value value-field="newEntity" entity-name="ProductGeo"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-        <set-pk-fields map="parameters" value-field="newEntity"/>
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateProductGeo" short-description="Update an existing Product Geo">
-        <entity-one entity-name="ProductGeo" value-field="lookedUpValue"/>
-        <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
-        <store-value value-field="lookedUpValue"/>
-    </simple-method>
-    <simple-method method-name="deleteProductGeo" short-description="Delete an existing Product Geo">
-        <entity-one entity-name="ProductGeo" value-field="lookedUpValue"/>
-        <remove-value value-field="lookedUpValue"/>
-    </simple-method>
-
     <!-- a method to centralize product security code, meant to be called in-line with
         call-simple-method, and the checkAction and callingMethodName attributes should be in the method context -->
     <simple-method method-name="checkProductRelatedPermission" short-description="Check Product Related Permission">
@@ -913,8 +707,9 @@ under the License.
                 </not>
             </condition>
             <then>
+                <set field="checkActionLabel" value="${groovy: 'ProductCatalog' + checkAction.charAt(0) + checkAction.substring(1).toLowerCase() + 'PermissionError'}"/>
                 <add-error>
-                    <fail-property resource="ProductUiLabels" property="ProductCatalogCreatePermissionError"/>
+                    <fail-property resource="ProductUiLabels" property="${checkActionLabel}"/>
                 </add-error>
             </then>
         </if>
@@ -944,22 +739,6 @@ under the License.
             </else>
         </if-empty>
     </simple-method>
-    <!-- Product Attribute Services -->
-    <simple-method method-name="createProductAttribute" short-description="create a ProductAttribute">
-        <make-value entity-name="ProductAttribute" value-field="newEntity"/>
-        <set-pk-fields map="parameters" value-field="newEntity"/>
-        <set-nonpk-fields map="parameters" value-field="newEntity"/>
-        <create-value value-field="newEntity"/>
-    </simple-method>
-    <simple-method method-name="updateProductAttribute" short-description="update a ProductAttribute">
-        <entity-one entity-name="ProductAttribute" value-field="lookedUpValue"/>
-        <set-nonpk-fields map="parameters" value-field="lookedUpValue"/>
-        <store-value value-field="lookedUpValue"/>
-    </simple-method>
-    <simple-method method-name="deleteProductAttribute" short-description="delete a ProductAttribute">
-        <entity-one entity-name="ProductAttribute" value-field="lookedUpValue"/>
-        <remove-value value-field="lookedUpValue"/>
-    </simple-method>
 
     <!-- ================================================================ -->
     <!-- ProductRole Services -->

Modified: ofbiz/trunk/applications/product/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/servicedef/services.xml?rev=1629523&r1=1629522&r2=1629523&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/servicedef/services.xml (original)
+++ ofbiz/trunk/applications/product/servicedef/services.xml Sun Oct  5 19:34:17 2014
@@ -127,22 +127,19 @@ under the License.
     </service>
 
     <!-- Product Keyword Services -->
-    <service name="createProductKeyword" default-entity-name="ProductKeyword" engine="simple"
-            location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="createProductKeyword" auth="true">
+    <service name="createProductKeyword" default-entity-name="ProductKeyword" engine="entity-auto" invoke="create" auth="true">
         <description>Create a ProductKeyword</description>
         <permission-service service-name="productGenericPermission" main-action="CREATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="updateProductKeyword" default-entity-name="ProductKeyword" engine="simple"
-            location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="updateProductKeyword" auth="true">
+    <service name="updateProductKeyword" default-entity-name="ProductKeyword" engine="entity-auto" invoke="update" auth="true">
         <description>Update a ProductKeyword</description>
         <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="deleteProductKeyword" default-entity-name="ProductKeyword" engine="simple"
-            location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="deleteProductKeyword" auth="true">
+    <service name="deleteProductKeyword" default-entity-name="ProductKeyword" engine="entity-auto" invoke="delete" auth="true">
         <description>Delete a ProductKeyword</description>
         <permission-service service-name="productGenericPermission" main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
@@ -228,21 +225,18 @@ under the License.
 
     <!-- Product Association Services -->
 
-    <service name="createProductAssoc" default-entity-name="ProductAssoc" engine="simple"
-            location="component://product/script/org/ofbiz/product/product/ProductServices.xml"
-            invoke="createProductAssoc" auth="true">
+    <service name="createProductAssoc" default-entity-name="ProductAssoc" engine="entity-auto" invoke="create" auth="true">
+        <permission-service service-name="productGenericPermission" main-action="CREATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="updateProductAssoc" default-entity-name="ProductAssoc" engine="simple"
-            location="component://product/script/org/ofbiz/product/product/ProductServices.xml"
-            invoke="updateProductAssoc" auth="true">
+    <service name="updateProductAssoc" default-entity-name="ProductAssoc" engine="entity-auto" invoke="update" auth="true">
+        <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="deleteProductAssoc" default-entity-name="ProductAssoc" engine="simple"
-            location="component://product/script/org/ofbiz/product/product/ProductServices.xml"
-            invoke="deleteProductAssoc" auth="true">
+    <service name="deleteProductAssoc" default-entity-name="ProductAssoc" engine="entity-auto" invoke="delete" auth="true">
+        <permission-service service-name="productGenericPermission" main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
 
@@ -327,40 +321,40 @@ under the License.
     </service>
 
     <!-- GoodIdentification Services -->
-    <service name="createGoodIdentification" default-entity-name="GoodIdentification" engine="simple"
-                location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="createGoodIdentification" auth="true">
+    <service name="createGoodIdentification" default-entity-name="GoodIdentification" engine="entity-auto" invoke="create" auth="true">
         <description>Create a GoodIdentification</description>
+        <permission-service service-name="productGenericPermission" main-action="CREATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="false"/>
     </service>
-    <service name="updateGoodIdentification" default-entity-name="GoodIdentification" engine="simple"
-                location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="updateGoodIdentification" auth="true">
+    <service name="updateGoodIdentification" default-entity-name="GoodIdentification" engine="entity-auto" invoke="update" auth="true">
         <description>Update a GoodIdentification</description>
+        <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="false"/>
     </service>
-    <service name="deleteGoodIdentification" default-entity-name="GoodIdentification" engine="simple"
-                location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="deleteGoodIdentification" auth="true">
+    <service name="deleteGoodIdentification" default-entity-name="GoodIdentification" engine="entity-auto" invoke="delete" auth="true">
         <description>Delete a GoodIdentification</description>
+        <permission-service service-name="productGenericPermission" main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
 
     <!-- ProductGlAccount Services -->
-    <service name="createProductGlAccount" default-entity-name="ProductGlAccount" engine="simple"
-                location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="createProductGlAccount" auth="true">
+    <service name="createProductGlAccount" default-entity-name="ProductGlAccount" engine="entity-auto" invoke="create" auth="true">
         <description>Create a ProductGlAccount</description>
+        <permission-service service-name="productGenericPermission" main-action="CREATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="false"/>
     </service>
-    <service name="updateProductGlAccount" default-entity-name="ProductGlAccount" engine="simple"
-                location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="updateProductGlAccount" auth="true">
+    <service name="updateProductGlAccount" default-entity-name="ProductGlAccount" engine="entity-auto" invoke="update" auth="true">
         <description>Update a ProductGlAccount</description>
+        <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="false"/>
     </service>
-    <service name="deleteProductGlAccount" default-entity-name="ProductGlAccount" engine="simple"
-                location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="deleteProductGlAccount" auth="true">
+    <service name="deleteProductGlAccount" default-entity-name="ProductGlAccount" engine="entity-auto" invoke="delete" auth="true">
         <description>Delete a ProductGlAccount</description>
+        <permission-service service-name="productGenericPermission" main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
 
@@ -558,56 +552,56 @@ under the License.
         <attribute name="supplierProductFeatures" type="java.util.List" mode="OUT" optional="false"/>
     </service>
 
-    <service name="createProductMaint" default-entity-name="ProductMaint" engine="simple"
-        location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="createProductMaint" auth="true">
+    <service name="createProductMaint" default-entity-name="ProductMaint" engine="entity-auto" invoke="create" auth="true">
         <description>Create a ProductMaint</description>
+        <permission-service service-name="productGenericPermission" main-action="CREATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
         <override name="productMaintSeqId" mode="OUT"/> <!-- make this OUT rather than IN, we will automatically generate the next sub-sequence ID -->
     </service>
-    <service name="updateProductMaint" default-entity-name="ProductMaint" engine="simple"
-        location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="updateProductMaint" auth="true">
+    <service name="updateProductMaint" default-entity-name="ProductMaint" engine="entity-auto" invoke="update" auth="true">
         <description>Update a ProductMaint</description>
+        <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="deleteProductMaint" default-entity-name="ProductMaint" engine="simple"
-        location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="deleteProductMaint" auth="true">
+    <service name="deleteProductMaint" default-entity-name="ProductMaint" engine="entity-auto" invoke="delete" auth="true">
         <description>Delete a ProductMaint</description>
+        <permission-service service-name="productGenericPermission" main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
-    <service name="createProductMeter" default-entity-name="ProductMeter" engine="simple"
-        location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="createProductMeter" auth="true">
+    <service name="createProductMeter" default-entity-name="ProductMeter" engine="entity-auto" invoke="create" auth="true">
         <description>Create a ProductMeter</description>
+        <permission-service service-name="productGenericPermission" main-action="CREATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="updateProductMeter" default-entity-name="ProductMeter" engine="simple"
-        location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="updateProductMeter" auth="true">
+    <service name="updateProductMeter" default-entity-name="ProductMeter" engine="entity-auto" invoke="update" auth="true">
         <description>Update a ProductMeter</description>
+        <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="deleteProductMeter" default-entity-name="ProductMeter" engine="simple"
-        location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="deleteProductMeter" auth="true">
+    <service name="deleteProductMeter" default-entity-name="ProductMeter" engine="entity-auto" invoke="delete" auth="true">
         <description>Delete a ProductMeter</description>
+        <permission-service service-name="productGenericPermission" main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
-    <service name="createProductGeo" default-entity-name="ProductGeo" engine="simple"
-        location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="createProductGeo" auth="true">
+    <service name="createProductGeo" default-entity-name="ProductGeo" engine="entity-auto" invoke="create" auth="true">
         <description>Create a ProductGeo</description>
+        <permission-service service-name="productGenericPermission" main-action="CREATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="updateProductGeo" default-entity-name="ProductGeo" engine="simple"
-        location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="updateProductGeo" auth="true">
+    <service name="updateProductGeo" default-entity-name="ProductGeo" engine="entity-auto" invoke="update" auth="true">
         <description>Update a ProductGeo</description>
+        <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="deleteProductGeo" default-entity-name="ProductGeo" engine="simple"
-        location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="deleteProductGeo" auth="true">
+    <service name="deleteProductGeo" default-entity-name="ProductGeo" engine="entity-auto" invoke="delete" auth="true">
         <description>Delete a ProductGeo</description>
+        <permission-service service-name="productGenericPermission" main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
     </service>
     <service name="createCommunicationEventProduct" engine="simple"
@@ -1275,22 +1269,19 @@ under the License.
         <attribute type="String" mode="IN" name="productCategoryId" optional="true"/>
     </service>
     <!-- Product Attribute Services -->
-    <service name="createProductAttribute" default-entity-name="ProductAttribute" engine="simple"
-            location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="createProductAttribute" auth="true">
+    <service name="createProductAttribute" default-entity-name="ProductAttribute" engine="entity-auto" invoke="create" auth="true">
         <description>Create a ProductAttribute</description>
         <permission-service service-name="productGenericPermission" main-action="CREATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="updateProductAttribute" default-entity-name="ProductAttribute" engine="simple"
-            location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="updateProductAttribute" auth="true">
+    <service name="updateProductAttribute" default-entity-name="ProductAttribute" engine="entity-auto" invoke="update" auth="true">
         <description>Update a ProductAttribute</description>
         <permission-service service-name="productGenericPermission" main-action="UPDATE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
     </service>
-    <service name="deleteProductAttribute" default-entity-name="ProductAttribute" engine="simple"
-            location="component://product/script/org/ofbiz/product/product/ProductServices.xml" invoke="deleteProductAttribute" auth="true">
+    <service name="deleteProductAttribute" default-entity-name="ProductAttribute" engine="entity-auto" invoke="delete" auth="true">
         <description>Delete a ProductAttribute</description>
         <permission-service service-name="productGenericPermission" main-action="DELETE"/>
         <auto-attributes include="pk" mode="IN" optional="false"/>

Modified: ofbiz/trunk/framework/common/data/CommonTypeData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/data/CommonTypeData.xml?rev=1629523&r1=1629522&r2=1629523&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/data/CommonTypeData.xml (original)
+++ ofbiz/trunk/framework/common/data/CommonTypeData.xml Sun Oct  5 19:34:17 2014
@@ -131,5 +131,7 @@ under the License.
     <StatusItem statusId="KW_APPROVED" statusTypeId="KEYWORD_STATUS" statusCode="APPROVED" sequenceId="01" description="Approved"/>
     <StatusItem statusId="KW_PENDING" statusTypeId="KEYWORD_STATUS" statusCode="PENDING" sequenceId="02" description="Pending"/>
     <StatusItem statusId="KW_DISAPPROVED" statusTypeId="KEYWORD_STATUS" statusCode="DISAPPROVED" sequenceId="03" description="Disapproved"/>
+    <StatusValidChange condition="" statusId="KW_PENDING" statusIdTo="KW_APPROVED" transitionName="Review Approved"/>
+    <StatusValidChange condition="" statusId="KW_PENDING" statusIdTo="KW_DISAPPROVED" transitionName="Review Disapproved"/>
 
 </entity-engine-xml>