Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Use this event to

Excerpt

Create steps for new custom Adhoc RegistrationType. Steps must be written as Xml.

...

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 MyOnGetRegistrationConfigurationOnCustomRegistrationType_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;


Filter by label (Content by label)
showLabelsfalse
showSpacefalse
sorttitle
titleMore examples
excerptTypesimple
cqllabel = "bc" and label = "example" and label = "onaddstepsasxml"

...