HCL Commerce Version 9.1.11.0 or later

Migration de stock basé sur DOM vers Elasticsearch

Si vous utilisez un système DOM (Distributed Order Management), vous pouvez importer ses données dans Elasticsearch.

About this task

Lorsque HCL Commerce est intégré à un système DOM externe, une coordination considérable doit avoir lieu pour s'assurer que les statuts d'exécution des commandes, le nombre de stocks et les prix sont systématiquement consignés sur les deux systèmes. Le service Ingest par défaut n'est pas associé à un pipeline DOM intégré, mais vous pouvez facilement modifier l'un des pipelines par défaut pour communiquer avec le système DOM. Le service Ingest est spécifiquement conçu pour de tels scénarios, de sorte que vous pouvez suivre l'ensemble standard d'étapes de création et de configuration d'un connecteur, avec une certaine variante, pour activer la prise en charge d'Ingest pour votre système DOM.

Procedure

  1. Créez un connecteur. Pour créer le connecteur à l'aide du service Ingest, utilisez l'API suivante : http://hostname:30800/swagger-ui/index.html?url=/v3/api-docs&validatorUrl=#/Create%20Connector%20Configuration/createConnectorPour plus d'informations, voir Création d'un connecteur de service NiFi.
    1. Depuis l'interface utilisateur de Swagger, allez à Configuration du connecteur > > POST : /connecteurs API.
    2. Cliquez sur Essayer.
    3. Utilisez votre code personnalisé pour le corps de l'API. Par exemple :
      
      {
         "name":"custom",
         "description":"This is the connector for the custom processing",
         "pipes":[
            {
               "name":"_Template-Schema"
            },
            {
               "name":"_Template-Groovy-DatabaseETL",
               "properties":[
                  {
                     "name":"Database Driver Location(s)",
                     "value":"${AUTH_JDBC_DRIVER_LOCATION}",
                     "scope":{
                        "name":"Database Connection Pool",
                        "type":"CONTROLLER_SERVICE"
                     }
                  },
                  {
                     "name":"Database Driver Class Name ",
                     "value":"${AUTH_JDBC_DRIVER_CLASSNAME}",
                     "scope":{
                        "name":"Database Connection Pool",
                        "type":"CONTROLLER_SERVICE"
                     }
                  },
                  {
                     "name":"Database Connection URL",
                     "value":"${AUTH_JDBC_URL}",
                     "scope":{
                        "name":"Database Connection Pool",
                        "type":"CONTROLLER_SERVICE"
                     }
                  },
                  {
                     "name":"Database User",
                     "value":"${AUTH_JDBC_USER_NAME}",
                     "scope":{
                        "name":"Database Connection Pool",
                        "type":"CONTROLLER_SERVICE"
                     }
                  },
                  {
                     "name":"Password",
                     "value":"${AUTH_JDBC_USER_PASSWORD}",
                     "scope":{
                        "name":"Database Connection Pool",
                        "type":"CONTROLLER_SERVICE"
                     }
                  }
               ]
            },
           {"name":"Terminal"}
         ]
      }
      }
      }
      
    4. Cliquez sur Exécuter.

    Pour plus d'informations sur la personnalisation des connecteurs par défaut, voir Extension des connecteurs Ingest.

  2. Configurez le connecteur pour accepter les données du système DOM. Avec les variantes décrites ci-dessous, vous pouvez suivre les étapes spécifiées dans le tutoriel Configurer le connecteur dans NiFi.
    1. Suivez la procédure jusqu'à l'étape 1.e. A l'étape 1.f, définissez la valeur en tant que stock et poursuivez la procédure jusqu'à l'étape 2.b.
    2. A l'étape 2.b, utilisez ce qui suit comme contenu de replacement value.
      {
         "properties":{
            "custom":{
               "properties":{
      			 "customInventory":{
                     "properties": {
                              "id": {
                                  "type": "keyword",
                                  "store": true
                              },
                              "status": {
                                  "type": "keyword",
                                  "store": true
                              }
                          }
                  }
               }
            }
         }
      }
      
    3. Cliquez deux fois sur Définir le nom de l'index. Sélectionnez l'onglet Propriétés et remplacez la valeur de index.name par ${environment.name}.inventory.
    4. Continuez à suivre la procédure. Une fois que vous avez sélectionné le processeur pour modifier ses paramètres à l'étape ../../tutorials/tutorial/tsd_connectorconfigure_elastic.html#task_n3x_cbg_smb__modcustomsql, définissez index.name comme stock à l'étape ../../tutorials/tutorial/tsd_connectorconfigure_elastic.html#task_n3x_cbg_smb__modindexname.
    5. Mettez à jour le code SQL comme décrit à l'étape ../../tutorials/tutorial/tsd_connectorconfigure_elastic.html#task_n3x_cbg_smb__updateingestsql avec la requête fournie dans le fichier query.txt.
    6. Continuez à suivre la procédure. Une fois que vous avez sélectionné le processeur pour modifier ses paramètres à l'étape ../../tutorials/tutorial/tsd_connectorconfigure_elastic.html#task_n3x_cbg_smb__processorproperties, remplacez le code de l'étape ../../tutorials/tutorial/tsd_connectorconfigure_elastic.html#task_n3x_cbg_smb__updateprocessorproperties par le contenu du fichier groovy_script.txt. Poursuivez la procédure via les étapes 5 et 6.
  3. Au lieu de vous connecter au pipeline Produit, connectez les canaux personnalisés au pipeline auth.inventory, comme dans l'exemple de capture d'écran.

  4. Générez l'index .
  5. Vérifiez que vos données ont été importées. Pour vous aider, un exemple est fourni dans le fichier index_data.txt qui montre comment les données sont représentées dans l'index de stock.
    Vous pouvez exécuter une requête Elasticsearch pour vérifier que les données ajoutées sont récupérables. Un exemple de requête se trouve dans le fichier sample_elastic_query.txt. Remplacez l'ID catentry approprié dans la requête pour afficher les résultats.

    Si une configuration supplémentaire est requise, vous pouvez suivre les étapes de Créer la personnalisation dans NiFi selon vos besoins.

Results

Si la configuration est correcte, vos données basées sur DOM doivent être intégrées dans l'index Elasticsearch et pouvoir y être récupérées.