Description
Excerpt |
---|
"onlineValidation" on Steps can instantly validate the entered data, with a call to the back-end |
...
- Online Validation limits the Offline capabilities of the system
- Online validation is currently not logged in the Document Queue and can and cannot be debugged in this way
Example
//
// Step 1 of 4
//
// Create setup "Mobile Document Type"
// * Request Document Type = 'MyValidateNoDecimals'
// * Processing Codeunt = Codeunit::"MOB WMS Whse. Inquiry" (6181379)
//
// Step 2 of 4
//
// Add the "WMS" Mobile Group to this new Document type.
//
// Step 3 of 4
//
// Subscriber 1: Enable onlineValidation for Length/Width/Height Steps from the 'ItemDimensions' Adhoc Document Type
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Adhoc Registr.", 'OnGetRegistrationConfiguration_OnAfterAddStep', '', true, true)]
procedure OnGetRegistrationConfiguration_OnAfterAddStep(_RegistrationType: Text; var _HeaderFieldValues: Record "MOB NS Request Element"; var _Step: Record "MOB Steps Element")
var
MobWmsToolbox: Codeunit "MOB WMS Toolbox";
begin
if _RegistrationType <> MobWmsToolbox."CONST::ItemDimensions"() then
exit;
if _Step.Get_name() in ['Length', 'Width', 'Height'] then
_Step.Set_onlineValidation('MyValidateNoDecimals');
end;
//
// Step 4 of 4
//
// Subscriber 2: Implement DocumentType 'ValidateNoDecimals' in the "MOB WMS Whse. Inquiry" codeunit
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Whse. Inquiry", 'OnWhseInquiryOnCustomDocumentTypeAsXml', '', true, true)]
procedure MyOnWhseInquiryOnCustomDocumentTypeAsXml(_DocumentType: Text; var _XMLRequestDoc: XmlDocument; var _XMLResponseDoc: XmlDocument; var _IsHandled: Boolean)
var
RequestValues: Record "MOB NS Request Element" temporary;
MobToolbox: Codeunit "MOB Toolbox";
RequestMgt: Codeunit "MOB NS Request Management";
begin
if (_DocumentType <> 'MyValidateNoDecimals') or _IsHandled then
exit;
// Validate no decimals in Length, Width or Height
RequestMgt.SaveAdhocFilters(_XMLRequestDoc, RequestValues);
ErrorIfDecimals(RequestValues.GetValueAsDecimal('Length'));
ErrorIfDecimals(RequestValues.GetValueAsDecimal('Width'));
ErrorIfDecimals(RequestValues.GetValueAsDecimal('Height'));
MobToolbox.CreateSimpleResponse(_XmlResponseDoc, 'OK');
_IsHandled := true;
end;
local procedure ErrorIfDecimals(_DecimalValue: Decimal)
begin
if _DecimalValue <> ROUND(_DecimalValue, 1) then
Error('Value can have no decimals.');
end;
Version History
Version | Changes |
---|---|
MOB5.16 | Introduced |
...