> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Développer des solutions

> Créer et protéger des solutions ABBYY FlexiCapture destinées à la revente, en sécurisant les définitions de document, les FlexiLayouts et les modules de règles avec des licences Developer.

Vous pouvez développer des solutions basées sur FC en vue de les vendre à des tiers. Une solution est une définition de document et peut inclure les composants supplémentaires suivants :

* Un FlexiLayout créé dans FlexiLayout Studio
* Un module de règles ou un algorithme spécial de vérification des données utilisant des règles
* Un module d’export ou une procédure d’export personnalisée

Vous pouvez protéger votre solution contre toute utilisation non autorisée à l’aide d’une **licence Developer** et d’un identifiant unique de solution. Seuls les utilisateurs disposant d’une **licence utilisateur** pourront utiliser votre solution.

<div id="protecting-document-definitions">
  ## Protection des définitions de document
</div>

1. Envoyez un message décrivant votre solution et répertoriant ses composants au [bureau ABBYY](https://www.abbyy.com/support/contacts/) de votre région.
2. Selon le type de solution que vous développez, le bureau ABBYY vous fournira des identifiants uniques pour les composants de votre solution et, dans certains cas, une licence Developer. Ces identifiants uniques peuvent être inclus dans le code source des composants de votre solution et comparés aux identifiants spécifiés dans une licence utilisateur.
3. Démarrez FC, ouvrez le Document Definition Editor, cliquez sur **Document Definition Properties...** dans le menu **Document Definition** de l'éditeur, sélectionnez l'onglet **General** et saisissez l'identifiant unique de la solution que vous avez reçu du bureau ABBYY.
4. Lorsque vous vendez votre solution à un client, demandez au bureau ABBYY une licence utilisateur incluant l'identifiant unique de la solution. Sans cette licence, votre client ne pourra pas utiliser la définition de document ou le FlexiLayout pour traiter des documents.

<div id="protecting-individual-components">
  ## Protection des composants individuels
</div>

Tout composant peut être développé et protégé indépendamment d’une solution complète.

Si vous souhaitez protéger un FlexiLayout, vous aurez besoin d’une licence Developer. Pour plus de détails, consultez l’article **Projects → Fonctionnalités de protection des FlexiLayouts et des classificateurs** dans l’aide d’ABBYY FlexiLayout Studio.

Les modules d’Export et de règles sont intégrés à une définition de document à l’aide d’un script. Vous n’aurez pas besoin d’une licence Developer pour protéger ces modules. Si votre solution permet d’utiliser des modules avec n’importe quelle définition de document, vous pouvez les protéger en incluant dans le code du module une vérification d’identifiant unique.

<Note>
  Nous vous recommandons de développer une bibliothèque externe au format \*.dll et de l’intégrer à ABBYY FlexiCapture. Ainsi, le code source ne sera pas accessible aux utilisateurs.
</Note>

Pour ce faire, utilisez la méthode **IsModuleAllowedByLicense** dans votre module pour vérifier si la licence de l’utilisateur autorise l’utilisation du module :

```
IsModuleAllowedByLicense ( authorId : string, moduleName : string ) : bool
```

Dans l’exemple de code ci-dessus, **authorId** est l’identifiant unique du développeur, et **moduleName** est l’identifiant unique de la solution.

<Accordion title="Exemples de code">
  L’exemple de code suivant montre comment une méthode peut vérifier la présence d’un paramètre dans une licence :

  ```
  private bool CheckLicense()
         {
              if (FCTools.IsModuleAllowedByLicense("ABBYY RU", "ModuleName") == false)
              {
                  FCTools.ShowMessage("Your license does not allow the use of this module", true);
                  return false;
              }
              else
              {
                  // FCTools.ShowMessage("License is OK", false);
                  return true;
              }
          }
  ```

  Vous pouvez appeler la méthode de vérification de la licence dans un script d’export comme suit :

  ```
  public void ExportDocument(ref IExportDocument docRef, ref FCTools FCTools )
          {
              if (CheckLicense() == true)
              {
                  …
                  exportImages(docRef, FCTools, exportFolder);
                      // exporter les informations sur le document
                  exportDocInfo(docRef, sw);
                      // exporter les champs
                  exportFields(docRef.Children, sw, "");
              }
          }
  ```

  Si la licence n’inclut pas de module nommé **ModuleName** et dont l’auteur est **ABBYY RU**, l’exportation des documents entraînera une erreur.
</Accordion>
