Personnalisation des connecteurs CAS par défaut avec des profils Ingest
Dans cette leçon, vous allez apprendre à extraire une colonne supplémentaire de la base de données et à la rendre disponible en tant que zone supplémentaire dans la réponse de recherche.
Before you begin
- Assurez-vous de l'avoir téléchargé et extrait
HCL_Commerce_Search_Bundle_9.1.x.0.zipdepuis le portail HCL License and Delivery. Le fichier zip extrait contiendra les données du tutoriel à l'emplacement de dossier suivant : \dependencies\nifi\Tutorials. - Extrayez
commerce-custom-search-marketplace-seller.zipdans un répertoire temporaire de votre environnement de développement, qui doit être configuré dans le kit d'outils NiFi en suivant la procédure décrite ci-dessous. Ce fichier inclut l'exemple de code Java et des tests Junit que vous utilisez dans ce tutoriel.
Procedure
-
Créez un processeur NiFi personnalisé en étendant le processeur Ingest par défaut dans le kit d'outils NiFi.
Pour configurer l'environnement du kit d'outils avec l'exemple de code source fourni
commerce-custom-search-marketplace-seller.zipdans le même espace de travail quecommerce-custom-search-bundles-9.1.x.0, comme expliqué dans le prérequis, suivez les étapes mentionnées ci-dessous. Et pour plus d'informations surcommerce-custom-search-bundles-9.1.x.0, voir Tutoriel : Personnalisation des connecteurs par défaut avec le profil Ingest.Note: Vous pouvez utiliser n'importe quelle distribution Eclipse incluant le plug-in Maven (Maven version 3.8.4 ou ultérieure).- Extrayez
commerce-custom-search-marketplace-seller.zipdans un répertoire de travail,commerce-custom-search-marketplace-seller, qui contient un projet Maven avec un fichierpom.xmlà l'intérieur. - Copiez les fichiers JAR suivants obtenus à partir du conteneur NiFi dans le répertoire du projet
commerce-custom-search-marketplace-seller/libsqui a été extrait du projetcommerce-custom-search-marketplace-seller.zip. Pour plus d'informations, reportez-vous aux étapes 3 à 6 des processeurs NiFi personnalisés.Exemple issu de la version 9.1.x.0 :
commerce-search-processors-9.1.x.0.jarhcl-cache-core-9.1.x.0-20221201.221643-25.jarcf-base-9.1.x.0-20221123.064414-9.jar
Ingest-api.jar, qui a été inclus dans le modèle de projetcommerce-custom-search-marketplace-seller.zip, est déjà présent dans ce dossier. - Mettez à jour le fichier
pom.xmldans le répertoire racine du projetcommerce-custom-search-marketplace-selleret modifiez les références de nom de fichier avec les noms des fichiers JAR.Exemple issu de la version 9.1.x.0 :<dependency> <groupId>com.hcl.commerce</groupId> <artifactId>dummy-commerce-search-processors</artifactId> <version>9.1.x.0</version> <scope>system</scope> <systemPath>${project.basedir}/libs/commerce-search-processors-9.1.x.0.jar</systemPath> </dependency> <dependency> <groupId>com.hcl.commerce</groupId> <artifactId>dummy-hcl-cache-core</artifactId> <version>9.1.x.0</version> <scope>system</scope> <systemPath>${project.basedir}/libs/ hcl-cache-core-9.1.x.0-20221201.221643-25.jar</systemPath> </dependency> <dependency> <groupId>com.ibm.commerce.cf</groupId> <artifactId>dummy-cf-base</artifactId> <version>9.1.x.0</version> <scope>system</scope> <systemPath>${project.basedir}/libs/cf-base-9.1.x.0-20221123.064414-9.jar</systemPath> </dependency> - Importez le projet extrait en tant que projet Maven dans Eclipse () et sélectionnez le répertoire racine commerce-custom-search-marketplace-seller. Cliquez sur Terminer. Attendez que le téléchargement des dépendances soit terminé.
Ce projet comporte un exemple de classe de fournisseur d'expression personnalisée ChangeSQL qui implémente l'interface IngestExpressionProvider. La classe ChangeSQL étend la SQL pour inclure une colonne DESCRIPTION de la table MPSELLERDESC pour l'étape DatabaseCASProductStage1a. Elle inclut également une colonne PARTNUMBER de la table CATENTRY pour l'étape DatabaseCASProductStage1h. Vous pouvez utiliser cet exemple de référence pour apprendre à modifier le SQL utilisé dans les phases d'extraction, de transformation et de chargement (ETL) par défaut.
ComposeDatabaseSQLTest est le test JUnit qui peut être utilisé pour vérifier la logique de code dans ChangeSQL.
ChangeDocument est une extension post-processeur de profil Ingest qui montre comment effectuer d'autres manipulations de données après la transformation par défaut, dans deux des phases Ingest liées au produit.
CreateProductDocumentFromDatabaseTest et FindChildItemsByAssetStoreFromDatabaseTest sont les tests JUnit qui peuvent être utilisés pour vérifier la logique de code de ChangeDocument.
Dans cette classe, si la phase en cours est DatabaseCASProductStage1a, elle ajoute une zone supplémentaire seller_description avec la valeur de la colonne DESCRIPTION de la table "MPSELLERDESC" dans le document à indexer dans Elasticsearch.
Si la phase en cours est DatabaseCASProductStage1h, elle ajoute une zone supplémentaire parent_partnumber avec la valeur de la colonne PARTNUMBER de la table CATENTRY dans le document à indexer dans Elasticsearch.
Une fois terminé, votre espace de travail contient deux projets. Le premier projet est
commerce-custom-search-bundles, à partir du kit d'outils NiFi, et le second est le projetcommerce-custom-search-marketplace-sellerimporté.
- Extrayez
-
Testez la logique Ingest personnalisée dans le kit d'outils NiFi et générez un fichier JAR déployable.
Pour exécuter le test JUnit, cliquez avec le bouton droit de la souris sur la classe de test JUnit choisie et choisissez ou .
Exécutez également un test unitaire pour FindChildItemsByAssetStoreFromDatabaseTest.
- Mettez à jour les projets en faisant un clic droit sur le projet et en sélectionnant .
- Sélectionnez et cliquez sur le bouton OK. Régénérez les fichiers binaires pour le projet commerce-custom-search-bundles-9.1.x.0.
Note:- Le projet de personnalisation commerce-custom-search-marketplace-seller n'a pas de dépendances sur le projet commerce-custom-search-bundles-9.1.x.x , mais il est recommandé de générer le projet commerce-custom-search-bundles-9.1.x.x avant de procéder à des personnalisations. Cela peut être utile pour d'autres personnalisations qui peuvent avoir des dépendances sur commerce-custom-search-bundles-9.1.x.x pour d'autres cas d'utilisation.
- En cas de dépendances manquantes pour les fichiers JAR
dummy-commerce-search-processors,dummy-hcl-cache-coreoudummy-cf-base, voir Dépannage : dépendances manquantes dans le processeur NiFi personnalisé.
Générez les fichiers binaires pour le projet commerce-custom-search-marketplace-seller :
Dans l'explorateur de projets, cliquez avec le bouton droit de la souris sur le projet (Notez qu'il existe deux éléments de menu : Génération Maven et Génération Maven.... Sélectionnez Génération Maven... ) La fenêtre Modifier la configuration s'ouvre.
Entrez la commande clean install -U -Denforcer.skip=true dans la zone de texte Objectifs et cliquez sur le bouton Exécuter.
Une fois la génération terminée, le fichier JAR sera disponible dans le répertoire cible de ce projet, par exemple : commerce-custom-search-marketplace-seller-9.1.x.0.jar. Pour plus d'informations, voir Processeurs NiFi personnalisés.
-
Déployez votre logique Ingest personnalisée sur le serveur Elasticsearch dans l'environnement de développement Commerce.
Dans cette étape, vous étendez le connecteur par défaut en déployant la logique personnalisée dans le conteneur NiFi sur la plateforme de données, puis vous créez un profil Ingest personnalisé pour le lier au canal de connecteur par défaut.
Déployez le fichier JAR commerce-custom-search-marketplace-seller-9.1.10.0.jar personnalisé dans le conteneur NiFi sur la plateforme de données Elasticsearch pour l'environnement de développement Commerce.- Copiez commerce-custom-search-marketplace-seller-9.1.x.0.jar depuis le répertoire cible sous le projet commerce-custom-search-marketplace-seller dans le kit d'outils NiFi depuis le répertoire libs du projet commerce-custom-search-marketplace-seller vers le répertoire libs du conteneur NiFi sur le serveur de données Elasticsearch.
docker cp "/root/commerce-custom-search-marketplace-seller-9.1.10.0.jar" <NIFI_CONTAINER_ID>:/opt/nifi/nifi-current/libNote: (Facultatif) Ce tutoriel de personnalisation est indépendant du projet commerce-custom-search-processors-nar. Toutefois, si votre personnalisation dépend du projet commerce-custom-search-processors-nar, transférez le fichier NAR du répertoire cible du projet commerce-custom-search-processors-nar vers le répertoire d'extension désigné sur le serveur Elasticsearch et montez ce fichier en tant que volume dans le conteneur Docker NiFi.Ignorez les fichiers NAR générés dans d'autres projets que commerce-custom-search-processors-nar. Pour en savoir plus, voir Génération et déploiement d'un fichier NAR personnalisé
ou, par exemple, vous pouvez utiliser la commande suivante pour monter le fichier NAR qui a été ajouté au dossier /extensions, au lieu de monter le dossier de volume :
docker run -it -p 30600:30600 --name elasticsearch_nifi_1 -v /{docker-compose dir}/volumes/nifi-ext/commerce-custom-search-processors-nar-9.1.x.x:/opt/nifi/nifi-current/extensions/commerce-custom-search-processors-nar-9.1.x.x search-nifi-app:v9-latestOù elasticsearch_nifi_1 est le conteneur NiFi du serveur Elasticsearch et search-nifi-app:v9-latest est l'image NiFi.
- Redémarrez le conteneur NiFi.
- Copiez commerce-custom-search-marketplace-seller-9.1.x.0.jar depuis le répertoire cible sous le projet commerce-custom-search-marketplace-seller dans le kit d'outils NiFi depuis le répertoire libs du projet commerce-custom-search-marketplace-seller vers le répertoire libs du conteneur NiFi sur le serveur de données Elasticsearch.
-
Déployez les extensions personnalisées du profil Ingest sur l'environnement d'exécution de production.
- Créez une image Docker
search-nifi-apppersonnalisée.Pour le déploiement d'exécution des extensions de personnalisation Ingest, créez une image Docker personnalisée poursearch-nifi-appafin d'inclure les personnalisations créées à l'aide du kit d'outils NiFi.- Créez une configuration Dockerfile avec le contenu suivant :
FROM search-nifi-app docker image COPY CusDeploy/ /opt/nifi/nifi-current/libOù CusDeploy/ contient le commerce-custom-search-marketplace-seller-9.1.x.0.jar que vous avez généré à l'étape 2.
Si le correctif suivant est appliqué :COPY patches/ /opt/nifi/nifi-current/patches FROM comlnx94.prod.hclpnp.com/9.1.x.0/search-nifi-app:v9-20220322-1524 WORKDIR /opt/nifi/scripts RUN ./patch.sh COPY CusDeploy/ /opt/nifi/nifi-current/libOù le répertoire patches/ contient le correctif (jar) à appliquer dans la version 9.1.10.0 et CusDeploy/ contient le fichier commerce-custom-search-marketplace-seller-9.1.x.0.jar généré à l'Etape 2 .

FROM comlnx94.prod.hclpnp.com/9.1.x.0/search-nifi-app:v9-20220322-1524 COPY CusDeploy/ /opt/nifi/nifi-current/libOù CusDeploy/ pour contenir commerce-custom-search-marketplace-seller-9.1.x.0.jar intégré à l'étape 2.
- Préparez les fichiers de déploiement personnalisés.
- Créez le sous-répertoire CusDeploy dans le même répertoire que le Dockerfile créé à l'étape 1.
- Copiez le commerce-custom-search-marketplace-seller-9.1.x.x.jar dans le répertoire CusDeploy.
- Générez l'image Docker (search-nifi-app) du serveur WiFi personnalisée.
- Ouvrez une invite de commande et accédez au répertoire contenant votre Dockerfile et son sous-répertoire CusDeploy.
- Exécutez la commande docker build pour générer une image Docker personnalisée pour le serveur NiFi (search-nifi-app)
docker build -t search-nifi-app:<tag> .Par exemple :docker build -t search-nifi-app:nifi-extension .Note:- Assurez-vous que la période est présente à la fin de votre commande docker build.
- Comme le libellé de création du package de déploiement, la balise est utilisée pour identifier l'image Docker personnalisée. Vous pouvez modifier cette image à tout moment pour vous aider à identifier l'image Docker générée.
- Créez une configuration Dockerfile avec le contenu suivant :
- Déployez le serveur de données Elasticsearch d'exécution via CI/CD à l'aide d'une image Docker personnalisée créée à l'étape 1.Cette tâche couvre les exigences minimales pour un déploiement basé sur Docker Compose.
- Configurez un environnement de production HCL Commerce avec la méthode de déploiement Docker Compose. Pour plus d'informations sur la configuration de cet environnement, voir Déploiement d'HCL Commerce version 9.1 avec Docker Compose (pour une utilisation hors production).
- (Facultatif) Pour votre image Docker de serveur NiFi personnalisée (search-nifi-app), assurez-vous que les paramètres de déploiement suivants sont correctement définis à la section environnement de votre fichier de configuration docker-compose.
Si votre personnalisation dépend du projet commerce-custom-search-processors-nar, transférez le fichier NAR du répertoire cible du projet commerce-custom-search-processors-nar vers le répertoire d'extension désigné sur le serveur Elasticsearch et montez ce fichier en tant que volume dans le conteneur Docker NiFi. Pour des instructions détaillées, voir la rubrique Génération et déploiement d'un fichier NAR personnalisé.volumes: - ./volumes/hcl-cache-local-redis/cache_cfg-ext.yaml:/SETUP/hcl-cache/cache_cfg-ext.yaml - ./volumes/hcl-cache-local-redis/redis_cfg.yaml:/SETUP/hcl-cache/redis_cfg.yaml - ./volumes/nifi-ext/commerce-custom-search-processors-nar-9.1.x.0.nar:/opt/nifi/nifi-current/extensions/commerce-custom-search-processors-nar-9.1.x.0.narLes étapes suivantes doivent être effectuées dans l'environnement d'exécution de la même manière que dans l'environnement de développement :- Créez un profil Ingest et associez-le à un connecteur par défaut ( étape 5.
- Remplacez le profil de requête de recherche par défaut pour inclure l'attribut seller_description supplémentaire dans la réponse de requête. (Etape Etape 6).
- Vérifiez que la réponse du profil de recherche contient l'attribut supplémentaire seller_description (étape 7).
- Créez une image Docker
-
Créez un profil Ingest personnalisé et associez-le à l'étape de création (DatabaseCASProductStage1a) et à l'étape de mise à jour (DatabaseCASProductStage1h).
L'étape de création est la première étape pour le produit, la catégorie ou l'attribut, par exemple auth.reindex.cas - Product Stage 1a (Document principal).
L'étape de mise à jour se compose du reste des étapes, par exemple, auth.reindex.cas - Product Stage 1c (Rechercher des URL de référencement), auth.reindex.cas - Product Stage 1h (Rechercher des articles enfant) et le reste.
L'étape de mise à jour et l'étape de création utilisent différentes conceptions de flux, de sorte que la méthode d'ajout d'un profil Ingest personnalisé est légèrement différente. La procédure d'ajout d'un profil Ingest personnalisé à l'étape de mise à jour est décrite après cette étape.
-
A l'aide d'un client REST, émettez la commande POST suivante pour créer un profil Ingest MyCustomIngestProfile.
POST http://<QUERY_HOST>:<QUERY_PORT>/search/resources/api/v2/documents/profiles/MyCustomIngestProfile?profileType=IngestVous trouverez ci-dessous le corps de la requête. Notez qu'il obtient les noms de classe complets du fournisseur personnalisé et du post-processeur que vous avez créés précédemment dans le projet commerce-custom-search-marketplace-seller-9.1.x.x.{ "profileName": "MyCustomIngestProfile", "provider": [ "com.mycompany.data.ingest.product.providers.ChangeSQL" ], "preprocessor": [], "postprocessor": [ "com.mycompany.data.ingest.product.processors.ChangeDocument" ] }Voici la réponse attendue :{ "Profile created with name": "MyCustomIngestProfile" } - Redémarrez le conteneur query-app.
- Associez le profil Ingest personnalisé au canal de connecteur. Procédez comme suit. Pour obtenir des instructions sur l'utilisation d'un nœud final Ingest pour mettre à jour la liaison de profil Ingest en tant que variable vers un canal de connecteur, voir Mise à jour du groupe de processus NiFi, du processeur, du service de contrôleur à l'aide du descripteur de connecteur Ingest.
- Ouvrez votre interface utilisateur NiFi et accédez à
- Cliquez avec le bouton droit de la souris sur la zone de conception vide et cliquez sur Variables.

- Créez une variable avec le nom ingest.profile.name et la valeur
MyCustomIngestProfile. Cliquez sur le bouton Appliquer.
-
-
Ajoutez le profil Ingest personnalisé à Etape de mise à jour (DatabaseCASProductStage1h).
-
L'attribut
seller_description.rawest également indexé par l'index de génération et peut également être validé à partir de la console NiFi. -
Remplacez les profils de recherche Query pour modifier les zones de réponse.
Vous pouvez remplacer les profils de recherche par défaut en créant un profil personnalisé à l'aide du même nom que le profil par défaut. Si un profil personnalisé avec le même nom qu'un profil par défaut est disponible, le profil personnalisé est utilisé et le profil par défaut est ignoré. Pour des étapes détaillées sur le remplacement des profils de recherche, voir Configuration de votre profil de recherche personnalisé.
- Remplacez le profil de requête de recherche par défaut pour inclure l'attribut
seller_description.rawsupplémentaire dans la réponse de requête. - Etendez le profil de recherche HCL_findCatalogEntrySKUs par défaut en ajoutant
seller_description.rawà la section ResponseFields du profil de recherche existant.GET http://QUERY_HOST:QUERY_PORT/search/resources/api/v2/documents/profiles/HCL_findCatalogEntrySKUsPar exemple :GET http://QUERY_HOST:30920/search/resources/api/v2/documents/profiles/HCL_findCatalogEntrySKUsPour le profil de recherche findCatalogEntrySKUs, ajoutez
seller_description.rawà la section ResponseFields du profil de recherche existant.La réponse doit être similaire à :{ "profileName": "HCL_findCatalogEntrySKUs", "indexName": "product", "query": { "params": [ { "maxRows": "1200" }, { "sortField": "relationship.product.sequence asc" } ], "queryFields": [ "relationship.product.id" ], "provider": [ "com.hcl.commerce.search.internal.expression.provider.SearchInventoryExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchByPublishedEntryOnlyExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchByStorePathExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchBySellerExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchByCatalogExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchByLanguageExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchProductEntitlementExpressionProvider" ], "preprocessor": [], "postprocessor": [ "com.hcl.commerce.search.internal.expression.postprocessor.SearchMainCatalogEntryViewResultQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewPriceQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewUserDataQueryPostprocessor" ], "responseFields": [ "id.catentry", "id.store", "buyable", "id.catalog", "identifier.sku.raw", "name.raw", "name.override.raw", "description.raw", "description.override.raw", "url.thumbnail", "url.override.thumbnail", "url.image", "url.override.image", "keyword.text", "manufacturer.raw", "id.member", "seller.raw", "seller_description.raw", "type", "prices.*", "path.*", "relationship.product.id", "relationship.item.id", "attribute.source", "url.seo", "url.override.seo", "attachments.*", "images.*", "description.long" ] } }PUT http://QUERY_HOST:30920/search/resources/api/v2/documents/profiles/HCL_findCatalogEntrySKUsLa réponse doit être similaire à :{ "Profile created with name": "HCL_findCatalogEntrySKUs" } -
Répétez cette étape pour le profil de recherche HCL_V2_findProductByPartNumber_Details en ajoutant
seller_description.rawdans la section responseFields du profil de recherche existant.GET http://QUERY_HOST:QUERY_PORT/search/resources/api/v2/documents/profiles/HCL_V2_findProductByPartNumber_Details -
Ajoutez
seller_description.rawdans la section responseFields du profil de recherche existant pour l'utiliser comme corps de requête pour l'appel PUT ci-dessous afin de remplacer le profil de recherche HCL_V2_findProductByPartNumber_Details par défaut.PUT http://QUERY_HOST:30920/search/resources/api/v2/documents/profiles/HCL_V2_findProductByPartNumber_Details{ "profileName": "HCL_V2_findProductByPartNumber_Details", "indexName": "product", "query": { "params": [ { "DynamicKitReturnPrice": "true" }, { "maxRows": "50" } ], "queryFields": [ "identifier.sku.normalized" ], "provider": [ "com.hcl.commerce.search.internal.expression.provider.SearchByCatalogExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchByStorePathExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchBySellerExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchByLanguageExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchInventoryExpressionProvider", "com.hcl.commerce.search.internal.expression.provider.SearchProductEntitlementExpressionProvider" ], "preprocessor": [], "postprocessor": [ "com.hcl.commerce.search.internal.expression.postprocessor.SearchMainCatalogEntryViewResultQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewPriceQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewSKUQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewAttributesQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewAttachmentsQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewImagesQueryPostProcessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewComponentsQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewMerchandisingAssocQueryPostprocessor", "com.hcl.commerce.search.internal.expression.postprocessor.SearchCatalogEntryViewUserDataQueryPostprocessor" ], "responseFields": [ "id.catentry", "id.store", "id.catalog", "buyable", "identifier.sku.raw", "name.raw", "name.override.raw", "description.raw", "description.override.raw", "url.thumbnail", "url.override.thumbnail", "keyword.text", "manufacturer.raw", "id.member", "seller.raw", "seller_description.raw", "type", "prices.*", "path.*", "relationship.item.*", "relationship.product.id", "relationship.component.*", "subscription.type", "subscription.recurring", "url.image", "url.override.image", "description.long", "attribute.source", "kit.components", "kit.preconfigured", "kit.model", "kit.URL", "kit.default_configuration", "kit.pdks", "kit.parent.model", "kit.configurable", "kit.parent.configurable", "associations.*", "url.seo", "attachments.*", "images.*" ] } }La réponse doit ressembler à :{ "Profile created with name": "HCL_V2_findProductByPartNumber_Details" } - Redémarrez le conteneur du service Query.
Testez votre personnalisation pour vous assurer qu'elle a abouti.
- Remplacez le profil de requête de recherche par défaut pour inclure l'attribut
-
Testez les extensions de profil Ingest.
L'étape de test est la même pour les environnements de développement et d'exécution.
- Générez l'index pour le magasin EmeraldCAS (storeId = 12001).
- Une fois l'indexation terminée et lorsque l'interface utilisateur de NiFi affiche 0/0 octet de données mises en file d'attente, effectuez les tests suivants pour vous assurer que les zones de réponse contiennent
seller_description.rawlorsque la recherche est effectuée pour les profils de recherche HCL_findCatalogEntrySKUs et HCL_V2_findProductByPartNumber_Details.Test 1 : Vérifiez que la réponse du nœud final de requête de recherche suivant extrait
seller_description.rawpour le profil HCL_findCatalogEntrySKUs.Eexécutez la commande GET suivante à l'aide d'un client REST.GET http://QUERY_HOST:QUERY_PORT/search/resources/api/v2/products?storeId=31&seller=7000000000000007002&id=14503
Test 2 : Vérifiez que la réponse du nœud final de requête suivant extrait
seller_description.rawpour le profil HCL_V2_findProductByPartNumber_Details.Eexécutez la commande GET suivante à l'aide d'un client REST.GET http://QUERY_HOST:QUERY_PORT/search/resources/api/v2/products?storeId=31&partNumber=MPHBA031_3103&seller=7000000000000007002