This EAIWS plugin serves to mass collect the information contained in the OFML data. For this purpose, the OFML data is executed and processed via the EAIWS API and then the selected data is exported as an SQLite database. This database can then serve as the foundation for further data analysis and processing.
The EAIWS Crawler Plugin offers several possibilities to test the processed OFML data. Errors that occur during processing and performance data are recorded. In addition, there are built-in tests that compare the behavior of the data against a particular expectation.
The scope of possible tests and details of their use are described in the section features for data testing.
Different EAIWS versions can be compared by indexing an identical OFML data set with the EAIWS Crawler Plugin. The databases generated by this process provide information about deviations in the processing of the OFML data or image generation.
The EAIWS Crawler Plugin also creates a simple basis for making the information contained in the OFML accessible to third party applications. For example, this can be used to transfer an article list (including prices and images) into an existing shopping system and to synchronize them on a regular basis. Information about the database are described in the section structure of the database.
The most important thing to know about data processing is that it is an asynchronous task that is performed in the background. Depending on the amount of data and features enabled, processing can take from a few seconds to several hours.
Furthermore, the processing is not limited to only one task, but several tasks can be created in parallel and these are also processed in parallel.
When the task is started, the client receives a job id with which it can then query the status of the processing or the result.
For more information, see the REST API section.
First and foremost, the data comes from the OFML data installed locally on the system and accessible to the EAIWS. However, the data used for the actual crawling can be defined in different ways. For this purpose, the EAIWS Crawling Plugin uses the concept of data sources. These limit the data available from the system to a level adapted to the task.
The following data sources are available for the various use cases:
This is the simplest data source. It uses the catalog structure stored in the OFML data and indexes all contained articles. The usage of this data source does not require any additional parameters.
This data source limits the data to be indexed to the content of an OBK.
For this purpose, the articles to be indexed are created exactly as they would be used when loading the OBK in one of the pCon applications.
To use this data source, an OBK must be provided via a publicly accessible URL.
Furthermore, the value for the property type of dataSource must be set to obk.
This data source allows you to define your own article list based on the information that are used when integrating pCon.ui.
The information describing an article looks like this:
| moc required | string The manufacturer id or the catalog id of the article. |
| ban | string The OFML base article number of the article. |
| sid | string The OFML series id of the article. |
| ovc | string The OFML variant code of the article. |
[- {
- "moc": "EG",
- "ban": 4520,
- "sid": "OFFICE2",
- "ovc": "string"
}
]This data source is also based on the catalog structure present in the OFML data.
However, the catalog structure is not crawled.
Instead, articles can be referenced and indexed using the unique catalogNodeKey provided by the catalog structure.
Warning: the value for catalogNodeKey is only unique for Article entries across different exports. The value for Folder entries and possibly other types can change each time the OFML data is modified.
This data source uses the catalog search to index the entries.
Note: it is possible that the search result includes entries that are not visible in the normal catalog structure.
This data source uses a OBX and a list of properties to index the entries.
An article is created for all specified properties in all possible variants.
Warning: the number of possible variants is exponential to the selected properties and the number of their values.
Since it is an EAIWS plugin the setup is quite simple. The plugin only needs to be copied into the EAIWS plugin directory. Otherwise there are no further requirements for the server.
Read and write permissions are the same as for the EAIWS.
All paths specified are relative to the root folder of the EAIWS installation you are using!
| path | description |
|---|---|
| etc/plugins/crawler/worker_config/ | This folder contains the configuration files that describe the functionality and crawling behavior. A detailed description of this configuration can be found in the section worker config. |
| var/plugins/crawler/ | In this directory the plugin stores the databases created during crawling. Each file is the result of one crawling task. |
This configuration file contains all the settings that should always apply regardless of the crawling task.
The path of this file: etc/plugins/crawler/config.xml
An example could look like this:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="maxBasketWorkersPerJob">8</entry>
<entry key="maxGlobalConcurrentRunningBasketWorkers">32</entry>
</properties>
| callbackConnectionRetries | integer Default: 2 The number of retries in case the connection could not be established.
|
| callbackConnectionTimeout | string Default: "PT5S" The timeout in milliseconds used for the callback connection.
|
| callbackDelayBeforeRetry | string Default: "PT1M" The waiting time between two connection attempts.
|
| callbackReadTimeout | string Default: "PT1M" The timeout used for reading the response headers.
|
| databaseCleanupInterval | string Default: "PT1D" The time between the cleanup runs.
|
| databaseMaxAge | string Default: "PT7D" The maximum age of a database file. If a database file is older, it will be removed during the next cleanup run.
|
| databaseMaxSize | integer <size in KiB> Default: 0 This value determines the maximum allowed size for any given database. During the crawling this is checked regularly and if the value is exceeded the crawling is stopped and the corresponding database is deleted.
|
| databaseNameForJournal | string Default: "journal.db" The file name of the journal database. |
| databaseNameFormat | string Default: "yyyy-MM-dd-HH-mm-ss'.db'" A format string used to generate the filename of the SQLite database. The value must be a valid SimpleDateFormat string. |
| maxBasketWorkersPerJob | integer Default: 8 This value determines the maximum number of workers used to process the item data per crawling tasks. |
| maxGlobalConcurrentRunningBasketWorkers | integer Default: 32 This value determines the maximum number of workers used to process item data across all crawling tasks. |
| minFreeSpace | integer Default: 10485760 This value specifies the minimum amount of space that must be available before a crawling operation can be started or continued. During the crawling this is checked regularly and if the available space falls below the specified value the crawling is stopped and the corresponding database is deleted.
|
| spacePatrolInterval | string Default: "P1M" The interval at which the size of the active databases and the available space should be checked. |
{- "callbackConnectionRetries": 2,
- "callbackConnectionTimeout": "PT5S",
- "callbackDelayBeforeRetry": "PT1M",
- "callbackReadTimeout": "PT1M",
- "databaseCleanupInterval": "PT1D",
- "databaseMaxAge": "PT7D",
- "databaseMaxSize": 0,
- "databaseNameForJournal": "journal.db",
- "databaseNameFormat": "yyyy-MM-dd-HH-mm-ss'.db'",
- "maxBasketWorkersPerJob": 8,
- "maxGlobalConcurrentRunningBasketWorkers": 32,
- "minFreeSpace": 10485760,
- "spacePatrolInterval": "P1M"
}This configuration file is an XML file that describes the enabled features and the behavior of a crawling task.
In this context, the file name has a special role.
It consists of any file name permitted for the operating system followed by the file extension .xml.
The file name itself must then be referenced when the crawling is started. (see section REST API)
The structure of the xml corresponds to the format used when defining java properties as xml.
An example could look like this:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<entry key="article">true</entry>
</properties>
"simple" (string) or "deterministic" (string) Default: "simple" This value describes how the article indexing tasks should be distributed to the individual workers. | |
One of string ("simple") Default: "simple" The article are simply distributed to a free worker without any further logic. | |
| insert_ofml_option_no_complex_type | boolean Default: false With this option it is possible to disable the processing of complex types (e.g. meta types) when creating articles. For detailed information, please refer to the EAIWS specification. |
| use_new_fapish_for_each_article | boolean Default: false If this option is enabled, a new This function is used to ensure that the result of the article generation is not dependent on any previously inserted articles. If the option is disabled, in rare cases of incorrect OFML data it can lead to inconsistent results depending on the order in which the articles were processed
within a single |
| log_level | String Enum: "Fatal" "Error" "Warning" "Notice" "Info" "Config" "Debug" This value defines the log level set for processing the data.
This has a direct impact on the data contained in the |
| log_stack_trace | boolean Default: false If this value is enabled, java stacktrace information are added to the log entries in case of errors in the EAIWS Crawler Plugin or the EAIWS. |
| catalog_node | boolean Default: true This value determines whether the catalog entries should be indexed.
If this is disabled, all options starting with |
| catalog_node_resources | boolean Default: false This value defines whether resources linked in the catalog should be added to the database. This can be for example PDF files or static html pages. |
| catalog_node_text | boolean Default: false This value defines whether additional texts present at a catalog entry should be indexed. |
| catalog_node_translation | boolean Default: false This value defines if the translation of a catalog entry should be indexed. This may also contain a language dependent image. |
| catalog_node_images | boolean Default: false This value defines whether the images contained in a catalog entry should be added to the database. |
| catalog_node_images_parse_for_correct_dimensions | boolean Default: false In some cases, the image dimension stored in the OFML data does not correspond to the actual image dimension.
If this value is activated, the actual image content is parsed and the correct dimensions are written into the |
| catalog_package | boolean Default: false If this value is activated, information about the catalog packages used during data processing are written to the database. |
| article | boolean Default: false Only when this value is activated, the actual articles are created from the OFML data and the corresponding information is added to the database.
If this is disabled, all options starting with |
| article_obx | boolean Default: false This value specifies whether an OBX should be exported after the article creation and added to the database. |
| article_export | boolean Default: false This value specifies whether the client is allowed to request CAD exports and add them to the database. |
| article_images | boolean Default: false This value specifies whether the client is allowed to request article renderings and add them to the database. |
| article_price_information | boolean Default: false This value specifies whether the client is allowed to request article price information and add them to the database. |
| article_text | boolean Default: false This value specifies whether the article texts should be added to the database. |
| article_copy_paste_test | boolean Default: false This value specifies whether an article test should be run which checks if the article can be created via OBX import. This function can be used to find errors in the OFML data. |
| article_property | boolean Default: false This value specifies whether the property list of the article should be indexed. |
| article_property_value | boolean Default: false This value specifies whether every possible value for every single article property of the currently configured article should be indexed. |
| debug_fapish_stat | boolean Default: false This value specifies whether information about the Warning: this feature works only on linux and requires access to the |
| debug_fapish_stat_dump | boolean Default: false This value specifies whether all information accessible via Warning: this feature requires |
| post_processing_drop_tables | Array of strings (SQLite table name) This option allows to delete the specified tables from the database after crawling is finished. |
{- "basket_task_scheduler": "simple",
- "insert_ofml_option_no_complex_type": false,
- "use_new_fapish_for_each_article": false,
- "log_level": "Fatal",
- "log_stack_trace": false,
- "catalog_node": true,
- "catalog_node_resources": false,
- "catalog_node_text": false,
- "catalog_node_translation": false,
- "catalog_node_images": false,
- "catalog_node_images_parse_for_correct_dimensions": false,
- "catalog_package": false,
- "article": false,
- "article_obx": false,
- "article_export": false,
- "article_images": false,
- "article_price_information": false,
- "article_text": false,
- "article_copy_paste_test": false,
- "article_property": false,
- "article_property_value": false,
- "debug_fapish_stat": false,
- "debug_fapish_stat_dump": false,
- "post_processing_drop_tables": [
- "string"
]
}This database stores information about all crawling tasks performed. It is used to enable the progress request after the crawling task is finished and to detect if old databases can be deleted.
The name of this can be influenced via the value databaseNameForJournal setting in the plugin config.
Note: this database is purely for the internal processing of the plugin. However, it may be useful for debugging.
This table contains information about the finished crawling tasks.
| id | string The unique job id of the crawling task. |
| filename | string The name of the database file. |
| startTime | integer The unix time stamp when the crawling was started. |
| endTime | integer The unix time stamp when the crawling was finished. |
| finaleProgressState | string The final progress state after the crawling is finished. |
| deleted | integer [ 0 .. 1 ] If the field is set to |
{- "id": "string",
- "filename": "string",
- "startTime": 0,
- "endTime": 0,
- "finaleProgressState": "string",
- "deleted": 1
}The plugin provides its functions via REST interface.
Below is a list and description of the API endpoints.
This request starts the crawling process. In case of success a jobId is delivered as a response.
However, the actual processing of the job can take from a few seconds to several hours.
The status and the final result can be requested using the other API endpoints.
| workerConfig required | string Name of the worker config to be used. | ||||||||||||||||||
Catalog based data source (object) or OBK based data source (object) or pCon.ui compatible articles list (object) or Catalog node key based data source (object) or Search based data source (object) or Property permutation (object) The data source can be used to influence the data which will be indexed. For more information, please refer to the section where does the data come from.
| |||||||||||||||||||
One of
| |||||||||||||||||||
Array of objects The list of arguments used for creating the EAIWS session. More detailed information can be found in the EAIWS spec. | |||||||||||||||||||
Array
| |||||||||||||||||||
| callbackUrl | string <uri> This URL will be called by the plugin after the crawling finished. More details can be found in the callback section below. | ||||||||||||||||||
| clientId | string The For more information, please refer to the pCon.login documentation. | ||||||||||||||||||
| accessToken | string A short-lived pCon.login access token. This can be used to query the packet groups via pCon.update. For more information, please refer to the pCon.login documentation. | ||||||||||||||||||
| refreshToken | string A long-lived pCon.login refresh token. This can be used to query the packet groups via pCon.update. For more information, please refer to the pCon.login documentation. | ||||||||||||||||||
| priceDate | string <date> The value to be set as the price date. If no value is specified, the current date is used. | ||||||||||||||||||
| languageList | Array of strings <ISO 639 alpha-2 language code> [ items <ISO 639 alpha-2 language code > ] A list of ISO 639 alpha-2 language codes. The specified languages are used for exporting the properties depending on specific languages. | ||||||||||||||||||
| disable | Array of strings This list can be used to disable features which are enable in the specified worker config. | ||||||||||||||||||
object This mapping is used when generating CAD exports. The key corresponds to the name of the export to be stored in the | |||||||||||||||||||
| |||||||||||||||||||
object This mapping is used when rendering article images. The key corresponds to the name of the rendering to be stored in the | |||||||||||||||||||
| |||||||||||||||||||
| basketWorkers | integer This value determines the number of workers to be used for processing the article data.
| ||||||||||||||||||
Array of ItemAppData (object) or DeterministicOBXIds (object) Hooks are used to influence the behavior of the crawling or to extend the data to be stored. | |||||||||||||||||||
Array One of
| |||||||||||||||||||
| debugFilterCatalogIds | Array of strings (OFML catalog id) This is a debug function that will filter the list of catalog entries present in the data using the specified list of catalog ids. | ||||||||||||||||||
| debugIndexOnlyEveryNthArticle | integer This is a debug function that can be used to limit the number of articles that are indexed.
Only every | ||||||||||||||||||
| debugMaxDataSourceEntries | integer This is a debug function that can be used to limit the number of articles that are indexed. The indexing is stopped as soon as the number of articles specified by this value has been processed. | ||||||||||||||||||
| jobId required | string The unique id assigned to a crawling job. |
{- "workerConfig": "string",
- "dataSource": {
- "type": "catalog",
- "data": {
- "displayMode": "All"
}
}, - "openSessionArguments": [
- {
- "first": "string",
- "second": "string"
}
], - "clientId": "string",
- "accessToken": "string",
- "refreshToken": "string",
- "priceDate": "2025-01-31",
- "languageList": [
- "string"
], - "disable": [
- "string"
], - "geometryExportSettings": {
- "export key1": [
- "string"
], - "export key2": [
- "string"
]
}, - "imageExportSettings": {
- "rendering key1": [
- "string"
], - "rendering key2": [
- "string"
]
}, - "basketWorkers": 0,
- "hooks": [
- {
- "type": "ItemAppData",
- "data": {
- "mode": "xml",
- "appKey": "string",
- "value": "string"
}
}
], - "debugFilterCatalogIds": [
- "string"
], - "debugIndexOnlyEveryNthArticle": 0,
- "debugMaxDataSourceEntries": 0
}{- "jobId": "string"
}{- "jobId": "string",
- "successful": true
}This request can be used to cancel a still running crawling job.
| jobId required | any The unique id assigned to a crawling job. |
| deleteDatabase | boolean If set to |
| nonBlocking | boolean If set to |
After successful abort of crawling, the crawling status reached up to this point is returned.
| finished required | boolean If set to
| ||||||
| cancelled required | boolean If set to | ||||||
| cancelReason | string A message describing why the crawling was cancelled. | ||||||
| counting required | boolean Only when this is set to | ||||||
required | Array of objects This list contains a detailed overview of the found entries and their types as well as status information about their processing. | ||||||
Array
| |||||||
{- "deleteDatabase": true,
- "nonBlocking": true
}{- "finished": true,
- "cancelled": true,
- "cancelReason": "string",
- "counting": true,
- "items": [
- {
- "type": "string",
- "processed": "string",
- "total": "string"
}
]
}This request can be used to retrieve crawling progress.
| jobId required | any The unique id assigned to a crawling job. |
| finished required | boolean If set to
| ||||||
| cancelled required | boolean If set to | ||||||
| cancelReason | string A message describing why the crawling was cancelled. | ||||||
| counting required | boolean Only when this is set to | ||||||
required | Array of objects This list contains a detailed overview of the found entries and their types as well as status information about their processing. | ||||||
Array
| |||||||
{- "finished": true,
- "cancelled": true,
- "cancelReason": "string",
- "counting": true,
- "items": [
- {
- "type": "string",
- "processed": "string",
- "total": "string"
}
]
}This request can be used to retrieve the actual crawling result.
Note: the crawling must be finished before the database can be retrieved.
| jobId required | any The unique id assigned to a crawling job. |
This response returns the generated SQLite database as a binary data.
All tables have a field named parentId. This field points to the
record with the id of the parent table.
The tables of the highest order (e.g. article or catalog) get the
value of the parentId from the data source.
Some tables like meta or catalog_package are completely independent.
In such cases these will be explained separately in the table
description.
The following is a graphical illustration of the relationships between the tables and the data source:

| parentId | string A unique id generated by the data source. |
| packageName | string The OFML name of the package containing the OFML article data last used to insert or configure the OFML article. |
| progId | string The OFML program id of the package containing the OFML article data last used to insert or configure the OFML article. |
| distributionRegion | string The OFML distribution region of the package containing the OFML article data last used to insert or configure the OFML article. |
| baseArticleNumber | string This field contains the base article number. |
| finalArticleNumber | string This field contains the final article number. |
| ofmlVariantCode | string This field contains the OFML variant code of the OFML article. The OFML variant code always uses a key-value encoding, allowing it to be reliably parsed. This element is returned for OFML articles only. |
| manufacturerId | string This field contains the commercial identifier of the article\u2019s manufacturer. |
| seriesId | string This field contains the identifier for the article\u2019s series. |
| hasInconsistency | integer [ 0 .. 1 ] The value of this field indicates whether or not the EAIWS detected an
inconsistency in the article\u2019s current configuration. If this field is
|
| geometryChecksum | string The value of this field contains a checksum based on the information relevant for the CAD exports.
|
| obx | string <binary> The content of the exported OBX file.
|
| insertTime | integer <time in milliseconds> The time required for the article creation. |
| sessionId | string The sessionId used for indexing this article.
|
| parentId | string The same |
| failed | integer [ 0 .. 1 ] If the value is set to |
| parentId | string The same |
| key | string The key corresponds to the key that was defined during the crawling request. |
| data | string <binary> The binary data of the generated export. |
| exportTime | integer <time in milliseconds> The time required for the export. |
| parentId | string The same |
| key | string The key corresponds to the key that was defined during the crawling request. |
| image | string <binary> The binary data of the generated rendering. |
| renderTime | integer <time in milliseconds> The time required for the rendering. |
| parentId | string The same |
| distributionRegion | string The distribution region for which the prices are valid. |
| currencyCode | string <ISO 4217> If the article position has a price, then this field contains the ISO 4217 currency code of the price. |
| pdPurchasePrice | number <float> This field contains the purchase price for the current configuration of the article as determined by the product data. If no purchase price could be determined, the field is not available. The field will not be provided if the currencies of purchase price and sales price are different and the value of the purchase price is non-zero. |
| pdSalesPrice | number <float> This field contains the sales price for the current configuration of the article as determined by the product data. If no sales price could be determined, the field is not available. |
| purchasePrice | number <float> This field contains the purchase price as read from the product database, possibly adjusted by an OFML price profile. If no purchase price could be determined, the field is not available. The field will not be provided if the currencies of purchase price and sales price are different and the value of the purchase price is non-zero. |
| salesPrice | number <float> This field contains the sales price as read from the product database, possibly adjusted by an OFML price profile. If no sales price could be determined, the field is not available. |
| salesUnitGrossWeight | number <float> The gross weight of the sales unit. |
| salesUnitNetWeight | number <float> The net weight of the sales unit. |
| salesUnitSize | number <float> The size of the sales unit. |
| salesUnitVolume | number <float> The volume of the sales unit. |
| isDiscountable | integer [ 0 .. 1 ] If the value is set to |
| id | integer A unique id for this entry. This value is used for mapping between this and the
|
| parentId | string The same |
| languageTag | string The language used while processing the data. |
| class | string The property class is a symbolic name used to classify properties. Property class and property name uniquely identify the property with respect to the article. The property class names stored in this field correspond to the property class name stored in the name field of the PropertyClass structure. |
| classText | string The property classText contains the textual description of the property class. |
| name | string The property name is the symbolic name of the property. The property name is unique relative to the property class, but there is no guarantee that no two properties of an article have the same property name. |
| type | string This is the fundamental type of the property. More detailed information can be found in the EAIWS spec. |
| text | string The property text is a short human readable description of the property, suitable for use in a tabular property editor. The language of the text depends on the configuration of the current session and the languages available in the product data. |
| width | integer This is the maximum number of characters for properties of type Character. For other property types the value of this field is undefined and should not be used. The value of this field will never change for a particular property. |
| digits | integer This is the maximum number of significant decimal digits for properties of type Numeric and Length. For other property types the value of this field is undefined and should not be used. The value of this field will never change for a particular property. |
| decDigits | integer For properties of type Number and Length, this is the number of decimal digits right of the decimal point (the precision). For other property types the value of this field is undefined and should not be used. The value of this field will never change for a particular property. |
| visible | integer [ 0 .. 1 ] This field indicates whether the property should be displayed by a property editor. The value of this field may change depending on the current configuration. |
| editable | integer [ 0 .. 1 ] This field indicates whether the property may be changed by the client. It should be ignored for invisible properties. The value of this field may change depending on the current configuration. The field editable is always true if field visible is false. The OFML API does not allow to differentiate between editable and read-only invisible properties, and EAIWS does not prevent the client from setting the value of an invisible property, so the value true is more appropriate. |
| addValues | integer [ 0 .. 1 ] This field indicates whether the property may assume values (and may be set by the client to a value) other then the values found in the choice list of the property. For numeric and length properties, the restrictions imposed by possible intervals are not affected by the value of this field. |
| choiceList | integer [ 0 .. 1 ] This field indicates whether a property has a choice list. Unless the
field addValues is |
| valueValue | string This field contains information about the current internal value of the property. |
| valueText | string This field contains information about the current human readable value of the property. |
| valueSmallIcon | string <binary> If the property has a choice list, and a small icon is available for the current property value, then this field contains the image for the small icon. |
| valueLargeIcon | string <binary> If the property has a choice list, and a large icon is available for the current property value, then this field contains the image for the large icon. |
| parentId | integer A reference to the |
| value | string This is the internal property value. For properties of type Character this field contains either an internal symbolic character sequence or human readable text. For properties of type Numeric and Length this field contains the numeric value of the property formatted as follows: The integral part of the value is formatted as an optional minus sign followed by one or more decimal digits without any insignificant leading zeros. If the property is declared with a non-zero number of decimal digits (digits right of the decimal point), the formatted integral part is followed by a decimal point (.) and the number of declared decimal digits. XXX |
| text | string This is the human readable property value. For properties of type Character this is either the same as value, or, if value is a symbolic character sequence, a human readable text representing the symbolic value. The language used for the human readable text depends on the configuration of the current session and the languages supported by the product data. For properties of type Numeric and Length this is the numeric value of the property formatted according to the rules of the locale configured for the current session. |
| smallIcon | string <binary> If the property has a choice list, and a small icon is available for this property value, then this field contains the image for the small icon. |
| largeIcon | string <binary> If the property has a choice list, and a large icon is available for this property value, then this field contains the image for the large icon. |
| parentId | string The same |
| language | string The language used while processing the data. |
| shortText | string This field contains the short description of the article. While not enforced by the EAIWS, the short description should consist of a single line of text only. The short description describes the article and is supposed not to depend on the current configuration of the article. |
| longText | string This field contains the long description of the article, possibly consisting of multiple lines of text. The long description may describes the article in more detail than the short description, but, like the short description, should not depend on the current configuration of the article. |
| featuresText | string The feature description describes the configuration-dependent features of the article. |
| catalogId | string This field uniquely identifies the catalog within one instance of the EAIWS. More detailed information can be found in the EAIWS spec. |
| releaseDate | string This field contains the release date of the catalog package. |
| distributionRegion | string |
| priceProfileRegionId | string |
| manufacturerIds | string <JSON array of strings> This field contains the list of the |
| parentId | string A unique id generated by the data source. |
| catalogId | string This field uniquely identifies the catalog within one instance of the EAIWS. More detailed information can be found in the EAIWS spec. |
| catalogPackageId | string This field contains the package ID of the OFML package whose catalog data contains the catalog node. |
| itemType | string This field contains the type of the catalog node. More detailed information can be found in the EAIWS spec. |
| path | string <JSON array of strings> This field contains the breadcrumb path for the catalog entry. |
| articleNumber | string |
| articlePackageId | string |
| variantCode | string This field contains the variant code which should be used when creating the article. |
| varCodeType | string This field contains the type of the variant code. |
| parentId | string The same |
| image | string <binary> This field contains the actual content of the referenced file. |
| size | integer This field contains the file size of the referenced file. |
| extension | string This field contains the file extension of the referenced file. |
| width | integer This field contains the image width as specified in the OFML data. |
| height | integer This field contains the image height as specified in the OFML data. |
| parsedWidth | integer This field contains the real width of the image determined by a function which parses the actual image data. |
| parsedHeight | integer This field contains the real height of the image determined by a function which parses the actual image data. |
| highRes | integer [ 0 .. 1 ] The value of the high-resolution flag as specified in the catalog data.
|
| parentId | string This field contains the same |
| languageTag | string This field contains the language as specified in the catalog data. |
| type | string This field contains the resource type. More detailed information can be found in the EAIWS spec. |
| name | string This field contains the |
| mime | string This field contains the mime type of the resource file. |
| content | string <binary> This field contains the content of the resource file. |
| parentId | string The same |
| languageTag | string The language as specified in the catalog data. |
| purpose | string The text purpose. Predefined values are |
| value | string The actual text. |
| parentId | string The same |
| languageTag | string The language used while processing the data. |
| text | string This field contains a short text describing the catalog node. It is supposed to be displayed as part of the catalog presented to the user. |
| icon | string <binary> The icon field contains the small image that should be displayed as part of the catalog presented to the user. |
| image | string <binary> |
| id | string |
| manufacturer | string This field contains the name of the manufacturer. |
| manufacturerId | string This field contains the commercial identifier of the manufacturer. |
| program | string This field contains the OFML program set in the catalog package. |
| concernId | string |
| productDb | string |
| productDbPath | string |
| releaseVersion | string This field contains the value of DSR key |
| releaseDate | string This field contains the value of DSR key |
| releaseTimestamp | string This field contains the value of DSR key |
| dependency | string <JSON array of strings> This field contains a list of |
| catalogType | string This field contains the type of the catalog data. e.g. |
| distributionRegion | string This field contains the OFML distribution region set in the catalog package. |
| features | string <JSON array of strings> This field contains a list of special catalog features. More detailed information can be found in the EAIWS spec. |
| languages | string <JSON array of strings> This field contains a list of the languages used by this package. |
| metaType | string |
| priceProfileRegionId | string This field contains the value of DSR key |
| progInfo | string |
| releaseState | string This field contains the value of DSR key |
| sellingCurrency | string |
| seriesIds | string <JSON array of strings> This field contains the value of DSR key |
| specialArticleScheme | string |
| supplierId | string |
| versionedName | string |
| defaultPackage | integer [ 0 .. 1 ] |
| visible | integer [ 0 .. 1 ] |
| parentId | string |
| languageTag | string |
| manufacturerName | string |
| manufacturerNameUseManCfg | string |
| distributorName | string |
| distributorNameUseManCfg | string |
| programName | string |
| description | string |
| copyright | string |
| releaseText | string |
| parentId | string This field contains the |
| languageTag | string This field contains the language used while processing the data. |
| id | string This field contains the series id. |
| name | string This field contains the series name. |
| parentId | string This field contains the same |
| languageTag | string This field contains the language used while processing the data. |
| name | string This field contains the display name of the catalog. It is supposed to be displayed as part of the catalog presented to the user. |
| icon | string <binary> This field contains a small image that should be displayed as part of the catalog presented to the user. |
| iconExtension | string This field contains the file extension of the images used as |
This table contains information about process statistics of the fapish.
All recorded information originate from the proc file system. Therefore, the
corresponding man page (/proc/[pid]/stat)
should be read to interpret the values.
| parentId | string The field |
| taskIdentifier | string <JSON array of strings> A list of strings that uniquely identifies the task previously performed. |
| rss | integer The number of pages the process has in real memory. |
| utime | integer <clock ticks> Amount of time that the |
| dump | string A complete dump of all
|
| parentId | string The field |
| parentTable | string The field |
| level | string The filed More detailed information can be found in the EAIWS spec. |
| facility | string The filed |
| message | string The filed |
| className | string The field |
| stackTrace | string The field |
This table contains meta information about the crawling job. The structure corresponds to a key value map.
The entries may vary depending on the version of the plugin and the configuration of the crawling task. However, the following entries should always be present:
| key | value |
|---|---|
| eaiwsVersion | The version of the EAIWS used for crawling. |
| pluginVersion | The version of the crawling plugin used for crawling. |
| startTime | The unix time stamp when the crawling was started. |
| endTime | The unix time stamp when the crawling was finished. |
| maxConcurrentFapish | The number of fapish processes used in parallel for crawling the article data. |
| basketWorkerQueue | The name of the queue class used for scheduling crawling tasks between workers. |
| cancelled | Determines if the crawling was cancelled and therefore the database is incomplete. |
| cancelReason | The reason that caused the crawling to be cancelled. |
| requestConfig | The request config used for crawling. Note: the value does not correspond exactly to what was sent in the request body. Sensitive information is omitted and possibly undefined values are replaced by their default values. |
| key | string This field contains a unique key that can be used to identify the meta data. |
| value | string This field contains the actual value of the meta data. |
The easiest way to search for errors in the OFML data is to compare the entries from the catalog_node table with the entries from the article table.
For each parentId from the catalog_node table
with the itemType of the value Article a corresponding entry with the
identical parentId must exist in the article table.
The following SQL query returns a list of catalog_node entries for which the article creation failed.
SELECT
*
FROM
catalog_node
WHERE
itemType = 'Article' AND
parentId NOT IN (
SELECT parentId FROM article
)
Note: Information about the actual errors can be found in the log_entry table.
In many applications it is common to save the state of an article as OBX and to restore it's state again at a later time. Since this important function can be affected by errors in the OFML data, an additional test has been added to the crawler plugin.
To activate this test the value for article_copy_paste_test in the
worker config used for crawling must be set to true.
This will add the table article_copy_paste_test to the database created during crawling.
Depending on the use of certain other articles, errors may occur for articles
with incorrect information about their dependencies.
Such errors can be detected by using a new fapish instance for every single
article.
To activate this feature the value for use_new_fapish_for_each_article in the
worker config used for crawling must be set to true.
Note: Activating this feature slows down crawling significantly!
This section covers only the changes to the API, the configurations or the database. Therefore, the version information in this documentation refers to the major and minor level of the actual plugin versions. The patch level of the plugin version is ignored.
Example: the version 1.0 from this documentation applies to the plugin versions 1.0.0, 1.0.1, 1.0.2 and so on
displayMode has been added to the start request as an optional parameter for the catalogdata sourcepriceDate used for crawlingPropertyPermutation has been added to the start requestnonBlocking property has been added to the cancel requestpriceDate has been added to the start requestpriceDate has been added to the meta tablehooks has been added to the start requesttotal counter of the progress response when using the search data sourceprocessed counter for articles even if they are skipped due to a duplicate catalog node entryreleaseTimestamp has been added to the catalog_package tablerequestConfig has been added to the meta tableOAS_MIME that caused the corresponding content column of the catalog_node_resource table to always be emptysearch has been added to the start requestcatalogNodeKeyListgeometryChecksum has been added to the article tableclassText has been added to the article_property tablefapish when processing an articlecancelled and cancelReason have been added to the progress responsesuccessful property of the progress notification callback is now set to false if the crawling task was canceled via the cancel requestdeleteDatabase has been added to the cancel requestsessionId has been added to the article tablerenderTime has been added to the article_image tableexportTime has been added to the article_export tablebasketWorkerQueue, cancelled and cancelReason have been added to the meta tabledebug_fapish_stat has been added to the worker configdebug_fapish_stat_dump has been added to the worker configdatabaseMaxSize has been added to the plugin configminFreeSpace has been added to the plugin configspacePatrolInterval has been added to the plugin configtotal counter of the progress response