OnGetRegistrationConfigurationOnCustomRegistrationType_OnAddStepsAsXml

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::CodeunitCodeunit::"MOB WMS Adhoc Registr.", 'OnGetRegistrationConfigurationOnCustomRegistrationType_OnAddStepsAsXml''', true, true)]
    local procedure OnGetRegistrationConfigurationOnCustomRegistrationType_OnAddStepsAsXml(var _XMLRequestDoc: XmlDocumentvar _XMLSteps: XmlNode; _RegistrationType: Textvar _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: XmlDocumentvar _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))110));
        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 ItemWhseClassList: 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, 11024);

        exit(WhseClassList);
    end;


More examples

There are no items with the selected labels at this time.


Version History

VersionChanges
MOB5.00Introduced