Canalizaciones de índice de palabras frecuentes de Ingest
Se muestran las correlaciones de datos completas de la especificación, la base de datos y el esquema para la categoría de tienda.
Implementación de una canalización de campo de índice de tienda
Los siguientes pasos ilustran cómo se implementa la canalización de indexación de la tienda en Apache NiFi. El flujo consta principalmente de ocho etapas, cada una de las cuales se ilustra con ejemplos de la interfaz de usuario de NiFi. Para obtener más información sobre la interfaz, consulte la Guía del usuario de Apache NiFi.
Hay disponibles amplios ejemplos para cada etapa. Se proporcionan en las secciones inferiores de este tema. Los ejemplos incluyen código SQL, información de la tabla de esquema y entradas y salidas de ejemplo.
Etapa 1: Crear un documento de tienda
Esta etapa describe cómo transformar los datos de tienda en el índice de tienda. Para ver un ejemplo de código, consulte Ejemplos de la etapa 1.
SELECT F.STORE_ID, F.STORETYPE, F.LANGUAGE_ID AS DEF_LANGUAGE_ID, F.FFMCENTER_ID, F.CONTRACT_ID, G.DIRECTORY,
E.SETCCURR, E.IDENTIFIER AS STORE_IDENTIFIER, E.MEMBER_ID, N.LANGUAGE_ID, D.DISPLAYNAME, D.DESCRIPTION,
L.LOCALENAME, F.INVENTORYSYSTEM, F.CRTDBYCNTR_ID
FROM STOREENT E, STOREENTDS D, STORELANG N, LANGUAGE L,
(SELECT F.CONTRACT_ID, S.STORE_ID, S.LANGUAGE_ID, S.STORETYPE, S.FFMCENTER_ID, S.INVENTORYSYSTEM, S.CRTDBYCNTR_ID, S.DIRECTORY
FROM STORE S
LEFT OUTER JOIN STOREDEF F ON (S.STORE_ID = F.STORE_ID)
WHERE S.STORE_ID IN (SELECT R.RELATEDSTORE_ID FROM STOREREL R WHERE R.STATE = 1 AND R.STRELTYP_ID = -4 AND R.STORE_ID = ${param.storeId})
AND S.STATUS = 1) F,
(SELECT S.DIRECTORY
FROM STORE S, STOREREL R
WHERE S.STORE_ID = R.RELATEDSTORE_ID AND R.STATE = 1 AND R.STRELTYP_ID = -4 AND R.RELATEDSTORE_ID <> R.STORE_ID
AND R.STORE_ID = ${param.storeId}) G
WHERE F.STORE_ID = E.STOREENT_ID AND E.MARKFORDELETE = 0 AND E.TYPE = 'S' AND N.STOREENT_ID = E.STOREENT_ID
AND D.STOREENT_ID = E.STOREENT_ID AND D.LANGUAGE_ID = F.LANGUAGE_ID AND N.LANGUAGE_ID = L.LANGUAGE_ID
ORDER BY N.LANGUAGE_ID
A continuación, el conjunto de resultados se pasa al procesador CreateStoreDocumentFromDatabase para su transformación utilizando la tabla siguiente para correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de tienda.Campo de índice Nombre | Tipo de campo de índice | Descripción: |
---|---|---|
Identificador del documento | ||
id/tienda | id_string | ID interno de la tienda propietaria (abierta y operativa); se correlaciona con STORE.STORE_ID |
id/member | id_string | El número de referencia interno que identifica al propietario de la tienda; se correlaciona con STOREENT.MEMBER_ID |
id/language | id_string | El número de referencia interno del idioma actual de este documento; se correlaciona con STORELANG.LANGUAGE_ID |
id/contract | id_string | El número de referencia interno del contrato de alojamiento entre el proveedor de servicios de host y el operador de tienda; se correlaciona con STORE.CRTDBYCNTR_ID |
id/default/language | id_string | El idioma predeterminado para la información que se muestra a los clientes que compran en la tienda; se correlaciona con STORE.LANGUAGE_ID. |
id/default/fulfillment | id_string | El centro de despacho de pedidos predeterminado para la tienda actual; se correlaciona con STORE.FFMCENTER_ID |
id/default/contract | id_string | El contrato predeterminado de la tienda actual; se correlaciona con STOREDEF.CONTRACT_ID |
id/supported/language | id_string | La lista de idiomas admitidos de la tienda actual; se correlaciona con STOREENTDSC.LANGUAGE_ID |
identifier/language | id_string | El idioma actual de este documento |
identifier/specification | id_string | Establecer en "tienda" |
identifier/store | id_string | Una cadena que identifica de forma exclusiva la tienda propietaria; se correlaciona con STOREENT.IDENTIFIER |
identifier/default/language | id_string | La serie de idioma de este idioma soportado; se correlaciona con STOREENTDSC.LANGUAGE_ID |
identifier/default/currency | id_string | La moneda predeterminada para la tienda actual que utilizará un cliente que no haya especificado una moneda preferida; se correlaciona con STOREENT.SETCCURR |
identifier/supported/language | id_string | La lista de cadenas de idiomas soportadas; se correlaciona con STOREENTDSC.LANGUAGE_ID y LANGUAGE.LANGUAGE |
Datos sensibles al idioma | ||
name/raw | raw | El nombre que depende del idioma de este grupo de catálogo; se correlaciona con STOREENTDSC.NAME |
name/normalized | normalized | Igual que anterior |
description/raw | raw | Una descripción breve de este grupo de catálogo; se correlaciona con STOREENTDSC.SHORTDESCRIPTION |
Propiedades | ||
tipo | raw | El tipo de la tienda actual |
properties/name | raw | El nombre de propiedad de tienda predefinido |
properties/value | raw | El valor de propiedad específico de la tienda |
Datos de navegación | ||
relationship/parent | id_string | La referencia a su tienda con elementos de catálogo si se utiliza; se correlaciona con STOREREL.RELATEDSTORE_ID |
relationship/directory | raw | El nombre base del directorio en el que se encuentran los elementos web específicos de la tienda, como los archivos JSP y de propiedades; se correlaciona con STORE.DIRECTORY |
Etapa 2: Asociar ubicaciones de tienda
Esta etapa describe cómo transformar los datos relacionados con la ubicación de la tienda y cargarlos en el índice de la tienda. Para ver un ejemplo de código, consulte Ejemplos de la etapa 2.
SELECT D.NAME, D.DESCRIPTION, D.STLOC_ID, D.LANGUAGE_ID, S.IDENTIFIER, S.STOREENT_ID,
S.PHONE, S.ADDRESS1, S.ADDRESS2, S.ADDRESS3, S.ACTIVE, S.CITY, S.STATE, S.COUNTRY, S.ZIPCODE,
A.NAME ATTR_NAME, A.DISPLAYNAME ATTR_DISPLAYNAME, A.VALUE ATTR_VALUE, A.DISPLAYVALUE ATTR_DISPLAYVALUE,
B.NAME FFMC_NAME, B.FFMCENTER_ID
FROM STLOC S, STLOCDS D
LEFT OUTER JOIN (
SELECT LISTAGG(NAME, '###') WITHIN GROUP (ORDER BY SEQUENCE) NAME,
LISTAGG(COALESCE(DISPLAYNAME, ' '), '###') DISPLAYNAME,
LISTAGG(VALUE, '###') VALUE,
LISTAGG(COALESCE(DISPLAYVALUE, ' '), '###') DISPLAYVALUE,
LANGUAGE_ID, STLOC_ID
FROM STLOCATTR
GROUP BY STLOC_ID, LANGUAGE_ID) A ON (A.LANGUAGE_ID IN (${ingest.languages}) AND A.STLOC_ID = D.STLOC_ID)
LEFT OUTER JOIN (
SELECT LISTAGG(COALESCE(F.NAME, ' '), '###') NAME,
LISTAGG(R.FFMCENTER_ID, '###') FFMCENTER_ID,
STLOC_ID
FROM STLFFMREL R, FFMCENTER F
WHERE R.FFMCENTER_ID = F.FFMCENTER_ID
GROUP BY STLOC_ID) B ON (B.STLOC_ID = D.STLOC_ID)
WHERE S.STLOC_ID = D.STLOC_ID AND D.LANGUAGE_ID IN (${ingest.languages}) AND S.STOREENT_ID = ${param.storeId}
A continuación, el conjunto de resultados se pasa al procesador FindStoreLocationsFromDatabase para su transformación utilizando la tabla siguiente para correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de tienda:
Ubicación de tienda física | ||
---|---|---|
locations/<id>/id | id_string | El ID de ubicación de la tienda interna |
locations/<id>/identifier | id_string | El identificador externo de la ubicación de la tienda |
locations/<id>/name | raw | El nombre de esta ubicación de tienda |
locations/<id>/description | raw | La descripción de esta ubicación de tienda |
locations/<id>/phone | raw | El número de teléfono de esta ubicación de tienda |
locations/<id>/address | raw | La lista de direcciones de esta ubicación de tienda |
locations/<id>/attributes/name | raw | Una lista de nombres de atributo asociados con esta ubicación de tienda |
locations/<id>/attributes/value | raw | El valor de atributo correspondiente de este atributo de tienda |
locations/<id>/filfillment | id_string | Una lista de ID de centro de despacho de pedidos para esta ubicación de tienda |
Etapa 3: Asociar nombres de tienda
Esta etapa describe cómo transformar los datos relacionados con el nombre de la tienda y cargarlos en el índice de la tienda. Para ver un ejemplo de código, consulte Ejemplos de la etapa 3.
La transformación y carga de los datos relacionados con el nombre de la tienda comienza con la ejecución del siguiente SQL para recuperar los datos de ubicación de la base de datos de Commerce:
SELECT SL.STOREENT_ID, SL.LANGUAGE_ID, DA.DESCRIPTION A_DESCRIPTION, DE.DESCRIPTION E_DESCRIPTION,
DA.DISPLAYNAME A_DISPLAYNAME, Start of deleted contentDE.DISPLAYNAME End of deleted contentStart of added contentDE.DISPLAYNAME End of added contentE_DISPLAYNAME
FROM STORELANG SL
LEFT JOIN
(SELECT S.STORE_ID, R.RELATEDSTORE_ID, D.LANGUAGE_ID, D.DISPLAYNAME, D.DESCRIPTION
FROM STORE S, STOREENT E, STOREREL R, STOREENTDS D, STORELANG L
WHERE S.STATUS = 1 AND S.STORE_ID = E.STOREENT_ID AND E.MARKFORDELETE = 0 AND E.TYPE = 'S'
AND S.STORETYPE NOT IN ('BMP', 'MPS', 'HCP', 'PBS', 'SCP', 'CHS', 'RPS', 'BRP', 'DPS', 'DPX')
AND R.STATE = 1 AND R.STRELTYP_ID = -4 AND R.STORE_ID = S.STORE_ID AND R.RELATEDSTORE_ID = D.STOREENT_ID
AND L.STOREENT_ID = S.STORE_ID AND L.LANGUAGE_ID = D.LANGUAGE_ID AND R.STORE_ID <> R.RELATEDSTORE_ID) DA
ON DA.STORE_ID = SL.STOREENT_ID AND SL.LANGUAGE_ID = DA.LANGUAGE_ID
LEFT JOIN
(SELECT S.STORE_ID, R.RELATEDSTORE_ID, D.LANGUAGE_ID, D.DISPLAYNAME, D.DESCRIPTION
FROM STORE S, STOREENT E, STOREREL R, STOREENTDS D, STORELANG L
WHERE S.STATUS = 1 AND S.STORE_ID = E.STOREENT_ID AND E.MARKFORDELETE = 0 AND E.TYPE = 'S'
AND S.STORETYPE NOT IN ('BMP', 'MPS', 'HCP', 'PBS', 'SCP', 'CHS', 'RPS', 'BRP', 'DPS', 'DPX')
AND R.STATE = 1 AND R.STRELTYP_ID = -4 AND R.STORE_ID = S.STORE_ID AND R.RELATEDSTORE_ID = D.STOREENT_ID
AND L.STOREENT_ID = S.STORE_ID AND L.LANGUAGE_ID = D.LANGUAGE_ID AND R.STORE_ID = R.RELATEDSTORE_ID) DE
ON DE.STORE_ID = SL.STOREENT_ID AND SL.LANGUAGE_ID = DE.LANGUAGE_ID
WHERE SL.STOREENT_ID = ${param.storeId} AND SL.LANGUAGE_ID IN (${ingest.languages})
A continuación, el conjunto de resultados se pasa al procesador FindStoreNamesFromDatabase para su transformación utilizando la tabla siguiente para correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de tienda:
Datos sensibles al idioma | ||
---|---|---|
name/raw | raw | El nombre que depende del idioma de este grupo de catálogo; se correlaciona con STOREENTDSC.NAME |
name/normalized | normalized | Igual que anterior |
name/text | text | Igual que anterior |
description/raw | raw | Una descripción breve de este grupo de catálogo; se correlaciona con STOREENTDSC.SHORTDESCRIPTION |
description/normalized | normalized | Igual que anterior |
description/text | text | Igual que anterior |
Etapa 4: Asociar configuraciones de nivel de tienda
Esta etapa describe cómo transformar los datos de configuración del nivel de tienda y cargarlos en el índice de la tienda. Para ver un ejemplo de código, consulte Ejemplos de la etapa 4.
SELECT LISTAGG(NAME, '@@@') NAME,
LISTAGG(STOREENT_ID, '@@@') STOREENT_ID,
LISTAGG(VALUE, '@@@') VALUE
FROM (SELECT F.NAME,
LISTAGG(F.STOREENT_ID, ', ') WITHIN GROUP (ORDER BY F.SEQUENCE) STOREENT_ID,
LISTAGG(COALESCE(F.VALUE, ' '), '###') VALUE
FROM (SELECT C.NAME, C.STOREENT_ID , C.VALUE, R.SEQUENCE
FROM STORECONF C, STOREREL R
WHERE R.RELATEDSTORE_ID = C.STOREENT_ID
AND R.STATE = 1 AND R.STRELTYP_ID = -11 AND R.STORE_ID = ${param.storeId}
AND C.NAME NOT LIKE ('wc.externalContent.%')
UNION
SELECT C.NAME, C.STOREENT_ID , C.VALUE, 9999999
FROM STORECONF C
WHERE C.STOREENT_ID = 0
AND C.NAME NOT LIKE ('wc.externalContent.%')) F
GROUP BY F.NAME)
A continuación, el conjunto de resultados se pasa al procesador FindConfigurationsFromDatabase para su transformación utilizando la tabla siguiente para correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de tienda:
Propiedades | ||
---|---|---|
configurations/name | raw | El nombre de atributo de tienda predefinido |
configurations/value | raw | El valor de atributo específico de la tienda |
Etapa 5: Asociación de características de nivel de tienda
Esta etapa describe cómo transformar los datos de características a nivel de tienda y cargarlos en el índice de tienda. Para ver un ejemplo de código, consulte Ejemplos de la etapa 5.
SELECT LISTAGG(NAME, '@@@') NAME,
LISTAGG(STOREENT_ID, '@@@') STOREENT_ID,
LISTAGG(VALUE, '@@@') VALUE
FROM (SELECT F.NAME,
LISTAGG(F.STOREENT_ID, ', ') WITHIN GROUP (ORDER BY F.SEQUENCE) STOREENT_ID,
LISTAGG(COALESCE(F.CONTENT, ' '), '###') VALUE
FROM (SELECT E.NAME, D.CONTENT, E.STOREENT_ID , R.SEQUENCE
FROM EMSPOT E, DMEMSPOTDEF D, STOREREL R
WHERE R.RELATEDSTORE_ID = E.STOREENT_ID
AND R.STATE = 1 AND R.STRELTYP_ID = -11 AND R.STORE_ID = ${param.storeId}
AND E.USAGETYPE = 'STOREFEATURE'
AND E.EMSPOT_ID = D.EMSPOT_ID
AND D.CONTENTTYPE = 'FeatureEnabled'
UNION
SELECT E.NAME, D.CONTENT, E.STOREENT_ID , 9999999
FROM EMSPOT E, DMEMSPOTDEF D
WHERE E.STOREENT_ID = 0
AND E.USAGETYPE = 'STOREFEATURE'
AND E.EMSPOT_ID = D.EMSPOT_ID
AND D.CONTENTTYPE = 'FeatureEnabled') F
GROUP BY F.NAME)
A continuación, el conjunto de resultados se pasa al procesador FindFeaturesFromDatabase para su transformación utilizando la tabla siguiente para correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de tienda:Propiedades | ||
features/name | raw | El nombre de característica específica de la tienda |
features/value | raw | Estado habilitado de esta característica específica de la tienda |
Etapa 6: Determinar idiomas admitidos
Esta etapa describe cómo determinar los idiomas admitidos por la tienda y cargarlos en el índice de la tienda. Para ver un ejemplo de código, consulte Ejemplos de la etapa 6.
SELECT N.STOREENT_ID, LISTAGG(N.LANGUAGE_ID, ', ') WITHIN GROUP (ORDER BY N.LANGUAGE_ID) LANGUAGE_ID,
LISTAGG(TRIM(L.LOCALENAME), '###') LOCALENAME
FROM STORELANG N, LANGUAGE L
WHERE N.STOREENT_ID = ${param.storeId} AND N.LANGUAGE_ID = L.LANGUAGE_ID
GROUP BY N.STOREENT_ID
A continuación, el conjunto de resultados se pasa al procesador FindSupportedLanguagesFromDatabase para su transformación utilizando la tabla siguiente para correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de tienda:
identifier/supported/language | id_string | Lista de cadenas de idiomas admitidos. |
id/supported/language | string | La lista de ID de idiomas admitidos.. |
Etapa 7: Determinar catálogos admitidos
Esta etapa describe cómo determinar la tienda admitida y los catálogos predeterminados y cargarlos en el índice de la tienda. Para ver un ejemplo de código, consulte Ejemplos de la etapa 7.
SELECT LISTAGG(S.STOREENT_ID, ', ') STOREENT_ID, LISTAGG(YAESCE(CHAR(D.CATALOG_ID), ' '), '###') DEFAULT_CATALOG_ID, LISTAGG(S.CATALOG_ID, ', ') CATALOG_ID, IDENTIFICADOR DE LISTAGG(S.IDENTIFIER, '###'), LISTAGG(S.MASTERCATALOG, '###') MASTERCATALOG FROM (SELECT S.STOREENT_ID, C.CATALOG_ID, C.IDENTIFIER, S.MASTERCATALOG FROM STORECAT S, CATALOG C WHERE S.STOREENT_ID IN (SELECT RELATEDSTORE_ID FROM STOREREL WHERE STATE = 1 AND STRELTYP_ID = -4 AND STORE_ID = ${param.storeId}) AND S.CATALOG_ID = C.CATALOG_ID) S LEFT JOIN STOREDEFCAT D ON (D.STOREENT_ID = ${param.storeId} AND S.CATALOG_ID = D.CATALOG_ID)
A continuación, el conjunto de resultados se pasa al procesador FindSupportedCatalogsFromDatabase para su transformación utilizando la tabla siguiente para correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de tienda:
identifier/supported/catalog | id_string | La lista de catálogos de ventas admitidos |
identifier/default/catalog | id_string | El identificador externo del catálogo de ventas predeterminado; se correlaciona con CATALOG.IDENTIFIER |
identificador/maestro/catálogo | id_string | El catálogo maestro de su tienda con elementos actual; se determina a partir de STORECAT.MASTERCATALOG |
id/supported/catalog | id_string | La lista de catálogos de ventas admitidos. |
id/default/catalog | id_string | El catálogo de ventas predeterminado de la tienda actual; se correlaciona con STOREDEFCAT.CATALOG_ID |
id/master/catalog | id_string | El catálogo maestro de su tienda con elementos actual; se determina a partir de STORECAT.MASTERCATALOG |
Etapa 8: Determinar monedas soportadas
Esta etapa describe cómo determinar las divisas admitidas por la tienda y cargarlos en el índice de la tienda. Para ver un ejemplo de código, consulte Ejemplos de la etapa 8.
SELECT C.STOREENT_ID, LISTAGG(C.CURRSTR, '###') CURRENCY FROM CURLIST C WHERE C.STOREENT_ID = ${param.storeId} GROUP BY C.STOREENT_ID
A continuación, el conjunto de resultados se pasa al procesador FindSupportedCurrenciesFromDatabase para su transformación utilizando la tabla siguiente para correlacionar el campo de base de datos devuelto desde el SQL anterior con un campo de índice en el índice de tienda:
identifier/supported/currency | id_string | La lista de monedas soportadas para la tienda actual |
Ejemplos de la etapa 1
El código siguiente es un ejemplo de los datos de entrada para el procesador CreateStoreDocumentFromDatabase:
{
"STORE_ID": 1,
"STORETYPE": "MHS",
"DEF_LANGUAGE_ID": -1,
"FFMCENTER_ID": 10501,
"CONTRACT_ID": 10005,
"DIRECTORY": "ExtendedSitesCatalogAssetStore",
"RELATEDSTORE_ID": 10501,
"SETCCURR": "USD",
"STORE_IDENTIFIER": "AuroraESite",
"MEMBER_ID": -5000,
"LANGUAGE_ID": -1,
"DISPLAYNAME": "AuroraESite",
"DESCRIPTION": "Commerce Model Store entity",
"LOCALENAME": "en_US ",
"INVENTORYSYSTEM": -2,
"CRTDBYCNTR_ID": 10004
}
El procesador CreateStoreDocumentFromDatabase transforma los datos de entrada en los siguientes datos de salida:
{ "update": { "_id": "1--1", "_index": "auth.store", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"identifier": {
"default": {
"currency": "USD"
},
"specification": "store",
"language": "en_US",
"store": "AuroraESite",
"supported": {
"language": "en_US"
}
},
"name": {
"normalized": "AuroraESite",
"raw": "AuroraESite"
},
"description": {
"raw": "Commerce Model Store entity"
},
"id": {
"default": {
"contract": "10005",
"language": "-1",
"fulfillment": "10501"
},
"contract": "10004",
"member": "-5000",
"language": "-1",
"store": "1",
"supported": {
"language": -1
}
},
"type": "MHS",
"relationship": {
"parent": "10501",
"directory": "ExtendedSitesCatalogAssetStore"
},
"properties": [
{
"name": "inventory",
"value": "-2"
}
],
"__meta": {
"created": "2020-07-31T17:36:57.059Z",
"modified": "2020-07-31T17:36:57.079Z",
"version": {
"min": 0,
"max": 0
}
}
},
"doc_as_upsert": true
}
Ejemplos de la etapa 2
El código siguiente es un ejemplo de los datos de entrada para el procesador FindStoreLocationsFromDatabase:
{
"NAME": "Warden Plaza",
"DESCRIPTION": "Warden Plaza",
"STLOC_ID": 10039,
"LANGUAGE_ID": -1,
"IDENTIFIER": "Warden Plaza",
"STOREENT_ID": 1,
"PHONE": "905.326.8647 ",
"ADDRESS1": "8250 Warden Ave",
"ADDRESS2": null,
"ADDRESS3": null,
"ACTIVE": 1,
"CITY": "Markham",
"STATE": "Ontario",
"COUNTRY": "Canada",
"ZIPCODE": "L6G 1C7 ",
"ATTR_NAME": "BeautyCenter###CappuccinoBar###SushiRestaurant###Type###StoreHours",
"ATTR_DISPLAYNAME": "Beauty center###Cappuccino bar###Sushi restaurant###Type###Store hours",
"ATTR_VALUE": "true###true###true###Regular Store###Mon-Fri: 10am - 9pm<br />Sat: 9am - 7pm<br />Sun: 11am - 6pm<br />",
"ATTR_DISPLAYVALUE": "true###true###true###Regular Store###Mon-Fri: 10am - 9pm<br />Sat: 9am - 7pm<br />Sun: 11am - 6pm<br />",
"FFMC_NAME": "Warden Plaza",
"FFMCENTER_ID": "11539"
}
El procesador FindStoreLocationsFromDatabase transfiere los datos de entrada con el store id
pasado a la clase de la clase NiFi FlowFile como atributo en los siguientes datos de salida:
{ "update": { "_id": "1--1", "_index": "auth.store", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"locations": {
"10039": {
"identifier": "Warden Plaza",
"address": [
"8250 Warden Ave",
"Markham",
"Ontario",
"Canada",
"L6G 1C7"
],
"phone": "905.326.8647",
"name": "Warden Plaza",
"description": "Warden Plaza",
"attributes": [
{
"name": "Beauty center",
"value": "true"
},
{
"name": "Cappuccino bar",
"value": "true"
},
{
"name": "Sushi restaurant",
"value": "true"
},
{
"name": "Type",
"value": "Regular Store"
},
{
"name": "Store hours",
"value": "Mon-Fri: 10am - 9pm<br />Sat: 9am - 7pm<br />Sun: 11am - 6pm<br />"
}
],
"id": "10039",
"fulfillment": [
{
"name": "Warden Plaza",
"id": "11539"
}
]
}
},
"__meta": {
"modified": "2020-07-31T17:55:37.124Z"
}
}
}
Ejemplos de la etapa 3
El código siguiente es un ejemplo de los datos de entrada de SQL para el FindStoreNamesFromDatabase procesador:
{
"STOREENT_ID": 1,
"LANGUAGE_ID": -1,
"A_DESCRIPTION": "Extended Sites Catalog Asset Store",
"E_DESCRIPTION": "Commerce Model Store entity",
"A_DISPLAYNAME": "Extended Sites Catalog Asset Store",
"E_DISPLAYNAME": "AuroraESite"
}
El procesador transforma los datos de entrada con store id
pasados de la clase NiFi FlowFile como atributo en los siguientes datos de salida:
{ "update": { "_id": "1--1", "_index": "auth.store", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"name": {
"normalized": "AuroraESite",
"raw": "AuroraESite",
"text": "AuroraESite"
},
"description": {
"normalized": "Commerce Model Store entity",
"raw": "Commerce Model Store entity",
"text": "Commerce Model Store entity"
},
"__meta": {
"modified": "2020-07-31T18:44:35.288Z"
}
}
}
Ejemplos de la etapa 4
El código siguiente es un ejemplo de los datos de entrada para el procesador FindConfigurationsFromDatabase:
{
"NAME": "CK_imagePath@@@is_ext_order_system@@@wc.cmc.storefunctions.hide@@@wc.price.variant@@@wc.search.entitlement@@@wc.search.priceMode@@@wc.search.priceMode.compatiblePriceIndex@@@wc.seo.defaultURLLangId",
"STOREENT_ID": "11001@@@0@@@11001@@@1@@@11001, 0@@@11001, 0@@@1@@@11001",
"VALUE": "/wcsstore/AuroraStorefrontAssetStore/@@@N@@@RequisitionList,allowOrgRegistration,accountParticipantRole,MobilePhone@@@enabled@@@0###0@@@1###1@@@1.0@@@-1"
}
El procesador FindConfigurationsFromDatabase transforma los datos de entrada en los siguientes datos de salida:
{ "update": { "_id": "1--1", "_index": "auth.store", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"configurations": [
{
"name": "wc.search.priceMode.compatiblePriceIndex",
"value": "1.0"
}
],
"__meta": {
"modified": "2020-07-31T18:56:04.119Z"
}
}
}
Ejemplos de la etapa 5
{
"NAME": "AccountActivation@@@AdvancedSearch@@@Age@@@AgeOptions@@@AllowReOrder@@@Analytics@@@ApplePay@@@BOPIS@@@BrowsingHistory@@@CDNCaching@@@CategoryProductBlogs@@@CategorySubscriptions@@@ConsentOptions@@@CouponWallet@@@CustomLogo@@@DateOfBirth@@@EmailOption@@@EnableQuotes@@@ExpandedCategoryNavigation@@@ExpeditedOrders@@@FacebookIntegration@@@FutureOrders@@@Gender@@@InventoryAvailability@@@KeywordSuggestions@@@MarketingConsent@@@MobilePhone@@@MultipleActiveOrders@@@MultipleShipments@@@PaymentPromotion@@@Permanent@@@PhotoGallery@@@ProductRankings@@@ProductRatingsReview@@@ProductSuggestions@@@ProductionServer@@@PunchoutPayment@@@QuickOrder@@@RatingReviewIntegration@@@RecurringOrders@@@RemoteWidget@@@SOAWishlist@@@SearchBasedNavigation@@@Session@@@SharedShippingBillingPage@@@ShipAsComplete@@@ShippingChargeType@@@ShippingInstructions@@@ShowHideOrderItems@@@SideBySideIntegration@@@StoreLocator@@@Subscription@@@Tealeaf@@@TrackingStatus@@@UseCommerceComposer@@@UseSynonyms@@@WCHIntegration@@@accountParticipantRole@@@allowOrgRegistration@@@contractSelection@@@on-behalf-of@@@on-behalf-of-csr@@@preferredCurrency@@@preferredLanguage@@@promotionCode@@@quickCheckout@@@search@@@sterlingConfigurator",
"STOREENT_ID": "11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001, 11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001@@@11001, 11001@@@11001@@@11001@@@11001@@@11001",
"VALUE": "false@@@true@@@false@@@true@@@true@@@false@@@false@@@true@@@false@@@false@@@false@@@false@@@false@@@true@@@false@@@true@@@true@@@false@@@false@@@false@@@false@@@true@@@true@@@true@@@true@@@false@@@false###true@@@false@@@true@@@false@@@false@@@false@@@false@@@false@@@false@@@false@@@false@@@false@@@false@@@true@@@true@@@true@@@true@@@false@@@true@@@true@@@false@@@true@@@false@@@false@@@true@@@true@@@false@@@true@@@true@@@true@@@false@@@false@@@false@@@false@@@false@@@true@@@true@@@false###true@@@true@@@true@@@true@@@false"
}
The FindFeaturesFromDatabase processor transforms the input data into the following output data:
{ "update": { "_id": "1--1", "_index": "auth.store", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"features": [
{
"name": "AccountActivation",
"value": "false"
},
{
"name": "AdvancedSearch",
"value": "true"
},
{
"name": "Age",
"value": "false"
},
{
"name": "AgeOptions",
"value": "true"
},
{
"name": "AllowReOrder",
"value": "true"
},
{
"name": "Analytics",
"value": "false"
},
{
"name": "ApplePay",
"value": "false"
},
{
"name": "BOPIS",
"value": "true"
},
{
"name": "BrowsingHistory",
"value": "false"
},
{
"name": "CDNCaching",
"value": "false"
},
{
"name": "CategoryProductBlogs",
"value": "false"
},
{
"name": "CategorySubscriptions",
"value": "false"
},
{
"name": "ConsentOptions",
"value": "false"
},
{
"name": "CouponWallet",
"value": "true"
},
{
"name": "CustomLogo",
"value": "false"
},
{
"name": "DateOfBirth",
"value": "true"
},
{
"name": "EmailOption",
"value": "true"
},
{
"name": "EnableQuotes",
"value": "false"
},
{
"name": "ExpandedCategoryNavigation",
"value": "false"
},
{
"name": "ExpeditedOrders",
"value": "false"
},
{
"name": "FacebookIntegration",
"value": "false"
},
{
"name": "FutureOrders",
"value": "true"
},
{
"name": "Gender",
"value": "true"
},
{
"name": "InventoryAvailability",
"value": "true"
},
{
"name": "KeywordSuggestions",
"value": "true"
},
{
"name": "MarketingConsent",
"value": "false"
},
{
"name": "MobilePhone",
"value": "false"
},
{
"name": "MultipleActiveOrders",
"value": "false"
},
{
"name": "MultipleShipments",
"value": "true"
},
{
"name": "PaymentPromotion",
"value": "false"
},
{
"name": "Permanent",
"value": "false"
},
{
"name": "PhotoGallery",
"value": "false"
},
{
"name": "ProductRankings",
"value": "false"
},
{
"name": "ProductRatingsReview",
"value": "false"
},
{
"name": "ProductSuggestions",
"value": "false"
},
{
"name": "ProductionServer",
"value": "false"
},
{
"name": "PunchoutPayment",
"value": "false"
},
{
"name": "QuickOrder",
"value": "false"
},
{
"name": "RatingReviewIntegration",
"value": "false"
},
{
"name": "RecurringOrders",
"value": "true"
},
{
"name": "RemoteWidget",
"value": "true"
},
{
"name": "SOAWishlist",
"value": "true"
},
{
"name": "SearchBasedNavigation",
"value": "true"
},
{
"name": "Session",
"value": "false"
},
{
"name": "SharedShippingBillingPage",
"value": "true"
},
{
"name": "ShipAsComplete",
"value": "true"
},
{
"name": "ShippingChargeType",
"value": "false"
},
{
"name": "ShippingInstructions",
"value": "true"
},
{
"name": "ShowHideOrderItems",
"value": "false"
},
{
"name": "SideBySideIntegration",
"value": "false"
},
{
"name": "StoreLocator",
"value": "true"
},
{
"name": "Subscription",
"value": "true"
},
{
"name": "Tealeaf",
"value": "false"
},
{
"name": "TrackingStatus",
"value": "true"
},
{
"name": "UseCommerceComposer",
"value": "true"
},
{
"name": "UseSynonyms",
"value": "true"
},
{
"name": "WCHIntegration",
"value": "false"
},
{
"name": "accountParticipantRole",
"value": "false"
},
{
"name": "allowOrgRegistration",
"value": "false"
},
{
"name": "contractSelection",
"value": "false"
},
{
"name": "on-behalf-of",
"value": "false"
},
{
"name": "on-behalf-of-csr",
"value": "true"
},
{
"name": "preferredCurrency",
"value": "true"
},
{
"name": "preferredLanguage",
"value": "false"
},
{
"name": "promotionCode",
"value": "true"
},
{
"name": "quickCheckout",
"value": "true"
},
{
"name": "search",
"value": "true"
},
{
"name": "sterlingConfigurator",
"value": "false"
}
],
"__meta": {
"modified": "2020-09-11T06:13:00.050Z"
}
}
}
Ejemplos de la etapa 6
El código siguiente es un ejemplo de los datos de entrada para el procesador FindSupportedLanguagesFromDatabase.
{
"STOREENT_ID": 1,
"LANGUAGE_ID": "-1",
"LOCALENAME": "en_US"
}
El procesador FindSupportedLanguagesFromDatabase transforma los datos de entrada en los siguientes datos de salida:
{ "update": { "_id": "1--1", "_index": "auth.store", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"identifier": {
"supported": {
"language": [
"en_US"
]
}
},
"id": {
"supported": {
"language": [
"-1"
]
}
},
"__meta": {
"modified": "2020-08-03T13:19:38.979Z"
}
}
}
Ejemplos de la etapa 7
El código siguiente es un ejemplo de los datos de entrada para el procesador FindSupportedCatalogsFromDatabase.
{
"STOREENT_ID" : "10501, 10501, 10501",
"DEFAULT_CATALOG_ID" : "######10502 ",
"CATALOG_ID" : "10001, 10501, 10502",
"IDENTIFIER" : "Extended Sites Catalog Asset Store###Extended Sites Catalog Asset Store B2B Direct###Extended Sites Catalog Asset Store Consumer Direct",
"MASTERCATALOG" : "1###0###0"
}
El procesador FindSupportedCatalogsFromDatabase transforma los datos de entrada con los store id
y language id
pasados de la clase NiFi FlowFile como atributo en los siguientes datos de salida:
{ "update": { "_id": "1--1", "_index": "auth.store", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"identifier": {
"default": {
"catalog": "Extended Sites Catalog Asset Store Consumer Direct"
},
"master": {
"catalog": "Extended Sites Catalog Asset Store"
},
"supported": {
"catalog": [
"Extended Sites Catalog Asset Store",
"Extended Sites Catalog Asset Store Consumer Direct"
]
}
},
"id": {
"default": {
"catalog": "10502"
},
"master": {
"catalog": "10001"
},
"supported": {
"catalog": [
"10001",
"10502"
]
}
},
"__meta": {
"modified": "2020-08-08T03:37:21.743Z"
}
}
}
Ejemplos de la etapa 8
El código siguiente es un ejemplo de los datos de entrada para el procesador FindSupportedCurrenciesFromDatabase.
{
"STOREENT_ID": 1,
"CURRENCY": "USD###EUR"
}
El procesador transforma los datos de entrada con el y se pasan a desde la FindSupportedCurrenciesFromDatabase clase NiFi FlowFile como atributos store id
en los siguientes datos de languages id
salida:
{ "update": { "_id": "1--1", "_index": "auth.store", "retry_on_conflict": 5, "_source": false } }
{
"doc": {
"identifier": {
"supported": {
"currency": [
"USD",
"EUR"
]
}
},
"__meta": {
"modified": "2020-08-03T16:05:32.234Z"
}
}
}