[SOLVED] EBP Open Line Autonomous Payroll Package 13.21 Build 3 from 02/08/2023

Questions about WAPT Packaging / Requests and help regarding Wapt packages.
Forum Rules
Community Forum Rules
* English support on www.reddit.com/r/wapt
* French community support is available on this forum
* Please prefix the topic title with [RESOLVED] if it is resolved.
* Please do not edit a topic that is tagged [RESOLVED]. Open a new topic referencing the old one.
* Specify the installed WAPT version, full version, and build number (2.2.1.11957 / 2.2.2.12337 / etc.) as well as the Enterprise/Discovery edition.
* Versions 1.8.2 and earlier are no longer supported. The only questions accepted regarding version 1.8.2 are related to upgrading to a supported version (2.1, 2.2, etc.).
* Specify the server OS (Linux/Windows) and version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specify the OS of the administration/package creation machine and the machine with the problematic agent, if applicable (Windows 7/10/11/Debian 11/etc.).
* Avoid asking multiple questions when opening a topic, otherwise it may be ignored. If there are multiple topics, open separate topics, preferably one after the other and not all at the same time (i.e., do not spam the forum).
* Include code snippets, screenshots, and other images directly in the post. Links to Pastebin, Bitly, and other third-party sites will be systematically removed.
* As with any community forum, support is provided voluntarily by members. If you require commercial support, you can contact Tranquil IT's sales department at 02.40.97.57.55
olaplanche
Messages: 178
Registration: January 26, 2017 - 11:11

February 11, 2022 - 8:54 AM

Good morning,

Build 2 available here: viewtopic.php?p=9739#p9739

EBP Open Line Autonomous Payroll package build 1:

Sources: https://support.ebp.com/hc/fr/articles/ ... teaching-

First, it's important to know that the installation binary "EBPOL_2022_Autonome_Paie_13_12_0_13235.exe" is not sufficient for a complete single-user installation (SQL instance). In this case, the installer will attempt to download the SQL installation package from the EBP servers, as well as the WebClient v1_1_3_137 (update utility + TeamViewer support). Therefore, the code I'm providing corresponds to my needs; feel free to adapt it.

In my case, it is therefore necessary to have the following files in the package:
  • ebp_microsoft_sql_2017_x64_v3.7zip # Installation archive of the EBP SQL instance retrieved during a manual single-user installation. Rename it exactly as shown here (sorry, I couldn't capture the download link; you'll have to do the same) ;) )
  • EBPOL_2022_Autonome_Paie_13_12_0_13235.exe # The main binary downloadable with your EBP account
Once all these prerequisites are met, it's time for the code:

Control file:

Code: Select all

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    : 
setup.py file (No, you're not dreaming, I am indeed using psexec here to run the binary with the system account) :o Without it, nothing works :lol: ) :
I tested without success: install_exe/msi_if_needed(), run(), run_as_admin(), run_powershell(-verb runAs)

Code: Select all

# -*- 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
Future :
Perhaps a build 2 with a separate package for installing the SQL instance.
Packages for the EBP PGI Education suite \o/
Last edited by olaplanche on 08 Feb 2023 - 16:17, edited 4 times.
- Installed WAPT version: 2.6.0.16795 Enterprise
- Server OS: Linux / Debian Bookworm
- Administration/package creation machine OS: Windows 10
User avatar
jpele
Messages: 156
Registration: March 4, 2019 - 12:01
Location: Nantes

February 11, 2022 - 10:20

Hi Olivier,

I'm not sure I understand if you managed to install microsoft-sql-server-2017 using the WAPT package.

I've already worked on an EBP package and managed to create a functional tis-microsoft-sql-server-2014-express-ebp package.
If you need any help, feel free to request support so we can work on the ebp_microsoft_sql_2017_x64_v3.7zip package.

Regards,
Jimmy
olaplanche
Messages: 178
Registration: January 26, 2017 - 11:11

February 11, 2022 - 10:49

Yes, in the code I'm proposing, installing EBP and the SQL instance simultaneously works just like the installer would during a manual installation. ;)

Having analyzed the installer's operation gives me good reason to hope that I can separate the installation of the SQL instance and the EBP client into two separate packages!

I'll keep you posted.
- Installed WAPT version: 2.6.0.16795 Enterprise
- Server OS: Linux / Debian Bookworm
- Administration/package creation machine OS: Windows 10
florentR2
Messages: 100
Registration: February 13, 2020 - 5:23 PM

February 11, 2022 - 11:34

That would be great news because we have the same problem with EBP!
Can you confirm that the package works well in classic deployment mode and not just with Pyscripter/wapt-get install?

Thanks to Wapt, it's much simpler for us now. We just created a package that copies the installation files locally, and in the console, we added a psexec tool that launches the installation. Right-clicking on any PC that needs it installs it. It's not perfect, but it's better than before when we had to do it manually on every PC, one by one.
olaplanche
Messages: 178
Registration: January 26, 2017 - 11:11

February 11, 2022 - 11:45

Yes, I can confirm that everything works, tested on a test VM identical to the production PC.

The code I'm providing automatically installs the EBP client, the SQL instance, and Webclient 1.1.4.
Uninstalling it removes everything: the EBP client, Webclient 1.1.4, the SQL instance, and all its dependencies!
- Installed WAPT version: 2.6.0.16795 Enterprise
- Server OS: Linux / Debian Bookworm
- Administration/package creation machine OS: Windows 10
florentR2
Messages: 100
Registration: February 13, 2020 - 5:23 PM

February 11, 2022 - 1:17 PM

Okay, thanks, I'll try that for the next school year with the new version!
User avatar
jpele
Messages: 156
Registration: March 4, 2019 - 12:01
Location: Nantes

February 11, 2022 - 2:57 PM

From what I've read, I think the installation depends on the internet; I don't see where the zip file is located, which I also had to download manually.
So it's very likely that the zip file is downloaded with each installation.
olaplanche
Messages: 178
Registration: January 26, 2017 - 11:11

February 11, 2022 - 4:00 PM

Package wapt-microsoft-sql-server-2017-express-ebp: viewtopic.php?t=2929

Build 2 of the package EBP package Open Line Standalone Payroll in progress ;)
- Installed WAPT version: 2.6.0.16795 Enterprise
- Server OS: Linux / Debian Bookworm
- Administration/package creation machine OS: Windows 10
olaplanche
Messages: 178
Registration: January 26, 2017 - 11:11

February 11, 2022 - 4:21 PM

:!: Build 2 is much simpler now: :!:

Control file:

Code: Select all

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

Code: Select all

# -*- 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
- Installed WAPT version: 2.6.0.16795 Enterprise
- Server OS: Linux / Debian Bookworm
- Administration/package creation machine OS: Windows 10
olaplanche
Messages: 178
Registration: January 26, 2017 - 11:11

February 8, 2023 - 8:56 AM

:!: Build 3 of 08/02/2023 :!:

Complete code overhaul:
  • Maximum use of variable
  • Using Wapt's native functions
  • Added version number management (since EBP doesn't do it...)
  • Added the update for the software that wasn't working correctly in build 2
control file:

Code: Select all

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

Code: Select all

# -*- 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
- Installed WAPT version: 2.6.0.16795 Enterprise
- Server OS: Linux / Debian Bookworm
- Administration/package creation machine OS: Windows 10
Locked