Ayuda SAP

Recargar fichero de licencias (B1Upf.xml)

Hola

Nos están implantando un SB1 (HANA) y una de las cosas que vamos a necesitar es cierta flotabilidad en las licencias, no queremos perder la funcionalidad nominal y por otro lado no tiene mucho sentido comprar tres licencias para un mismo puesto de trabajo que cubren tres personas que van a turnos de mañana/tarde/noche. La consultora no nos da otra opción que un superusuario acceda a la gestión de licencias, las reasigne y aplique los cambios, lo cual evidentemente funciona.

Investigando un poco he visto que el fichero B1Upf.xml almacena las asignaciones pero si lo modifico los cambios no se ven en SAP, para que eso suceda tengo que reiniciar el servicio sapb1servertools, una vez hecho eso ya en SAP sí se muestran las nuevas asignaciones. Mediante una pequeña app todo eso se hace automático y en pruebas está funcionando pero tengo un par de dudas:

  1. No me hace mucha gracia tener que reiniciar el servicio servertools por completo ya que tampoco tengo claro qué cubre ese servicio, en la versión no-hana he visto que hay un servicio específico de licencias pero en HANA no lo he visto. ¿O quizá no tenga mayor importancia reiniciarlo?

  2. Si hago la asignación desde dentro de SAP solo tengo que pulsar en “actualizar” y las licencias se reasignan en el momento, por tanto me pregunto si hay alguna manera (a través por ejemplo de la REST License API o similar) de decirle a SAP que recargue el fichero B1Upf.xml y que aplique los cambios.

Cualquier ayuda será bien recibida :slight_smile:

Es un placer saber que cada vez somos más en esta comunidad. No olvides pasar por #presentaciones para poder conocerte un poco más.

Aquí algunos comentarios:

1.- Los usuarios no los crees con el nombre del empleado, mas bien nombrarlas por el área de trabajo (Ej. Finanzas, Produccion, Ventas, etc. etc)
2.- Existen la forma que los documentos de marketing estén firmados, ahora si, por el nombre de empleado.
3.- Otra forma en caso de ser necesario es usar un campo de usuario para que cada quien firme sus transaccciones.
4.- MUY IMPORTANTE, no te recomiendo estar reiniciando a cada momento el SERVER TOOLS, muchos otros servicios se cuelgan de él, y el estar reiniciando te puede causar problemas y mas si tienes usuarios conectados.
5.- HANA es un ambiente de trabajo muy delicado.
6.- Otra opción, si lo que quieres es que cada usuario tenga su propia licencia, es evaluar licencias limitadas, dependiendo de la función que vayan a realizar esos usuarios dentro de SAP B1.

Espero poder darte un norte o que alguien más pueda dar mas ideas.

1 me gusta

Hola Julian

Crear los usuarios por departamento hace que pierdas las trazabilidad de quién hace qué, ya lo valoramos en su momento y quizá tengamos que llegar a ese punto, pero vamos a intentar evitarlo.

Yo tampoco quiero andar reiniciando el Server Tools cada vez que un usuario flotante vaya a iniciar sesión pero es la única manera que he encontrado de momento de “simular” lo que hace SAP cuando lo hacemos a mano. Tengo la opción de generar un script de automatización de modo que la asignación de licencias se haga a través de una sesión abierta de SAP que aplique los cambios del B1Upf, será un poco lío pero así no tendría que reiniciar el servicio.

Lo de comprar licencias para todos no es una opción, el sistema de licenciamiento de SAP es un despropósito para cualquier centro de producción, hasta las aplicaciones más simples llevan sistemas de flotabilidad, no se trata de no comprar, sino de comprar lo que se necesita. Si yo tengo 30 puestos de trabajo que rotan en tres turnos no tiene sentido que la propuesta de SAP es que les compre 30 licencias o que les entregue usuarios genéricos (por cierto, prohibido por ley por temas de RGPD en según qué secciones).

Sobre el REST API, ¿alguien lo ha usado? He visto algunos ejemplos de código pero las explicaciones sobre sus funciones no las localizo, me da la impresión de que ese API solo sirve para consulta, pero igual tiene algo que me pueda servir para aplicar los cambios del B1UPF.

Gracias por tu respuesta!

Por REST API no está el método para cambiar licencias de usuarios
Por DI API si existe un metodo, por lo que puedes crear una aplicacion en .NET que lo haga.

Try
    Dim oCompanyService As SAPbobsCOM.CompanyService
    oCompanyService = oCompany.GetCompanyService

    Dim oUserLicenseParam As SAPbobsCOM.UserLicenseParams

    ' Set parameters
    oUserLicenseParam = oCompanyService.GetDataInterface(SAPbobsCOM.CompanyServiceDataInterfaces.csdiUserLicenseParams)
    oUserLicenseParam.UserName = "manager"
    oUserLicenseParam.LicenseKeyType = SAPbobsCOM.LicenseKeyTypeEnum.lktdIdirect
    oUserLicenseParam.LicenseUpdateType = SAPbobsCOM.LicenseUpdateTypeEnum.ultAssign

    ' Update user's license
    oCompanyService.UpdateUserLicense(oUserLicenseParam)

Catch ex As Exception
    MsgBox(ex.ToString)
End Try

Atte.

1 me gusta