Versions Compared

Key

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

Use this 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 OnGetRegistrationConfigurationOnCustomRegistrationType_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
            if _IsHandled then
                exit;

            _RegistrationTypeTracking     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(Item),
                                                                           XMLSteps,
            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);
end;

...

 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"


Version History

VersionChanges
MOB5.00Introduced