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 <[hidden email]> 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 <[hidden email]> > 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> > > |
Oops ! Thanks Pawan for taking care of this.
-- Best Regards, Suraj Khurana Senior Technical Consultant On Tue, Apr 28, 2020 at 1:23 PM Pawan Verma <[hidden email]> wrote: > 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 <[hidden email]> 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 <[hidden email]> > > 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> > > > > > |
Free forum by Nabble | Edit this page |