Use this event to
Create steps for new custom Adhoc RegistrationType. Steps must be written as Xml.
Description
This event was introduced for backwards compatibility and easier migration of old customizations.
Consider using the OnGetRegistrationConfiguration_OnAddSteps instead.
Template
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Adhoc Registr.", 'OnGetRegistrationConfigurationOnCustomRegistrationType_OnAddStepsAsXml', '', true, true)]
local procedure OnGetRegistrationConfigurationOnCustomRegistrationType_OnAddStepsAsXml(var _XMLRequestDoc: XmlDocument; var _XMLSteps: XmlNode; _RegistrationType: Text; var _RegistrationTypeTracking: Text[200]; var _IsHandled: Boolean)
begin
if _RegistrationType = 'MyCustomRegistrationType' then begin // Replace constant 'MyCustomRegistrationType' with your own RegistrationType
if _IsHandled then
exit;
// Add Steps elements as Xml here
// ....
_IsHandled := true;
end;
end;
Example
[EventSubscriber(ObjectType::Codeunit, Codeunit::"MOB WMS Adhoc Registr.", 'OnGetRegistrationConfigurationOnCustomRegistrationType_OnAddStepsAsXml', '', true, true)]
local procedure MyOnGetRegistrationConfigurationOnCustomRegistrationType_OnAddStepsAsXml(var _XMLRequestDoc: XmlDocument; var _XMLSteps: XmlNode; _RegistrationType: Text; var _RegistrationTypeTracking: Text[200]; var _IsHandled: Boolean)
begin
if _RegistrationType = 'SetWhseClassCode' then begin
if _IsHandled then
exit;
_RegistrationTypeTracking := CreateSetWhseClassCodeRegColConf(_XmlRequestDoc, _XMLSteps);
_IsHandled := true;
end;
end;
procedure CreateSetWhseClassCodeRegColConf(_XMLRequestDoc: XmlDocument; var _XMLSteps: XmlNode) ReturnRegistrationTypeTracking: Text[200];
var
MobSetup: Record "MOB Setup";
Item: Record Item;
MobXMLMgt: Codeunit "MOB XML Management";
MobWMSToolbox: Codeunit "MOB WMS Toolbox";
MOBToolbox: Codeunit "MOB Toolbox";
MobConfTools: Codeunit "MOB WMS Conf. Tools";
XMLRequestNode: XmlNode;
XMLRequestDataNode: XmlNode;
XMLParameterNode: XmlNode;
ItemNumber: Code[20];
begin
// Extract any parameters from the XML
// The parameters are located in the <requestData> element
// The Set Warehouse Class Code feature expects 1 header value
// Item
MobXMLMgt.GetDocRootNode(_XMLRequestDoc, XMLRequestNode);
MobXMLMgt.FindNode(XMLRequestNode, MobWMSToolbox."CONST::requestData"(), XMLRequestDataNode);
// -- Now find the item parameter
MobXMLMgt.FindNode(XMLRequestDataNode, 'ItemNumber', XMLParameterNode);
// -- Get the parameter
ItemNumber := MobWMSToolbox.GetItemNumber(CopyStr(MOBToolbox.ReadMisc(MobXmlMgt.GetNodeInnerText(XMLParameterNode)), 1, 10));
item.Get(ItemNumber);
// Set the tracking value displayed in the document queue
ReturnRegistrationTypeTracking := StrSubstNo('SetWhseClassCode: %1', ItemNumber);
MobSetup.GET();
// Now we have the parameters -> determine which registrations to collect
// Unit of Measure
// Set the basic required values
MobConfTools.RC_Std_Parms(1,
'WhseClassCode',
'Enter Warehouse Class Code',
Item.FieldCaption("Warehouse Class Code") + ':',
'');
// Set extended values
MobConfTools.RC_Ext_Parms('', false, true, true, 0);
// Create the step
MobConfTools.RC_List_ListData_XmlNode(_XMLSteps,
GetWhseClassCode(Item),
'');
end;
procedure GetWhseClassCode(_Item: Record Item) WhseClassList: Text[1024]
var
WhseClass: Record "Warehouse Class";
begin
if _Item."Warehouse Class Code" <> '' then begin
WhseClassList := _Item."Warehouse Class Code";
WhseClass.SetFilter(Code, '<>%1', _Item."Warehouse Class Code");
end;
if WhseClass.FINDFIRST() then
repeat
if WhseClassList = '' then
WhseClassList := WhseClass.Code
else
WhseClassList += ';' + WhseClass.Code;
until WhseClass.NEXT() = 0;
if WhseClassList = '' then
WhseClassList := ' '
else
if _Item."Warehouse Class Code" <> '' then
WhseClassList += ';' + ' '
else
WhseClassList := CopyStr(' ;' + WhseClassList, 1, 1024);
exit(WhseClassList);
end;
Version History:
Version | Changes |
---|---|
MOB5.00 | Introduced |