<?xml version="1.0" encoding="UTF-8" ?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://ofbiz.apache.org/Simple-Method" xsi:schemaLocation="http://ofbiz.apache.org/Simple-Method http://ofbiz.apache.org/dtds/simple-methods.xsd">
    <simple-method method-name="createCustomer" short-description="Create Customer" login-required="false">
        <set field="require_email" value="true"/>
        <set field="require_phone" value="false"/>
        <set field="require_login" value="true"/>
        <!-- this parameter must be set to true or the createUser method below will use a default password instead of the one entered by user -->
        <set field="create_allow_password" value="true"/>
        <set field="parameters.roleTypeId" value="CUSTOMER"/>
        <call-simple-method method-name="createUser"/>
    </simple-method>
    <simple-method method-name="createProspect" short-description="Create Prospect" login-required="false">
        <set field="require_email" value="true"/>
        <set field="require_phone" value="false"/>
        <set field="require_login" value="false"/>
        <set field="create_allow_password" value="true"/>

        <property-to-field resource="security" property="username.lowercase" default="false" field="username_lowercase"/>
        <property-to-field resource="security" property="password.lowercase" default="false" field="password_lowercase"/>

        <now-timestamp field="nowStamp"/>
        <set field="parameters.roleTypeId" value="PROSPECT"/>
        <call-simple-method method-name="createUser"/>
    </simple-method>

    <simple-method method-name="createEmployee" short-description="Create Employee" login-required="false">
        <set field="require_email" value="false"/>
        <set field="require_phone" value="true"/>
        <set field="require_login" value="true"/>
        <set field="create_allow_password" value="true"/>

        <property-to-field resource="security" property="username.lowercase" default="false" field="username_lowercase"/>
        <property-to-field resource="security" property="password.lowercase" default="false" field="password_lowercase"/>

        <now-timestamp field="nowStamp"/>
        <set field="parameters.roleTypeId" value="EMPLOYEE"/>
        <call-simple-method method-name="createUser"/>
    </simple-method>

    <simple-method method-name="createUser" short-description="Create User" login-required="false">
        <property-to-field resource="security" property="username.lowercase" default="false" field="username_lowercase"/>
        <property-to-field resource="security" property="password.lowercase" default="false" field="password_lowercase"/>
        <set field="default_user_password" value="ungssblepsswd"/>
        <now-timestamp field="nowStamp"/>

        <if-compare field="create_allow_password" operator="not-equals" value="true">
            <set field="parameters.PASSWORD" from-field="default_user_password"/>
            <set field="parameters.CONFIRM_PASSWORD" from-field="default_user_password"/>
            <set field="parameters.PASSWORD_HINT" value="No hint set, accout not yet enabled"/>
        </if-compare>

        <!-- if username and/or password should be lowercased, do that now -->
        <if-compare field="username_lowercase" operator="equals" value="true">
            <call-object-method obj-field="parameters.USERNAME" method-name="toLowerCase" ret-field="parameters.USERNAME"/>
        </if-compare>
        <if-compare field="password_lowercase" operator="equals" value="true">
            <call-object-method obj-field="parameters.PASSWORD" method-name="toLowerCase" ret-field="parameters.PASSWORD"/>
            <call-object-method obj-field="parameters.CONFIRM_PASSWORD" method-name="toLowerCase" ret-field="parameters.CONFIRM_PASSWORD"/>
        </if-compare>

        <!-- Create the UserLogin Record -->
        <if-not-empty field="parameters.USERNAME">
            <call-map-processor in-map-name="parameters" out-map-name="userLoginContext">
                <simple-map-processor name="newUserLogin">
                    <process field="USERNAME"><copy to-field="userLoginId"/><not-empty><fail-property resource="PartyUiLabels" property="PartyUserNameMissing"/></not-empty></process>
                    <process field="PASSWORD"><copy to-field="currentPassword"/><not-empty><fail-property resource="PartyUiLabels" property="PartyPasswordMissing"/></not-empty></process>
                    <process field="CONFIRM_PASSWORD">
                        <compare-field operator="equals" field="PASSWORD"><fail-property resource="PartyUiLabels" property="PartyPasswordMatchError"/></compare-field>
                        <!-- This is checked below in the checkNewPassword method in the block: <not-empty><fail-property resource="PartyUiLabels" property="PartyEnterPasswordTwice"/></not-empty> -->
                        <copy to-field="currentPasswordVerify"/>
                    </process>
                    <process field="PASSWORD_HINT"><copy to-field="passwordHint"/></process>
                </simple-map-processor>
            </call-map-processor>
            <if-not-empty field="userLoginContext.userLoginId">
                <set field="userLoginExistsMap.userLoginId"  from-field="userLoginContext.userLoginId"/>
                <find-by-primary-key entity-name="UserLogin" map="userLoginExistsMap" value-field="existingUserLogin"/>
                <if-not-empty field="existingUserLogin">
                    <property-to-field field="tempErrorMessage" property="PartyUserNameInUse" resource="PartyUiLabels"/>
                    <field-to-list field="tempErrorMessage" list="error_list"/>
                </if-not-empty>
            </if-not-empty>

            <make-value entity-name="UserLogin" value-field="newUserLogin"/>
            <set field="newUserLogin.userLoginId" from-field="userLoginContext.userLoginId"/>
            <set field="newUserLogin.currentPassword" from-field="userLoginContext.currentPassword"/>
            <set field="newUserLogin.passwordHint" from-field="userLoginContext.passwordHint"/>

            <!-- Check the password, etc for validity -->
            <script>groovy:
                String password = (String) userLoginContext.get("currentPassword");
                String confirmPassword = (String) userLoginContext.get("currentPasswordVerify");
                String passwordHint = (String) userLoginContext.get("passwordHint");
                org.apache.ofbiz.common.login.LoginServices.checkNewPassword(newUserLogin, null, password, confirmPassword, passwordHint, error_list, true, locale);
            </script>
        <else>
            <if-compare field="require_login" operator="equals" value="true">
                <add-error><fail-property resource="PartyUiLabels" property="PartyUserNameMissing"/></add-error>
                <check-errors/>
            </if-compare>
        </else>
        </if-not-empty>

        <!-- Create the Person -->
        <call-map-processor in-map-name="parameters" out-map-name="personContext">
            <simple-map-processor name="newPerson">
            	<process field="USER_PARTY_ID"><copy to-field="partyId"/></process>
                <process field="USER_FIRST_NAME"><copy to-field="firstName"/><not-empty><fail-property resource="PartyUiLabels" property="PartyFirstNameMissing"/></not-empty></process>
                <process field="USER_MIDDLE_NAME"><copy to-field="middleName"/></process>
                <process field="USER_LAST_NAME"><copy to-field="lastName"/><not-empty><fail-property resource="PartyUiLabels" property="PartyLastNameMissingError"/></not-empty></process>
                <process field="USER_TITLE"><copy to-field="personalTitle"/></process>
                <process field="USER_SUFFIX"><copy to-field="suffix"/></process>
                <process field="USER_BIRTHDATE"><convert type="Date" to-field="birthDate"><fail-property resource="PartyUiLabels" property="PartyBirthDateMissingError"/></convert></process>
                <process field="USER_DECEASEDDATE"><convert type="Date" to-field="deceasedDate"><fail-property resource="PartyUiLabels" property="PartyDeceasedDateMissingError"/></convert></process>
                <process field="USER_GENDER"><copy to-field="gender"/></process>
            </simple-map-processor>
        </call-map-processor>

        <!-- Create the PartyRole -->
        <set field="partyRoleContext.roleTypeId" from-field="parameters.roleTypeId"/>

        <!-- Create the Postal Address -->
        <if-compare field="parameters.USE_ADDRESS" operator="equals" value="false">
            <!-- address not used, do nothing -->
            <else>
                <call-map-processor in-map-name="parameters" out-map-name="addressContext">
                    <simple-map-processor name="newPerson">
                        <make-in-string field="fullName">
                            <in-field field="USER_FIRST_NAME"/><constant> </constant>
                            <in-field field="USER_MIDDLE_NAME"/><constant> </constant>
                            <in-field field="USER_LAST_NAME"/>
                        </make-in-string>
                        <process field="roleTypeId"><copy/></process>
                        <process field="fullName"><copy to-field="toName"/></process>
                        <process field="USER_ADDRESS1"><copy to-field="address1"/><not-empty><fail-property resource="PartyUiLabels" property="PartyAddressLine1Missing"/></not-empty></process>
                        <process field="USER_ADDRESS2"><copy to-field="address2"/></process>
                        <process field="USER_CITY"><copy to-field="city"/><not-empty><fail-property resource="PartyUiLabels" property="PartyCityMissing"/></not-empty></process>
                        <process field="USER_STATE"><copy to-field="stateProvinceGeoId"/></process>
                        <process field="USER_POSTAL_CODE"><copy to-field="postalCode"/><not-empty><fail-property resource="PartyUiLabels" property="PartyPostalCodeMissing"/></not-empty></process>
                        <process field="USER_COUNTRY"><copy to-field="countryGeoId"/><not-empty><fail-property resource="PartyUiLabels" property="PartyCountryMissing"/></not-empty></process>
                        <process field="USER_ADDRESS_ALLOW_SOL"><copy to-field="allowSolicitation"/></process>
                    </simple-map-processor>
                </call-map-processor>
                <if-compare value="USA" operator="equals" field="parameters.USER_COUNTRY">
                    <if-empty field="parameters.USER_STATE">
                        <property-to-field field="tempErrorMessage" resource="PartyUiLabels" property="PartyStateInUsMissing"/>
                        <field-to-list field="tempErrorMessage" list="error_list"/>
                    </if-empty>
                </if-compare>
                <if-compare value="CAN" operator="equals" field="parameters.USER_COUNTRY">
                    <if-empty field="parameters.USER_STATE">
                        <property-to-field field="tempErrorMessage" resource="PartyUiLabels" property="PartyStateInCanadaMissing"/>
                        <field-to-list field="tempErrorMessage" list="error_list"/>
                    </if-empty>
                </if-compare>
            </else>
        </if-compare>

        <!-- Create the Home Phone -->
        <if-not-empty field="parameters.USER_HOME_CONTACT">
            <call-map-processor in-map-name="parameters" out-map-name="homePhoneContext">
                <simple-map-processor name="newTelecomNumber">
                    <process field="roleTypeId"><copy/></process>
                    <process field="USER_HOME_COUNTRY"><copy to-field="countryCode"/></process>
                    <process field="USER_HOME_AREA"><copy to-field="areaCode"/></process>
                    <process field="USER_HOME_CONTACT"><copy to-field="contactNumber"/></process>
                    <process field="USER_HOME_EXT"><copy to-field="extension"/></process>
                    <process field="USER_HOME_ALLOW_SOL"><copy to-field="allowSolicitation"/></process>
                </simple-map-processor>
            </call-map-processor>
        </if-not-empty>

        <!-- Create the Work Phone -->
        <if-not-empty field="parameters.USER_WORK_CONTACT">
            <call-map-processor in-map-name="parameters" out-map-name="workPhoneContext">
                <simple-map-processor name="newTelecomNumber">
                    <process field="roleTypeId"><copy/></process>
                    <process field="USER_WORK_COUNTRY"><copy to-field="countryCode"/></process>
                    <process field="USER_WORK_AREA"><copy to-field="areaCode"/></process>
                    <process field="USER_WORK_CONTACT"><copy to-field="contactNumber"/></process>
                    <process field="USER_WORK_EXT"><copy to-field="extension"/></process>
                    <process field="USER_WORK_ALLOW_SOL"><copy to-field="allowSolicitation"/></process>
                </simple-map-processor>
            </call-map-processor>
        </if-not-empty>

        <!-- Create the Fax Phone -->
        <if-not-empty field="parameters.USER_FAX_CONTACT">
            <call-map-processor in-map-name="parameters" out-map-name="faxPhoneContext">
                <simple-map-processor name="newTelecomNumber">
                    <process field="roleTypeId"><copy/></process>
                    <process field="USER_FAX_COUNTRY"><copy to-field="countryCode"/></process>
                    <process field="USER_FAX_AREA"><copy to-field="areaCode"/></process>
                    <process field="USER_FAX_CONTACT"><copy to-field="contactNumber"/></process>
                    <process field="USER_FAX_EXT"><copy to-field="extension"/></process>
                    <process field="USER_FAX_ALLOW_SOL"><copy to-field="allowSolicitation"/></process>
                </simple-map-processor>
            </call-map-processor>
        </if-not-empty>

        <!-- Create the Mobile Phone -->
        <if-not-empty field="parameters.USER_MOBILE_CONTACT">
            <call-map-processor in-map-name="parameters" out-map-name="mobilePhoneContext">
                <simple-map-processor name="newTelecomNumber">
                    <process field="roleTypeId"><copy/></process>
                    <process field="USER_MOBILE_COUNTRY"><copy to-field="countryCode"/></process>
                    <process field="USER_MOBILE_AREA"><copy to-field="areaCode"/></process>
                    <process field="USER_MOBILE_CONTACT"><copy to-field="contactNumber"/></process>
                    <process field="USER_MOBILE_EXT"><copy to-field="extension"/></process>
                    <process field="USER_MOBILE_ALLOW_SOL"><copy to-field="allowSolicitation"/></process>
                </simple-map-processor>
            </call-map-processor>
        </if-not-empty>

        <!-- Check for required Phone -->
        <if-compare field="require_phone" operator="equals" value="true">
            <if-empty field="parameters.USER_HOME_CONTACT">
                <if-empty field="parameters.USER_WORK_CONTACT">
                    <if-empty field="parameters.USER_MOBILE_CONTACT">
                        <call-map-processor in-map-name="parameters" out-map-name="dummymap">
                            <simple-map-processor name="checkRequiredPhone">
                                <process field="REQUIRED_PHONE">
                                    <not-empty><fail-property resource="PartyUiLabels" property="PartyContactTelephoneMissing"/></not-empty>
                                </process>
                            </simple-map-processor>
                        </call-map-processor>
                    </if-empty>
                </if-empty>
            </if-empty>
        </if-compare>

        <!-- Create the email address -->
        <call-map-processor in-map-name="parameters" out-map-name="emailContext">
            <simple-map-processor name="newEmail">
                <process field="roleTypeId"><copy/></process>
                <process field="USER_EMAIL"><copy to-field="emailAddress"/></process>
                <process field="USER_EMAIL_ALLOW_SOL"><copy to-field="allowSolicitation"/></process>
            </simple-map-processor>
        </call-map-processor>

        <!-- Check for required E-Mail -->
        <if-compare field="require_email" operator="equals" value="true">
            <if-empty field="emailContext.emailAddress">
                <call-map-processor in-map-name="emailContext" out-map-name="dummymap">
                    <simple-map-processor name="checkRequiredEmail">
                        <process field="emailAddress">
                            <not-empty><fail-property resource="PartyUiLabels" property="PartyEmailAddressMissing"/></not-empty>
                        </process>
                    </simple-map-processor>
               </call-map-processor>
           </if-empty>
           <if-not-empty field="emailContext.emailAddress">
                <call-map-processor in-map-name="emailContext" out-map-name="dummymap">
                    <simple-map-processor name="checkRequiredEmailFormat">
                        <process field="emailAddress">
                            <validate-method method="isEmail">
                                <fail-property resource="PartyUiLabels" property="PartyEmailAddressNotFormattedCorrectly"/>
                            </validate-method>
                        </process>
                    </simple-map-processor>
               </call-map-processor>
           </if-not-empty>
        </if-compare>

        <!-- create the PartyDataSource entry to track where this info came from... -->
        <make-value entity-name="PartyDataSource" value-field="partyDataSource"/>
        <set field="partyDataSource.dataSourceId" value="ECOMMERCE_SITE"/>
        <set field="partyDataSource.fromDate" from-field="nowStamp"/>
        <set field="partyDataSource.isCreate" value="Y"/>
        <!-- get the visit from the session to get the visitId -->
        <session-to-field field="visit"/>
        <set from-field="visit.visitId" field="partyDataSource.visitId"/>

        <!-- now that everything is validated & setup, check to see if there are errors, then call the services -->
        <check-errors/>

        <call-service service-name="createPerson" in-map-name="personContext">
            <result-to-field result-name="partyId" field="tempMap.partyId"/>
        </call-service>

        <!-- now that we have the partyId, put it where it needs to go... -->
        <set field="partyDataSource.partyId" from-field="tempMap.partyId"/>
        <set field="userLoginContext.partyId" from-field="tempMap.partyId"/>
        <set field="personContext.partyId" from-field="tempMap.partyId"/>
        <set field="partyRoleContext.partyId" from-field="tempMap.partyId"/>
        <set field="addressContext.partyId" from-field="tempMap.partyId"/>
        <set field="homePhoneContext.partyId" from-field="tempMap.partyId"/>
        <set field="workPhoneContext.partyId" from-field="tempMap.partyId"/>
        <set field="faxPhoneContext.partyId" from-field="tempMap.partyId"/>
        <set field="mobilePhoneContext.partyId" from-field="tempMap.partyId"/>
        <set field="emailContext.partyId" from-field="tempMap.partyId"/>

        <if-not-empty field="newUserLogin">
            <!-- If password encryption is enabled, encrpyt it now -->
            <set field="delegator" from-field="parameters.delegator" type="Object"/>
            <script>groovy:
                boolean useEncryption = "true".equals(org.apache.ofbiz.entity.util.EntityUtilProperties.getPropertyValue("security", "password.encrypt", delegator));
                if (useEncryption) { newUserLogin.set("currentPassword", org.apache.ofbiz.base.crypto.HashCrypt.getDigestHash((String) newUserLogin.get("currentPassword"))); }
            </script>

            <!-- create the UserLogin manually to get around ordering and security constraints in the service -->
            <set field="newUserLogin.partyId" from-field="tempMap.partyId"/>
            <create-value value-field="newUserLogin"/>
            <set-current-user-login value-field="newUserLogin"/>
            
            <!-- On successful user creation, create password history record if configured -->
            <call-class-method method-name="getPropertyValue" class-name="org.apache.ofbiz.base.util.UtilProperties" ret-field="autoPasswordChangeEnabled">
                <string value="security"/>
                <string value="user.auto.change.password.enable"/>
            </call-class-method>
            <if-compare-field field="autoPasswordChangeEnabled" operator="equals" to-field="true">
                <call-class-method method-name="createUserLoginPasswordHistory" class-name="org.apache.ofbiz.common.login.LoginServices">
                    <field field="delegator" type="org.apache.ofbiz.entity.Delegator"/>
                    <string value="${newUserLogin.userLoginId}"/>
                    <string value="${newUserLogin.currentPassword}"/>
                </call-class-method>
            </if-compare-field>
        </if-not-empty>

        <create-value value-field="partyDataSource"/>
        <call-service service-name="createPartyRole" in-map-name="partyRoleContext"/>

        <!-- shipping address -->
        <if-compare field="parameters.USE_ADDRESS" operator="equals" value="false">
            <!-- address not used, do nothing -->
            <else>
                <call-service service-name="createPartyPostalAddress" in-map-name="addressContext">
                    <result-to-field result-name="contactMechId" field="addressPurposeContext.contactMechId"/>
                </call-service>
                <set field="addressPurposeContext.partyId" from-field="tempMap.partyId"/>
                <!-- create the shipping location -->
                <set field="addressPurposeContext.contactMechPurposeTypeId" value="SHIPPING_LOCATION"/>
                <call-service service-name="createPartyContactMechPurpose" in-map-name="addressPurposeContext"/>
                <!-- also consider this address the general correspondence address -->
                <set field="addressPurposeContext.contactMechPurposeTypeId" value="GENERAL_LOCATION"/>
                <call-service service-name="createPartyContactMechPurpose" in-map-name="addressPurposeContext"/>
            </else>
        </if-compare>

        <!-- home phone -->
        <if-not-empty field="parameters.USER_HOME_CONTACT">
            <call-service service-name="createPartyTelecomNumber" in-map-name="homePhoneContext">
                <result-to-field result-name="contactMechId" field="homePhonePurposeContext.contactMechId"/>
            </call-service>
            <set field="homePhonePurposeContext.partyId" from-field="tempMap.partyId"/>
            <set field="homePhonePurposeContext.contactMechPurposeTypeId" value="PHONE_HOME"/>
            <call-service service-name="createPartyContactMechPurpose" in-map-name="homePhonePurposeContext"/>
        </if-not-empty>

        <!-- work phone -->
        <if-not-empty field="parameters.USER_WORK_CONTACT">
            <call-service service-name="createPartyTelecomNumber" in-map-name="workPhoneContext">
                <result-to-field result-name="contactMechId" field="workPhonePurposeContext.contactMechId"/>
            </call-service>
            <set field="workPhonePurposeContext.partyId" from-field="tempMap.partyId"/>
            <set field="workPhonePurposeContext.contactMechPurposeTypeId" value="PHONE_WORK"/>
            <call-service service-name="createPartyContactMechPurpose" in-map-name="workPhonePurposeContext"/>
        </if-not-empty>

        <!-- fax phone -->
        <if-not-empty field="parameters.USER_FAX_CONTACT">
            <call-service service-name="createPartyTelecomNumber" in-map-name="faxPhoneContext">
                <result-to-field result-name="contactMechId" field="faxPhonePurposeContext.contactMechId"/>
            </call-service>
            <set field="faxPhonePurposeContext.partyId" from-field="tempMap.partyId"/>
            <set field="faxPhonePurposeContext.contactMechPurposeTypeId" value="FAX_NUMBER"/>
            <call-service service-name="createPartyContactMechPurpose" in-map-name="faxPhonePurposeContext"/>
        </if-not-empty>

        <!-- mobile phone -->
        <if-not-empty field="parameters.USER_MOBILE_CONTACT">
            <call-service service-name="createPartyTelecomNumber" in-map-name="mobilePhoneContext">
                <result-to-field result-name="contactMechId" field="mobilePhonePurposeContext.contactMechId"/>
            </call-service>
            <set field="mobilePhonePurposeContext.partyId" from-field="tempMap.partyId"/>
            <set field="mobilePhonePurposeContext.contactMechPurposeTypeId" value="PHONE_MOBILE"/>
            <call-service service-name="createPartyContactMechPurpose" in-map-name="mobilePhonePurposeContext"/>
        </if-not-empty>

        <!-- email address -->
        <if-not-empty field="parameters.USER_EMAIL">
            <call-service service-name="createPartyEmailAddress" in-map-name="emailContext">
                <result-to-field result-name="contactMechId" field="emailPurposeContext.contactMechId"/>
            </call-service>
            <set field="emailPurposeContext.partyId" from-field="tempMap.partyId"/>
            <set field="emailPurposeContext.contactMechPurposeTypeId" value="PRIMARY_EMAIL"/>
            <call-service service-name="createPartyContactMechPurpose" in-map-name="emailPurposeContext"/>
        </if-not-empty>
        <!-- set the partyId in the request -->
        <field-to-request field="tempMap.partyId" request-name="partyId"/>

        <!-- Associated to Product Store -->
        <entity-one entity-name="UserLogin" value-field="userLogin">
            <field-map field-name="userLoginId" value="system"/>
        </entity-one>
        <set field="createProductStoreRoleMap.userLogin" from-field="userLogin"/>
        <set field="createProductStoreRoleMap.partyId" from-field="tempMap.partyId"/>
        <set field="createProductStoreRoleMap.roleTypeId" from-field="parameters.roleTypeId"/>
        <set field="createProductStoreRoleMap.productStoreId" from-field="parameters.PRODUCT_STORE_ID"/>
        <call-service service-name="createProductStoreRole" in-map-name="createProductStoreRoleMap"/>

        <if-not-empty field="parameters.securityAnswer">
            <set field="createULSQContext.userLoginId" from-field="parameters.USERNAME"/>
            <set field="createULSQContext.questionEnumId" from-field="parameters.securityQuestion"/>
            <set field="createULSQContext.securityAnswer" from-field="parameters.securityAnswer"/>
            <call-service service-name="createUserLoginSecurityQuestion" in-map-name="createULSQContext" />
        </if-not-empty>

        <!--send New User Email Notification-->
        <set field="emailContext.partyId" from-field="partyId"/>
        <set field="emailContext.productStoreId" from-field="parameters.PRODUCT_STORE_ID"/>
        <set-service-fields service-name="sendCreatePartyEmailNotification" map="emailContext" to-map="serviceInMap"/>
        <call-service-asynch service-name="sendCreatePartyEmailNotification" in-map-name="serviceInMap"/>
    </simple-method>

</simple-methods>
