SAP BO. SAP Business One. License API
Posted On viernes, 27 de mayo de 2011 at en 13:01 by Edgar Avena Vázquez 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.
Que bueno que estas de regreso!! ;D