I did think about this few years ago.

It's nice to put a dedicate message, and it's more powerfull to put a default rule to resolve the label with a pattern like :

Default file for Service error message : component/config/ServiceErrorLabels.xml

pattern : ServiceValidation.IN.${service-name}.${service-attribute}

And maybe use a default pattern if not found for a dedicate service

pattern : ServiceValidation.IN.common.${service-attribute}

The advantage, keep service definition light, and offer the possibility to surcharge if needed with the <type-validate> <fail-property>

Nicolas


Le 13/10/2016 à 10:21, Rishi Solanki a écrit :
Applying same to your example;

<auto-attributes include="pk" mode="IN" optional="false"/>
<override name="shippingContactMechId" optional="false">
     <type-validate>
          <fail-property resource="OrderUiLabels"
property="checkhelper.select_shipping_destination" />
     </type-validate>
</override>




Rishi Solanki
Manager, Enterprise Software Development
HotWax Systems Pvt. Ltd.
Direct: +91-9893287847
http://www.hotwaxsystems.com

On Thu, Oct 13, 2016 at 1:46 PM, Rishi Solanki <rishisolan...@gmail.com>
wrote:

Devanshu,

You can simply try to use override to override the default behavior of
auto-attribute. For example; if you are working on PartyContanctMech and
you want partyId and contactMechId should return custom error message if
empty. Then use the following practice to do that;

<auto-attributes include="pk" mode="IN" optional="false"/>
<override name="partyId" optional="false">
     <type-validate>
          <fail-message message="party id is required field." />
     </type-validate>
</override>


Override tag intended to override the default behavior set in the
auto-attributes. Simply using it suggested and implemented at service
defintion level.


HTH!



Rishi Solanki
Manager, Enterprise Software Development
HotWax Systems Pvt. Ltd.
Direct: +91-9893287847
http://www.hotwaxsystems.com

On Thu, Oct 13, 2016 at 11:14 AM, Devanshu Vyas <vyas.devansh...@gmail.com
wrote:
Hello Guys,

I came across a situation where I tried to throw a custom
(more user-friendly) validation message when a required field in a service
is missing. And the service definition was written with auto-attributes,
something like this:

<auto-attributes include="pk" mode="IN" optional="false"/>

And I found myself stuck as I wanted to throw a custom message on a
specific field among the PKs of the entity.

I want you to suggest me a way to set validate message in such situation
like we set on a single attribute like:

<attribute name="shippingContactMechId" type="String" mode="IN"
optional="false">
     <type-validate>
         <fail-property resource="OrderUiLabels"
property="checkhelper.select_shipping_destination"/>
     </type-validate>
</attribute>

IMO, we can think of doing something like the exclude field inside the
auto-attributes to define the validate messages on the fields.

<auto-attributes include="pk" mode="IN" optional="true">
     <exclude field-name=""/>
</auto-attributes>

Something like this:

<auto-attributes include="pk" mode="IN" optional="true">
     <validation-message field-name="shippingContactMechId"
resource="OrderUiLabels"
property="checkhelper.select_shipping_destination"/>
</auto-attributes>

Please share your thoughts. :)

--
Thanks and Regards,
Devanshu Vyas



Reply via email to