Pagina 1 di 2

[RISOLTO] Pacchetto di gestione autonoma delle paghe EBP Open Line 13.21 Build 3 del 02/08/2023

Pubblicato: 11 febbraio 2022 - 08:54
di olaplanche
Buongiorno,

Build 2 disponibile qui: viewtopic.php?p=9739#p9739

Pacchetto EBP Open Line Autonomous Payroll build 1:

Fonti: https://support.ebp.com/hc/fr/articles/ ... insegnamento-

Innanzitutto, è importante sapere che il file binario di installazione "EBPOL_2022_Autonome_Paie_13_12_0_13235.exe" non è sufficiente per un'installazione monoutente completa (istanza SQL). In questo caso, il programma di installazione tenterà di scaricare il pacchetto di installazione SQL dai server EBP, nonché il WebClient v1_1_3_137 (utilità di aggiornamento + supporto TeamViewer). Pertanto, il codice che fornisco corrisponde alle mie esigenze; ​​sentitevi liberi di adattarlo.

Nel mio caso è quindi necessario che nel pacchetto siano presenti i seguenti file:
  • ebp_microsoft_sql_2017_x64_v3.7zip # Archivio di installazione dell'istanza EBP SQL recuperata durante un'installazione manuale per singolo utente. Rinominalo esattamente come mostrato qui (mi dispiace, non sono riuscito a catturare il link per il download; dovrai fare lo stesso) ;) )
  • EBPOL_2022_Autonome_Paie_13_12_0_13235.exe # Il binario principale scaricabile con il tuo account EBP
Una volta soddisfatti tutti questi prerequisiti, è il momento del codice:

File di controllo:

Codice: Seleziona tutto

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    : 
file setup.py (No, non stai sognando, sto effettivamente usando psexec per eseguire il binario con l'account di sistema) :o Senza di esso, niente funziona :lol: ) :
Ho testato senza successo: install_exe/msi_if_needed(), run(), run_as_admin(), run_powershell(-verb runAs)

Codice: Seleziona tutto

# -*- 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:
Forse una build 2 con un pacchetto separato per l'installazione dell'istanza SQL.
Pacchetti per la suite EBP PGI Education \o/

Re: [RISOLTO] Pacchetto di pagamento autonomo EBP Open Line

Pubblicato: 11 febbraio 2022 - 10:20
di jpele
Ciao Olivier,

non sono sicuro di aver capito se sei riuscito a installare microsoft-sql-server-2017 usando il pacchetto WAPT.

Ho già lavorato su un pacchetto EBP e sono riuscito a creare un pacchetto tis-microsoft-sql-server-2014-express-ebp funzionante.
Se hai bisogno di aiuto, non esitare a richiedere supporto così possiamo lavorare sul pacchetto ebp_microsoft_sql_2017_x64_v3.7zip.

Cordiali saluti,
Jimmy

Re: [RISOLTO] Pacchetto di pagamento autonomo EBP Open Line

Pubblicato: 11 febbraio 2022 - 10:49
di olaplanche
Sì, nel codice che sto proponendo, l'installazione simultanea di EBP e dell'istanza SQL funziona esattamente come farebbe il programma di installazione durante un'installazione manuale. ;)

Dopo aver analizzato il funzionamento del programma di installazione, ho buone ragioni per sperare di poter separare l'installazione dell'istanza SQL e del client EBP in due pacchetti distinti!

Vi terrò aggiornati.

Re: [RISOLTO] Pacchetto di pagamento autonomo EBP Open Line

Pubblicato: 11 febbraio 2022 - 11:34
di florentR2
Sarebbe un'ottima notizia perché abbiamo lo stesso problema con EBP!
Puoi confermare che il pacchetto funziona correttamente in modalità di distribuzione classica e non solo con Pyscripter/wapt-get install?

Grazie a Wapt, ora è molto più semplice per noi. Abbiamo appena creato un pacchetto che copia i file di installazione in locale e nella console abbiamo aggiunto uno strumento psexec che avvia l'installazione. Facendo clic con il pulsante destro del mouse su qualsiasi PC che ne abbia bisogno, si avvia l'installazione. Non è perfetto, ma è meglio di prima, quando dovevamo farlo manualmente su ogni PC, uno per uno.

Re: [RISOLTO] Pacchetto di pagamento autonomo EBP Open Line

Pubblicato: 11 febbraio 2022 - 11:45
di olaplanche
Sì, posso confermare che tutto funziona correttamente, testato su una macchina virtuale di prova identica al PC di produzione.

Il codice che fornisco installa automaticamente il client EBP, l'istanza SQL e Webclient 1.1.4.
Disinstallandolo, viene rimosso tutto: il client EBP, Webclient 1.1.4, l'istanza SQL e tutte le sue dipendenze!

Re: [RISOLTO] Pacchetto di pagamento autonomo EBP Open Line

Pubblicato: 11 febbraio 2022 - 13:17
di florentR2
Ok, grazie, proverò a farlo il prossimo anno scolastico con la nuova versione!

Re: [RISOLTO] Pacchetto di pagamento autonomo EBP Open Line

Pubblicato: 11 febbraio 2022 - 14:57
di jpele
Da quello che ho letto, credo che l'installazione dipenda dalla connessione internet; non riesco a trovare la posizione del file zip, che ho dovuto scaricare manualmente.
Quindi è molto probabile che il file zip venga scaricato a ogni installazione.

Re: [RISOLTO] Pacchetto di pagamento autonomo EBP Open Line

Pubblicato: 11 febbraio 2022 - ore 16:00
di olaplanche
Pacchetto wapt-microsoft-sql-server-2017-express-ebp: viewtopic.php?t=2929

Build 2 del pacchetto EBP Pacchetto Open Line Standalone Payroll in corso ;)

Re: [RISOLTO] Pacchetto di pagamento autonomo EBP Open Line

Pubblicato: 11 febbraio 2022 - 16:21
di olaplanche
:!: La build 2 è ora molto più semplice: :!:

File di controllo:

Codice: Seleziona tutto

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    : 
file setup.py:

Codice: Seleziona tutto

# -*- 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: [RISOLTO] Pacchetto di gestione autonoma delle paghe EBP Open Line 13.21 Build 3

Pubblicato: 8 febbraio 2023 - 08:56
di olaplanche
:!: Versione 3 del 08/02/2023 :!:

Revisione completa del codice:
  • Utilizzo massimo della variabile
  • Utilizzo delle funzioni native di Wapt
  • Aggiunta la gestione del numero di versione (dato che EBP non lo fa...)
  • Aggiunto l'aggiornamento per il software che non funzionava correttamente nella build 2
file di controllo:

Codice: Seleziona tutto

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
file setup.py:

Codice: Seleziona tutto

# -*- 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