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 <[email protected]>
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