Table method validateField() in D365 F&O - X++ Code

Long Answer
Views 9712

Answer:

Method validateField() is used for validation only and will return true or false. If the return value is false, the application user will be prevented to continue changing a field value.

Exampl: Let’s override validateField for MyFirstTable to verify the condition that CustName must be have > 3 characters.

<span class="pln">

</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">boolean</span><span class="pln"> validateField</span><span class="pun">(</span><span class="pln">fieldId _fieldIdToCheck</span><span class="pun">)</span><span class="pln">
</span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">boolean</span><span class="pln"> ret</span><span class="pun">;</span><span class="pln">
    ret </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">super</span><span class="pun">(</span><span class="pln">_fieldIdToCheck</span><span class="pun">);</span><span class="pln">
    </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">ret</span><span class="pun">)</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">switch</span><span class="pln"> </span><span class="pun">(</span><span class="pln">_fieldIdToCheck</span><span class="pun">)</span><span class="pln">
    </span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">case</span><span class="pln"> fieldnum</span><span class="pun">(</span><span class="typ">MyFirstTable</span><span class="pun">,</span><span class="pln"> custName</span><span class="pun">):</span><span class="pln">
        </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">strlen</span><span class="pun">(</span><span class="kwd">this</span><span class="pun">.</span><span class="pln">custName</span><span class="pun">)</span><span class="pln"> </span><span class="pun">&lt;=</span><span class="pln"> </span><span class="lit">3</span><span class="pun">)</span><span class="pln">
        ret </span><span class="pun">=</span><span class="pln"> checkFailed</span><span class="pun">(</span><span class="str">"Customer name must be longer than 3 characters."</span><span class="pun">);</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    </span><span class="kwd">return</span><span class="pln"> ret</span><span class="pun">;</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

</span>

After adding this method, open table MyFirstTable using Table browser and press Ctrl+N, in the new record try to enter less than 3 characters for field custName, Ax will throw warning message stating "Customer name must be longer than 3 characters." And you will be asked to enter value again. Thus we validate the data to be entered for a specific field.


Thumbnail

This section is dedicated exclusively to Questions & Answers. For an in-depth exploration of X++ Programming Language, click the links and dive deeper into this subject.

Join Our telegram group to ask Questions

Click below button to join our groups.