Agregar AddOn en el Menú de un Módulo especifico

Buenas tardes colegas, tengo una consulta, como puedo incluir un formulario que desarrollé en el menú de un módulo especifico? Por ejemplo en el Módulo de compras en esta sección:

Hasta hoy con mi archivo Menu.xml que lo leo al ejecutar la clase que agrega mi formulario solo le he podido agregar en el menú general, como se ve más abajo:
compras2

Este es el código de mi archivo html:

<?xml version="1.0" encoding="UTF-16"?>
<Application>
	<Menus>
		<action type="add">
			<Menu UniqueID="mnuUNO" Type="2" Image="C:\Cheques\reparto.png" FatherUID="43520" Checked="0" Position="1" Enabled="1" String="Planilla de Recepción">
				<Menus>
					<action type="add">
						<Menu UniqueID="mnuSUNO" Type="1" Image="" FatherUID="mnuUNO" Checked="0" Position="0" Enabled="1" String="Planilla Rec."/>
					</action>
				</Menus>
			</Menu>
		</action>
	</Menus>
</Application>

Desde ya muchas gracias.

Artu M.

¿Por cual Metodo desarrollaste el Form?

Si usas por Sap Businessne Studio para VS, usualmente lo que se hace es lo siguiente:

 public void AddMenuItems()
        {
            SAPbouiCOM.Menus oMenus = null;
            SAPbouiCOM.MenuItem oMenuItem = null;

            oMenus = Application.SBO_Application.Menus;

            SAPbouiCOM.MenuCreationParams oCreationPackage = null;
            oCreationPackage = ((SAPbouiCOM.MenuCreationParams)(Application.SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_MenuCreationParams)));
            oMenuItem = Application.SBO_Application.Menus.Item("2304"); // Numero de Menu (Modulo)'

            oMenus = oMenuItem.SubMenus;

            if (Application.SBO_Application.Menus.Exists("SBOAddonProject2.frmAvance"))
                oMenus.RemoveEx("SBOAddonProject2.frmAvance");
            if (Application.SBO_Application.Menus.Exists("SBOAddonProject2.frmPagosPCI"))
                oMenus.RemoveEx("SBOAddonProject2.frmPagosPCI");

            oCreationPackage.Type = SAPbouiCOM.BoMenuType.mt_STRING;
            oCreationPackage.UniqueID = "SBOAddonProject2.frmAvance";
            oCreationPackage.String = "Avance PCI Montaje";
            oCreationPackage.Enabled = true;
            oCreationPackage.Position = 2;
            try { oMenus.AddEx(oCreationPackage); }
            catch (Exception) { }
            oCreationPackage.Type = SAPbouiCOM.BoMenuType.mt_STRING;
            oCreationPackage.UniqueID = "SBOAddonProject2.frmPagosPCI";
            oCreationPackage.String = "Registro Pagos PCI Montaje";
            oCreationPackage.Enabled = true;
            oCreationPackage.Position = 3;
            try { oMenus.AddEx(oCreationPackage); }
            catch (Exception) { }

        }

Saludos.

1 me gusta

Gracias @GabrielGS,
Ya pude agregarlo, directamente desde mi archivo XML, solo tuve que cambiar el FatherUID. La carga y manejo de menú yo lo hago directamente en el archivo XML, con la siguiente función:

 Private Sub CargarMenu()
        Dim SBOMENU As SAPbouiCOM.Menus

        REM Congelar el menú principal
        SBOA.Forms.GetFormByTypeAndCount(169, 1).Freeze(True)

        Dim menu As New Xml.XmlDocument
        SBOMENU = SBOA.Menus

        Try
            menu.Load("rutadonde se encuentra guardada el archivo xml\NuevoMenu.xml")
            SBOA.LoadBatchActions(menu.InnerXml)

        Catch ex As System.IO.FileNotFoundException
            SBOA.StatusBar.SetText(ex.Message, SAPbouiCOM.BoMessageTime.bmt_Medium, SAPbouiCOM.BoStatusBarMessageType.smt_Error)
        Catch ex2 As System.Exception
            SBOA.MessageBox(ex2.Message + ex2.ToString)
        Finally

            REM Descongelar el menú principal
            SBOA.Forms.GetFormByTypeAndCount(169, 1).Freeze(False)
            SBOA.Forms.GetFormByTypeAndCount(169, 1).Update()

        End Try
    End Sub

y aqui está mi archivo XML ya modificado para que me incluya el mismo en el módulo de Compras:

<?xml version="1.0" encoding="UTF-16"?>
<Application>
				<Menus>
					<action type="add">
						<Menu UniqueID="mnuSUNO" Type="1" Image="" FatherUID="2304" Checked="0" Position="4" Enabled="1" String="Planilla de Recepción"/>
					</action>
				</Menus>
</Application>

Muchas gracias igual por tu ayuda siempre.

Saludos.-

Arturo.

1 me gusta

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.