You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by mo...@apache.org on 2008/08/05 15:18:25 UTC

svn commit: r682706 - /ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml

Author: mor
Date: Tue Aug  5 06:18:24 2008
New Revision: 682706

URL: http://svn.apache.org/viewvc?rev=682706&view=rev
Log:
Adding back <check-errors/> tag in individual methods as adding <error_list> check contradicts with the purpose of splitting event into smaller methods. This way individual method can be called as a separate entity doing error checks.

Modified:
    ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml

Modified: ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml?rev=682706&r1=682705&r2=682706&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml (original)
+++ ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml Tue Aug  5 06:18:24 2008
@@ -874,20 +874,18 @@
         </if-empty>
 
         <call-simple-method method-name="createUpdatePerson"/>
-        <if-empty field="error_list">
-            <call-simple-method method-name="setAnonUserLogin"/>
-            
-            <set field="partyRoleContext.partyId" from-field="partyId"/>
-            <set field="partyRoleContext.roleTypeId" from-field="parameters.roleTypeId"/>
-            <set field="partyRoleContext.userLogin" from-field="userLogin"/>
-            <call-service service-name="createPartyRole" in-map-name="partyRoleContext"/>
-        </if-empty>
+        <call-simple-method method-name="setAnonUserLogin"/>
+        
+        <set field="partyRoleContext.partyId" from-field="partyId"/>
+        <set field="partyRoleContext.roleTypeId" from-field="parameters.roleTypeId"/>
+        <set field="partyRoleContext.userLogin" from-field="userLogin"/>
+        <call-service service-name="createPartyRole" in-map-name="partyRoleContext"/>
+        
         <call-simple-method method-name="createUpdateShippingAddress"/>
         <set field="parameters.phoneContactMechPurposeTypeId" value="PRIMARY_PHONE"/>
         <call-simple-method method-name="createUpdateTelecomNumber"/>
         <set field="parameters.emailContactMechPurposeTypeId" value="PRIMARY_EMAIL"/>
         <call-simple-method method-name="createUpdateEmailAddress"/>
-        <check-errors/>
         <!-- Set partyId, in shoppingCart -->
         <call-object-method obj-field-name="shoppingCart" method-name="setUserLogin">
             <field field-name="userLogin" type="org.ofbiz.entity.GenericValue"/>
@@ -909,7 +907,7 @@
     <simple-method method-name="createUpdatePerson" short-description="Create and update a person" login-required="false">
         <call-map-processor xml-resource="org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml"
                 processor-name="person" in-map-name="parameters" out-map-name="personMap"/>
-        <if-empty field="error_list">        
+        <check-errors/>        
             <set-service-fields service-name="createPerson"  map-name="personMap" to-map-name="personContext"/>
             <if-empty field="partyId">
                 <call-service service-name="createPerson" in-map-name="personContext">
@@ -923,7 +921,6 @@
             </if-empty>
             <field-to-request field-name="partyId" request-name="partyId"/>
             <set field="parameters.partyId" from-field="partyId"/>
-        </if-empty>
     </simple-method>
     
     <simple-method method-name="createUpdateUserLogin" short-description="Create and update a user login" login-required="false">
@@ -950,35 +947,33 @@
                 String passwordHint = (String) userLoginMap.get("passwordHint");
                 org.ofbiz.common.login.LoginServices.checkNewPassword(newUserLogin, null, password, confirmPassword, passwordHint, error_list, true, locale);
             ]]></call-bsh>
-            <if-empty field="error_list">
-                 <set-service-fields service-name="createUserLogin"  map-name="userLoginMap" to-map-name="userLoginCtx"/>
-                
-                <!-- call the service with the system account to get around security constraints for this special create -->
-                <entity-one entity-name="UserLogin" value-name="userLoginCtx.userLogin" auto-field-map="false">
-                    <field-map field-name="userLoginId" value="system"/>
-                </entity-one>
-                
-                <call-service service-name="createUserLogin" in-map-name="userLoginCtx"/>
-                <entity-one entity-name="UserLogin" value-name="userLogin">
-                    <field-map field-name="userLoginId" env-name="userLoginMap.userLoginId"/>
-                </entity-one>
-                <set field="parameters.userLogin" from-field="userLogin"/>             
-            </if-empty>
+            <check-errors/>
+            <set-service-fields service-name="createUserLogin"  map-name="userLoginMap" to-map-name="userLoginCtx"/>
+            
+            <!-- call the service with the system account to get around security constraints for this special create -->
+            <entity-one entity-name="UserLogin" value-name="userLoginCtx.userLogin" auto-field-map="false">
+                <field-map field-name="userLoginId" value="system"/>
+            </entity-one>
+            
+            <call-service service-name="createUserLogin" in-map-name="userLoginCtx"/>
+            <entity-one entity-name="UserLogin" value-name="userLogin">
+                <field-map field-name="userLoginId" env-name="userLoginMap.userLoginId"/>
+            </entity-one>
+            <set field="parameters.userLogin" from-field="userLogin"/>             
         <else>
             <call-map-processor xml-resource="org/ofbiz/securityext/login/LoginMapProcs.xml"
                 processor-name="updatePassword" in-map-name="parameters" out-map-name="passwordMap"/>
-            <if-empty field="error_list">    
-                <set-service-fields service-name="updatePassword"  map-name="passwordMap" to-map-name="passwordCtx"/>
-                <call-service service-name="updatePassword" in-map-name="passwordCtx">
-                    <result-to-field result-name="updatedUserLogin"/>
-                </call-service>
-                <set-current-user-login value-name="updatedUserLogin"/>
-                <session-to-field field-name="userLogin"/>
-                <if-compare field="userLogin.userLoginId" operator="equals" value="${updatedUserLogin.userLoginId}">
-                    <field-to-session field-name="updatedUserLogin" session-name="userLogin"/>
-                </if-compare>
-                <session-to-field field-name="userLogin"/>
-            </if-empty>
+            <check-errors/>
+            <set-service-fields service-name="updatePassword"  map-name="passwordMap" to-map-name="passwordCtx"/>
+            <call-service service-name="updatePassword" in-map-name="passwordCtx">
+                <result-to-field result-name="updatedUserLogin"/>
+            </call-service>
+            <set-current-user-login value-name="updatedUserLogin"/>
+            <session-to-field field-name="userLogin"/>
+            <if-compare field="userLogin.userLoginId" operator="equals" value="${updatedUserLogin.userLoginId}">
+                <field-to-session field-name="updatedUserLogin" session-name="userLogin"/>
+            </if-compare>
+            <session-to-field field-name="userLogin"/>
         </else>
         </if-empty>
     </simple-method>
@@ -1004,113 +999,110 @@
     <simple-method method-name="createUpdateTelecomNumber" short-description="Create and update phone number" login-required="false">
         <call-map-processor xml-resource="org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml"
                 processor-name="phoneNumber" in-map-name="parameters" out-map-name="phoneContext"/>
-        <if-empty field="error_list">
-            <set field="phoneContext.partyId" from-field="partyId"/>
-            <set field="phoneContext.roleTypeId" from-field="parameters.roleTypeId"/>
-            <set field="phoneContext.userLogin" from-field="userLogin"/>
-            <if-empty field="parameters.phoneContactMechId">
-                <set field="phoneContext.contactMechPurposeTypeId" from-field="parameters.phoneContactMechPurposeTypeId"/>
-                <call-service service-name="createPartyTelecomNumber" in-map-name="phoneContext">
-                    <result-to-field result-name="contactMechId" field-name="parameters.phoneContactMechId"/>
-                </call-service>
-                <log level="info" message="Phone Contact created phoneContactMechId is ${parameters.phoneContactMechId}"></log>
-            <else>
-                <set field="phoneContext.contactMechId" from-field="parameters.phoneContactMechId"/>
-                <log level="info" message="Updating phoneContactMechId is ${parameters.phoneContactMechId}"></log>
-                <call-service service-name="updatePartyTelecomNumber" in-map-name="phoneContext">
-                    <result-to-field result-name="contactMechId" field-name="parameters.phoneContactMechId"/>
-                </call-service> 
-                <log level="info" message="Phone Contact updated phoneContactMechId is ${parameters.phoneContactMechId}"></log>
-            </else>
-            </if-empty>
-            <field-to-request field-name="parameters.phoneContactMechId" request-name="phoneContactMechId"/>
+        <check-errors/>
+        <set field="phoneContext.partyId" from-field="partyId"/>
+        <set field="phoneContext.roleTypeId" from-field="parameters.roleTypeId"/>
+        <set field="phoneContext.userLogin" from-field="userLogin"/>
+        <if-empty field="parameters.phoneContactMechId">
+            <set field="phoneContext.contactMechPurposeTypeId" from-field="parameters.phoneContactMechPurposeTypeId"/>
+            <call-service service-name="createPartyTelecomNumber" in-map-name="phoneContext">
+                <result-to-field result-name="contactMechId" field-name="parameters.phoneContactMechId"/>
+            </call-service>
+            <log level="info" message="Phone Contact created phoneContactMechId is ${parameters.phoneContactMechId}"></log>
+        <else>
+            <set field="phoneContext.contactMechId" from-field="parameters.phoneContactMechId"/>
+            <log level="info" message="Updating phoneContactMechId is ${parameters.phoneContactMechId}"></log>
+            <call-service service-name="updatePartyTelecomNumber" in-map-name="phoneContext">
+                <result-to-field result-name="contactMechId" field-name="parameters.phoneContactMechId"/>
+            </call-service> 
+            <log level="info" message="Phone Contact updated phoneContactMechId is ${parameters.phoneContactMechId}"></log>
+        </else>
         </if-empty>
+        <field-to-request field-name="parameters.phoneContactMechId" request-name="phoneContactMechId"/>
     </simple-method>
 
     <simple-method method-name="createUpdateEmailAddress" short-description="Create and update phone number" login-required="false">
         <call-map-processor xml-resource="org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml"
                 processor-name="emailAddress" in-map-name="parameters" out-map-name="emailAddressContext"/>
-        <if-empty field="error_list">
-            <!-- Create Or Update email address -->
-            <set  field="emailAddressContext.partyId" from-field="partyId"/>
-            <set field="emailAddressContext.userLogin" from-field="userLogin"/>
-            <if-empty field="parameters.emailContactMechId">
-                <set field="emailAddressContext.contactMechPurposeTypeId" from-field="parameters.emailContactMechPurposeTypeId"/>
-                <call-service service-name="createPartyEmailAddress" in-map-name="emailAddressContext">
-                    <result-to-field result-name="contactMechId" field-name="parameters.emailContactMechId"/>
-                </call-service>
-                <log level="info" message="Email Contact Created emailContactMechId is ${parameters.emailContactMechId}"></log>
-            <else>
-                <set field="emailAddressContext.contactMechId" from-field="parameters.emailContactMechId"/>
-                <!-- call update Email address -->
-                <call-service service-name="updatePartyEmailAddress" in-map-name="emailAddressContext">
-                    <result-to-field result-name="contactMechId" field-name="parameters.emailContactMechId"/>
-                </call-service> 
-                <log level="info" message="Email Contact updated emailContactMechId is ${parameters.emailContactMechId}"></log>
-            </else>
-            </if-empty>
-            <field-to-request field-name="parameters.emailContactMechId" request-name="emailContactMechId"/>
+        <check-errors/>        
+        <!-- Create Or Update email address -->
+        <set  field="emailAddressContext.partyId" from-field="partyId"/>
+        <set field="emailAddressContext.userLogin" from-field="userLogin"/>
+        <if-empty field="parameters.emailContactMechId">
+            <set field="emailAddressContext.contactMechPurposeTypeId" from-field="parameters.emailContactMechPurposeTypeId"/>
+            <call-service service-name="createPartyEmailAddress" in-map-name="emailAddressContext">
+                <result-to-field result-name="contactMechId" field-name="parameters.emailContactMechId"/>
+            </call-service>
+            <log level="info" message="Email Contact Created emailContactMechId is ${parameters.emailContactMechId}"></log>
+        <else>
+            <set field="emailAddressContext.contactMechId" from-field="parameters.emailContactMechId"/>
+            <!-- call update Email address -->
+            <call-service service-name="updatePartyEmailAddress" in-map-name="emailAddressContext">
+                <result-to-field result-name="contactMechId" field-name="parameters.emailContactMechId"/>
+            </call-service> 
+            <log level="info" message="Email Contact updated emailContactMechId is ${parameters.emailContactMechId}"></log>
+        </else>
         </if-empty>
+        <field-to-request field-name="parameters.emailContactMechId" request-name="emailContactMechId"/>
     </simple-method>
 
     <simple-method method-name="createUpdateShippingAddress" short-description="create and update shipping address" login-required="false">
         <set field="keepAddressBook" from-field="parameters.keepAddressBook" default-value="Y"/>
         <call-map-processor xml-resource="org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml"
             processor-name="shipToAddress" in-map-name="parameters" out-map-name="shipToAddressCtx"/>
-        <if-empty field="error_list">
-            <set field="shipToAddressCtx.partyId" from-field="partyId"/>
-            <set field="shipToAddressCtx.contactMechPurposeTypeId" value="SHIPPING_LOCATION"/>
-            <if-empty field="parameters.shipToContactMechId">
-                <call-service service-name="createPartyPostalAddress" in-map-name="shipToAddressCtx">
-                    <result-to-field result-name="contactMechId" field-name="parameters.shipToContactMechId"/>
-                </call-service>
-                <log level="info" message="Shipping address created with contactMechId ${parameters.shipToContactMechId}"/>
-            <else>
-                <if-compare field="keepAddressBook" operator="equals" value="Y">
+        <check-errors/>
+        <set field="shipToAddressCtx.partyId" from-field="partyId"/>
+        <set field="shipToAddressCtx.contactMechPurposeTypeId" value="SHIPPING_LOCATION"/>
+        <if-empty field="parameters.shipToContactMechId">
+            <call-service service-name="createPartyPostalAddress" in-map-name="shipToAddressCtx">
+                <result-to-field result-name="contactMechId" field-name="parameters.shipToContactMechId"/>
+            </call-service>
+            <log level="info" message="Shipping address created with contactMechId ${parameters.shipToContactMechId}"/>
+        <else>
+            <if-compare field="keepAddressBook" operator="equals" value="Y">
+                <make-value entity-name="PostalAddress" value-name="newValue"/>
+                <set-pk-fields value-name="newValue" map-name="shipToAddressCtx"/>
+                <find-by-primary-key entity-name="PostalAddress" map-name="newValue" value-name="oldValue"/>
+                <set-nonpk-fields map-name="shipToAddressCtx" value-name="newValue"/>
+                <if-compare-field field="oldValue" to-field="newValue" operator="not-equals" type="Object">
+                    <call-service service-name="createPartyPostalAddress" in-map-name="shipToAddressCtx">
+                        <result-to-field result-name="contactMechId" field-name="parameters.shipToContactMechId"/>
+                    </call-service>                         
+                </if-compare-field>              
+            </if-compare>
+            <if-compare field="keepAddressBook" operator="equals" value="N">
+                <if-compare-field field="parameters.shipToContactMechId" operator="equals" to-field="parameters.billToContactMechId">
                     <make-value entity-name="PostalAddress" value-name="newValue"/>
                     <set-pk-fields value-name="newValue" map-name="shipToAddressCtx"/>
                     <find-by-primary-key entity-name="PostalAddress" map-name="newValue" value-name="oldValue"/>
                     <set-nonpk-fields map-name="shipToAddressCtx" value-name="newValue"/>
-                    <if-compare-field field="oldValue" to-field="newValue" operator="not-equals" type="Object">
+                    <if-compare-field field="oldValue" to-field="newValue" operator="not-equals" type="Object"> 
+                        <entity-and entity-name="PartyContactMechPurpose" list-name="pcmpList" filter-by-date="true">
+                            <field-map field-name="contactMechId" env-name="parameters.shipToContactMechId"/>
+                            <field-map field-name="partyId" env-name="partyId"/>
+                            <field-map field-name="contactMechPurposeTypeId" value="SHIPPING_LOCATION"/>
+                        </entity-and>
+                        <first-from-list list-name="pcmpList" entry-name="pcmp"/>
+                        <if-not-empty field="pcmp">
+                            <set-service-fields service-name="deletePartyContactMechPurposeIfExists" map-name="pcmp" to-map-name="serviceInMap"/>
+                            <call-service service-name="deletePartyContactMechPurposeIfExists" in-map-name="serviceInMap"/>
+                        </if-not-empty>
                         <call-service service-name="createPartyPostalAddress" in-map-name="shipToAddressCtx">
                             <result-to-field result-name="contactMechId" field-name="parameters.shipToContactMechId"/>
-                        </call-service>                         
-                    </if-compare-field>              
-                </if-compare>
-                <if-compare field="keepAddressBook" operator="equals" value="N">
-                    <if-compare-field field="parameters.shipToContactMechId" operator="equals" to-field="parameters.billToContactMechId">
-                        <make-value entity-name="PostalAddress" value-name="newValue"/>
-                        <set-pk-fields value-name="newValue" map-name="shipToAddressCtx"/>
-                        <find-by-primary-key entity-name="PostalAddress" map-name="newValue" value-name="oldValue"/>
-                        <set-nonpk-fields map-name="shipToAddressCtx" value-name="newValue"/>
-                        <if-compare-field field="oldValue" to-field="newValue" operator="not-equals" type="Object"> 
-                            <entity-and entity-name="PartyContactMechPurpose" list-name="pcmpList" filter-by-date="true">
-                                <field-map field-name="contactMechId" env-name="parameters.shipToContactMechId"/>
-                                <field-map field-name="partyId" env-name="partyId"/>
-                                <field-map field-name="contactMechPurposeTypeId" value="SHIPPING_LOCATION"/>
-                            </entity-and>
-                            <first-from-list list-name="pcmpList" entry-name="pcmp"/>
-                            <if-not-empty field="pcmp">
-                                <set-service-fields service-name="deletePartyContactMechPurposeIfExists" map-name="pcmp" to-map-name="serviceInMap"/>
-                                <call-service service-name="deletePartyContactMechPurposeIfExists" in-map-name="serviceInMap"/>
-                            </if-not-empty>
-                            <call-service service-name="createPartyPostalAddress" in-map-name="shipToAddressCtx">
-                                <result-to-field result-name="contactMechId" field-name="parameters.shipToContactMechId"/>
-                            </call-service>
-                            <log level="info" message="Shipping address updated with contactMechId ${parameters.shipToContactMechId}"/>
-                        </if-compare-field>
-                    <else>
-                        <call-service service-name="updatePartyPostalAddress" in-map-name="shipToAddressCtx">
-                            <result-to-field result-name="contactMechId" field-name="parameters.shipToContactMechId"/>
                         </call-service>
                         <log level="info" message="Shipping address updated with contactMechId ${parameters.shipToContactMechId}"/>
-                    </else>
                     </if-compare-field>
-                </if-compare>
-            </else>
-            </if-empty>
-            <field-to-request field-name="parameters.shipToContactMechId" request-name="shipToContactMechId"/>
+                <else>
+                    <call-service service-name="updatePartyPostalAddress" in-map-name="shipToAddressCtx">
+                        <result-to-field result-name="contactMechId" field-name="parameters.shipToContactMechId"/>
+                    </call-service>
+                    <log level="info" message="Shipping address updated with contactMechId ${parameters.shipToContactMechId}"/>
+                </else>
+                </if-compare-field>
+            </if-compare>
+        </else>
         </if-empty>
+        <field-to-request field-name="parameters.shipToContactMechId" request-name="shipToContactMechId"/>
     </simple-method>
 
     <simple-method method-name="getShipOptions" short-description="Get shipping options" login-required="false">
@@ -1250,7 +1242,6 @@
 
         <call-simple-method method-name="createUpdateBillingAddress"/>
         <call-simple-method method-name="createUpdateCreditCard"/>
-        <check-errors/>
         <!--============== Set Payment Method ================-->
         <set field="paymentMethodId" from-field="parameters.paymentMethodId"/>
         <set field="cardSecurityCode" from-field="parameters.cardSecurityCode"/>
@@ -1271,81 +1262,80 @@
             <call-map-processor xml-resource="org/ofbiz/ecommerce/customer/CheckoutMapProcs.xml"
                 processor-name="billToAddress" in-map-name="parameters" out-map-name="billToAddressCtx"/>
         </if-compare>
-        <if-empty field="error_list">
-            <set field="billToAddressCtx.contactMechPurposeTypeId" value="BILLING_LOCATION"/>
-            <set field="billToAddressCtx.partyId" from-field="partyId"/>
-    
-            <if-compare field="parameters.useShippingAddressForBilling" operator="equals" value="Y">
-                <if-empty field="parameters.billToContactMechId">
-                    <set-service-fields service-name="createPartyContactMechPurpose" map-name="billToAddressCtx" to-map-name="serviceInMap"/>
+        <check-errors/>
+        <set field="billToAddressCtx.contactMechPurposeTypeId" value="BILLING_LOCATION"/>
+        <set field="billToAddressCtx.partyId" from-field="partyId"/>
+
+        <if-compare field="parameters.useShippingAddressForBilling" operator="equals" value="Y">
+            <if-empty field="parameters.billToContactMechId">
+                <set-service-fields service-name="createPartyContactMechPurpose" map-name="billToAddressCtx" to-map-name="serviceInMap"/>
+                <set field="serviceInMap.contactMechId" from-field="parameters.shipToContactMechId"/>
+                <call-service service-name="createPartyContactMechPurpose" in-map-name="serviceInMap"/>
+            <else>
+                <if-compare-field field="parameters.shipToContactMechId" operator="not-equals" to-field="parameters.billToContactMechId">
+                    <entity-and entity-name="PartyContactMechPurpose" list-name="pcmpList" filter-by-date="true">
+                        <field-map field-name="contactMechId" env-name="parameters.billToContactMechId"/>
+                        <field-map field-name="partyId" env-name="partyId"/>
+                        <field-map field-name="contactMechPurposeTypeId" value="BILLING_LOCATION"/>
+                    </entity-and>
+                    <first-from-list entry-name="pcmp" list-name="pcmpList"/>
+                    <set-service-fields service-name="deletePartyContactMechPurposeIfExists" map-name="pcmp" to-map-name="serviceInMap"/>
+                    <call-service service-name="deletePartyContactMechPurposeIfExists" in-map-name="serviceInMap"/>
+                    <clear-field field-name="serviceInMap"/>
+                    
+                    <set-service-fields service-name="deletePartyContactMech" map-name="pcmp" to-map-name="serviceInMap"/>
+                    <call-service service-name="deletePartyContactMech" in-map-name="serviceInMap"/>
+                    <clear-field field-name="serviceInMap"/>
+                    
+                    <set-service-fields service-name="createPartyContactMechPurpose" map-name="pcmp" to-map-name="serviceInMap"/>
                     <set field="serviceInMap.contactMechId" from-field="parameters.shipToContactMechId"/>
-                    <call-service service-name="createPartyContactMechPurpose" in-map-name="serviceInMap"/>
-                <else>
-                    <if-compare-field field="parameters.shipToContactMechId" operator="not-equals" to-field="parameters.billToContactMechId">
-                        <entity-and entity-name="PartyContactMechPurpose" list-name="pcmpList" filter-by-date="true">
-                            <field-map field-name="contactMechId" env-name="parameters.billToContactMechId"/>
-                            <field-map field-name="partyId" env-name="partyId"/>
-                            <field-map field-name="contactMechPurposeTypeId" value="BILLING_LOCATION"/>
-                        </entity-and>
-                        <first-from-list entry-name="pcmp" list-name="pcmpList"/>
-                        <set-service-fields service-name="deletePartyContactMechPurposeIfExists" map-name="pcmp" to-map-name="serviceInMap"/>
-                        <call-service service-name="deletePartyContactMechPurposeIfExists" in-map-name="serviceInMap"/>
-                        <clear-field field-name="serviceInMap"/>
-                        
-                        <set-service-fields service-name="deletePartyContactMech" map-name="pcmp" to-map-name="serviceInMap"/>
-                        <call-service service-name="deletePartyContactMech" in-map-name="serviceInMap"/>
-                        <clear-field field-name="serviceInMap"/>
-                        
-                        <set-service-fields service-name="createPartyContactMechPurpose" map-name="pcmp" to-map-name="serviceInMap"/>
-                        <set field="serviceInMap.contactMechId" from-field="parameters.shipToContactMechId"/>
-                        <call-service service-name="createPartyContactMechPurpose" in-map-name="serviceInMap">
-                        </call-service>
-                        <log level="info" message="Billing address updated with contactMechId ${parameters.billToContactMechId}"/>
-                    </if-compare-field>
-                </else>
-                </if-empty>
-                <set field="parameters.billToContactMechId" from-field="parameters.shipToContactMechId"/>
-            </if-compare>
-            <if-compare field="parameters.useShippingAddressForBilling" operator="not-equals" value="Y">
-                <if-empty field="parameters.billToContactMechId">
+                    <call-service service-name="createPartyContactMechPurpose" in-map-name="serviceInMap">
+                    </call-service>
+                    <log level="info" message="Billing address updated with contactMechId ${parameters.billToContactMechId}"/>
+                </if-compare-field>
+            </else>
+            </if-empty>
+            <set field="parameters.billToContactMechId" from-field="parameters.shipToContactMechId"/>
+        </if-compare>
+        <if-compare field="parameters.useShippingAddressForBilling" operator="not-equals" value="Y">
+            <if-empty field="parameters.billToContactMechId">
+                <call-service service-name="createPartyPostalAddress" in-map-name="billToAddressCtx">
+                    <result-to-field result-name="contactMechId" field-name="parameters.billToContactMechId"/>
+                </call-service>
+                <log level="info" message="Billing address created with contactmechId ${parameters.billToContactMechId}"/>
+            <else>
+                <if-compare-field field="parameters.shipToContactMechId" operator="equals" to-field="parameters.billToContactMechId">
+                    <entity-and entity-name="PartyContactMechPurpose" list-name="pcmpList" filter-by-date="true">
+                        <field-map field-name="contactMechId" env-name="parameters.billToContactMechId"/>
+                        <field-map field-name="partyId" env-name="partyId"/>
+                        <field-map field-name="contactMechPurposeTypeId" value="BILLING_LOCATION"/>
+                    </entity-and>
+                    <first-from-list entry-name="pcmp" list-name="pcmpList"/>
+                
+                    <set-service-fields service-name="deletePartyContactMechPurposeIfExists" map-name="pcmp" to-map-name="serviceInMap"/>
+                    <call-service service-name="deletePartyContactMechPurposeIfExists" in-map-name="serviceInMap"/>
+                    
                     <call-service service-name="createPartyPostalAddress" in-map-name="billToAddressCtx">
                         <result-to-field result-name="contactMechId" field-name="parameters.billToContactMechId"/>
                     </call-service>
-                    <log level="info" message="Billing address created with contactmechId ${parameters.billToContactMechId}"/>
+                    <log level="info" message="Billing address updated with contactMechId ${parameters.billToContactMechId}"/>
                 <else>
-                    <if-compare-field field="parameters.shipToContactMechId" operator="equals" to-field="parameters.billToContactMechId">
-                        <entity-and entity-name="PartyContactMechPurpose" list-name="pcmpList" filter-by-date="true">
-                            <field-map field-name="contactMechId" env-name="parameters.billToContactMechId"/>
-                            <field-map field-name="partyId" env-name="partyId"/>
-                            <field-map field-name="contactMechPurposeTypeId" value="BILLING_LOCATION"/>
-                        </entity-and>
-                        <first-from-list entry-name="pcmp" list-name="pcmpList"/>
-                    
-                        <set-service-fields service-name="deletePartyContactMechPurposeIfExists" map-name="pcmp" to-map-name="serviceInMap"/>
-                        <call-service service-name="deletePartyContactMechPurposeIfExists" in-map-name="serviceInMap"/>
-                        
-                        <call-service service-name="createPartyPostalAddress" in-map-name="billToAddressCtx">
-                            <result-to-field result-name="contactMechId" field-name="parameters.billToContactMechId"/>
-                        </call-service>
-                        <log level="info" message="Billing address updated with contactMechId ${parameters.billToContactMechId}"/>
-                    <else>
-                        <call-service service-name="updatePartyPostalAddress" in-map-name="billToAddressCtx">
-                            <result-to-field result-name="contactMechId" field-name="parameters.billToContactMechId"/>
-                        </call-service>
-                        <log level="info" message="Billing Postal Address created billToContactMechId is ${parameters.billToContactMechId}"/>
-                    </else>
-                    </if-compare-field>
+                    <call-service service-name="updatePartyPostalAddress" in-map-name="billToAddressCtx">
+                        <result-to-field result-name="contactMechId" field-name="parameters.billToContactMechId"/>
+                    </call-service>
+                    <log level="info" message="Billing Postal Address created billToContactMechId is ${parameters.billToContactMechId}"/>
                 </else>
-                </if-empty>
-            </if-compare>
-            <field-to-request field-name="parameters.billToContactMechId" request-name="billToContactMechId"/>
-        </if-empty>
+                </if-compare-field>
+            </else>
+            </if-empty>
+        </if-compare>
+        <field-to-request field-name="parameters.billToContactMechId" request-name="billToContactMechId"/>
     </simple-method>
 
     <simple-method method-name="createUpdateCreditCard" short-description="create and update credit card">
         <call-map-processor xml-resource="org/ofbiz/accounting/payment/PaymentMapProcs.xml"
                 processor-name="createCreditCard" in-map-name="parameters" out-map-name="creditCardContext"/>
-        <if-empty field="error_list">
+        <check-errors/>        
             <set field="creditCardContext.partyId" from-field="partyId"/>
             <set field="creditCardContext.contactMechId" from-field="parameters.billToContactMechId"/>
             <if-empty field="parameters.paymentMethodId">
@@ -1368,7 +1358,5 @@
             </if-empty>
             <set field="paymentMethodId" from-field="parameters.paymentMethodId"/>
             <field-to-request field-name="parameters.paymentMethodId" request-name="paymentMethodId"/>
-        </if-empty>
     </simple-method>
-
-</simple-methods>
+</simple-methods>
\ No newline at end of file