Developer Programs

Learn

Docs

ReplaceDisco

API Reference > ReplaceDisco
SoapActionn/a
Input NameReplaceDisco
Output NameReplaceDiscoResponse
Input Namespacen/a
Group NameXperience
ContainerXP_MsgBus.xsd
ReplaceDisco.cs
// NOTE!!!!! This message is not the recommended way to modify discovery items.
string newDestId = "NewSampleProductId";

    ReplaceDiscoRq_MType request = new ReplaceDiscoRq_MType()
    {
        DiscoItems = new DiscoItems_CType(),
        DiscoProd = new DiscoProd_CType()
        {
            ProdId = new ProdId_Type() { Value = newDestId }
        }
    };

    var rootFunctions = new List();
    var groups = new List();
    var newEntryPts = new List();
    var newMenuIcons = new List();

    newEntryPts.Add(new DiscoEntryPt_CType()
    {
        DspState = "Visible",
        EntryPtType = "Proc",
        InstcType = "Single",
        MsgBusDestId = newDestId,
        StartupRef = "SampleXpProduct.exe",
        StartupType = "Manual"
    });

    newEntryPts.Add(new DiscoEntryPt_CType()
    {
        DspState = "Visible",
        EntryPtType = "Proc",
        InstcType = "Multi",
        MsgBusDestId = "NewEntryPoint",
        StartupRef = "EntryPoint.exe",
        StartupType = "Manual",
        TabIconRef = @"Images\Wizard.png"
    });

    newMenuIcons.Add(new MenuIcon_CType()
    {
        MenuIconId = "arrowRight",
        MenuVectorImgCode = "ArrowRight"
    });

    newMenuIcons.Add(new MenuIcon_CType()
    {
        MenuIconId = "arrowLeft",
        MenuVectorImgCode = "ArrowLeft"
    });

    newMenuIcons.Add(new MenuIcon_CType()
    {
        MenuIconId = "arrowUp",
        MenuVectorImgCode = "ArrowUp"
    });

    newMenuIcons.Add(new MenuIcon_CType()
    {
        MenuIconId = "arrowDown",
        MenuVectorImgCode = "ArrowDown"
    });

    newMenuIcons.Add(new MenuIcon_CType()
    {
        MenuIconId = "account",
        MenuVectorImgCode = "Account"
    });

    var tag = new SrchTag_CType()
    {
        SrchText = "broom"
    };

    var tag2 = new SrchTag_CType()
    {
        SrchText = "doom"
    };

    var tagList = new List()
    {
        tag,
        tag2
    };

    rootFunctions.Add(
        new MenuFunc_CType()
        {
            FuncId = "NewSampleXpProductId",
            FuncTitle = "Replaced Main Function",
            FuncDesc = "Replaced Sample Product Demonstrating Message Bus Communication",
            MenuIconIdRef = "arrowUp",
            MyAppMsg = JackHenry.Xperience.MessageBus.Serializer.Serialize(new MenuFunctionMessage()
            {
                Id = MenuFunctionMessageIds.ShellWindow
            }),
            TargetMsgBusDestId = newDestId,
            SrchTagArray = tagList.ToArray()
        });

    var group1 = new MenuGroup_CType()
    {
        GroupId = "NewEntryPointGroupId",
        GroupTitle = "This is a replaced Group"
    };

    var group2 = new MenuGroup_CType()
    {
        GroupId = "NewEntryPointOtherGroupId",
        GroupTitle = "This is a replaced Group for 2nd Entry Point"
    };

    var group1Functions = new List();
    var group2Functions = new List();

    group1Functions.Add(new MenuFunc_CType()
    {
        FuncId = "NewGroup1Menu1Id",
        FuncTitle = "Group 1 Sub-Item 1",
        FuncDesc = "This is a new menu item that is under the first group",
        MenuIconIdRef = "arrowLeft",
        MyAppMsg = JackHenry.Xperience.MessageBus.Serializer.Serialize(new MenuFunctionMessage()
        {
             Id = MenuFunctionMessageIds.ShellWindow
        }),
        TargetMsgBusDestId = newDestId
    });

    group2Functions.Add(new MenuFunc_CType()
    {
        FuncId = "NewGroup2Menu1Id",
        FuncTitle = "Group 2 Sub-Item 1",
        FuncDesc = "This is a new menu item that is under the second group",
        MenuIconIdRef = "arrowDown",
        MyAppMsg = JackHenry.Xperience.MessageBus.Serializer.Serialize(new EntryPt()
        {
            Description = "Hello world!"
        }),
        TargetMsgBusDestId = newDestId
    });

    group1.MenuFuncArray = group1Functions.ToArray();
    group2.MenuFuncArray = group2Functions.ToArray();

    groups.Add(group1);
    groups.Add(group2);

    request.DiscoProd.MenuIconIdRef = new MenuIconIdRef_Type() { Value = "account" };
    request.DiscoItems.MenuFuncArray = rootFunctions.ToArray();
    request.DiscoItems.MenuGroupArray = groups.ToArray();
    request.DiscoProd.DiscoEntryPtArray = newEntryPts.ToArray();
    request.DiscoProd.MenuIconArray = newMenuIcons.ToArray();

    MessageHelper.FillHeader(request);

    MessageOptions options = new MessageOptions()
    {
        RequestReceipt = true
    };

    var receipt = this.messageBus
        .Send(
            request,
            options)
        .RegisterResponseHandler(this.OnReplaceDiscoCallback);

Did this page help you?

Last updated Mon Dec 9 2024