Réserver une Démo

SVP notez : Cette page d’aide n’est pas pour la dernière version d’Enterprise Architect. La dernière aide peut être trouvée ici.

Pré. Proc.

HandleRequest

Contributions

méthode

  • C++ : caractère const*
  • C# : string
Nom de la méthode à exécuter. Cela permet au plugin de faire un choix sur l'action à effectuer sans avoir à analyser complètement la string de paramètres en premier.

paramètres

  • C++ : caractère const*
  • C# : string
Une string JSON de paramètres. Voir Détails pour plus d'informations sur les paramètres disponibles.

Sorties via des rappels

[Facultatif] Result, LogMessage ou SetError - pour fournir des commentaires à l'utilisateur.

Détails

C'est la fonction principale du plug-in. Il doit gérer toutes les requêtes "méthode" entrantes et effectuer l'action requise, et renvoyer toutes les données via le rappel "Résultat".

Exemple de mise en œuvre

void ExampleServicePlugin::HandleRequest(méthode const char*, paramètres const char*)

{

     LogMessage(LOG_TRACE, std :: string (__FUNCTION__ + " - Method = "s + method).c_str());

     // Cet exemple de méthode montre comment extraire divers types de paramètres à partir de parameters.

     // Ceci est fait ici avec la bibliothèque jsoncpp mais peut être fait avec n'importe quelle bibliothèque JSON compatible.

     Json ::Valeur jsonParameters ;

     si (strlen(paramètres))

     {

         std :: stringstream (paramètres) >> jsonParameters ;

     }

     if (std:: string (method) == "DoSomething")

     {

         int monNuméro = jsonParameters["monNuméro"].asInt();

         double myFloat = jsonParameters["myFloat"].asDouble();

         std :: string myString = jsonParameters["myString"].asString();

         std::list<int> myArrayOfNumbers ;

         for (auto& myValue : jsonParameters["myArrayOfNumbers"])

         {

             myArrayOfNumbers.push_back(myValue.asInt());

         }

         std::list<std::string> myArrayOfStrings ;

         for (auto& myValue : jsonParameters["myArrayOfStrings"])

         {

             myArrayOfStrings.push_back(myValue.asString());

         }

         std :: string result = "Exemple User SBPI Service Plugin in C++. DoSomething a reçu les paramètres : myNumber = " + std :: to_string(myNumber)

             + " , myfloat = " + std::to_string(myFloat)

             + " , maChaîne = " + maChaîne;

         // Définit la string de résultat .

         Result(result.c_str());

     }

     sinon si (std :: string (méthode) == "DoSomethingToElement")

     {

         // Cet exemple de méthode montre comment répondre à un utilisateur effectuant une tâche sur un seul élément.

         std :: string elementID = jsonParameters["elementGUID"].asString();

         Result(std:: string ("Example User SBPI Plugin in C++. DoSomething to element with GUID: " + elementID).c_str());

     }

     autre

     {

         // Définit une string d'erreur

         SetError(std :: string ("Méthode inconnue : " + std :: string (méthode)).c_str());

     }

}