Versions Compared

Key

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

...

Use this event to

...

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::Codeunit, Codeunit::"MOB WMS Adhoc RegistrMOB WMS Adhoc Registr.", 'OnGetRegistrationConfigurationOnCustomRegistrationType_OnAddStepsAsXml', '', true true, true true)]
    local procedure OnGetRegistrationConfigurationOnCustomRegistrationType MyOnGetRegistrationConfigurationOnCustomRegistrationType_OnAddStepsAsXml(var _XMLRequestDoc: XmlDocument; var _XMLSteps: XmlNode; _RegistrationType: Text; var _RegistrationTypeTracking: Text[200]; var _IsHandled: Boolean)
    begin
        if     if_RegistrationType RegistrationType = 'SetWhseClassCode' then begin
          if _IsHandled then
               exit;
          _RegistrationTypeTracking :=             if _IsHandled then
                exit;



            _RegistrationTypeTracking := CreateSetWhseClassCodeRegColConf(_XmlRequestDoc, _XMLSteps);
          
            _IsHandled := true;
             end;
    end;

    procedure CreateSetWhseClassCodeRegColConf CreateSetWhseClassCodeRegColConf(_XMLRequestDoc: XmlDocument; var _XMLSteps: XmlNode) ReturnRegistrationTypeTracking: Text[200];
    var
        MobSetup: Record   MobSetup: Record "MOB SetupMOB Setup";

        Item:    Record Item: Record Item;
        MobXMLMgt: Codeunit   MobXMLMgt: Codeunit "MOB XML Management"MOB XML Management";
        MobWMSToolbox: Codeunit   MobWMSToolbox: Codeunit "MOB WMS Toolbox"MOB WMS Toolbox";
        MOBToolbox: Codeunit   MOBToolbox: Codeunit "MOB ToolboxMOB Toolbox";
        MobConfTools: Codeunit   MobConfTools: Codeunit "MOB WMS Conf. Tools"MOB WMS Conf. Tools";
        XMLRequestNode:     XMLRequestNode: XmlNode;
        XMLRequestDataNode:     XMLRequestDataNode: XmlNode;
          XMLParameterNode:   XMLParameterNode: XmlNode;
          ItemNumber:   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 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 XMLRequestNode);
     MobXMLMgt        MobXMLMgt.FindNode(XMLRequestNode, MobWMSToolbox MobWMSToolbox."CONST::requestData"(), XMLRequestDataNode XMLRequestDataNode);
     

        // -- Now find the item parameter
     MobXMLMgt Now find the item parameter
        MobXMLMgt.FindNode(XMLRequestDataNode, 'ItemNumber', XMLParameterNode XMLParameterNode);
     
     
        // -- Get the parameter Get the parameter
          ItemNumber   ItemNumber:= MobWMSToolbox.GetItemNumber(CopyStr(MOBToolbox.ReadMisc(MobXmlMgt.GetNodeInnerText(XMLParameterNode))110));
     item        item.Get(ItemNumber);
     
        // Set the tracking value displayed in the document queue
     ReturnRegistrationTypeTracking Set the tracking value displayed in the document queue
        ReturnRegistrationTypeTracking := StrSubstNo('SetWhseClassCode: %1 %1', ItemNumber ItemNumber);
     MobSetup
        MobSetup.GET();
     
        // Now we have the parameters -> determine which registrations to collect
     // Unit of Measure
     // Set the basic required values
     MobConfTools 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            'Enter Warehouse Class Code',
            Item.FieldCaption("Warehouse Class CodeWarehouse Class Code") + ':',
                                                                   '');
     
        // Set extended values
     MobConfTools Set extended values
        MobConfTools.RC_Ext_Parms('', false false, true true, true true, 0);
     
        // Create the step
     MobConfTools Create the step
        MobConfTools.RC_List_ListData_XmlNode(_XMLSteps,
                                                                           GetWhseClassCode            GetWhseClassCode(Item),
                                                                                       '');
    end;

    procedure GetWhseClassCode GetWhseClassCode(_Item: Record Item Item) WhseClassList: Text[1024];
    var
        WhseClass: Record   WhseClass: Record "Warehouse ClassWarehouse Class";
    begin
        if     if_Item."Warehouse Class CodeWarehouse Class Code" <>  <> '' then begin
                   WhseClassList   WhseClassList:= _Item."Warehouse Class CodeWarehouse Class Code";
          WhseClass            WhseClass.SetFilter(Code, '<>%1', _Item."Warehouse Class CodeWarehouse Class Code");
     end        end;
     if WhseClass
        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 := ' ;' + WhseClassList;
     exit(WhseClassList);
            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;



Version History:

VersionChanges
MOB5.00Introduced

...