Página 1 de 2

[RESUELTO] Paquete de nómina autónoma de línea abierta EBP 13.21 Versión 3 del 08/02/2023

Publicado: 11 de febrero de 2022 - 8:54 a. m.
por olaplanche
Buen día,

Versión 2 disponible aquí: viewtopic.php?p=9739#p9739

Paquete de nómina autónoma de línea abierta EBP, compilación 1:

Fuentes: https://support.ebp.com/hc/fr/articles/ ... enseñanza-

Primero, es importante saber que el archivo binario de instalación "EBPOL_2022_Autonome_Paie_13_12_0_13235.exe" no es suficiente para una instalación completa para un solo usuario (instancia SQL). En este caso, el instalador intentará descargar el paquete de instalación SQL desde los servidores EBP, así como el WebClient v1_1_3_137 (utilidad de actualización + compatibilidad con TeamViewer). Por lo tanto, el código que proporciono se ajusta a mis necesidades; siéntase libre de adaptarlo.

En mi caso, por tanto, es necesario tener los siguientes archivos en el paquete:
  • ebp_microsoft_sql_2017_x64_v3.7zip # Archivo de instalación de la instancia de EBP SQL recuperada durante una instalación manual de un solo usuario. Renómbrela exactamente como se muestra aquí (lo siento, no pude capturar el enlace de descarga; deberá hacerlo usted también) ;) )
  • EBPOL_2022_Autonome_Paie_13_12_0_13235.exe # El binario principal descargable con su cuenta EBP
Una vez cumplidos todos estos requisitos previos, llega el momento del código:

Archivo de control:

Código: Seleccionar todo

package           : wapt-ebp-paye-2022
version           : 11.0.0.0-1
architecture      : all
section           : base
priority          : optional
name              : EBP Paye 2022
categories        : 
maintainer        : olaplanche
description       : ebp_2022_paye (EBP)
depends           : 
conflicts         : 
maturity          : PROD
locale            : fr
target_os         : windows
min_wapt_version  : 
sources           : 
installed_size    : 
impacted_process  : EBP.Payroll.Application
description_fr    : Envie d'optimiser la production de votre paie ? Profitez d'un logiciel de paie et administration du personnel clé en main, paramétré à votre activité. Fiabilisez son traitement grâce à l'automatisation des tâches et aux mises à jours incluses. Vous réduisez ainsi vos coûts administratifs et consacrez plus de temps aux tâches à plus forte valeur ajouter.
description_pl    : 
description_de    : 
description_es    : 
description_pt    : 
description_it    : 
description_nl    : 
description_ru    : 
audit_schedule    : 
editor            : EBP
keywords          : 
licence           : 
homepage          : https://www.ebp.com/logiciel-paie/solution-autonome
package_uuid      : 4dd1026c-2bde-4edc-9d1b-42080ff0cebb
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
icon_sha256sum    : 
archivo setup.py (No, no estás soñando, de hecho estoy usando psexec aquí para ejecutar el binario con la cuenta del sistema) :o Sin ella, nada funciona :jajaja: ) :
Probé sin éxito: install_exe/msi_if_needed(), run(), run_as_admin(), run_powershell(-verb runAs)

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

# Defining variables
bin_name_string = 'EBPOL_2022_Autonome_Paie_13_12_0_13235.exe' # Le numéro de version dans le nom du binaire ne correspond pas au control.version !!!
# WEBCHECKED=FALSE car sinon la version 1.1.3 de l'utilitaire de mise à jour sera installé
silentargs_EBP_SQL = '/s NETWORK=FALSE PERSONALIZED=TRUE WEBCHECKED=FALSE' # Paramètre pour une installation silencieuse Monoposte EBP + SQL
silentargs_EBP = '/s NETWORK=TRUE PERSONALIZED=TRUE WEBCHECKED=FALSE' # Paramètre pour une installation silencieuse Réseau EBP (pas besoin de psexec dans ce cas là, la fonction install_exe_if_needed serait même suffisante)

def install():
    # Installing the package
    if installed_softwares ('EBP Paie Autonome Open Line 2022 13.12'): # Attention le binaire désinstalle la version courante si identique...
        print('Software %s already installed' % control.package)
        pass
    else:
        print('Installing %s' % control.package)
        run(r'psexec.exe -i -s %s\EBPOL_2022_Autonome_Paie_13_12_0_13235.exe %s' % (basedir,silentargs_EBP_SQL),timeout=1200) 
        #remove_desktop_shortcut('EBP Paie Autonome Open Line 2022 13.12 .lnk') # Suppression du raccourçi sur le bureau
        print('Installing Utilitaire de mise à jour des logiciels EBP 1.1.4')
        install_exe_if_needed("EBP_WebClient_1_1_4_156_Setup.exe",silentflags="/s",min_version="1.1.4") # MAJ de l'utilitaire de mise à jour des logiciels EBP 1.1.4 et Teamviewer QS pour le support EBP

def uninstall():
    # Initializing variables
    silentargs_SQL = '/ACTION="Uninstall" /SUPPRESSPRIVACYSTATEMENTNOTICE="False" /ENU="False" /QUIET="False" /QUIETSIMPLE="True" /FEATURES=SQLENGINE,REPLICATION /HELP="False" /INDICATEPROGRESS="False" /X86="False" /INSTANCENAME="EBP"' # Paramètres pour la désinstallation silencieuse de l'instance SQL EBP
    psexec_path = '//monserveur/SysinternalsSuite$/PsExec.exe' # Chemin où se trouve le binaire psexec.exe à copier sur le poste (le groupe AD Ordinateurs du domaine doit avoir accès en lecture si partage réseau)

    # Uninstalling the package
    print('Uninstalling %s' % control.package)
    run(r'"%s\{89F51B55-CA39-4541-96A8-992BB651ECFE}\setup.exe" /s REMOVE=TRUE MODIFY=FALSE' % programdata) # EBP Paie Autonome Open Line 2022 13.12
    print('Uninstalling Utilitaire de mise à jour des logiciels EBP 1.1.4')
    run('"%s\{1EC042F4-00FE-4251-9F1D-E7DD25B8E895}\setup.exe" /s REMOVE=TRUE MODIFY=FALSE' % programdata) # Utilitaire de mise à jour des logiciels EBP 1.1.4
    print('Uninstalling Instance SQL EBP')
    filecopyto(psexec_path,'c:/windows/temp')
    run(r'c:\windows\temp\psexec.exe -i -s "%s\Microsoft SQL Server\140\Setup Bootstrap\SQL2017\setup.exe" %s' % (programfiles64,silentargs_SQL),timeout=1200) # Instance SQL EBP
    remove_file('c:/windows/temp/psexec.exe')
    print('Uninstalling Microsoft ODBC Driver 13 for SQL Server')
    run('"msiexec.exe" /X{2A35FB4B-FF5D-4C40-BABB-84397E57A8B0} /qn') # Microsoft ODBC Driver 13 for SQL Server
    print('Uninstalling Service de langage T-SQL Microsoft SQL Server 2017')
    run('"msiexec.exe" /X{7051E3D8-7B59-4E38-A94F-BBA621D98267} /qn') # Service de langage T-SQL Microsoft SQL Server 2017
    print('Uninstalling Microsoft SQL Server 2012 Native Client')
    run('"msiexec.exe" /X{BD124715-29D5-4A2E-82EE-0F4392D9CFE3} /qn') # Microsoft SQL Server 2012 Native Client
Futuro :
Quizás una compilación 2 con un paquete separado para instalar la instancia de SQL.
Paquetes para la suite educativa EBP PGI \o/

Re: [RESUELTO] Paquete de nómina autónoma de línea abierta EBP

Publicado: 11 de febrero de 2022 - 10:20 a. m.
por jpele
Hola Olivier,

no estoy seguro de entender si lograste instalar microsoft-sql-server-2017 usando el paquete WAPT.

Ya he trabajado en un paquete EBP y logré crear un paquete funcional tis-microsoft-sql-server-2014-express-ebp.
Si necesitas ayuda, no dudes en solicitar soporte para que podamos trabajar en el paquete ebp_microsoft_sql_2017_x64_v3.7zip.

Saludos,
Jimmy

Re: [RESUELTO] Paquete de nómina autónoma de línea abierta EBP

Publicado: 11 de febrero de 2022 - 10:49 a. m.
por olaplanche
Sí, en el código que propongo, la instalación simultánea de EBP y la instancia SQL funciona igual que en una instalación manual. ;)

Tras analizar el funcionamiento del instalador, tengo buenas esperanzas de poder separar la instalación de la instancia SQL y el cliente EBP en dos paquetes distintos.

Les mantendré informados.

Re: [RESUELTO] Paquete de nómina autónoma de línea abierta EBP

Publicado: 11 de febrero de 2022 - 11:34 a. m.
por florentR2
¡Eso serían excelentes noticias, ya que tenemos el mismo problema con EBP!
¿Puedes confirmar que el paquete funciona correctamente en el modo de despliegue clásico y no solo con Pyscripter/wapt-get install?

Gracias a Wapt, ahora es mucho más sencillo. Simplemente creamos un paquete que copia los archivos de instalación localmente y, en la consola, agregamos una herramienta psexec que inicia la instalación. Al hacer clic derecho en cualquier PC que lo necesite, se instala. No es perfecto, pero es mejor que antes, cuando teníamos que hacerlo manualmente en cada PC, una por una.

Re: [RESUELTO] Paquete de nómina autónoma de línea abierta EBP

Publicado: 11 de febrero de 2022 - 11:45 a. m.
por olaplanche
Sí, puedo confirmar que todo funciona correctamente; lo probé en una máquina virtual de prueba idéntica al PC de producción.

El código que proporciono instala automáticamente el cliente EBP, la instancia SQL y Webclient 1.1.4.
Al desinstalarlo, se elimina todo: el cliente EBP, Webclient 1.1.4, la instancia SQL y todas sus dependencias.

Re: [RESUELTO] Paquete de nómina autónoma de línea abierta EBP

Publicado: 11 de febrero de 2022 - 13:17
por florentR2
Está bien, gracias, ¡lo intentaré para el próximo año escolar con la nueva versión!

Re: [RESUELTO] Paquete de nómina autónoma de línea abierta EBP

Publicado: 11 de febrero de 2022 - 14:57
por jpele
Por lo que he leído, creo que la instalación depende de internet; no encuentro dónde está el archivo zip, que además tuve que descargar manualmente.
Así que es muy probable que el archivo zip se descargue con cada instalación.

Re: [RESUELTO] Paquete de nómina autónoma de línea abierta EBP

Publicado: 11 de febrero de 2022 - 16:00
por olaplanche
Paquete wapt-microsoft-sql-server-2017-express-ebp: viewtopic.php?t=2929

Compilación 2 del paquete EBP Paquete Open Line Standalone Payroll en curso ;)

Re: [RESUELTO] Paquete de nómina autónoma de línea abierta EBP

Publicado: 11 de febrero de 2022 - 16:21
por olaplanche
:!: La compilación 2 ahora es mucho más sencilla: :!:

Archivo de control:

Código: Seleccionar todo

package           : wapt-ebp-paye-2022
version           : 11.0.0.0-74
architecture      : all
section           : base
priority          : optional
name              : EBP Paye 2022
categories        : 
maintainer        : olaplanche
description       : ebp_2022_paye (EBP)
depends           : wapt-microsoft-sql-server-2017-express-ebp
conflicts         : 
maturity          : PROD
locale            : fr
target_os         : windows
min_wapt_version  : 
sources           : https://support.ebp.com/hc/fr/articles/360000159638-Param%C3%A9trage-du-fichier-InstallEBP-dans-EBP-%C3%89ducation-pack-enseignement-
installed_size    : 
impacted_process  : EBP.Payroll.Application
description_fr    : Envie d'optimiser la production de votre paie ? Profitez d'un logiciel de paie et administration du personnel clé en main, paramétré à votre activité. Fiabilisez son traitement grâce à l'automatisation des tâches et aux mises à jours incluses. Vous réduisez ainsi vos coûts administratifs et consacrez plus de temps aux tâches à plus forte valeur ajouter.
description_pl    : 
description_de    : 
description_es    : 
description_pt    : 
description_it    : 
description_nl    : 
description_ru    : 
audit_schedule    : 
editor            : EBP
keywords          : 
licence           : 
homepage          : https://www.ebp.com/logiciel-paie/solution-autonome
package_uuid      : 0fb002ff-3e13-4f41-82b8-4d1a5c2ecb8a
valid_from        : 
valid_until       : 
forced_install_on : 
changelog         : 
min_os_version    : 
max_os_version    : 
icon_sha256sum    : 
archivo setup.py:

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

# Defining variables
bin_name_string = 'EBPOL_2022_Autonome_Paie_13_12_0_13235.exe' # Le numéro de version dans le nom du binaire ne correspond pas au control.version !!!
# WEBCHECKED=FALSE car sinon la version 1.1.3 de l'utilitaire de mise à jour sera installé
silentargs_EBP_SQL = '/s NETWORK=FALSE PERSONALIZED=TRUE WEBCHECKED=FALSE' # Paramètre pour une installation silencieuse Monoposte EBP + SQL
silentargs_EBP = '/s NETWORK=TRUE PERSONALIZED=TRUE WEBCHECKED=FALSE' # Paramètre pour une installation silencieuse Réseau EBP (pas besoin de psexec dans ce cas là, la fonction install_exe_if_needed serait même suffisante)

def install():
    # Installing the package
    if installed_softwares ('EBP Paie Autonome Open Line 2022 13.12'): # Attention le binaire désinstalle la version courante si identique...
        print('Software %s already installed' % control.package)
        pass
    else:
        print('Installing %s' % control.package)
        install_exe_if_needed(bin_name_string,silentargs_EBP)
        #remove_desktop_shortcut('EBP Paie Autonome Open Line 2022 13.12 .lnk') # Suppression du raccourçi sur le bureau
        print('Installing Utilitaire de mise à jour des logiciels EBP 1.1.4')
        install_exe_if_needed("EBP_WebClient_1_1_4_156_Setup.exe",silentflags="/s",min_version="1.1.4") # MAJ de l'utilitaire de mise à jour des logiciels EBP 1.1.4 et Teamviewer QS pour le support EBP

def uninstall():
    # Uninstalling the package
    print('Uninstalling %s' % control.package)
    run(r'"%s\{89F51B55-CA39-4541-96A8-992BB651ECFE}\setup.exe" /s REMOVE=TRUE MODIFY=FALSE' % programdata) # EBP Paie Autonome Open Line 2022 13.12
    print('Uninstalling Utilitaire de mise à jour des logiciels EBP 1.1.4')
    run('"%s\{1EC042F4-00FE-4251-9F1D-E7DD25B8E895}\setup.exe" /s REMOVE=TRUE MODIFY=FALSE' % programdata) # Utilitaire de mise à jour des logiciels EBP 1.1.4

Re: [RESUELTO] Paquete de nómina autónoma de línea abierta EBP 13.21 Build 3

Publicado: 8 de febrero de 2023 - 8:56 a. m.
por olaplanche
:!: Versión 3 del 08/02/2023 :!:

Revisión completa del código:
  • Máximo aprovechamiento de la variable
  • Uso de las funciones nativas de Wapt
  • Se agregó gestión de número de versión (ya que EBP no lo hace...)
  • Se agregó la actualización para el software que no funcionaba correctamente en la compilación 2
archivo de control:

Código: Seleccionar todo

package           : wapt-ebp-paye-2022
version           : 13.21-74
architecture      : all
section           : base
priority          : optional
name              : EBP Paie Autonome Open Line 2022
categories        : 
maintainer        : olaplanche
description       : 
depends           : wapt-microsoft-sql-server-2017-express-ebp
conflicts         : 
maturity          : PROD
locale            : fr
target_os         : windows
min_wapt_version  : 
sources           : https://support.ebp.com/hc/fr/articles/360000159638-Param%C3%A9trage-du-fichier-InstallEBP-dans-EBP-%C3%89ducation-pack-enseignement-
installed_size    : 
impacted_process  : EBP.Payroll.Application
description_fr    : Envie d'optimiser la production de votre paie ? Profitez d'un logiciel de paie et administration du personnel clé en main, paramétré à votre activité. Fiabilisez son traitement grâce à l'automatisation des tâches et aux mises à jours incluses. Vous réduisez ainsi vos coûts administratifs et consacrez plus de temps aux tâches à plus forte valeur ajouter.
description_pl    : 
description_de    : 
description_es    : 
description_pt    : 
description_it    : 
description_nl    : 
description_ru    : 
audit_schedule    : 
editor            : EBP
keywords          : 
licence           : 
homepage          : https://www.ebp.com/logiciel-paie/solution-autonome
archivo setup.py:

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *

r"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""

# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls
bin_contains = 'EBPOL_2022_Autonome_Paie_' # The ProductVersion from binary is not corresponding to the control.version and is not usable, we will spoof it later !
silentflags = '/s NETWORK=TRUE PERSONALIZED=TRUE WEBCHECKED=FALSE' # WEBCHECKED=FALSE otherwise the 1.1.3 version of the update utility will be installed. We don't need it to manage update with WAPT
silent_uninstallflags = " /s REMOVE=TRUE MODIFY=FALSE"
app_uninstallkey = "EBP Paie Autonome Open Line 2022 %s " # The uninstallkey is changing everytime with new version of the software, we have to guess it from package_version !
app_displayname_contains = "EBP Paie Autonome Open Line 2022"

def install():
    # Initializing variables
    package_version = control.get_software_version()
    bin_name = glob.glob("*%s*.exe" % bin_contains)[0]

    # Skip if already installed
    if need_install(app_uninstallkey % package_version,min_version=package_version):

        # Uninstalling others versions
        for uninstall in installed_softwares(app_displayname_contains):
            if uninstall['uninstall_string']: # test if the uninstallkey had an uninstall_string because there are two uninstallkey for the same software...
                print("Removing: %s" % (uninstall["name"]))
                killalltasks(control.get_impacted_process_list())
                run(uninstall_cmd(uninstall["key"]))
                wait_uninstallkey_absent(uninstall["key"])

        # Installing the package
        print('Installing %s' % bin_name)
        install_exe_if_needed(bin_name,silentflags=silentflags,key=app_uninstallkey % package_version,timeout=900)
        #remove_desktop_shortcut(app_displayname_contains + " %s " % package_version) # Remove a shortcut from the desktop of all users if needed

    else:

        # Making sure uninstallkey is known
        uninstallkey.append(app_uninstallkey % package_version)

    # Add a silent uninstall command to the registry
    for uninstallstring in installed_softwares(app_displayname_contains):
        silent_uninstall_cmd = uninstallstring['uninstall_string'].split(" ",1)[0] + silent_uninstallflags
        register_uninstall(uninstallkey=app_uninstallkey % package_version,quiet_uninstall_string=silent_uninstall_cmd,display_version=package_version) # we are spoofing the version's number right here