SAP BO. SAP Business One. License API

     Buenas tardes a todos desde México, antes que nada les pido disculpas a todos los lectores que siguen este blog, las disculpas son porque tengo mas de un mes sin subir ni un articulo y esto se ha debido entre otras cosas por el trabajo, los juegos y mi rehabilitación. 

     Pero como me lo mencionaron hoy, tengo un compromiso con las personas que siguen el blog y es algo que como todo en las demás cosas tengo que cumplir y les aseguro que lo haré mas seguido y con mas entusiasmo. Ahora bien el tema de este post sera el License API una herramienta que de cierta forma nos ayudara mediante un pequeño sistema hecho en visual studio, obtener información relevante al servicio de licencias de SAP Business One, así como información relacionada a los usuarios en relación a los usuarios de una compañía con que tipos de licencia. 
     Para esto vamos ha descargar antes que nada el COM para poderlo referenciar dentro de nuestro Visual Studio. El link de descarga esta aqui una vez instalado, solo agregamos este como referencia a nuestro proyecto. 

     En mi caso yo estoy sobre una maquina virtual este COM recuerden que lo tienen que instalar en el servidor donde este el servidor de licencias para que funcione correctamente. Ahora bien veamos un listado de funciones básicas y para que nos puede servir. 

     Primero vamos a ver como se crea una referencia al objeto y como podemos conocer nuestro HardwareKey y nuestro numero de instalación. 

        'Creacion objeto del License API
        Dim Lic As SBOLICENSELib.ILicenseInfo
        Lic = New SBOLICENSELib.LicenseInfo

        'variables que pasaremos por parametro para que nos regrese los valores
        'que queremos
        Dim HK, Ins As String
        HK = ""
        Ins = ""

        ''Onetenmos loa valores mediante el License API y los imprimimos en pantalla
        Lic.GetHardwareKey(HK)
        Lic.GetInstallationNumberList(Ins)
        Console.WriteLine("Hardware Key = " & HK & " Installation Number = " & Ins)
        Console.ReadLine()

     Que mas podemos hacer veamos unos ejemplos mas. Preguntemos si un usuario en especifico tiene una licencia profesional. 

 Dim Result As Integer
        Result = Lic.IsUserLicensed("manager", "PROFESSIONAL_MSS", Ins)
        If Result <> 0 Then
            Console.WriteLine("El usuario manager si tiene licencia profesional")
        Else
            Console.WriteLine("El usuario manager no tiene licencia profesional")
        End If

     Ahora veamos información especifica de nuestro archivo de licencia, en este caso pregunataremos pro cuantas licencias profesionales tenemos. 

 Dim Num, Dis, Ini, Fin As Integer
        Lic.GetLicenseInfo("PROFESSSIONAL_MSS", Num, Dis, Ini, Fin, Ins)
        Console.WriteLine("Numero de licencias = " & Num)
        Console.WriteLine("Licencias Disponibles = " & Dis)
        Console.WriteLine("Inicio de licencia = " & Ini)
        Console.WriteLine("Fin de licencia = " & Fin)

     Por ultimo vamos a generar una lista de usuarios con un archivo xml para saber que usuarios están actualmente en el sistema. 

        Dim XmlDoc As New Xml.XmlDocument
        Dim ProductNodes As Xml.XmlNodeList
        Dim ProductNode As Xml.XmlNode
        Dim BaseDataNodes As Xml.XmlNodeList
        Dim FirstInRow As Boolean
        Dim Users As String
        Users = ""
        Lic.GetLoggedInUsers(Users)
        XmlDoc.LoadXml(Users)
        ProductNodes = XmlDoc.GetElementsByTagName("users")
        For Each ProductNode In ProductNodes
            BaseDataNodes = ProductNode.ChildNodes
            FirstInRow = True
            For Each BaseDataNode As Xml.XmlNode In BaseDataNodes
                If FirstInRow Then
                    FirstInRow = False
                Else
                    Console.Write(",")
                End If
                Console.Write(BaseDataNode.Name & "=" & BaseDataNode.InnerText)
            Next
        Next

     Con esto vamos a ar por terminado este post, un compañero llamado Gregorio quiere ver unos ejemplo de DI API y por que no hablaremos de eso el siguiente post con ejemplos y mis absurdas explicaciones. Muchas gracias por su paciencia y espera y así como Gregorio espero sus aportaciones y si tienen algún tema que exponer o quieran compartir con muchos gusto estoy a sus ordenes.  




Posted in Etiquetas: |

1 comentarios:

  1. Lic. Alma Says:

    Que bueno que estas de regreso!! ;D

Related Posts with Thumbnails