Installation & Setup Guide

Suivez ce guide pour installer et configurer FHS TimeLine dans votre environnement Business Central.

Follow this guide to install and configure FHS TimeLine in your Business Central environment.

Installation SaaS (Azure Cloud)

L'installation dans Business Central SaaS est très simple. Vous devez disposer d'un accès administrateur.

1 Télécharger l'extension

Allez sur GitHub Releases et téléchargez le fichier .app compilé (par exemple: BCFHSTimeline-1.0.0.0.app).

2 Ouvrir la page Extensions

Dans Business Central, accédez à Gestion des Extensions.

Recherchez la page via la barre de recherche (Ctrl+F ou ⌘F) : Extensions

3 Télécharger la nouvelle extension

Cliquez sur le bouton « Télécharger l'extension » et sélectionnez le fichier .app téléchargé.

4 Installer et accepter la permission

Suivez les étapes de déploiement. Une fois terminée, l'extension est active immédiatement.

✅ Installation terminée !
L'extension est prête à l'emploi. Aucune configuration supplémentaire n'est nécessaire.

SaaS Installation (Azure Cloud)

Installing in Business Central SaaS is very simple. You need administrator access.

1 Download the extension

Go to GitHub Releases and download the compiled .app file (e.g., BCFHSTimeline-1.0.0.0.app).

2 Open Extensions page

In Business Central, go to Extensions Management.

Search using the search bar (Ctrl+F or ⌘F): Extensions

3 Upload new extension

Click the "Upload Extension" button and select the downloaded .app file.

4 Install and accept permissions

Follow the deployment steps. Once complete, the extension is active immediately.

✅ Installation complete!
The extension is ready to use. No additional configuration needed.

Installation On-Premise

L'installation dans un environnement On-Premise suit le même processus que SaaS.

1 Vérifier les prérequis

  • Business Central version 25.0 ou supérieure
  • Accès administrateur au serveur Business Central
  • PowerShell 5.1 ou supérieur (pour les déploiements scripté)

2 Télécharger l'extension

Récupérez le fichier .app depuis GitHub Releases.

3 Importer via PowerShell

Importer via PowerShell comme pour n'importe qu'elle extension.

⚠️ Important: Assurez-vous que l'utilisateur qui déploie a accès administrateur à l'instance BC.
✅ Installation terminée !
Redémarrez votre client Business Central pour appliquer les changements.

On-Premise Installation

Installation in an On-Premise environment follows the same process as SaaS.

1 Verify prerequisites

  • Business Central version 25.0 or higher
  • Administrator access to Business Central server
  • PowerShell 5.1 or higher (for scripted deployments)

2 Download extension

Get the .app file from GitHub Releases.

3 Import via PowerShell

Import via PowerShell as with any extension.

⚠️ Important: Ensure the deploying user has administrator access to the BC instance.
✅ Installation complete!
Restart your Business Central client to apply changes.

Compiler et Personnaliser les ID d'objets

Si vous souhaitez modifier le code source et utiliser votre propre plage d'ID d'objets, suivez ce guide.

ℹ️ À savoir: Les ID d'objets par défaut sont 99900-99919. Si vous avez besoin d'une plage différente (par exemple, pour ne pas entrer en conflit avec d'autres extensions), vous devez modifier cette plage.

Étape 1: Cloner le dépôt GitHub

git clone https://github.com/FloFOS/BCFHSTimeline.git
cd BCFHSTimeline

Étape 2: Modifier les ID d'objets

Vous avez deux options : la méthode manuelle VS Code ou le script automatisé.

🔹 Méthode 1: Via VS Code (Recommandé pour une première utilisation)

  1. Ouvrez le projet dans VS Code
  2. Utilisez Ctrl+H (Cmd+H sur Mac) pour ouvrir le Find and Replace
  3. Cherchez: 99900 et remplacez par votre ID de départ (ex: 50000)
  4. Assurez-vous que « Match Whole Word » est activé
  5. Cliquez sur « Replace All »
  6. Répétez pour 99919 → votre ID final

📸 Étapes détaillées avec VS Code:

  1. Appuyez sur Ctrl+H (Find and Replace)
  2. Dans le champ "Find": entrez 99900
  3. Dans le champ "Replace": entrez 50000 (votre nouvel ID)
  4. Activez le bouton "Match Whole Word" (Alt+W)
  5. Cliquez "Replace All" (Ctrl+Alt+Enter)

🔹 Méthode 2: Script Bash automatisé

Si vous avez plusieurs plages à remplacer, utilisez ce script :

#!/bin/bash

# Définissez les paramètres
START_ID=50000    # Votre ID de départ
END_ID=50019      # Votre ID final (minimum 20 IDs)
OLD_START=99900   # ID actuel de départ
OLD_END=99919     # ID actuel final

# Fonction pour calculer le nouvel ID
calculate_new_id() {
  local current_id=$1
  local base_original=$OLD_START
  local offset=$((current_id - base_original))
  local new_id=$((START_ID + offset))
  echo $new_id
}

# Traiter tous les fichiers AL
find src -name "*.al" -type f | while read -r file; do
  echo "Traitement: $file"
  
  # Remplacer les déclarations d'objets
  sed -i.bak -E "s/(table|page|codeunit|report) $OLD_START /\1 $(calculate_new_id $OLD_START) /g" "$file"
  
  # Ajouter d'autres remplacements selon vos besoins
  rm -f "$file.bak"
done

echo "✅ IDs remplacés avec succès!"

Étape 3: Modifier app.json

Mettez à jour manuellement la plage d'ID dans src/app.json :

{
  "idRanges": [
    {
      "from": 50000,
      "to": 50019
    }
  ]
}

Étape 4: Compiler avec AL-Go

Validation des modifications

Avant de déployer, vérifiez que :

  • ✅ Les IDs dans app.json correspondent à ceux du code
  • ✅ Aucune erreur de compilation
  • ✅ Les plages d'ID ne chevauchent pas avec d'autres extensions

Compile & Customize Object IDs

If you want to modify the source code and use your own object ID range, follow this guide.

ℹ️ To know: Default object IDs are 99900-99919. If you need a different range (e.g., to avoid conflicts with other extensions), you must modify this range.

Step 1: Clone the GitHub repository

git clone https://github.com/FloFOS/BCFHSTimeline.git
cd BCFHSTimeline

Step 2: Modify object IDs

You have two options: manual VS Code method or automated script.

🔹 Method 1: Via VS Code (Recommended for first-time)

  1. Open the project in VS Code
  2. Use Ctrl+H (Cmd+H on Mac) to open Find and Replace
  3. Find: 99900 and replace with your start ID (e.g., 50000)
  4. Ensure "Match Whole Word" is enabled
  5. Click "Replace All"
  6. Repeat for 99919 → your end ID

📸 Detailed steps with VS Code:

  1. Press Ctrl+H (Find and Replace)
  2. In "Find" field: enter 99900
  3. In "Replace" field: enter 50000 (your new ID)
  4. Enable "Match Whole Word" button (Alt+W)
  5. Click "Replace All" (Ctrl+Alt+Enter)

🔹 Method 2: Automated Bash script

If you need to replace multiple ranges, use this script:

#!/bin/bash

# Set parameters
START_ID=50000    # Your start ID
END_ID=50019      # Your end ID (minimum 20 IDs)
OLD_START=99900   # Current start ID
OLD_END=99919     # Current end ID

# Function to calculate new ID
calculate_new_id() {
  local current_id=$1
  local base_original=$OLD_START
  local offset=$((current_id - base_original))
  local new_id=$((START_ID + offset))
  echo $new_id
}

# Process all AL files
find src -name "*.al" -type f | while read -r file; do
  echo "Processing: $file"
  
  # Replace object declarations
  sed -i.bak -E "s/(table|page|codeunit|report) $OLD_START /\1 $(calculate_new_id $OLD_START) /g" "$file"
  
  # Add other replacements as needed
  rm -f "$file.bak"
done

echo "✅ IDs replaced successfully!"

Step 3: Modify app.json

Manually update the ID range in src/app.json:

{
  "idRanges": [
    {
      "from": 50000,
      "to": 50019
    }
  ]
}

Step 4: Compile with AL-Go or VS Code

Validate changes

Before deploying, verify that:

  • ✅ IDs in app.json match those in the code
  • ✅ No compilation errors
  • ✅ ID ranges don't overlap with other extensions

Captures d'écran

Voici quelques captures d'écran montrant l'interface TimeLine en action.

Screenshots

Here are some screenshots showing the TimeLine interface in action.

Timeline overview

Timeline overview - Visualize stock evolution

Planning sheet integration

Planning sheet integration

Interactive features

Interactive features and controls

📹 Demo Animation
Animated demo coming soon

Demo animation

Besoin d'aide ?

Si vous avez des questions ou rencontrez des problèmes lors de l'installation :

Need help?

If you have questions or encounter issues during installation: