Use this event to
...
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 OnGetRegistrationConfigurationOnCustomRegistrationType_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;
Filter by label (Content by label) | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...