Hi Suraj,

In this commit, we got unintentional '+' character
in applications/party/servicedef/services.xml file which was causing error
on the console.

I've corrected it at f195e68.
-- 
Thanks & Regards
Pawan Verma
ofbiz.apache.org


On Sat, Apr 25, 2020 at 7:07 PM <sur...@apache.org> wrote:

> This is an automated email from the ASF dual-hosted git repository.
>
> surajk pushed a commit to branch trunk
> in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
>
>
> The following commit(s) were added to refs/heads/trunk by this push:
>      new d21bb75  Improved: All the service level error messages for
> missing required field for party component. (OFBIZ-7735) Thanks Ratnesh
> Upadhyay for reporting and Kirti Arora for providing the updated patch.
> d21bb75 is described below
>
> commit d21bb752f0b1e1691f67b3205fbcb84ddaccf28e
> Author: Suraj Khurana <sur...@apache.org>
> AuthorDate: Sat Apr 25 18:50:22 2020 +0530
>
>     Improved: All the service level error messages for missing required
> field for party component.
>     (OFBIZ-7735)
>     Thanks Ratnesh Upadhyay for reporting and Kirti Arora for providing
> the updated patch.
> ---
>  applications/party/config/PartyErrorUiLabels.xml |  72 +++++++
>  applications/party/servicedef/services.xml       | 228
> +++++++++++++++++++----
>  applications/party/servicedef/services_view.xml  |  42 ++++-
>  3 files changed, 297 insertions(+), 45 deletions(-)
>
> diff --git a/applications/party/config/PartyErrorUiLabels.xml
> b/applications/party/config/PartyErrorUiLabels.xml
> index b01c812..86db4ae 100644
> --- a/applications/party/config/PartyErrorUiLabels.xml
> +++ b/applications/party/config/PartyErrorUiLabels.xml
> @@ -53,6 +53,78 @@
>      <property key="PartyRequiredFieldMissingWorkEffortTypeId">
>          <value xml:lang="en">Required Field Missing : WorkEffort Type
> Id.</value>
>      </property>
> +    <property key="PartyRequiredFieldMissingAddress">
> +            <value xml:lang="en">Required Field Missing : Address</value>
> +        </property>
> +    <property key="PartyRequiredFieldMissingChildRoleTypeIdList">
> +        <value xml:lang="en">Required Field Missing : ChildRole Type Id
> List</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingContactMechId">
> +        <value xml:lang="en">Required Field Missing : Contact Mech
> Id</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingContactMechPurposeTypeId">
> +        <value xml:lang="en">Required Field Missing : Contact Mech
> Purpose Type Id</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingContactMechTypeId">
> +        <value xml:lang="en">Required Field Missing : Contact Mech Type
> Id</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingEmailAddress">
> +        <value xml:lang="en">Required Field Missing : Email
> Address</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingFirstName">
> +        <value xml:lang="en">Required Field Missing : First Name</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingLastName">
> +        <value xml:lang="en">Required Field Missing : Last Name</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingLookupResult">
> +        <value xml:lang="en">Required Field Missing : Lookup
> Result</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingNewUserLogin">
> +        <value xml:lang="en">Required Field Missing : New User
> Login</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingOldContactMechId">
> +        <value xml:lang="en">Required Field Missing : Old Contact Mech
> Id</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingOrganizationPartyId">
> +        <value xml:lang="en">Required Field Missing : Organization Party
> Id</value>
> +    </property>
> +    <property
> key="PartyRequiredFieldMissingParentOrganizationPartyIdList">
> +        <value xml:lang="en">Required Field Missing : Organization Party
> Id List</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingPartyId">
> +        <value xml:lang="en">Required Field Missing : Party Id</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingPartyIdFrom">
> +        <value xml:lang="en">Required Field Missing : Party Id
> From</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingPartyIdTo">
> +        <value xml:lang="en">Required Field Missing : Party Id To</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingPartyInvitationId">
> +        <value xml:lang="en">Required Field Missing : Party Invitation
> Id</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingProductStoreId">
> +        <value xml:lang="en">Required Field Missing : Product Store
> Id</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingRelatedPartyIdList">
> +        <value xml:lang="en">Required Field Missing : Related Party Id
> List</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingRoleTypeId">
> +        <value xml:lang="en">Required Field Missing : Role Type Id</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingStatusId">
> +        <value xml:lang="en">Required Field Missing : Status Id</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingTelno">
> +        <value xml:lang="en">Required Field Missing : Tel no.</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingUserLoginId">
> +        <value xml:lang="en">Required Field Missing : User Login
> Id</value>
> +    </property>
> +    <property key="PartyRequiredFieldMissingVerifyHash">
> +        <value xml:lang="en">Required Field Missing : Verify Hash</value>
> +    </property>
>      <property key="PartyUploadedFileDataNotFound">
>          <value xml:lang="en">Uploaded file data not found</value>
>      </property>
> diff --git a/applications/party/servicedef/services.xml
> b/applications/party/servicedef/services.xml
> index fc71f8e..39fe18c 100644
> --- a/applications/party/servicedef/services.xml
> +++ b/applications/party/servicedef/services.xml
> @@ -85,7 +85,11 @@ under the License.
>          <auto-attributes entity-name="Person" mode="IN" include="nonpk"
> optional="true"/>
>          <auto-attributes entity-name="Party" mode="IN" include="nonpk"
> optional="true"/>
>          <attribute name="partyId" type="String" mode="INOUT"
> optional="true" entity-name="Person"/>
> -        <attribute name="newUserLogin" type="Map" mode="OUT"
> optional="false"/>
> +        <attribute name="newUserLogin" type="Map" mode="OUT"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingNewUserLogin"/>
> +            </type-validate>
> +        </attribute>
>      </service>
>      <service name="updatePerson" engine="java"
> default-entity-name="Person"
>              location="org.apache.ofbiz.party.party.PartyServices"
> invoke="updatePerson" auth="true">
> @@ -144,7 +148,11 @@ under the License.
>      <service name="getPartyNameForDate" engine="groovy"
>
>  location="component://party/groovyScripts/party/PartyServices.groovy"
> invoke="getPartyNameForDate" auth="true">
>          <description>Get Party Name For Date</description>
> -        <attribute name="partyId" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="partyId" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyId"/>
> +            </type-validate>
> +        </attribute>
>          <attribute name="compareDate" type="Timestamp" mode="IN"
> optional="true"><!-- defaults to now --></attribute>
>          <attribute name="lastNameFirst" type="String" mode="IN"
> optional="true"><!-- Y or N, defaults to N --></attribute>
>          <attribute name="groupName" type="String" mode="OUT"
> optional="true"/>
> @@ -242,7 +250,11 @@ under the License.
>          </deprecated>
>          <attribute name="firstName" type="String" form-display="true"
> form-label="First name" mode="IN" optional="true"/>
>          <attribute name="lastName" type="String" form-display="true"
> form-label="Last name" mode="IN" optional="true"/>
> -        <attribute name="lookupResult" type="List" mode="OUT"
> optional="false"/>
> +        <attribute name="lookupResult" type="List" mode="OUT"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingLookupResult"/>
> +            </type-validate>
> +        </attribute>
>      </service>
>
>      <service name="findPartiesById" engine="java"  auth="true"
> @@ -272,24 +284,44 @@ under the License.
>      <service name="ensurePartyRole" engine="simple"
>
>  location="component://party/minilang/party/PartySimpleMethods.xml"
> invoke="ensureNaPartyRole" auth="false">
>          <description>Ensure that the party is in the specified
> role.</description>
> -        <attribute name="partyId" type="String" mode="IN"
> optional="false"/>
> -        <attribute name="roleTypeId" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="partyId" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyId"/>
> +            </type-validate>
> +        </attribute>
> +        <attribute name="roleTypeId" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingRoleTypeId"/>
> +            </type-validate>
> +        </attribute>
>      </service>
>      <service name="ensureNaPartyRole" engine="simple"
>
>  location="component://party/minilang/party/PartySimpleMethods.xml"
> invoke="ensureNaPartyRole" auth="false">
>          <description>Ensure that the party is in the _NA_
> role.</description>
> -        <attribute name="partyId" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="partyId" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyId"/>
> +            </type-validate>
> +        </attribute>
>      </service>
>      <service name="ensurePartyRoleFrom" engine="simple"
>
>  location="component://party/minilang/party/PartySimpleMethods.xml"
> invoke="ensureNaPartyRole" auth="true">
>          <description>Ensure that the party indicate by partyIdFrom is in
> the roleTypeIdFrom specifc role. If roleTypeIdFrom isn't present use
> _NA_</description>
> -        <attribute name="partyIdFrom" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="partyIdFrom" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyIdFrom"/>
> +            </type-validate>
> +        </attribute>
>          <attribute name="roleTypeIdFrom" type="String" mode="IN"
> optional="true"/>
>      </service>
>      <service name="ensurePartyRoleTo" engine="simple"
>
>  location="component://party/minilang/party/PartySimpleMethods.xml"
> invoke="ensureNaPartyRole" auth="true">
>          <description>Ensure that the party indicate by partyIdTo is in
> the roleTypeIdTo specific role. If roleTypeIdTo isn't present use
> _NA_</description>
> -        <attribute name="partyIdTo" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="partyIdTo" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyIdTo"/>
> +            </type-validate>
> +        </attribute>
>          <attribute name="roleTypeIdTo" type="String" mode="IN"
> optional="true"/>
>      </service>
>
> @@ -395,8 +427,16 @@ under the License.
>          <description>Update a PartyContactMech</description>
>          <permission-service
> service-name="partyContactMechPermissionCheck" main-action="UPDATE"/>
>          <auto-attributes entity-name="PartyContactMech" include="all"
> mode="IN" optional="true"/>
> -        <attribute name="contactMechId" type="String" mode="INOUT"
> optional="false"/>
> -        <attribute name="contactMechTypeId" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="contactMechId" type="String" mode="INOUT"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingContactMechId"/>
> +            </type-validate>
> +        </attribute>
> +        <attribute name="contactMechTypeId" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingContactMechTypeId"/>
> +            </type-validate>
> +        </attribute>
>          <attribute name="infoString" type="String" mode="IN"
> optional="true"/>
>          <attribute name="newContactMechId" type="String" mode="IN"
> optional="true"/>
>      </service>
> @@ -405,13 +445,21 @@ under the License.
>          <description>Delete a PartyContactMech</description>
>          <permission-service
> service-name="partyContactMechPermissionCheck" main-action="DELETE"/>
>          <attribute name="partyId" type="String" mode="IN"
> optional="true"/>
> -        <attribute name="contactMechId" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="contactMechId" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingContactMechId"/>
> +            </type-validate>
> +        </attribute>
>      </service>
>      <!-- Party ContachMech reverse find -->
>      <service name="findPartyFromEmailAddress" engine="simple"
>
>  location="component://party/minilang/contact/PartyContactMechServices.xml"
> invoke="findPartyFromEmailAddress" auth="true">
>          <description>Find the partyId/contactMechId for a specific email
> address, if not found do not return a value</description>
> -        <attribute name="address" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="address" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingAddress"/>
> +            </type-validate>
> +        </attribute>
>          <attribute name="caseInsensitive" type="String" mode="IN"
> optional="true"/>
>          <attribute name="personal" type="String" mode="IN"
> optional="true"/><!-- field not used -->
>          <attribute name="fromDate" type="Timestamp" mode="IN"
> optional="true"/>
> @@ -421,7 +469,11 @@ under the License.
>      <service name="findPartyFromTelephone" engine="simple"
>
>  location="component://party/minilang/contact/PartyContactMechServices.xml"
> invoke="findPartyFromTelephone" auth="true">
>          <description>Find the partyId/contactMechId for a specific
> telephone number, if not found do not return a value</description>
> -        <attribute name="telno" type="String" mode="IN" optional="false"/>
> +        <attribute name="telno" type="String" mode="IN" optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingTelno"/>
> +            </type-validate>
> +        </attribute>
>          <attribute name="partyId" type="String" mode="OUT"
> optional="true"/>
>          <attribute name="contactMechId" type="String" mode="OUT"
> optional="true"/>
>      </service>
> @@ -431,7 +483,11 @@ under the License.
>              Find the partyId/contactMechId for a specific telephone
> number, if not found do not return a value.
>              Same than above but keep the number complete internally.
>          </description>
> -        <attribute name="telno" type="String" mode="IN" optional="false"/>
> +        <attribute name="telno" type="String" mode="IN" optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingTelno"/>
> +            </type-validate>
> +        </attribute>
>          <attribute name="partyId" type="String" mode="OUT"
> optional="true"/>
>          <attribute name="contactMechId" type="String" mode="OUT"
> optional="true"/>
>      </service>
> @@ -443,7 +499,11 @@ under the License.
>          <auto-attributes entity-name="PostalAddress" include="nonpk"
> mode="IN" optional="true"/>
>          <attribute name="paymentMethodId" type="String" mode="IN"
> optional="true"/>
>          <attribute name="contactMechPurposeTypeId" type="String"
> mode="IN" optional="true"/>
> -        <attribute name="contactMechId" type="String" mode="OUT"
> optional="false"/>
> +        <attribute name="contactMechId" type="String" mode="OUT"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingContactMechId"/>
> +            </type-validate>
> +        </attribute>
>          <attribute name="latitude" type="String" mode="IN"
> optional="true"/>
>          <attribute name="longitude" type="String" mode="IN"
> optional="true"/>
>          <override name="address1" optional="false"/>
> @@ -494,9 +554,21 @@ under the License.
>          <description>Update an Email Address</description>
>          <permission-service
> service-name="partyContactMechPermissionCheck" main-action="UPDATE"/>
>          <auto-attributes entity-name="PartyContactMech" include="all"
> mode="IN" optional="true"/>
> -        <attribute name="contactMechId" type="String" mode="INOUT"
> optional="false"/> <!-- the out paramater is the id of the new address -->
> -        <attribute name="emailAddress" type="String" mode="IN"
> optional="false"/>
> -        <attribute name="oldContactMechId" type="String" mode="OUT"
> optional="false"/> <!-- this is the id of the old address -->
> +        <attribute name="contactMechId" type="String" mode="INOUT"
> optional="false"> <!-- the out paramater is the id of the new address -->
> +            <type-validate>
> +                    <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingContactMechId"/>
> +            </type-validate>
> ++        </attribute>
> ++        <attribute name="emailAddress" type="String" mode="IN"
> optional="false">
> ++            <type-validate>
> ++                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingEmailAddress"/>
> ++            </type-validate>
> ++        </attribute>
> ++        <attribute name="oldContactMechId" type="String" mode="OUT"
> optional="false">
> ++            <type-validate>
> ++                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingOldContactMechId"/>
> ++            </type-validate>
> ++        </attribute>
>      </service>
>      <service name="copyPartyContactMechs" engine="java"
>          location="org.apache.ofbiz.party.contact.ContactMechServices"
> invoke="copyPartyContactMechs" auth="true">
> @@ -966,8 +1038,16 @@ under the License.
>      <service name="getPartyEmail" engine="groovy"
>
>  location="component://party/groovyScripts/party/PartyServices.groovy"
> invoke="getPartyEmail" auth="false">
>          <description>Get the main party Email address</description>
> -        <attribute name="partyId" type="String" mode="IN"
> optional="false"/>
> -        <attribute name="contactMechPurposeTypeId" type="String"
> mode="IN" optional="false" default-value="PRIMARY_EMAIL"/>
> +        <attribute name="partyId" type="String" mode="IN"
> optional="false">
> ++                <type-validate>
> ++                    <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyId"/>
> ++                </type-validate>
> ++            </attribute>
> ++        <attribute name="contactMechPurposeTypeId" type="String"
> mode="IN" optional="false" default-value="PRIMARY_EMAIL">
> ++            <type-validate>
> ++                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingContactMechPurposeTypeId"/>
> ++            </type-validate>
> ++        </attribute>
>          <attribute name="emailAddress" type="String" mode="OUT"
> optional="true"/>
>          <attribute name="contactMechId" type="String" mode="OUT"
> optional="true"/>
>      </service>
> @@ -987,7 +1067,11 @@ under the License.
>      <service name="getPartyPostalAddress" engine="groovy"
>
>  location="component://party/groovyScripts/party/PartyServices.groovy"
> invoke="getPartyPostalAddress" auth="false">
>          <description>Get the party postal address</description>
> -        <attribute name="partyId" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="partyId" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyId"/>
> +            </type-validate>
> +        </attribute>
>          <attribute name="contactMechPurposeTypeId" type="String"
> mode="INOUT" optional="true"/>
>          <attribute name="contactMechId" type="String" mode="OUT"
> optional="true"/>
>          <attribute name="address1" type="String" mode="OUT"
> optional="true"/>
> @@ -1022,9 +1106,21 @@ under the License.
>      </service>
>      <service name="sendCreatePartyEmailNotification" engine="groovy"
>
>  location="component://party/groovyScripts/party/PartyServices.groovy"
> invoke="sendCreatePartyEmailNotification" auth="false">
> -        <attribute name="partyId" type="String" mode="IN"
> optional="false"/>
> -        <attribute name="emailAddress" type="String" mode="IN"
> optional="false"/>
> -        <attribute name="productStoreId" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="partyId" type="String" mode="IN"
> optional="false">
> ++            <type-validate>
> ++                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyId"/>
> ++            </type-validate>
> ++        </attribute>
> ++        <attribute name="emailAddress" type="String" mode="IN"
> optional="false">
> ++            <type-validate>
> ++                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingEmailAddress"/>
> ++            </type-validate>
> ++        </attribute>
> ++        <attribute name="productStoreId" type="String" mode="IN"
> optional="false">
> ++            <type-validate>
> ++                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingProductStoreId"/>
> ++            </type-validate>
> ++        </attribute>
>      </service>
>
>      <!-- Email address verification services-->
> @@ -1036,11 +1132,19 @@ under the License.
>      </service>
>      <service name="sendVerifyEmailAddressNotification" engine="groovy"
>
> location="component://party/groovyScripts/contact/ContactMechServices.groovy"
> invoke="sendVerifyEmailAddressNotification">
> -        <attribute name="emailAddress" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="emailAddress" type="String" mode="IN"
> optional="false">
> ++            <type-validate>
> ++                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingEmailAddress"/>
> ++            </type-validate>
> ++        </attribute>
>      </service>
>      <service name="verifyEmailAddress" engine="groovy"
>
> location="component://party/groovyScripts/contact/ContactMechServices.groovy"
> invoke="verifyEmailAddress">
> -        <attribute name="verifyHash" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="verifyHash" type="String" mode="IN"
> optional="false">
> ++            <type-validate>
> ++                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingVerifyHash"/>
> ++            </type-validate>
> ++        </attribute>
>      </service>
>
>      <!-- Party Invitation Services -->
> @@ -1085,13 +1189,25 @@ under the License.
>      <service name="acceptPartyInvitation" engine="groovy"
>
>  
> location="component://party/groovyScripts/party/PartyInvitationServices.groovy"
> invoke="acceptPartyInvitation">
>          <permission-service
> service-name="accAndDecPartyInvitationPermissionCheck"/>
> -        <attribute name="partyInvitationId" type="String" mode="IN"/>
> -        <attribute name="partyId" type="String" mode="IN"/>
> +        <attribute name="partyInvitationId" type="String" mode="IN"
> optional="false">
> ++            <type-validate>
> ++                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyInvitationId"/>
> ++            </type-validate>
> ++        </attribute>
> ++        <attribute name="partyId" type="String" mode="IN"
> optional="false">
> ++            <type-validate>
> ++                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyId"/>
> ++            </type-validate>
> ++        </attribute>
>      </service>
>      <service name="declinePartyInvitation" engine="groovy"
>
>  
> location="component://party/groovyScripts/party/PartyInvitationServices.groovy"
> invoke="updatePartyInvitation">
>          <permission-service
> service-name="accAndDecPartyInvitationPermissionCheck"/>
> -        <attribute name="partyInvitationId" type="String" mode="IN"/>
> +        <attribute name="partyInvitationId" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyInvitationId"/>
> +            </type-validate>
> +        </attribute>
>          <attribute name="statusId" type="String" mode="IN"
> optional="true" default-value="PARTYINV_DECLINED"/>
>      </service>
>      <service name="cancelPartyInvitation" engine="groovy"
> @@ -1188,7 +1304,11 @@ under the License.
>              The user with PARTYMGR_UPDATE permission can also perform
> this function.
>          </description>
>          <implements service="permissionInterface"/>
> -        <attribute name="partyInvitationId" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="partyInvitationId" type="String" mode="IN"
> optional="false">
> ++            <type-validate>
> ++                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyInvitationId"/>
> ++            </type-validate>
> ++        </attribute>
>      </service>
>      <service name="cancelPartyInvitationPermissionCheck" engine="groovy"
>
>  
> location="component://party/groovyScripts/party/PartyPermissionServices.groovy"
> invoke="cancelPartyInvitationPermissionCheck">
> @@ -1198,7 +1318,11 @@ under the License.
>              The user with PARTYMGR_UPDATE permission can also perform
> this function.
>          </description>
>          <implements service="permissionInterface"/>
> -        <attribute name="partyInvitationId" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="partyInvitationId" type="String" mode="IN"
> optional="false">
> ++            <type-validate>
> ++                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyInvitationId"/>
> ++            </type-validate>
> ++        </attribute>
>      </service>
>      <service name="partyCommunicationEventPermissionCheck" engine="groovy"
>
>  
> location="component://party/groovyScripts/party/PartyPermissionServices.groovy"
> invoke="partyCommunicationEventPermissionCheck">
> @@ -1299,10 +1423,26 @@ under the License.
>      <service name="quickCreateCustomer" engine="groovy"
>
>  location="component://party/groovyScripts/party/PartyServices.groovy"
> invoke="quickCreateCustomer">
>          <description>Create customer profile on basis of First Name ,Last
> Name and Email Address</description>
> -        <attribute name="firstName" type="String" mode="IN"
> optional="false"/>
> -        <attribute name="lastName" type="String" mode="IN"
> optional="false"/>
> -        <attribute name="emailAddress" type="String" mode="IN"
> optional="false"/>
> -        <attribute name="partyId" type="String" mode="OUT"
> optional="false"/>
> +        <attribute name="firstName" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingFirstName"/>
> +            </type-validate>
> +        </attribute>
> +        <attribute name="lastName" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingLastName"/>
> +            </type-validate>
> +        </attribute>
> +        <attribute name="emailAddress" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingEmailAddress"/>
> +            </type-validate>
> +        </attribute>
> +        <attribute name="partyId" type="String" mode="OUT"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyId"/>
> +            </type-validate>
> +        </attribute>
>          <attribute name="contactListId" type="String" mode="IN"
> optional="true"/>
>          <attribute name="subscribeContactList" type="String" mode="IN"
> optional="true"/>
>      </service>
> @@ -1310,7 +1450,11 @@ under the License.
>      <service name="getPartyMainRole" engine="groovy"
>
>  location="component://party/groovyScripts/party/PartyServices.groovy"
> invoke="getPartyMainRole">
>          <description>Get the main role of this party which is a child of
> the MAIN_ROLE roletypeId</description>
> -        <attribute name="partyId" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="partyId" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyId"/>
> +            </type-validate>
> +        </attribute>
>          <attribute name="roleTypeId" type="String" mode="OUT"
> optional="true"/>
>          <attribute name="description" type="String" mode="OUT"
> optional="true"/>
>      </service>
> @@ -1336,8 +1480,16 @@ under the License.
>      <!-- send account activated email notification -->
>      <service name="sendAccountActivatedEmailNotification" engine="groovy"
>
>  location="component://party/groovyScripts/party/PartyServices.groovy"
> invoke="sendAccountActivatedEmailNotification" auth="false">
> -        <attribute name="userLoginId" type="String" mode="IN"
> optional="false"/>
> -        <attribute name="productStoreId" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="userLoginId" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingUserLoginId"/>
> +            </type-validate>
> +        </attribute>
> +        <attribute name="productStoreId" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingProductStoreId"/>
> +            </type-validate>
> +        </attribute>
>      </service>
>      <service name="createAgreementAttribute"
> default-entity-name="AgreementAttribute" engine="entity-auto"
> invoke="create" auth="true">
>          <description>Create a AgreementAttribute entry</description>
> diff --git a/applications/party/servicedef/services_view.xml
> b/applications/party/servicedef/services_view.xml
> index 8b8c05c..46f6689 100644
> --- a/applications/party/servicedef/services_view.xml
> +++ b/applications/party/servicedef/services_view.xml
> @@ -184,7 +184,11 @@ under the License.
>              - The includeFromToSwitched and recurse attributes should by
> "Y" or "N" and default to N.
>              - The useCache attribute should be "true" or "false",
> defaults to "false"
>          </description>
> -        <attribute name="partyIdFrom" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="partyIdFrom" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingPartyIdFrom"/>
> +            </type-validate>
> +        </attribute>
>          <attribute name="partyRelationshipTypeId" type="String" mode="IN"
> optional="true"/>
>          <attribute name="roleTypeIdFrom" type="String" mode="IN"
> optional="true"/>
>          <attribute name="roleTypeIdFromInclueAllChildTypes" type="String"
> mode="IN" optional="true"/>
> @@ -206,9 +210,17 @@ under the License.
>              The getParentsOfParents attribute defaults to Y.
>              The parentOrganizationPartyIdList coming out will contain the
> original organizationPartyId.
>          </description>
> -        <attribute name="organizationPartyId" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="organizationPartyId" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingOrganizationPartyId"/>
> +            </type-validate>
> +        </attribute>
>          <attribute name="getParentsOfParents" type="String" mode="IN"
> optional="true"/>
> -        <attribute name="parentOrganizationPartyIdList" type="List"
> mode="OUT" optional="false"/>
> +        <attribute name="parentOrganizationPartyIdList" type="List"
> mode="OUT" optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingParentOrganizationPartyIdList"/>
> +            </type-validate>
> +        </attribute>
>      </service>
>
>      <service name="getChildRoleTypes" engine="groovy"
> @@ -217,8 +229,16 @@ under the License.
>              Get Child RoleTypes.
>              The childRoleTypeIdList coming out will contain the original
> roleTypeId.
>          </description>
> -        <attribute name="roleTypeId" type="String" mode="IN"
> optional="false"/>
> -        <attribute name="childRoleTypeIdList" type="List" mode="OUT"
> optional="false"/>
> +        <attribute name="roleTypeId" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingRoleTypeId"/>
> +            </type-validate>
> +        </attribute>
> +        <attribute name="childRoleTypeIdList" type="List" mode="OUT"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingChildRoleTypeIdList"/>
> +            </type-validate>
> +        </attribute>
>      </service>
>
>      <!-- PostalAddressBoundary -->
> @@ -226,7 +246,11 @@ under the License.
>
>  location="component://party/groovyScripts/party/PartyServices.groovy"
> invoke="getPostalAddressBoundary">
>          <description>Get all Postal Address Boundaries</description>
>          <permission-service service-name="partyBasePermissionCheck"
> main-action="VIEW"/>
> -        <attribute name="contactMechId" type="String" mode="IN"
> optional="false"/>
> +        <attribute name="contactMechId" type="String" mode="IN"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingContactMechId"/>
> +            </type-validate>
> +        </attribute>
>          <attribute name="geos" type="java.util.List" mode="OUT"
> optional="true"/>
>      </service>
>
> @@ -247,6 +271,10 @@ under the License.
>          <attribute name="includeFromToSwitched" type="String" mode="IN"
> optional="true"/>
>          <attribute name="recurse" type="String" mode="IN"
> optional="true"/>
>          <attribute name="useCache" type="String" mode="IN"
> optional="true"/>
> -        <attribute name="relatedPartyIdList" type="List" mode="OUT"
> optional="false"/>
> +        <attribute name="relatedPartyIdList" type="List" mode="OUT"
> optional="false">
> +            <type-validate>
> +                <fail-property resource="PartyErrorUiLabels"
> property="PartyRequiredFieldMissingRelatedPartyIdList"/>
> +            </type-validate>
> +        </attribute>
>      </service>
>  </services>
>
>

Reply via email to