# On-Premise resources

## Présentation

Cette application vise à permettre d'accéder aux ressources locale du serveur.
Vous utilisez cette application uniquement pour les déploiements on-premise de Business Central afin d'éviter que votre application utilise la cible _On-Prem_.

<div class="app-card">
    <a href="#" class="image"><img src="../images/capvision.png" height="216"></a>
    <h1>On-Premise resources</h1>
    <p>&nbsp;</p>
    <p class="link">
        <a href="https://cvcapvignesstorage.blob.core.windows.net/appupdate/Cap Vision_OnPremise Resources.app">Télécharger l'application pour Business Central</a>
        <a href="https://cvcapvignesstorage.blob.core.windows.net/appupdate/Capvision.OnPremiseResourceService.zip">Télécharger le service Windows</a>
    </p>
</div>

## Utilisation

Cette application se décompose en deux parties :

* D'abord un service Windows que vous devez installer sur le serveur où se trouve le NST.
* Ensuite, une application à installer dans Business Central pour vous aider à exploiter les API exposées par le service Windows.

### Déployer le service Windows

Pour installer le composant en tant que service, suivez les étapes ci-dessous :

1. Connectez-vous au serveur où est installé le service Business Central (NST).
2. Ouvrir PowerShell en tant qu'administrateur.
3. Exécuter la commande ci-dessous :

```powershell
New-Service -Name "Capvision.OnPremiseResourceService" -BinaryPathName "<FullPath>\Capvision.OnPremiseResourceService.exe"
```

   où _<FullPath>_ est l'emplacement où vous avez déposé les fichiers du service.

> [!NOTE]
> Vous pouvez aussi exécuter manuellement le service depuis une invite de commandes en utilisant l'argument ```/console```.

3. Rendez-vous dans les services Windows pour configurer le démarrage du service.

4. Dans le dossier d'installation du service, éditez le fichier ```appsettings.json```.

| Paramètre                    | Exemple                              | Description                                                                                                                                                                                                                                                                                            |
|------------------------------|--------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Endpoint                     | http://localhost:9876                | Spécifie le point de terminaison d'écoute pour les appels d'API.                                                                                                                                                                                                                                       |
| AuthenticationScheme         | Basic                                | Spécifie la méthode d'authentification pour accéder au service.<br/>Les méthodes disponibles sont :<br/>* None : aucune authentification requise pour accéder aux API.<br/>* Basic : une clé d'authentification est requise. Vous devez alors spécifier le paramètre BasicAuthenticationAccessKey |
| BasicAuthenticationAccessKey | 626a4a2f-927d-4d16-97a7-0c4af2eac2f6 | Spécifie la la clé d'authentification requise pour se connecter au service lorsque AuthenticationScheme est défini sur Basic.                                                                                                                                                                          |

### Déployer l'application Business Central

1. Installez l'application Business Central.
2. Connectez l'application au service Windows en recherchant la page _Paramètres ressources locales_.
   Indiquez l'URL du point d'accès et la Clé d'API si vous avez activé un mode d'authentification.

Pour vos développements, ajoutez une dépendance à cette application dans vos développements.

Les API suivantes sont disponibles :

* _FTP OPPTE_  : permet l'interaction avec serveur FTP/FTPS.
* _File OPPTE_ et _Directory OPPTE_ : permet l'interaction avec le système de fichiers local.
* _Print OPPTE_ : permet d'imprimer directement un fichier PDF sur une imprimante locale. Vous devez préalablement installer Acrobat Reader ou Foxit Reader sur le serveur Business Central pour que l'impression fonctionne.

### Paramétrer le papier d'impression

Par défaut lors d'une impression le papier choisi est du A4, mais il est possible de paramétrer des types de papiers personnalisés par imprimante.
Il y a deux possibilités :
- Utiliser un type de [papier existant](https://learn.microsoft.com/en-us/dotnet/api/system.drawing.printing.paperkind?view=dotnet-plat-ext-8.0), dans ce cas ne pas renseigner les colonnes "Unité", "Hauteur du papier", "Largeur de papier" et "Source papier".
- Créer un type de papier personnalisé en saisissant une [unité](https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-onaftersetupprinters-event#printpayload), ses dimensions et une "source papier" et un "papier" Custom.

![Paramétrer un papier personnalisé](images/developer-0.png)

|Value|Description|
|----|--------------------------------------------------------|
| HI | hundredths of an inch. This value is the default value |
| TI | thousandths of an inch |
| IN | inches |
| CM | centimeters |
| MM | millimeters |
| PC | picas |
| PT | points |

## Historique des versions

### Novembre 2023

- Ajout du support de différents types de papiers lors de l'impression

### Septembre 2022

- Ajout du support des échanges FTP, FTPS

### Juillet 2022

- Version initiale