ETIMxChange

ETIMxChange

ETIMxChange is the first product and trade item exchange standard fully managed by ETIM International and its community, with a focus on global use. ETIMxChange is based on the European Master Data Guidelines (EMDG) taking into account national exchange standards such as DICO, BMEcat and FAB-DIS). The exchange format is based on JSON, including JSON schema for validation.

Current version: 1.0 (release 2024-02-19)

  • Simplified structure in JSON that is logically grouped, based on multiple national exchange standards.
  • Generic structure of product data with underlying manifestations; or trade items
  • Includes data structure for transporting environmental data such as LCA data in all phases of the life cycle.
  • The structure offers the possibility to communicate description fields multilingually.
  • Compatible with the latest ETIM-MC structure, including connection types for the Uniform Object Library.
  • It has a very flexible structure for all kinds of packaging hierarchy data exchange methods.

The complete documentation of ETIMxChange 1.0 can be found in the downloadsection of ETIM International.

Planning Implementation 2BA

Given the impact on the 2BA data model and planning, the implementation is fragmented into:

  • Import phase 1 | May 14th 2024

    1. Import limited to current 2BA data model + subtree LcaEnvironmental
    2. Schema validation not yet available

  • Import phase 2 | mid June 2024

    1. Import selection new fields and related code lists
    2. Schema validation not yet available

  • Import phase 3 | mid June 2024

    1. Validation Schedule

  • Export | July 9th 2024

Mapping

2BA conforms the data pool to the Dutch standards of Ketenstandaard Bouw en Techniek. The supported exchange formats are mapped to the internal fields of the data model. Some internal fields may differ from the length or type described in the interchange format guideline. We create as much clarity as possible, but there may be differences, exceptions are noted in the mapping

Validation

There are no validation checks available.

File name

To recognize the format, the term ETIM_XCHANGE or ETIMxChange must be included in the file name. If this term is missing, the dataset will not be recognized by the import routine

Country specific elements

It may happen that a country requires more fields than originally available in the ETIMxChange structure.

The ETIMxChange Country Specific Guideline contains clear examples of how to define these in your data file. Use the CSItemCharacteristics fields as defined in the ETIM guideline section 3.13 from page 50.

NL CHARACTERISTIC Name Explanation
NL_002-1 DIN-number
NL_002-2 ISO-number
NL_007 Delivery time
NL_011 Buying group
NL_012 Orderable indicator
NL_014 Fragile on package
NL_015 Best before date on package
NL_016-1 Cuttable indicator
NL_016-2 Maximum cutting length
NL_018 Code VAT rate

Mutate online

Mutate online

With the online mutate function, adjustments can be made quickly to product and/or trade item data, for example for emergencies surrounding published price data and other data and to quickly respond to feedback from installers and wholesalers.

2BA offers limited functionality to adjust data. Editing 2BA online is not a PIM! For regular maintenance of your range, we refer you to your own PIM software environment. If you do not yet have PIM software, we advise you to contact one or more .

 

Artikeldetails

Click on image for full screen

Possibilities:

  • Changing published data
    All published product and/or trade item data, with the exception of attachments, may be changed or enriched.
  • Multiple records at the same time
    You can change multiple product and/or trade items records with one delivery.
  • Data processing
    To prevent errors, changes made are processed into production via a regular data processing upload. This means that every change is validated and the chances of incorrect data are nil.
  • Report
    You will receive a regular processing report for each upload so that it is known which products and/or trade items records have been changed.

The following entities can be changed and/or added:

  • Trade items
  • Pricing details and fees
  • Product data
  • ETIM classification
  • ETIM-MC classification
  • Attachments
  • Product references and relationships

Online mutate from a feedback ticket:

When a customer has started a feedback ticket based on a product or trade item, you can go directly to the item in question:

  1. Click in the feedback ticket on ‘Affects – component’ to go to the product or trade item on Unifeed
  2. Select the blue button at the top right [Mijn data]
  3. Go to step 3 below

Online mutate from My data:

  1. Open My data within your MY management environment
  2. Find the desired product or trade item and open the record
  3. Select the button at the top right [online edit]
  4. Adjust the desired data
  5. Choose ‘Save (note the changes have not yet been processed)
  6. After making all adjustments; Select ‘Overview mutations’ in the left menu
  7. Start data processing via the ‘Start mutation processing’ button
  8. The adjustments are prepared for approval through a regular data delivery upload
  9. After processing, the feedback ticket can be closed the next day with a thank you to the submitter

Remarks:

  • When data processing is active, no online changes can be made.
  • The menu overview mutations indicates the collection of draft changes that have been made and can be canceled if necessary.
  • All saved draft changes are retained until the mutation processing has started.
  • A product generated by the system can be changed to an available product via the status code. Please note: This product with a product code must then be part of a subsequent data delivery. If this is not the case, the product will still be marked as expired.
  • The green indicator shows the previous value per field.
  • Properties and associated requirements can be consulted per field via the info icon.
  • Key fields such as product and/or trade item numbers and GLNs cannot be changed.
  • Multiple country codes (semicolon separated) can be specified for country of origin (product) and country of provenance (trade item).
  • Deleting a product changes the product status code to ‘expired’.
  • Changes in the ETIM classification are according to ETIM Dynamic and expire ETIM characteristics. Already expired features can also be changed.
  • When a product changes class, any overlapping features are retained.
  • If available, an ETIM Modeling class can be selected, geometric values can only be indicated after the MC class has been saved and processed for production.

Test

test NL Alles wat ik hier typ.

Via API

DeliveryUpload UploadFile (Streaming)

Description

Upload a catalog file to the 2BA database.
Please refer to our Webservices documentation how to use this upload function regarding access and security.

Resource URL

json: https://api.2ba.nl/1/streaming/DeliveryUpload/UploadFile

The input is a MultipartFormDataContent with the parameter:
 file

 

 

required

 Stream with file. This file should be one of the accepted formats (bestandsformaten) compressed using zip, 7z or gzip. The maximum filesize is 2GB. For larger files see our alternative upload through SFTP

Response Object

The UploadFile service returns the normale HTTP Status as response.

c# sample code

       public async Task Upload(byte[] file, string filename)
        {
            string result;
            if (string.IsNullOrEmpty(_refreshToken))
            {
                // Only once during the application life time the GetTokenResourceOwnerPasswordCredentials is called
                await GetTokens();
            }
            if (_client == null) {
                // The HttpClient object is intended to live for as long as this application needs to make HTTP requests.
                InitializeClient();
            }

            var uri = new Uri(_baseUri, "Streaming/DeliveryUpload/UploadFile");

            using (var content = new MultipartFormDataContent())
            {
                // Add parameter process. Process file after upload?
                content.Add(new StringContent(((int)_settings.ProcessFile).ToString()), "process");
                
                // Add file as stream
                content.Add(new StreamContent(new MemoryStream(file)), filename, filename);

                try
                {
                    result = await PostFile(uri, content);

                    if (string.IsNullOrEmpty(result))
                    {
                        // Tokens refreshed. Retry once!
                        result = await PostFile(uri, content);
                        if (string.IsNullOrEmpty(result))
                        {
                            throw new FileWatchUploadException($"Retry upload failed. Stop retrying.");              
                        }
                    }
                }
                catch (TaskCanceledException ex)
                {
                    // Check ex.CancellationToken.IsCancellationRequested here.
                    // If false, it's pretty safe to assume it was a timeout.
                    if (ex.CancellationToken.IsCancellationRequested)
                    {
                        _logger.LogError($"Problem uploading file *** Timeout ***");
                    }
                    throw;
                }
                catch (Exception e)
                {
                    throw new FileWatchUploadException($"Problem uploading file to { _settings.RestServiceUrl }", e);
                }
            }

            return JsonConvert.DeserializeObject(result);
        }

        private void InitializeClient()
        {
            _client = new HttpClient();
            _client.MaxResponseContentBufferSize = 256000;
            _client.Timeout = TimeSpan.FromMinutes(30);
            _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _accessToken);
        }

        private async Task PostFile(Uri uri, MultipartFormDataContent content)
        {
            var result = string.Empty;

            using (var response = await _client.PostAsync(uri, content))
            {
                if (response.IsSuccessStatusCode)
                {
                    // return result
                    _logger.LogInformation("Upload OK: " + _baseUri);
                    result = await response.Content.ReadAsStringAsync();
                    return result;
                }
                else if (response.StatusCode == HttpStatusCode.Unauthorized)
                {
                    // return empty result
                    _logger.LogInformation($"Unauthorized at: { _baseUri }. Start refreshing tokens");
                    var tokens = await _authorizeServices.RefreshToken(_refreshToken);
                    _client.DefaultRequestHeaders.Remove("Bearer");
                    _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", tokens.access_token);
                    return result;
                }
                else
                {
                    // throw exception
                    throw new FileWatchUploadException($"Error uploading file. Statuscode: {response.StatusCode }. {response.ReasonPhrase} \n {uri}");
                }
            }
        }

        private async Task GetTokens()
        {
            try
            {
                var tokenResponse = await _authorizeServices.GetTokenResourceOwnerPasswordCredentials();
                _refreshToken = tokenResponse.refresh_token;
                _accessToken = tokenResponse.access_token;
            }
            catch (Exception)
            {
                _logger.LogError($"Unable to get tokens at { _settings.AuthServiceUrl }");
                throw;
            }
        }
    }
</string></importfilelist></importfilelist>

Selection Output Method

Selection Output Method

Complete

This method collects the complete current assortment per selection line. The data is collected without taking into account the mutation date set at profile level. This includes: orderable or current article range from the selected supplier.

Mutations

This method collects changes per selection line from the specified mutation date or the last download date of the exported files. This includes: changes supplied by supplier on articles and/or products depending on the selection method.

Restore

This method collects the complete current article range per selection line. Added to this is also the expired assortment (products with status code expired en deleted articles within the 2BA datapool. As a result, you will receive a file of products and/or articles that are or have ever been in the article range of the supplier(s). Please note: the PAB format does not support status code expired and this is an optional setting in your selectionprofile.

The data is collected without taking into account the change date set at profile level. After output, the Profile’s Output Method is automatically converted to Transactions. Subsequently, the mutation date of the profile level is again leading.CAUTION! Can become a very large file. This includes:

  • current article and product range available from the supplier
  • expired products and deleted articles from the supplier. Expired products are products that are deleted by the supplier. Suppliers remove products that are no longer produced, but the data will remain for product history and serve as an informative record for referring trade item records from suppliers.

Assortments

Guide assortments

Assorments (or sub-ranges) are groups of items that fall within a particular group and have an umbrella name. For example, a supplier of electrical, plumbing and heating products may divide their data into a group for each of these main groups. The linking of assortments to items is done by means of a selection on discount group. In order to use this system, it is therefore necessary to be able to determine which group an item belongs to by means of the discount group.

Use (by customers)

In the selection profile , three selection methods can be chosen per selection rule (supplier):

  • Alles (All) All – any available item from the specified data supplier (standard)
  • Selectie deelassortiment (Selection of sub-range) – this is a defined format, managed by the data supplier
  • Assortiment in uitgebreide filtering (Assortments of products in extended filtering) – manual range of products specified by the data supplier. One should know the codes and the underlying items of the data supplier themselves.

One selection method can be chosen per selection rule
Go to your selection profile here.
DeelAssortimenten

 

Assortments (for suppliers)

For setting up assortments for suppliers please see Assortments

Online Condition Server

Online Condition Server

The Online Condition Server offers users the option to convert the gross price information made available by suppliers into net price information based on agreed conditions. As a result, within Unifeed, for example, in addition to general trade information, such as minimum order quantity, step size and the number of usage units and gross price, the company’s own net purchase prices are also shown.

The Online Condition Server is hosted via a secure environment within the 2BA cloud.

Steps:

  1. Go to https://ocs.2ba.nl (Note! To start a database you must have the ‘superuser’ right).
  2. Choose [Create new database] and enter the desired database name and choose [Save].
  3. You can then upload the condition file(s), manually create condition rules or, if the supplier supports this, enable real-time stock and net price information.

Where necessary, an explanation is available for each function within the Online Condition Server via the [Help] button.

The use of the Online Condition Server is included as a light version with a subscription to 2BA. If you want more advanced options such as multiple databases, logging and extensive backup options, you can purchase a paid subscription. Click here for rates and more information.

Security

Of course, your discount files are well protected in this secure data environment. For example, security is periodically tested by an independent institute.

Introduction

Information for suppliers

In addition to reading condition files, the Online Condition Server (OCS) also supports:

If your organization provides a stock and/or net price through a web service, or intends to develop it, these web services can be linked to the Online Condition Server of 2BA. With this link your customers have access to real-time stock and/or their own net price information within Unifeed or the ERP package.

Possible options for the stock web service:

  1. Stock available yes/no; this is indicated by a tick or cross.
  2. The number in stock; this is indicated by the specific number in stock.
Authentication

Both the stock and net price Web service can be provided with authentication. Authentication can be based on user name, password and/or debtor number.

Techology

For calling up your Web service, 2BA supports both SOAP and JSON formats.

Would you like to join or find more information?

If your organisation already has a Web service, complete this form and return it to us at: helpdesk@2ba.nl or get in touch with your contact at 2BA.

Changelog

Conditie Server changelog

 Versionnumbering rules:

<major>.<minor>.<patch>

  • Major number will increase for updates with breaking changes
  • Minor number will increase for updates with functional changes (additions) but without breaking changes
  • Patch number will increase for bug fixes and other non-functional changes.

Version release 2.30 pending
2025-3-19


Version release 2.29 released
2023-12-12

No structural changes


Version release 2.28 released
2023-6-8

Improvement
  • OCSB-354 – import OCS Sales005 ICC file

Version release 2.27 released
2023-9-3

No structural changes

Version release 2.27 pending
2023-9-3

No structural changes


Version release 2.26 released
2022-12-8

No structural changes


Version release 2.25 released
2022-9-8

Fix
  • OCSB-343 – Help texts not displayed properly in OCS under Conditions & Imports

Version release 2.24 released
2022-6-16

Fix
  • OCSB-329 – Validity dates conditions are no longer adjustable.
Improvement
  • OCSB-335 – OCS enable delivery of condition files for multiple databases from 1 log in account.

Version release 2.23 released
2022-3-17

New
  • OCSB-321 – NEW: Import ICC files description Include discount group
Improvement
  • OCSB-331 – Improvement notification to the user when an OCS database is deleted

Version release 2.22 released
2021-12-09

Fix
  • OCSB-320 – OCS Import remove exact duplicates

Version release 2.21 released
2021-09-09

New
  • OCSB-285 – OCS return existing net prices in Report details
  • OCSB-286 – Return OCS Expired Net Prices in Report Details
  • OCSB-287 – Expand OCS reports with article descriptions

Version release 2.20 released
2021-07-22

  • No changes

Version release 2.19 released
2021-06-23

Change
  • OCSB-312 – Max. set size logdb to 30GB

Version release 2.18 released
2021-03-09

Improvement
  • OCSB-251 – You can initiate a change of database as a normal user but you will get an error
Fix
  • OCSB-289 – Net price WebServices Frige 8714253038063 does not give details of the error

Version release 2.17 released
2020-08-12

Change
  • OCSB-256 – https://ocs.2ba.nl/Import gives error “No OCS database configured!” while there are one (or more) databases available

Version release 2.16 released
2020-10-12

Change
  • OCSB-216 – 2BANL-2001-A13 Vulnerabilities are less easy to exploit thanks to interchangeable GET and POST parameters

Version release 2.15 released
2020-07-14

Change
  • OCSB-230 – Adjustment net price service Yesss Electrical
Improvement
  • OCSB-244 – Notification when changing the company’s default database
New
  • OCSB-236 – Implementation Bliek Elektrotechniek WS storage and net price
Fix
  • OCSB-243 – OCS Supplier not possible to remove from database

Version release 2.14 released
2020-04-21

Change
  • OCSB-229 – Button to edit webservice credentials; stock and netprice

Version release 2.13 released
2020-03-16

Change
  • OCSB-201 – Minor improvement at Vekto Webservice
Fix
  • OCSB-202 – Fix at Galvano Webservice

Version release 2.12 released
2020-01-28

New
  • OCSB-192 – Possibilty to delete supplier through conditions menu

Version release 2.11 released
2019-10-07

  • OCSB-191 – Minor change in supplier list configuration view

Version 2.10 released
2019-07-08

  • OCS-184 – Changes in Eriks stock- and netprice services
  • OCS-185 – Changes in van Walraven stock service

Version 2.9 released
2019-04-09

New
  • OCSB-177 – Connect Eldra stock service
  • OCSB-154 – Reconnect Yesss stock- and netprice services
  • OCSB-178 – Connect Frigé stock- and netprice services

Version 2.8

  • Skipped

Version 2.7 released
2019-01-21

New
  • [OCS-159] – Connect van Walraven stock service

Version 2.6 (minor release) released
2018-12-10

  • [OCSB-172] – Yesss Webservice deleted
  • [OCSB-170] – Econosto Webservice deleted

Version 2.5 – released
2018-11-19 

New
  • [OCSB-166] – Connect Comelit Nederland stockservice
  • [OCSB-167] – Minor change in supplier stockservice configuration view

Version 2.4 – released
2018-09-25

New
  •  [OCSB-161] – Security improvement; Authentication Server

Version 2.3

Skipped


Version 2.2 – released
2018-07-02

New
  • [OCSB-148] – Limit maximum count conditions according to subscription 
Change
  • [OCSB-155] – Rensa stockservice
  • [OCSB-155] – Galvano stockservice
  • [OCSB-155] – Schuurman stockservice

Version 2.1 – released
2018-04-19

Added
  • [OCSB-141] – Connected Van Egmond stock- and netprice services
  • [OCSB-142] – Connected Schuurman stock- and netprice services

Version 2.0 – released
2018-01-09

Added
  • [OCSB-133] – Connected Polvo stockservice

Version 1.13 – released
2017-12-15

Added
  • [OCSB-129] – Connected Galvano stock- and netprice services

Version 1.12 – released
2017-11-14

Added
  • [OCSB-131] – Connected Wasco stockservices
  • [OCSB-130] – Connected Havé Digitap stockservices
Fixed
  • [OCSB-125] – Fixed error in some cases at databases screen

Version 1.11 – released
2017-09-12

Added
  • [OCSB-105] – Added ability to switch database for a superuser
  • [OCSB-100] – Added indication for outdated records
  • [OCSB-108, 121, 122] – Implemented subscription limits
  • [OCSB-110] – Added ability to set/change custom supplier name
  • [OCSB-111] – Added ability to explicit reject a condition-delivery
  • [OCSB-112, 113] – Documentation improvements
  • [OCSB-115] – Added indication if pass through webservices are active at supplied screen
  • [OCSB-116] – Connected Vekto stock- and netprice services
Fixed
  • [OCSB-120] – Fixed access when subscription out of date
  • [OCSB-114] – Removed wizard when conditions already exitst

Version 1.10: 2017-06-07

Added
  • [OCSB-105] – Added ability to switch database for a superuser
Changed
  • [OCSB-100] – Overview of outdated condition records
  • [OCSB-106] – Changed sort of userlist
  • [OCSB-109] – Added some right checks for creation of databases

Version 1.9: 2017-03-27

Added
  • [OCSB-102] – Stock and Nett price service Groothandel Gebar added
Changed
  • [OCSB-90] – Stockservice Eriks changed (now authentication required)
  • [OCSB-90] – Stockservice Econosto changed (now authentication required)
  • [OCSB-101] – Stockservice Yesss Electrical disabled due a coming new implementation
Fixed
  • [OCSB-79] – Notification popup not readable after deleting database

Version 1.8: 2017-03-09

Added
  • [OCSB-90] – Stockservice Eriks added
  • [OCSB-90] – Stockservice Econosto added
Fixed
  • [OCSB-93] – Fixed login to OCS (wrong recurring redirect to createdatabase page)
  • [OCSB-96] – Fixed some translations

Version 1.7: 2017-01-27

New
  • [OCSB-89] – Files with a GLN which is not the main-GLN will be loaded when it is registered as an alias-GLN within 2BA
  • [OCSB-84] – Alert when a supplier is added to OCS but not registered in the pre-filter (only relevant for some customers)
  • [OCSB-73] – Custom error page
Changed
  • [OCSB-80] – Removed chart over all monitor
  • [OCSB-77] – Added some info texts
Fixed
  • [OCSB-75] – Search conditions

Version 1.6: 2016-07-29

New
  • [OCSB-72] – Stockservice Rensa added

Version 1.5: 2016-07-05

  • Bug-fixes

Version 1.4: 2016-04-25

New
  • [OCSB-65] – Stockservice Technische Unie added
  • [OCSB-62] – Inactive accounts in usermanagement disabled

Version 1.3: 2016-04-21

New
  • [OCSB-60] – Stockservice ES Elektro added
  • [OCSB-58] – Added remark at configuration screen for direct services
Fixed
  • [OCSB-61] – Error at import of some ICC files
  • [OCSB-63] – Deleted account visible

Version 1.2.1: 2016-03-24

New
  • [OCSB-56] – Stockservice Rexel Nederland added
  • [OCSB-58] – Added remark at configuration screen for direct services
Changed
  • [OCSB-57] – Import ICC discounts of 0% now possible

Version 1.2: 2016-03-01

Many presentational / layout changes

Direct supplier services added for:

  • Oosterberg (Stock)
  • Solar Nederland (Stock, Netprice)
  • YESSS electrical (Stock, Netprice) 

Version 1.1 

Beta release


Version 1.0

Initial release

 

Changelog

Unifeed changelog

Versionnumbering rules:

<major>.<minor>.<patch>

  • Major number will increase for updates with breaking changes
  • Minor number will increase for updates with functional changes (additions) but without breaking changes
  • Patch number will increase for bug fixes and other non-functional changes.

Version release 2.30 released
2024-03-19

New
  • BBAUNIFEED-1284 – Implement Nedelko WS stock
  • BBAUNIFEED-1307 – Enable to import an item list into UniFeed selection list
  • BBAUNIFEED-1309 – Implement Intercable Tools API stock

Version release 2.29 released
2023-12-12

Improvement
  • BBAUNIFEED-1285 – Minor user interface improvements regarding mobile display
  • BBAUNIFEED-1286 – Connection of Miasin to stock Webservice

Version release 2.28 released
2023-6-8

Improvement
  • BBAUNIFEED-1219 – Certified distributor at the top
  • BBAUNIFEED-1222 – Expired ETIM class indication is not displayed properly

Version release 2.27 released
2023-9-3

Improvement
  • BBAUNIFEED-1199 – Add Progress indicator
  • BBAUNIFEED-1194 – Show notification when the Index is not current
Fix
  • BBAUNIFEED-1203 – Still select other suppliers in unifeed while option preferred suppliers is fixed.

Version release 2.26 released
2022-12-8

Improvement
  • BBAUNIFEED-1166 – Unifeed does not calculate volume discounts correctly
  • BBAUNIFEED-1174 – Make Unifeed expired features recognizable
  • BBAUNIFEED-1187 – Unifeed attachments, attributes and multilangualism

Version release 2.25 released
2022-9-8

Fix
  • BBAUNIFEED-1165 – Unifeed does not properly pass on discounts to the selection list and article overview

Version release 2.24 released
2022-6-16

Fix
  • BBAUNIFEED-1146 – UniFeed in Internet Explorer Unifeed does not include the selected supplier selection in the filter.
Improvement
  • BBAUNIFEED-1111  – Add 2BA ID articles to Unifeed dropdown the option “Share link via email“ or “Copy link to”.
  • BBAUNIFEED-1095 – Excel Import and export bill of materials
  • BBAUNIFEED-1107 – Harmonize names of preferred suppliers UniFeed.
Change
  • BBAUNIFEED-1094 – Update stock information WebServices.

Version release 2.23 released
2022-3-17

Fix
  • BBAUNIFEED-1085 – FIX: Make Unifeed ignore deleted OCS databases.
Improvement
  • BBAUNIFEED-976 – Improvement classification filters: show ETIM characteristics that have not been supplied.

Version release 2.22 released
2021-12-09

Improvement
  • BBAUNIFEED-1033 – Surcharge percentage visible in Unifeed

Version release 2.21 released
2021-09-09

Improvement
  • BBAUNIFEED-1028 – Unifeed ETIM features extend tab with all language switch
New
    • BBAUNIFEED-1044 – Show rental prices on Unifeed
    • BBAUNIFEED-1046 – Unifeed search string ‘rental’ and ‘refurbished’ (Interface)
    • BBAUNIFEED-1054 – Unifeed search string ‘rental’ and ‘refurbished’ (Indexing)

Version release 2.20 released
2021-07-22

      • Minor maintenance of the system

Version release 2.19 released
2021-06-23

New
      • BBAUNIFEED-972 – add tab: UOB 3D viewer Only when MC data is provided After Tab ETIM class
Change
      • BBAUNIFEED-1035 – Wrong error message if product could not be found

Version release 2.18 released
2021-03-09

Improvement
      • BBAUNIFEED-986 – Show supplement description on product card
Fix
      • BBAUNIFEED-987 – Unifeed ETIM features legend no longer works

Version release 2.17 released
2020-12-08

New
      • BBAUNIFEED-972 – Add tab: UOB 3D viewer Only when MC data is supplied After Tab ETIM class
      • BBAUNIFEED-939 – Products from supplier are marked as ‘certified distributor
Change
      • BBAUNIFEED-909 – Brand filter display within Unifeed is not alphabetically correct
Improvement
      • BBAUNIFEED-924 – Thumbs not always visible on Unifeed
      • BBAUNIFEED-950 – Reken en teken kenmerken’ renamed to ‘ETIM-MC kenmerken’
      • BBAUNIFEED-951 – Clicking outside the “screen-in-screen window” below will close the “screen-in-screen window

Version release 2.16 released
2020-10-12

Change
      • BBAUNIFEED-899 – ETIM translations fallback to EN, then fallback to the ETIM Code (Unifeed)

Version release 2.15. released
2020-07-14

New
      • BBAUNIFEED-846 – Implementation Bliek Elektrotechniek WS storage and net price
Change
      • BBAUNIFEED-816 – Adjustment net price service Yesss Electrical
      • BBAUNIFEED-880 – Remove IframeResizer from Unifeed
      • BBAUNIFEED-881 – Unifeed features tab, deletion of table of other features
      • BBAUNIFEED-854 – Search Unifeed not case sensitive
Fix
      • BBAUNIFEED-886 – Reducement of number of SQL parameters in Unifeed
Improvement
      • BBAUNIFEED-860 – Productreference type CON is displayed correctly

Version release 2.14 released
2020-04-21

Improvement
      • BBAUNIFEED-804 – Improvement OCI2 Transfer
      • BBAUNIFEED-805 – New parameter to disbale Appswitcher; ?appSwitcher=false
Change
      • BBAUNIFEED-650 – Expand product view with panel refurbished, re-used, rental and certified distributor
      • BBAUNIFEED-801 – Unifeed cookies SameSite = None

Version release 2.13 released
2020-03-16

New
      • BBAUNIFEED-490 – Add GLN place name to product and article view
      • BBAUNIFEED-647 – Notification at not maintained productdata records
Improvement
      • BBAUNIFEED-721 – Minor textchange in explanation in order detail explanation (text field)
      • BBAUNIFEED-728 – Minor improvement at search field

Version release 2.12 released
2020-01-28

Improvement
      • BBAUNIFEED-490 – Add GLN city name to product- and trade item view
      • BBAUNIFEED-647 – Add the notice at product data which may no longer be maintained by de data supplier
      • BBAUNIFEED-650 – New possibility to subdivide refurbished, rent and certified distributor items (no data available yet)
      • BBAUNIFEED-656 – Minor changes to the explanation of the price and order details.
      • BBAUNIFEED-682 – Show origin applied discount percentage

 Version release 2.11 released
2019-10-07

Improvement
      • BBAUNIFEED-514 – Show stock availability WebServices in Unifeed for party’s who are not connected tot the WebService
      • BBAUNIFEED-517 – Removal of ‘processable’ indicator at the trade item view

Version release 2.10 released
2019-07-08

New
      • BBAUNIFEED-462 – Overview of open feedbacktickets at productview
Improvement
      • BBAUNIFEED-482 – Presentation of reason no value unknown in productview
      • BBAUNIFEED-491 – Sort order selectionlist based on add date

Version release 2.9 released
2019-04-09

New
      • BBAUNIFEED-475 – Connect Eldra stock service
      • —————-        – Reconnect Yesss stock- and netprice services
      • BBAUNIFEED-476 – Connect Frigé stock- and netprice services
Improvement
      • BBAUNIFEED-460 – Supplier filter doesn’t show suppliers without data anymore
      • BBAUNIFEED-464 – Field CSB code changed to Goederencode (commidity code)

Version 2.8 released
2019-02-07

      • [BBAUNIFEED-463 – My button added

Version 2.7 released
2019-01-21

New
      • [BBAUNIFEED-416] – Connect van Walraven stock- and netprice services
FIx
      • [BBAUNIFEED-455] – Panel surcharges
      • [BBAUNIFEED-458] – Panel marketing text

Version 2.6 (minor release) – released
2018-12-10

      • [BBAUNIFEED-448] – Several links changed to MY
      • [BBAUNIFEED-449] – Yesss Webservice deleted
      • [BBAUNIFEED-447] – Econosto Webservice deleted

Version 2.5 – released
2018-11-19

New
      • [BBAUNIFEED-439] – Connect Comelit Nederland stockservice
Fix
      • [BBAUNIFEED-431] – Unifeed company settings target view fixed

Version 2.4 – released
2018-09-25

Change
      • [BBAUNIFEED-428] – Security improvement; Authentication Server
      • [BBAUNIFEED-427] – Performance improvement supplier filter
      • [BBAUNIFEED-426] – Performance improvement netprice Webservice
Fix
      • [BBAUNIFEED-422] – Bugfix while clicking at Productclass filter in searchbar

Version 2.3

Skipped


Version 2.2 – released
2018-07-02

New
      • [BBAUNIFEED-347] – New URL attachments
Changes
      • [BBAUNIFEED-345] – Several style changes time standards view
      • [BBAUNIFEED-351] – Removed old redirectpage “Unifeed.aspx”
      • [BBAUNIFEED-383] – Change Rensa stockservice
      • [BBAUNIFEED-385] – Change Galvano stockservice
      • [BBAUNIFEED-386] – Change Schuurman stockservice
      • [BBAUNIFEED-399] – Added gross price to OCI field “NEW_ITEM-CUST_FIELD5[n]”
Fix
      • [BBAUNIFEED-357] – Fixed filters on time standards page
      • [BBAUNIFEED-337] – Bug quantity undefined depending of screensize

Version 2.1 – released
2018-04-19

New
      • [BBAUNIFEED-310] – Connected Van Egmond stock- and netprice services
      • [BBAUNIFEED-314] – Connected Schuurman stock- and netprice services
      • [BBAUNIFEED-326] – Added NEW_ITEM-CUST_FIELD4 to OCI with the GLN from the supplier
Changed
      • [BBAUNIFEED-324] – Changed the way GLN names of coupled products are indexed

Version 2.0 – released

New
      • Strict / only https, see more about the change to SSL here
      • [BBAUNIFEED-297] – Connected Polvo stockservice
Changes
      • [BBAUNIFEED-304] – Changes in view of ETIM features regarding ETIM versions

Version 1.19 – released
2017-12-15

New
      • [BBAUNIFEED-273] – Connected Galvano stock- and netprice services
      • [BBAUNIFEED-278] – Added ability to disable view of net- and/or gross prices
Changes
      • [BBAUNIFEED-293] – Changes to view of Unifeed within 2BA Android / iOS app
      • [BBAUNIFEED-282] – Position of “ReasonNoValue” changed on features view of a product
Fixed
      • [BBAUNIFEED-288] – Disabled unintended tab “tickets” (will be available in future)

Version 1.18 – released

2017-11-14

New
      • [BBAUNIFEED-273] – Connected Wasco stockservice
      • [BBAUNIFEED-274] – Connected Havé Digitap stockservice
Fixed
      • [BBAUNIFEED-267] – Fixed reference at productsuccessor

Version 1.17 – released

2017-09-12

New
      • [BBAUNIFEED-251] – Connected Vekto stock and net price service
      • [BBAUNIFEED-237] – Added ability to remove CTN tab for custom style implementations
Fixed
      • [BBAUNIFEED-258] – Fixed startup of Unifeed with GLN and tradeitemcode
      • [BBAUNIFEED-253] – Logout on user-switch attemt (security patch)

Version 1.16 – released

2017-06-07

New
      • [BBAUNIFEED-226] – Added new model fields for marketing text (product and tradeitem)
      • [BBAUNIFEED-233] – Added new interface for UNETO-VNI Calculation Time Standards equal to interface on the CTN-Book product
      • [BBAUNIFEED-234] – Added new OCI interface (OCI2) using new internal integer ids for 2BA tradeitem
Improvements / Changes
      • [BBAUNIFEED-189] – Changed sort of ETIM features
      • [BBAUNIFEED-195] – Update of underlying components
      • [BBAUNIFEED-227] – Exclamation mark instead of a cross when tradeitem not on stock
      • [BBAUNIFEED-234] – Added internal integer ids for 2BA product and tradeitem to JSON, JSONPOST and JSONGET interfaces
Fixed
      • [BBAUNIFEED-235] – Fixed share link for some weird characters

Version 1.15 – released

2017-04-11

New
      • [BBAUNIFEED-223] – Added message when Unifeed is accessed by a wrong URL. The only correct one is https://unifeed.2ba.nl. For customers using the old “Lokale Conditieserver” it is required to use use http://unifeed.2ba.nl but an upgrade to the OCS is required in short time!
      • [BBAUNIFEED-224] – Connected Groothandel Gebar stock availability and net price service
      • [BBAUNIFEED-225] – Connected Econosto net price service
      • [BBAUNIFEED-225] – Connected Eriks net price service
Improvements / Changes
      • [BBAUNIFEED-209] – Connected Econosto stock availability service now uses authentication
      • [BBAUNIFEED-209] – Connected Eriks stock availability service now uses authentication
Fixed
      • [BBAUNIFEED-222] – Removed hardcoded stuff in OCI interface
      • [BBAUNIFEED-218] – Expand of supplier filter not always working

Version 1.14.1 – released

2017-03-11

      • [BBAUNIFEED-221] – Error when accessing tab with ETIM features

Version 1.14  – released

2017-03-10

New
      • [BBAUNIFEED-209] – Connected Econosto stock availability service
      • [BBAUNIFEED-209] – Connected Eriks stock availability service
      • [BBAUNIFEED-199] – Added overview of couples ETIM classes and features within timestandards detailview
      • [BBAUNIFEED-165] – Display of ETIM MC logo at productlevel when product is ETIM MC compliant
Improvements / Changes
      • [BBAUNIFEED-196] – Removed classversion specified from ETIM link
      • [BBAUNIFEED-184] – Enhanced notification after adding items to selectionlist
      • [BBAUNIFEED-197] – Changed display of ETIM R&T symbol
      • [BBAUNIFEED-210] – Changed some informational texts
Fixed
      • [BBAUNIFEED-152] – Error when pressing back button after timestandards
      • [BBAUNIFEED-193] – Error when saving settings under some circumstances
      • [BBAUNIFEED-212] – Not all product attachments showed in some cases

Version 1.13 – released

2016-11-23

New
      • [BBAUNIFEED-190] – Matched UNETO-VNI timestandards now ordered on highest feature match count and feature count displayed in tooltip
      • [BBAUNIFEED-180] – Add option to show all suppliers for service-suppliers
Improvements / Changes
      • [BBAUNIFEED-186] – Input for “count” to insert into selectionlist / to interface increased and fixed to 6 decimals
      • [BBAUNIFEED-178] – Class images load much faster

Version 1.12
2016-11-04

New
      • [BBAUNIFEED-161] – Added special view for “service” tradeitems
      • [BBAUNIFEED-164] – Added special logo for ETIM Modelling Class products
      • [BBAUNIFEED-177] – Added calculation and transmit of net prices from selectionlist
Changed
      • [BBAUNIFEED-158] – Large filters such as suppliers are now grouped (display corrected)
      • [BBAUNIFEED-171] – Removed display of gross price in global mode (when no OCS database is configured, when not called using an interface)
      • [BBAUNIFEED-172] – Display of digits in selectionlist increased to 6
      • [BBAUNIFEED-169] – Display enhancements on attachments tab
Fixed
      • [BBAUNIFEED-173] – Clear of selectionlist using “clearSelectionList” parameter is not always working

Version 1.11
2016-10-19

New
      • [BBAUNIFEED-163] – Added ability to clean selectionlist at startup
Changed
      • [BBAUNIFEED-158] – Large filters such as suppliers are now grouped
      • [BBAUNIFEED-156] – Display of ModellingClass features is redesigned
      • [BBAUNIFEED-154] – Performance improvement at display of netprice / stockavailability
      • [BBAUNIFEED-140] – Download/links from attachments tab are now decorated with an icon
Fixed
      • [BBAUNIFEED-162] – Selectionlist counts not visible on small screens
      • [BBAUNIFEED-155] – Script error in some cases (adding quantity to selectionlist)

Version 1.9.4
2016-07-29

New
      • [OCSB-72] – Connected Rensa stock availability service

Version 1.9

2016-07-07

New
      • [BBAUNIFEED-132] – Filter functionality to tradeitems view
      • [BBAUNIFEED-129] – Ability to use custom stylesheets
      • [BBAUNIFEED-124] – Improved product sort
      • [BBAUNIFEED-133] – Improved performance (API Db)
Fixed
      • [BBAUNIFEED-116] – Translations on features view not working
      • [BBAUNIFEED-108] – Issue in feedback function within timestandards (CTN) browser
      • [BBAUNIFEED-114] – Security improvement (to protect XSS)

2016-06-15

Remark: From now the only, official endpoint is https://unifeed.2ba.nl  (SSL only), see more about the change to SSL here


Version 1.8.1 – 1.8.6
2016-04-20 – 2016-04-27

New
      • [BBAUNIFEED-103] – Connected Technische Unie stock availability service
Fixed
      • [BBAUNIFEED-106] – Error at searchoperations such as “3.5 x 6”
      • [BBAUNIFEED-101] – Changing quantity causes recalculation of netprice and stock even if user has no OCS database (error occurs)
      • [BBAUNIFEED-99] – Some products where not found (productcode starting with 2×2)
      • [BBAUNIFEED-100] – Fixed error in OCI interface after release of 1.8

Version 1.8
2016-04-20

New
      • [BBAUNIFEED-103] – Connected ES Elektro stock availability service
      • [BBAUNIFEED-94] – Added paging to timestandards screen
      • [BBAUNIFEED-93] – Added link to separate timestandards browser within Unifeed
Change
      • [BBAUNIFEED-92] – Remain filter open in calculation timestandards screen
      • [BBAUNIFEED-91] – Integer ids instead of Guids (performance improve)
Fixed
      • [BBAUNIFEED-95] – Added missing icons in scanner screen

Version 1.7 : 2016-03-01

New
      • [BBAUNIFEED-44] – Added (some) ETIM class images at class selection screen
      • [BBAUNIFEED-64] – Added link to (this) changelog
      • [BBAUNIFEED-65] – Connected YESSS Electrical stock- and netprice service
Fixed
      • [BBAUNIFEED-63] – OCI Interface not alway available after startup using /OCI/Login url

Version 1.6 : 2016-02-26

New
      • [BBAUNIFEED-52] – Added display of RT modelling class name and features
      • [BBAUNIFEED-26] – ETIM Features within filters and results multilingual
      • [BBAUNIFEED-47] – Added links to company overview from tradeitem and productview
      • [BBAUNIFEED-60] – Added ability to use OCS as company preference for supplier filter
Change
      • [BBAUNIFEED-49] – Options menu hidden when there are no options
      • [BBAUNIFEED-50] – Broken descriptions now in tooltip
      • [BBAUNIFEED-51] – Little change in display of productlisting
      • [BBAUNIFEED-53] – Enhanced exception hadling
      • [BBAUNIFEED-55] – Display of decimals formatted as 0,## (not showing unnecessary decimals)
      • [BBAUNIFEED-56] – Unifeed default URL now https://unifeed.2ba.nl
      • [BBAUNIFEED-57] – Refresh of stockinformation after changing the order amount
      • [BBAUNIFEED-59] – Changed tipover on netprice (added text “Inclusief conditiekorting of nettoprijsafspraak exclusief overige toeslagen/kortingen”)
      • [BBAUNIFEED-18] – JSONPOST interface now showing always a green mark, because it is a JSONP post we don’t know the status
Fixed
      • [BBAUNIFEED-19] – Counts in selectionlist not behaving correctly
      • [BBAUNIFEED-40,54] – Fixed exceptions in some cases
      • [BBAUNIFEED-61] – Successor and predecessor not always displayed
      • [BBAUNIFEED-58] – Some logo’s not visible in Firefox / Opera

Version 1.5 : 2016-10-23

Version 1.4.8 : 2015-09-03

Fixed
      • d.91826: Images with spaces, slashes and other weird characters not viewed in Unifeed (fixed d.89860 from release 1.4)
      • d.92015: Fixed errors when switching to secondary environment (every night around 01:00)

Version 1.4.7 : 2015-08-27

Fixed
      • d.91782: Nett prices not shown when using Local Condition Service

Version 1.4.4 : 2015-08-25

Fixed
      • d.91587: Fixed error after opening some products

Version 1.4 : 2015-08-21

New
      • d.86559: Added ability to change the amount of items on selection list
      • d.80651: Product interface directly available in productlistings
      • d.81843: Added product successor and predecessor numbers / links
      • d.73081: Added disposal fee (verwijderingsbijdrage) to article information
      • d.61653: Added information about the usage of wildcards etc.
      • d.85944: Redirect back to product view after logon
      • d.87938: ETIM features multilingual
      • d.89147: Selection list now also available within non-interface / non-ERP modus
      • d.89460: Added net weight and product GLN to product properties
Changed
      • d.89860: Product images loaded another way (performance increase)
      • d.72108: Display of “vervallen” (out of production) products
      • d.86819: Changed integration of 2BA Hotkey tool to Unifeed (Hotkey)
      • d.87867: Stock amount will be recalculated after change of requirement amount
      • d.87882: Reference to Condition Server from menu, acting to Online Condition Server (cloud) first if both cloud and local service are available
Fixed
      • d.87841: Several style fixes
      • d.89740: Combination of “q” and “filter” parameter not working
      • d.90154: Interface “JSONPOST” does GET instead of POST
      • d.91198 / d.91038: Some interfaces not working in Firefox and Safari (or give errors)

Version 1.3 : 2015-04-27

New
      • d.84797: “Mijn leveranciers” setting redesigned. Setting can be locked by company or by user
      • d.82845: UNETO-VNI Calculation Time Standards updated, faster, possible to
      • d.84773: Graphical feedback after using an interface (specially usefull for JSONPOST)
      • d.85128: Added ability to open productdetails window based on any of the applicable tradeitemids
      • d.81784: Implemented the new, Online Condition Service (More details at documentatie conditie-server)
Changed
      • d.84832: Filter for specific supplier not saved to database now only to session
      • d.78706: Dash (-) now works as a text separator so “Barcol-Air” can also be found by the word “Barcol”
      • d.87481: Automatic filter now disabled for non ETIM classified products
      • d.87482: Automatic filter now disabled when only one product result is found
      • d.78706: Manufacturer name always shown
Fixed
      • Encoding issues solved
      • d.84955: Sometimes no nettprices available using old, local Condition Service
      • d.85604: Get SelectionList using the “InterfaceUrl” interface not working
      • d.84768: Direct interface incorrect available at interface=2
      • d.86398: Get tradeitem using “InterfaceUrl” not always working
      • d.87480: Reset filters in IE8 not working (javascript function not supported)
      • d.84768: Reset filter for “expired” products not working on general reset

Version 1.2 : 2015-01-20

New
      • d.73681: Long product- and long articledescription – (can be delivered by suppliers in new formats such as GS1 INSBOU004, BMEcat 2005)
      • d.82845: Enhanced calculation time standards (UNETO-VNI Calculatie Tijdnormen) screens (subscription needed)
      • d.84402: New URL parameter “filter” for advanced prefilter abilities. More information: Unifeed – Parameters
Changed
      • d.80552: Units added to feature filters
      • d.82384: Cursor always active in search inputbox
      • d.81978: “Overnemen naar ERP” aangepast naar “Overnemen naar aanroepende applicatie”
      • d.82870: Scanner funcionality also available on https
      • d.82682: Casing of interfaceType parameter not sensitive
      • d.84463: Advanced exception handling
      • Several internal changes / updates
Fixed
      • d.81654: JSONGET response parameters not encodedNow the parameters are encoded
      • d.82029: Script errors when using interface from IE11
      • d.82510: Duplicate product types after filter on ETIM class
      • d.82698: Netprice not correct calculated in special curcumstances  

Version 1.1: 2014-08-07

New
      • Interfacing via alleen selectielijst
      • Interfacing op productniveau
      • Meerdere selectielijsten
 

Reference Architecture

2BA DaaS Reference Architecture

Text only available in engish

Data as a Service

The 2BA DaaS reference architecture offers a consistent, fast and safe way to communicate with the 2BA database and is, where possible, based on (open) standards. For most components in this architecture 2BA has defined its own implementation, but because of the (open) standards, it is possible for some components to be defined by third parties.

This architecture also offers the ability for the customer to transparently connect multiple service providers. 

Below is a short description of the individual components.

Webservices

Webservices are the basis for the Data as a Service architecture. The 2BA Webservices offer elementary, fast and lightweight services to access the product- and article data from the 2BA. The services support both JSON and SOAP. You can easily integrate your system with these webservices so as to always have the latest data available.

Catalogue

A catalogue offers the same data as the webservices, but provides them in a User Interface. 2BA’s catalogue implementation is Unifeed. You can find the complete Unifeed documentation here. Using Unifeed, the end-user can directly search and query the 2BA database. It is also possible to compose selection lists. Unifeed offers several interfaces (OCI, JSON) to easily pull singular data or selection lists to the customer’s business software.

OpenID

OpenID is an open standard for the authentication of users. 2BA customers can log into all 2BA applications with the same 2BA credentials (username/password). The possibilities of OpenID, however, extend much further. Third parties could also use 2BA OpenID to authenticate their application. The advantage for the user is that he/she does not have to remember his/her credentials for each application/website. It would also be possible for 2BA to support other trusted OpenID providers. This could, in theory, enable you to log into 2BA using, for example, your Google account.

OAuth 2.0

OAuth is a widely accepted internet standard for authorization. In short, this means that you authorize an application once to use your credentials to retrieve data from 2BA. You enter your credentials (username/password) at 2BA one time and authorize the application. In response, the application receives a “Token”. The application will then use this token in all future requests to 2BA. The “Token” is used by 2BA to identify the application and user that requested the data. 
Using this method, a form of Single-Sign-On can be achieved. The user can at all times revoke the authorization, invalidating the “Token” in the process.

ERP or Calculation application

Eventually, the 2BA data needs to be used somewhere. Chances are that this happens in an ERP or Calculation application. These applications can choose whether to use the 2BA REST Services or Unifeed to retrieve the data. 2BA itself does not produce ERP or Calculation applications. We do have a demo application available to demonstrate the functionality with both interface methods. You can download the 2BA DemoCalc application.

Supplier Conditions

The majority of the prices in 2BA’s systems tend to be gross prices. It is also possible for customers to have obtained supplier conditions (surcharges). These conditions vary per customer and have to be stored and retrieved separately. To this end, we developed the 2BA Condition Service. The 2BA Condition Services can run either locally at the customer’s location, or centralized at 2BA. Unifeed seamlessly integrates with the 2BA Condition Service, enabling Unifeed to display and adopt the net prices.

InterfaceUrl

Interface – InterfaceUrl

Text only available in english

ATTENTION: This (backward compatible) interface is meant to be a transitionary interface to migrate from the “old” Unfieed (https://unifeed.2ba.nl) interface.
We advise you make use of the newer interfaces, such as JSON or JSONGET. JSONGET and JSON are functionally closest to InterfaceUrl. Removal of this interface type is scheduled for the end of 2016 (d.84755).

 

 

A redirect to an internal URL. The information can be retrieved from the address.

Interfaces

Article, Selection list

Action REDIRECT to /selectionready.aspx
Content Pipe Separated Values of 1 or more articles
Example opening Unifeed https://unifeed.2ba.nl/?interfaceType=InterfaceUrl&interface=3
Example response

OCI2

Interfaces – OCI2

Text only available in english

Only difference with OCI interface is the NEW_ITEM-EXT_PRODUCT_ID is now of type long instead of guid. This is needed for further API calls.

As per 2013-03-01 Unifeed can also be used as a SAP OCI 4.0 Provider. In short, the Unifeed catalog can be initiated from the SRM Server and retrieve information from the catalog using the OCI (Open Catalog Interface).

Interfaces

Article, Selection list

Action POST to hookUrl
Message OCI message with one or more tradeitems. The tradeitems will be posted as an (one-based) array.
Example URL

For non SAP: https://unifeed.2ba.nl/?interfaceType=OCI2&interface=3&hookUrl=http%3A%2F%2Fmijn.domein.nl%2F 
For SAP: https://unifeed.2ba.nl/OCI/Login/ (see SAP configuration details below)

Example response OCI2 Output

Implementation details (SAP)

  • SAP Documentation: 
  • Version: 4.0
  • Method: Call-UP using GET and data return using “Fields” POST (XML variant not implemented)
  • Supported additional functions: DETAIL
  • Unsupported functions: SOURCING, BACKGROUND_SEARCH and VALIDATE are not implemented. Please contact us if you want to use one of these functions
  • URLhttps://unifeed.2ba.nl/OCI/Login/

You can define the catalog using code SPRO (Transaction customisations / process flow).
This documentation can be used for PM (Pant Maintenance), PS (Project System) and MM (Material Management) although less settings are possble.

Define catalog in SAP:

bedrijven

 

Define call detail of catalog (please use your credentials)

!! Pay attention! Change interfaceType to OCI2 in below image.

config

 

Define ordertype of catalogus / Map OCI fields to SAP fields (RIHFCOM_XL)

mapping

 

mapping

 

OCI Format mapping

Field name Details Mapping 2BA
NEW_ITEM-DESCRIPTION[n]
char 40
Description of the item TradeItem.Description (Cut to length 40)
NEW_ITEM-MATNR[n]
char 40
SRM product number of the item
NEW_ITEM-QUANTITY[n]
char 15
Item quantity; 11 digits before the decimal point, 3 after it. Do not use commas for thousands. The entered quantity on selection or from selectionlist
NEW_ITEM-UNIT[n]
char 3
Quantity unit for item quantity TradeItem.OrderUnitMeasureUnitCode (ISO codes like PCE, MTR)
NEW_ITEM-PRICE[n]
char 15
Price of an item per price unit; 11 digits before the decimal point, 3 after it. Do not use commas for thousands. TradeItem.GrossPricePerOrderUnit * Quantity (or when condition server is active and a netprice is found, the netprice will be used)
NEW_ITEM-CURRENCY[n]
char 5
Item currency; Must be maintained as ISO code in the SRM Server. TradeItem.CurrencyCode
NEW_ITEM-PRICEUNIT[n]
char 9
Price unit of the item (if empty, 1 is used)
NEW_ITEM-LEADTIME[n]
char 5
Delivery time of the item in days TradeItem.DeliveryTime (only when TradeItem.DeliveryTimeMeasureUnitCode == 803(days))
NEW_ITEM-LONGTEXT_n:132[]
char 8
Long text for the item TradeItem.LongDescription (Mostly not filled)
NEW_ITEM-VENDOR[n]
char 10
SRM vendor number (business partner) for the item TradeItem.SupplierGLN
NEW_ITEM-VENDORMAT[n]
char 40
Vendor product number for the item TradeItem.TradeItemId
NEW_ITEM-MANUFACTCODE[n]
char 10
SRM manufacturer number of the item TradeItem.ManufacturerGLN / Product.ManufacturerGLN
NEW_ITEM-MANUFACTMAT[n]
char 40
Item’s manufacturer part number TradeItem.ManufacturersProductId / Product.ManufacturersProductId
NEW_ITEM-MATGROUP[n]
char 10
SRM material group for the item TradeItem.AllowanceGroup
NEW_ITEM-SERVICE[n]
char 1
Flag: the item is a service.
NEW_ITEM-CONTRACT[n]
char 10
SRM contract to which the item refers
NEW_ITEM-CONTRACT_ITEM[n]
char 5
Item within the SRM contract
NEW_ITEM-EXT_QUOTE_ID[n]
char 35
Number of an external bid for this item (as reference for a subsequent purchase order)
NEW_ITEM-EXT_QUOTE_ITEM[n]
char 10
Item of external bid
NEW_ITEM-EXT_PRODUCT_ID[n]
char 40
Unique database key for this item in the catalog TradeItem.ID (2BA’s internal ID, used in back-link of the DETAIL function)
NEW_ITEM-ATTACHMENT[n]
char 255
URL of the attachment (the attachment must be accessible for downloading under this URL)
NEW_ITEM-ATTACHMENT_TITLE[n]
char 255
Title of the attachment (if this is empty the file name from the URL above is used)
NEW_ITEM-ATTACHMENT_PURPOSE[n]
char 1
Purpose of the attachment. C corresponds here to configuration.
NEW_ITEM-EXT_SCHEMA_TYPE[n]
char 10
Name of a schema via which it was imported in the SRM Server
NEW_ITEM-EXT_CATEGORY_ID[n]
char 60
Unique key for an external category from the schema above, independent of the version of the schema
NEW_ITEM-EXT_CATEGORY[n]
char 40
Unique key for an external category from the schema above, dependent on the version of the schema
NEW_ITEM-SLD_SYS_NAME[n]
char 60
Name of a system in the System Landscape Directory (SLD)

 

 

NEW_ITEM-CUST_FIELD1[n]
char 10
An ETIM product class is a standard description of a group of products that correspond physically and / or functionally and can therefore be described with the same set of characteristics and limit values ​​according to the ETIM classification. Productclass
NEW_ITEM-CUST_FIELD2[n]
char 10
Number that indicates how many units per order must be taken as a minimum. MinimumOrderQuantity
NEW_ITEM-CUST_FIELD3[n]
char 10
The number that indicates in which multiple the article can be ordered.Example: The minimum purchase is one box of light bulbs (1 piece), where the step size is 5 pieces. One can then place orders in the series 5, 10, 15, 20, etc. boxes of light bulbs. OrderMultiple
NEW_ITEM-CUST_FIELD4[n]
char 20
User-defined field TradeItem.SupplierGLN (same as NEW_ITEM-VENDOR[n])
NEW_ITEM-CUST_FIELD5[n]
char 50
User-defined field  TradeItem.Price.GrossPriceInOrderUnit (the gross price of one ordered tradeitemid)

OCI (deprecated)

Interfaces – OCI (deprecated)

Text only available in english

As per 2013-03-01 Unifeed can also be used as a SAP OCI 4.0 Provider. In short, the Unifeed catalog can be initiated from the SRM Server and retrieve information from the catalog using the OCI (Open Catalog Interface).

Interfaces

Article, Selection list

Action POST to hookUrl
Message OCI message with one or more tradeitems. The tradeitems will be posted as an (one-based) array.
Example URL

For non SAP: https://unifeed.2ba.nl/?interfaceType=OCI&interface=3&hookUrl=http%3A%2F%2Fmijn.domein.nl%2F 
For SAP: https://unifeed.2ba.nl/OCI/Login/ (see SAP configuration details below)

Example response OCIkoppleing1

  

Implementation details (SAP)

  • SAP Documentation: http://scn.sap.com/docs/DOC-7948
  • Version: 4.0
  • Method: Call-UP using GET and data return using “Fields” POST (XML variant not implemented)
  • Supported additional functions: DETAIL
  • Unsupported functions: SOURCING, BACKGROUND_SEARCH and VALIDATE are not implemented. Please contact us if you want to use one of these functions
  • URLhttps://unifeed.2ba.nl/OCI/Login/

 

You can define the catalog using code SPRO (Transaction customisations / process flow).
This documentation can be used for PM (Pant Maintenance), PS (Project System) and MM (Material Management) although less settings are possble.

Define catalog in SAP:

bedrijven

 

Define call detail of catalog (please use your credentials)

config

 

Define ordertype of catalogus / Map OCI fields to SAP fields (RIHFCOM_XL)

mapping

 

mapping

 

OCI Format mapping

Field name Details Mapping 2BA
NEW_ITEM-DESCRIPTION[n]
char 40
Description of the item TradeItem.Description (Cut to length 40)
NEW_ITEM-MATNR[n]
char 40
SRM product number of the item
NEW_ITEM-QUANTITY[n]
char 15
Item quantity; 11 digits before the decimal point, 3 after it. Do not use commas for thousands. The entered quantity on selection or from selectionlist
NEW_ITEM-UNIT[n]
char 3
Quantity unit for item quantity TradeItem.OrderUnitMeasureUnitCode (ISO codes like PCE, MTR)
NEW_ITEM-PRICE[n]
char 15
Price of an item per price unit; 11 digits before the decimal point, 3 after it. Do not use commas for thousands. TradeItem.GrossPricePerOrderUnit * Quantity (or when condition server is active and a netprice is found, the netprice will be used)
NEW_ITEM-CURRENCY[n]
char 5
Item currency; Must be maintained as ISO code in the SRM Server. TradeItem.CurrencyCode
NEW_ITEM-PRICEUNIT[n]
char 9
Price unit of the item (if empty, 1 is used)
NEW_ITEM-LEADTIME[n]
char 5
Delivery time of the item in days TradeItem.DeliveryTime (only when TradeItem.DeliveryTimeMeasureUnitCode == 803(days))
NEW_ITEM-LONGTEXT_n:132[]
char 8
Long text for the item TradeItem.LongDescription (Mostly not filled)
NEW_ITEM-VENDOR[n]
char 10
SRM vendor number (business partner) for the item TradeItem.SupplierGLN
NEW_ITEM-VENDORMAT[n]
char 40
Vendor product number for the item TradeItem.TradeItemId
NEW_ITEM-MANUFACTCODE[n]
char 10
SRM manufacturer number of the item TradeItem.ManufacturerGLN / Product.ManufacturerGLN
NEW_ITEM-MANUFACTMAT[n]
char 40
Item’s manufacturer part number TradeItem.ManufacturersProductId / Product.ManufacturersProductId
NEW_ITEM-MATGROUP[n]
char 10
SRM material group for the item TradeItem.AllowanceGroup
NEW_ITEM-SERVICE[n]
char 1
Flag: the item is a service.
NEW_ITEM-CONTRACT[n]
char 10
SRM contract to which the item refers
NEW_ITEM-CONTRACT_ITEM[n]
char 5
Item within the SRM contract
NEW_ITEM-EXT_QUOTE_ID[n]
char 35
Number of an external bid for this item (as reference for a subsequent purchase order)
NEW_ITEM-EXT_QUOTE_ITEM[n]
char 10
Item of external bid
NEW_ITEM-EXT_PRODUCT_ID[n]
char 40
Unique database key for this item in the catalog TradeItem.ID (2BA’s internal ID, used in back-link of the DETAIL function)
NEW_ITEM-ATTACHMENT[n]
char 255
URL of the attachment (the attachment must be accessible for downloading under this URL)
NEW_ITEM-ATTACHMENT_TITLE[n]
char 255
Title of the attachment (if this is empty the file name from the URL above is used)
NEW_ITEM-ATTACHMENT_PURPOSE[n]
char 1
Purpose of the attachment. C corresponds here to configuration.
NEW_ITEM-EXT_SCHEMA_TYPE[n]
char 10
Name of a schema via which it was imported in the SRM Server
NEW_ITEM-EXT_CATEGORY_ID[n]
char 60
Unique key for an external category from the schema above, independent of the version of the schema
NEW_ITEM-EXT_CATEGORY[n]
char 40
Unique key for an external category from the schema above, dependent on the version of the schema
NEW_ITEM-SLD_SYS_NAME[n]
char 60
Name of a system in the System Landscape Directory (SLD)

 

 

NEW_ITEM-CUST_FIELD1[n]
char 10
User-defined field
NEW_ITEM-CUST_FIELD2[n]
char 10
User-defined field
NEW_ITEM-CUST_FIELD3[n]
char 10
User-defined field
NEW_ITEM-CUST_FIELD4[n]
char 20
User-defined field
NEW_ITEM-CUST_FIELD5[n]
char 50
User-defined field 

JSONPOST

Interfaces – JSONPOST

Text only available in english

With the JSONPOST interface type, details of the selected item(s) are posted from the client (browser) to the URL specified via the hookUrl parameter.

After importing the items, the details of, for example, the article, can be retrieved using the web service “TradeItem/DetailsByGLNAndTradeItemIdA”

Interfaces

Article, Selection list, Product

Action POST the result to the specified hookUrl (fire-and-forget, no feedback within Unifeed), from the Client
Content 2BA JSON containing one or more articles
Example opening Unifeed https://unifeed.2ba.nl/?interfaceType=JSONPOST&interface=3&hookUrl=http://www.mycompany.com/receive2BA.aspx
Example response For articles and selection list:

 

[{
	"SupplierGLN":"8712423008724",
	"SupplierName":"Grundfos Nederland",
	"SuppliersTradeItemId":"97993195",
	"PricePerOrderUnit":"319.00",
	"Method":"OriginalGrossPrice",
	"Quantity":"2"
},{
	"SupplierGLN":"8711389000001",
	"SupplierName":"Technische Unie",
	"SuppliersTradeItemId":"1649593",
	"PricePerOrderUnit":"1.75",
	"Method":"DiscountArticlePercentage",
	"Quantity":"10"
}]

Voor product:

[{
	"ProductId":"56354b44-b01b-4f75-8ddf-c1defe1edf0b",
	"Description":"ALPHA2 25-40 130 1x230V 50Hz 6H"
}]

CORS

With the interfaceType=JSONPOST the POST is executed in the background from the client (browser).
Using this method, the customer remains on the current page in Unifeed. No navigation takes place.
The session, complete with all filters etc. remains intact.

A client-side post was chosed because it allows the use of internal/local IP addresses.
Another advantage is that this method (usually) does not require any firewall adjustments.

POSTing from the client, howerver, involves CORS (https://en.wikipedia.org/wiki/Cross-origin_resource_sharing).
The receiving application needs to accept the browser’s POST.
This is achieved via a so-called preflight; First, an OPTIONS request is sent, specifying Unifeed as Origin.
The application should respond to this options request by suppliying an “Access-Control-Allow-Origin” header, containing the Unifeed website as specified in the OPTIONS request.
Only if this response makes it back to the browser will the true POST request take place.

Interface=JSON makes a direct POST, which does not involve CORS.

Testing using webhook.site

To use the JSONPOST, the receiving server must have CORS enabled and your URL(s) specified at 2BA in Policies:connect-src and frame-ancestors. By using ” webhook.site “, the post request can be tested easily, example URL:
https://unifeed.2ba.nl/?interfaceType=JSONPOST&interface=3&hookUrl=https://webhook.site/88b15f6f-12a6-4df0-8a09-f0cb6c0085d2/?list_a=DATE
After the post, the directory below will contain a file containing the contents of the POST.
https://webhook.site/#!/88b15f6f-12a6-4df0-8a09-f0cb6c0085d2

JSONGET

Interfaces – JSONGET

Text only available in english

When using the JSONGET interface type, the details of the selected item(s) are placed in the request. The request itself is made to the URL specified by the hookUrl parameter

After importing the items, the web service “TradeItem/DetailsByGLNAndTradeItemIdA” can be used to retrieve, for example, the article’s details.

Interfaces

Article, Selection list, Product

Action GET to/from hookUrl, message supplied as querystring parameter. ATTENTION: querystring has a maximum of 2000 characters, avoid using it with a selection list). Navigation to the specified hookUrl will take place.
Content 2BA JSON containing one or more articles
Example opening Unifeed https://unifeed.2ba.nl/?interfaceType=JSONGET&interface=1&hookUrl=http://www.mycompany.com/receive2BA.aspx
Example response (see “JSON” tab)

JSON

Interfaces – JSON

Text only available in english

With interfaceType=JSON the following flows are possible:

  • without hookUrl
  • with hookUrl

Without hookUrl

When importing one or more articles, navigation to /interface/JSON takes place, placing the details of the selected item(s) in the body. Navigation to /interface/JSON can be monitored / read by using a browser embedded in the appliction. After this trigger, the body can be parsed and processed further.

With hookUrl

When importing one or more articles, the JSON is POSTed to the specified hookUrl. This is a normal FORM-POST. The JSON message is supplied in a form-field named “Json”.

Details van de interface

Interfaces

Article, Selection list, Product

Action REDIRECT to /interface/JSON (for article (1) and selection list (2) interface)
REDIRECT to /interface/ProductJSON (for product (4) interface)
Content 2BA JSON containing one or more articles
Example opening Unifeed https://unifeed.2ba.nl/?interfaceType=JSON&interface=3
https://unifeed.2ba.nl/?interfaceType=JSON&interface=3&hookUrl=https://www.posttestserver.com/my2batest 
Example response For article and selection list:

 

[{
	"SupplierGLN":"8712423008724",
	"SupplierName":"Grundfos Nederland",
	"SuppliersTradeItemId":"97993195",
	"PricePerOrderUnit":"319.00",
	"Method":"OriginalGrossPrice",
	"Quantity":"2"
},{
	"SupplierGLN":"8711389000001",
	"SupplierName":"Technische Unie",
	"SuppliersTradeItemId":"1649593",
	"PricePerOrderUnit":"1.75",
	"Method":"DiscountArticlePercentage",
	"Quantity":"10"
}]

For product:

[{
	"ProductId":"56354b44-b01b-4f75-8ddf-c1defe1edf0b",
	"Description":"ALPHA2 25-40 130 1x230V 50Hz 6H"
}]
Example code Example “JSON” interface, parsing from embedded browser

 

using System.Windows.Navigation;

private void UnifeedBrowser_Navigated(object sender, NavigationEventArgs e)
{
	if (e.Uri==null || e.Uri.LocalPath != "/interface/JSON")
	{
		return;
	}

	// In standard Forms applications: webBrowser.DocumentText
	var jsondata = ((mshtml.HTMLDocumentClass)this.UnifeedBrowser.Document).body.innerHTML; 

After importing the items, the associated details can be retrieved using the “Product /DetailsByGLNAndTradeItemCodeA” web service.

 

Interfaces

Unifeed Interface – Overview

Unifeed supports various links to transfer an item, product or a selection list of items to an application. To make use of this interface option, the interface type and interface (position) must be passed when calling Unifeed (?InterfaceType=…&interface=…). A “hand icon” will appear at the selected position to take over the product, item or selection list. By clicking on the hand, the link is activated and the chosen product, items or selection list is transferred to your own system.

Parameters filter

Unifeed – Parameters filter

Text only available in english

Supplying Filter as part of the parameters in the adress bar

A part of the parameters that can be supplied via the address bar, is the filter object. By supplying the filter when starting Unifeed, all following searches will be executed within the context of this filter. The format of the filter is a JSON string. All parameters have to be URL-encoded, the filter object is no exception.

Because the filter object offers extended options, it is described separately below.

Structure

De structure of the filter wrapper object is  

class wrapper {
		public filters: Array<Filter>;
		public query: string;
}

class Filter {
		public id: string; 
		public name: string;
		public type: string;
		public values: Array<IValue>;
		public hidden: boolean;
}

interface IValue {
		id: string;
		name: string;
	}

class ValueA implements IValue {
		public id: string;
		public name: string;
	}

class ValueN implements IValue {
		public id: string;
		public name: string;
		public min: number;
		public max: number;
	}

class ValueR implements IValue {
		public id: string;
		public name: string;
		public rangevalue: number;
	}


 A list of all possible filter types

Filter type DescriptionExample
class

Filter by one or more classes (ETIM classes, EC*)
Filter values are of type A(lphanumeric)

filter.type=”class”
filter.name=”class”
value.id=EC-code
value.name=EC-name

 filter={“filters”:[{“id”:”class”,”name”:”Klasse”,”type”:”class”,”values”:[{“id”:”EC000188″,”name”:”Bistabiel relais”},{“id”:”EC000196″,”name”:”Hulprelais”}]}]}
featureA

Filter by Alphanumeric features (ETIM features, EF*, type A)
Filter values are of type A(lphanumeric)

filter.type=”featureA
filter.id=EF-code
filter.name=EF-name
value.id=EV-code
value.name=EV-name

 filter={“filters”:[{“id”:”EF000007″,”name”:”Kleur”,”type”:”featureA”,”values”:[{“id”:”EV000233″,”name”:”Rood”},{“id”:”EV000119″,”name”:”Goud”}]}]}
featureN

Filter by Numeric features (ETIM features, EF*, type N). 
Filter values are of type N(umeric)

filter.type=”featureN”
filter.id=EF-code
filter.name=EF-name
value.name=min-max
value.min=number
value.max=number 

filter={“filters”:[{“id”:”EF000035″,”name”:”Lampvermogen”,”type”:”featureN”,”values”:[{“id”:”x”,”name”:”0 – 100″, “min”:”0″, “max”:”100″}]}]}
featureR

Filter by Range features (ETIM features, EF*, type R). 
Filter values are of type R(ange)

filter.type=”featureR”
filter.id=EF-code
filter.name=EF-name
value.name=rangevalue
value.rangevalue=number

filter={“filters”:[{“id”:”EF000280″,”name”:”Geschikt voor lampvermogen”,”type”:”featureR”,”values”:[{“id”:”x”,”name”:”25.00″, “rangevalue”:”25.00″}]}]}
   
manufacture

Filter by manufacture

filter.type=”manufacture”
filter.name=”Manufacture”
value.id=manufacture
value.name=manufacture

 filter={“filters”:[{“id”:”manufacture”,”name”:”Manufacture”,”type”:”manufacture”,”values”:[{“id”:”PHILIPS”,”name”:”PHILIPS”}]}]}

 

model

Filter by model / serie

filter.type=”model”
filter.name=”Serie”
value.id=model
value.name=model

 filter={“filters”:[{“id”:”model”,”name”:”Serie”,”type”:”model”,”values”:[{“id”:”CleanRoom”,”name”:”CleanRoom”}]}]}

 

type 

Filter by type

filter.type=”type”
filter.name=”Type”
value.id=type
value.name=type

 filter={“filters”:[{“id”:”type”,”name”:”Type”,”type”:”type”,”values”:[{“id”:”CR200B414GTL65″,”name”:”CR200B414GTL65″}]}]}

 

   
sgln 

Filter by supplier (GLN)

filter.type=”sgln”
filter.name=”Supplier”
value.id=leveranciersGLN
value.name=leveranciersNaam

 filter={“filters”:[{“id”:”sgln”,”name”:”Supplier”,”type”:”sgln”,”values”:[{“id”:”8711389000001″,”name”:”Technische Unie”},{“id”:”8711891990012″,”name”:”Solar Nederland”},{“id”:”8714253035000″,”name”:”Oosterberg”},{“id”:”8714253038261″,”name”:”Finder”}]}]}
   
expired

Searching expired products

filter.type=”expired”
filter.name=”Expired products”
value.id=true/false
value.name=YES/NO

 filter={“filters”:[{“id”:”expired”,”name”:”Expired products”,”type”:”expired”,”values”:[{“id”:”true”,”name”:”YES”}]}]}
   

Parameters

Unifeed – Parameters

Text only available in english

Supplying parameters via the address bar

Unifeed offers the ability to supply parameters up front via the address bar (url). This allows searches to be stored among your ‘favorites’ or shared via e-mail. It is also possible to use parameters to directly jump to the details page of a desired product.

Parameters are required to be URL-encoded. Example: https://unifeed.2ba.nl/Home/Demo/?q=pomp

Endpoints

https   https://unifeed.2ba.nl/Home/Demo/

Listing of all possible parameters

Parameter  Description  Example
q or query Search word, free text  q=ledlamp or query=ledlamp
filter Extended filtering options in JSON notation. The full description can be found on the “Parameters filter” page.

Example for searching within specified ETIM classes:

 filter={“filters”:[{“id”:”class”,”name”:”Klasse”,”type”:”class”,”values”:[{“id”:”EC000188″,”name”:”Bistabiel relais”},{“id”:”EC000196″,”name”:”Hulprelais”}]}]}

Example for searching within specified suppliers:

filter={“filters”:[{“id”:”sgln”,”name”:”Specifiek”,”type”:”sgln”,”values”:[{“id”:”8711389000001″,”name”:”Technische Unie”},{“id”:”8711891990012″,”name”:”Solar Nederland”},{“id”:”8714253035000″,”name”:”Oosterberg”},{“id”:”8714253038261″,”name”:”Finder”}]}]}

     
p

productId, 2BA product identifier (long).

Opens Unifeed with the product details screen (deeplink).

p=99999
a

tradeItemId, 2BA trade item identifier (long).

Opens Unifeed with the trade details screen (deeplink) (see also showTradeItemView)
The article will be shown shaded on the product details page.

a=9999999
     
gln

Supplier or manufacturer’s GLN, only valid if combined with productcode or tradeItemId.

Opens Unifeed with the product details screen.

gln=2220000042857
productcode

Manufacturer’s product code, only valid if combined with gln.

Opens Unifeed with the product details screen.

gln=2220000042857&productcode=K1
tradeItemId

Supplier’s Article number, only valid if combined with (supplier-)gln.

Opens Unifeed with the trade details screen (see also showTradeItemView)
The article will be shown shaded on the product details page.

gln=2220000042857&tradeItemId=K2
     
projectNumber

Project number. Can be used to instruct the condition server to calculate net. prices based on project conditions.

(starting with Unifeed version 1.2)

 projectNumber=123456
     
tradeItemsMinimal

Set TradeItemsMinimal to false in order to view article prices and to enable importing to the selection list.

(The data will also be shown if an interfaceType has been supplied.)

tradeItemsMinimal=false
     
interface

Unifeed offers various interface options; TradeItems (1) to import a single article, SelectionList (2) to import a list of articles, ProductId (4) to import product identification, and Calculatie Tijdnormen (8) to import time standards. A combination of the various types is also available.

If an interfaceType is supplied, but without an interface value, the default is 3.

interface=1 (tradeItem)
interface=2 (selectionList)
interface=3 (tradeItem, selectionList)
interface=4 (productId)
interface=5 (tradeItem, productId)
interface=6 (selectionList, productId)
interface=7 (tradeItem, selectionList, productId)
interface=8 (calculatie tijdnormen)
interface=16 (calculatie tijdnormen / only one timestandard via JSONPOST)

 interfaceType Unifeed supports multiple interfaceTypes. The OCI interface used by SAP, or a JSON-based interface.  (See also interfaces)

interfaceType=OCI (deprecated)
interfaceType=OCI2
interfaceType=JSON
interfaceType=JSONGET
interfaceType=JSONPOST

for backward compatibility: interfaceType=InterfaceUrl

 hookUrl If an interfaceType has been supplied, it becomes possible to supply a url to which the interface data will be posted. Only valid for JSONPOST, JSONGET and OCI & OCI2 interfaceTypes.  hookUrl=https://unifeed.2ba.nl/interface
     
selectionListName The name of the Selection List. If not supplied, the default Selection List of the currently logged-in user is used. Found articles can be placed on the user’s selection list. The selection list can be imported as a whole into your ERP package using a Unifeed interface, or via webservices. (MAX. 100 chars long) selectionListName=MyChosenArticles
ClearSelectionList When ClearSelectionList=true is given, the (current) selectionlist will be cleaned at startup of Unifeed. ClearSelectionList=true
     
accessToken It is possible to directly log into Unifeed by using an accessToken. This is an OAuth Access Token, which can be obtained via our authorize server. See webservices/OAuth2 for more information. accessToken=gAAAAIPq3JGWf_28yteZrMHQ……………..
     
appSwitcher It is possible to disable the appSwitcher menu. This is specially handy when Unifeed is integrated within CRM/ERP/CAD or another application AppSwitcher=false

Parameters

Unifeed – Parameters

Text only available in english

Supplying parameters via the address bar

Unifeed offers the ability to supply parameters up front via the address bar (url). This allows searches to be stored among your ‘favorites’ or shared via e-mail. It is also possible to use parameters to directly jump to the details page of a desired product.

Parameters are required to be URL-encoded. Example: https://unifeed.2ba.nl/?q=pomp

Endpoints

https   https://unifeed.2ba.nl/

Listing of all possible parameters

Parameter  Description  Example
q or query Search word, free text  q=ledlamp or query=ledlamp
filter Extended filtering options in JSON notation. The full description can be found on the “Parameters filter” page.

Example for searching within specified ETIM classes:

 filter={“filters”:[{“id”:”class”,”name”:”Klasse”,”type”:”class”,”values”:[{“id”:”EC000188″,”name”:”Bistabiel relais”},{“id”:”EC000196″,”name”:”Hulprelais”}]}]}

Example for searching within specified suppliers:

filter={“filters”:[{“id”:”sgln”,”name”:”Specifiek”,”type”:”sgln”,”values”:[{“id”:”8711389000001″,”name”:”Technische Unie”},{“id”:”8711891990012″,”name”:”Solar Nederland”},{“id”:”8714253035000″,”name”:”Oosterberg”},{“id”:”8714253038261″,”name”:”Finder”}]}]}

     
p

productId, 2BA product identifier (long).

Opens Unifeed with the product details screen (deeplink).

p=99999
a

tradeItemId, 2BA trade item identifier (long).

Opens Unifeed with the trade details screen (deeplink) (see also showTradeItemView)
The article will be shown shaded on the product details page.

a=9999999
     
gln

Supplier or manufacturer’s GLN, only valid if combined with productcode or tradeItemId.

Opens Unifeed with the product details screen.

gln=2220000042857
productcode

Manufacturer’s product code, only valid if combined with gln.

Opens Unifeed with the product details screen.

gln=2220000042857&productcode=K1
tradeItemId

Supplier’s Article number, only valid if combined with (supplier-)gln.

Opens Unifeed with the trade details screen (see also showTradeItemView)
The article will be shown shaded on the product details page.

gln=2220000042857&tradeItemId=K2
     
projectNumber

Project number. Can be used to instruct the condition server to calculate net. prices based on project conditions.

(starting with Unifeed version 1.2)

 projectNumber=123456
     
tradeItemsMinimal

Set TradeItemsMinimal to false in order to view article prices and to enable importing to the selection list.

(The data will also be shown if an interfaceType has been supplied.)

tradeItemsMinimal=false
     
interface

Unifeed offers various interface options; TradeItems (1) to import a single article, SelectionList (2) to import a list of articles, ProductId (4) to import product identification, and Calculatie Tijdnormen (8) to import time standards. A combination of the various types is also available.

If an interfaceType is supplied, but without an interface value, the default is 3.

interface=1 (tradeItem)
interface=2 (selectionList)
interface=3 (tradeItem, selectionList)
interface=4 (productId)
interface=5 (tradeItem, productId)
interface=6 (selectionList, productId)
interface=7 (tradeItem, selectionList, productId)
interface=8 (calculatie tijdnormen)
interface=16 (calculatie tijdnormen / only one timestandard via JSONPOST)

 interfaceType Unifeed supports multiple interfaceTypes. The OCI interface used by SAP, or a JSON-based interface.  (See also interfaces)

interfaceType=OCI (deprecated)
interfaceType=OCI2
interfaceType=JSON
interfaceType=JSONGET
interfaceType=JSONPOST

for backward compatibility: interfaceType=InterfaceUrl

 hookUrl If an interfaceType has been supplied, it becomes possible to supply a url to which the interface data will be posted. Only valid for JSONPOST, JSONGET and OCI & OCI2 interfaceTypes.  hookUrl=https://unifeed.2ba.nl/interface
     
selectionListName The name of the Selection List. If not supplied, the default Selection List of the currently logged-in user is used. Found articles can be placed on the user’s selection list. The selection list can be imported as a whole into your ERP package using a Unifeed interface, or via webservices. (MAX. 100 chars long) selectionListName=MyChosenArticles
ClearSelectionList When ClearSelectionList=true is given, the (current) selectionlist will be cleaned at startup of Unifeed. ClearSelectionList=true
     
accessToken It is possible to directly log into Unifeed by using an accessToken. This is an OAuth Access Token, which can be obtained via our authorize server. See webservices/OAuth2 for more information. accessToken=gAAAAIPq3JGWf_28yteZrMHQ……………..
     
appSwitcher It is possible to disable the appSwitcher menu. This is specially handy when Unifeed is integrated within CRM/ERP/CAD or another application AppSwitcher=false

Calculation Time Standards browser

Calculation Time Standards browser

Using the online search engine Unifeed, time standards can be visually selected and imported into a software package (ERP / CAD). This search engine can be invoked from, or even within your application. It is also possible to supply certain search parameters up front, like an ETIM profile, product- or article number etc. This will allow the time standards search engine to automatically offer the most relevant time standards. By using the so-called “interfaces” a time standard can be “imported” into the application. To display time standards, your 2BA account must have the additional subscription Calculation Time Standards Online (via 2BA web services). Click here for rates.

Possible use-cases

1. Search for a linked product->time standard in 2BA unifeed
  • Search 2BA unifeed by product code or description.
  • For the product found (if a product -> time standards link is possible), a time standard is suggested on the Time Standards tab.
  • Here you will find the time standard for Existing buildings occupied / empty and New buildings one-off / repetitive. You can read the time standard visually or read it into your ERP/CAD package.
  • For more information about importing an article/product via Unifeed, see Unifeed – Interfaces

Click here for an example in Unifeed (click the Time Standards tab)

Voorbeeld Tijdnormen
Click on the image to enlarge it.
2. Search for a time standard without product link
  • Start the Calculation Time Standards browser, possibly with a search query
  • Filter by format (chapter, paragraph, etc.)
  • Choose the desired time standard and import it into the ERP/CAD package
Startup parameters

The time standards browser can be invoked via: https://unifeed.2ba.nl/tijdnormen 

Parameter  Description Example
q Keyword, free text  ?q=radiator
gln Filter by supplier (only if combined with productcode or tradeitemid)  ?interfaceType=JSON&gln=8712423012424&productcode=2150335
productcode Filter by manufacturer’s product code, only if combined with gln  ?interfaceType=JSON&gln=8714252011609&tradeitemid=0AZ8294
tradeitemid Filter by supplier’s article code, only if combined with gln  
etimprofile Filter by ETIM Profile. Structure:
class EtimProfile
{
	public string ClassId { get; set; }
	public List Features { get; set; }
}


class EtimFeature
{
	public string FeatureId { get; set; }
	public decimal? NumericValue { get; set; }
	public decimal? RangeValueLower { get; set; }
	public decimal? RangeValueUpper { get; set; }
	public string AlphanumericValue { get; set; }
	public bool? LogicalValue { get; set; }
}

?interfaceType=JSON&etimprofile={%22ClassId%22:%22EC011023%22,%22Features%22:[{%22FeatureId%22:%22EF001274%22,%22NumericValue%22:14}]}&interface=8

interface Interface (zie Unifeed – Interfaces) om tijdnormen te importeren, de opgegeven waarde moet 8 zijn  ?interfaceType=JSON&interface=8
interfaceType Type interface tussen Unifeed en de applicatie; alleen JSON, JSONGET of JSONPOST toegestaan. Zie Unifeed – Interfaces voor meer details  ?interfaceType=JSON&interface=8

More information about the Techniek Nederland Calculatietijdnormen and associated subscription tarifs

Manual

Unifeed

2BA Unifeed

All information from 2BA with just a click

Unifeed provides a user interface to quickly search and filter within the 2BA data pool. In addition, Unifeed offers a variety of opportunities to transfer product and/or trading data through webservices to, for example, the calculation or ordering software. In combination with the Online Condition Server (OCS), net price information and/or stock information can be displayed based on condition rules.   Artikeldetails
 

 

 Click image for full screen image

Unifeed features:

  • Over 4 million product records
  • Over 22 million trade records
  • Over 1800 affiliated wholesalers
  • Over 650 ata providers from approximately 1,200 manufacturers
  • Over 2,500 installation and assembly companies with a total of more than 95,000 employee
* Reference date July 2022

Unifeed is a part of the 2BA DaaS reference architecture. For an impression of how the Unifeed search engine works in combination with a calculation program, the 2BA demonstration program DemoCalc can be started here. 

Mapping attachments (MIME) BMEcat 2005 ETIM V3.1

Mapping attachments (MIME) BMEcat 2005 ETIM V3.1 according datapool model

text only available in english

BMEcat 2005 ETIM V3.1 Datapool
Code Designation Purpose Type Attribute Attribute value Attachment title EN
MD01 Product picture detail PHI     High resolution product picture
MD01 Product picture normal PPI     Low resolution product picture
MD02 Similar picture detail PHI Face Similar High resolution similar picture
MD02 Similar picture normal PPI Face Similar Low resolution similar picture
MD03 Safety data sheet   CHR CHRCategory SDS Safety data sheet
MD04 Deeplink          
MD05 Deep link REACH   STR STRCategory REACH REACH Decleration
MD06 Energy label   STR STRCategory ENERGY Energy label
MD07 Product data sheet for energy label   CHR CHRCategory PDS_EEP Product data sheet for energy label
MD08 Calibration certificate   STR STRCategory CAL_CERTIFICATE Calibration certificate
MD09 Certificate   STR STRCategory DOC_CE Declaration of conformity CE
MD10 Circuit diagram   SCH SCHCategory Circuit Circuit diagram
MD11 Construction Products Regulation   STR STRCategory DOP Declaration of performance
MD12 Dimensioned drawing   PAR     Exploded view
MD13 Environment label   STR STRCategory ECO_Label ECO Label
MD14 Instructions for use   MAN MANCategory USE Instructions for use
MD15 Light cone diagram   SCH SCHCategory Lightcone Light cone diagram
MD16 Light Distribution Curve   SCH SCHCategory Lightcurve Light distribution curve
MD17 Logo 1C   LOG     Logo 1-color
MD18 Logo 4C   LOG     Logo CMYK
MD19 Luminaire data   CHR CHRCategory LUM Luminaire data
MD20 Milieu picture detail PHI Face Millieu High resolution atmosphere shot
MD20 Milieu picture normal PPI Face Millieu Low resolution atmosphere shot
MD21 Mounting instruction   MTE     Mounting instruction
MD22 Product data sheet   CHR CHRCategory PDS Product datasheet
MD23 Product picture back view detail PHI Face Back High resolution product picture back view
MD23 Product picture back view normal PPI Face Back Low resolution product picture back view
MD24 Product picture bottom view detail PHI Face Bottom High resolution product picture bottom view
MD24 Product picture bottom view normal PPI Face Bottom Low resolution product picture bottom view
MD25 Product picture detailed view detail PHI Face Detail High resolution product picture detailed view
MD25 Product picture detailed view normal PPI Face Detail Low resolution product picture detailed view
MD26 Product picture front view detail PHI Face Front High resolution product picture front view
MD26 Product picture front view normal PPI Face Front Low resolution product picture front view
MD27 Product picture sloping detail PHI Face Perspective High resolution product picture sloping
MD27 Product picture sloping normal PPI Face Perspective Low resolution product picture sloping
MD28 Product picture top view detail PHI Face Top High resolution product picture top view
MD28 Product picture top view normal PPI Face Top Low resolution product picture top view
MD29 Product picture view from the left side detail PHI Face Left High resolution product picture view from the left side
MD29 Product picture view from the left side normal PPI Face Left Low resolution product picture view from the left side
MD30 Product picture view from the right side detail PHI Face Right High resolution product picture view from the right side
MD30 Product picture view from the right side normal PPI Face Right Low resolution product picture view from the right side
MD31 Seal of approval   STR STRCategory SEAL Seal of approval
MD32 Technical manual   MAN MANCategory TECH Technical manual
MD33 Test of approval   OTA     Test of approval
MD34 Wiring diagram   SCH SCHCategory Wiring Wiring diagram
MD35 Supplier’s declaration for products having preferential origin status STR STRCategory DECL Supplier’s declaration of preferential origin status
MD36 Declaration   STR STRCategory DECL Declaration other
MD99 Other   OTA     Other

Overview

Tools

Tool Description
Feedback ticket system

2BA works with a feedback ticket system for A. support request and B. questions about the data of manufacturers and/or suppliers.

DemoCalc

2BA DemoCalc is an example application that demonstrates the connection between an ERP software-package and the 2BA datapool via Unifeed.

2BA hotkey The 2BA Hotkey is a simple tool that allows you to create ‘shortcuts’ to different websites or applications.

File exchange

File exchange with 2BA

Data transfer through standard messaging

For error-free transfer of product and trade data from manufacturer and wholesaler to the 2BA data pool, the applicable exchange formats, such as DICO (SALES005) of Ketenstandaard Bouw en Techniek or the international BMEcat 2005 ETIM Guidelines V4.0 standard are used.

 2BA supports the following exchange formats:
  •  
DICO (SALES005) *** preferred ***  |  XML exchange format developed by Ketenstandaard Bouw en Techniek.
  •  
BMEcat 2005 ETIM V5.0  |  XML exchange format (incl. ETIM Guidelines) administered by ETIM International.
       
       
  •  
INSBOU004  |  XML exchange format developed by Ketenstandaard Bouw en Techniek.
  •  
BMEcat 2005 ETIM V4.0  |  XML exchange format (incl. ETIM Guidelines) administered by ETIM International.
  •  
BMEcat 2005 ETIM V3.1 and older  |  XML exchange format (incl. ETIM Guidelines) administered by ETIM International.
  •  
PAB 2  |  ASCII exchange format, no longer being further developed.
       
       
  •  
 Attachment Index  |  ASCII exchange format for digital assets, no longer being further developed.
  •  
 Koppeltabel  |  ASCII exchange format for format for references and relationships, no longer being further developed.

Different mapping rules apply to the various exchange formats. Refer to the detailed documentation for information.

Go to documentation

Condition messages (ICC messages)

The condition message, also called ICC message, is an exchange format that allows the purchase conditions (discounts granted by the supplier to the buyer on certain item groups or net prices) on trade articles to be communicated. A condition means a standard or customer-specific agreement regarding prices, net prices or discounts per item or item group. The standard described does not provide for the exchange of customer-specific or non-customer-specific agreements on orders for specific projects or agreements on prices or discounts related to purchase numbers or purchase amounts.

For uniform communication of trade data, it is very important that items fall into a predetermined discount group. The discount code is allocated by the supplier to a group of items that belong together. All items belonging to a certain discount group have the same discount for a customer. The codes are bilaterally agreed by way of the condition message.

  •  
ICC  |  Exchange format to communicate discounts on item groups or net prices on items.

Go to documentation


The manufacturer as source

intro installateur

The source for all product information within the 2BA data pool is the manufacturer or their importer or agent, if applicable. They provide 2BA with all their product and trade data, including all associated ETIM technical attribute values, digital assets and product references and relationships.

In order to classify products correctly and to add the correct ETIM characteristics, more and more manufacturers are using what is known as PIM (Product Management Information) software. Given the time saved and the greatly reduced chance of errors when delivering the product data correctly to 2BA, a well-functioning PIM system can now be considered almost indispensable.

The wholesaler as user and source

intro installateur

In turn, the wholesaler uses the classified product information stored in 2BA, including any digital assets added by the manufacturer, such as images, certificates, product sheets and manuals. Using the manufacturer’s product information as a basis, the wholesaler adds their relevant trade information in 2BA. This should include things like the gross price, packaging unit and the GTIN (formerly EAN code).

In this way, the price information linked to manufacturer products is provided by the wholesaler to the customers through 2BA. The wholesaler can be considered both a data buyer (from the manufacturer) and a data supplier for the customer (read: the installer).

Installer as end customer

intro installateur

The installer benefits from the product and trade data jointly provided by the manufacturer and wholesaler. From their own ERP software system, they are offered the option of searching online in the 2BA data pool and, in this way, quickly selecting the articles they need and then use them, for example, in their CAD environment (through UOB) and/or in the calculation and purchasing process.

FAQ

Inloggen

  • What is the 2BA authorize (identity) server?
    The authorize (identity) server is a central application that carries out the verification of identity (e.g. based on comparison of the credentials with the stored tokens, etc.). All 2BA applications use the authorize server to verify the identity of a user. It is, among other things, the central login page for 2BA services such as: 
  •        – 2BA MY omgeving,
           – Unifeed,
           – API OCS,
           – UOB etc.

  • How can I log in to my own 2BA environment?
    To do this, go to https://my.2ba.nl/ and log in with your email address and 2BA password.

  • I get the message: Locked out This account has been locked out, please try again later.
    If a user enters an incorrect password, the account will be blocked for 5 minutes for security reasons after the third attempt. Try logging in again after 5 minutes or request a new password via: https://authorize.2ba.nl/Account/ForgotPassword

Passwords

  • I want to change my password or have forgotten it
    Go to  https://authorize.2ba.nl/Account/ForgotPassword and enter your email address and click on Request password. An email will be sent to the specified email address (provided a valid 2BA account). Follow the instructions provided in the email. The link in the email is valid for 6 hours.

  • What are the minimum requirements for a good password?
    A password has:
    – Minimum 12 characters
    – At least 1 capital letter
    – At least 1 lowercase letter
    – At least 1 number
    – At least 1 special character

Rollen en uw 2BA account

  • I cannot see my data deliveries to 2BA in the 2BA my environment
    To view the data deliveries, the Data upload role is required. Contact a 2BA user with super user rights to have this set up. Do you have a 2BA account with super user rights? Then go to:https://my.2ba.nl/SuperUser/Accounts/ to give an existing user the Data upload role via the edit button for the user in question.

  • I cannot create a new selection profile in the 2BA my environment
    The Data download role is required to create selection profiles. Contact a 2BA user with super user rights to have this set up. Do you have a 2BA account with super user rights? Then go to:https://my.2ba.nl/SuperUser/Accounts/ to give an existing user the Data download role via the edit button for the user in question

  • I cannot add/modify or delete user accounts
    Contact a 2BA user with a super user role to have user data changed. Only a 2BA user with super user rights can create users and assign roles. Do you have a 2BA account with super user rights? Then go to: https://my.2ba.nl/SuperUser/Accounts/ 

Contact

  • Support
    If you experience problems in one of our applications and/or websites, please contact your contact person at 2BA or email 2BA helpdesk.

Inschrijven 2BA/OMDS Newsletter

Introduction

2BA Unifeed

All information from 2BA with just a click

Unifeed provides a user interface to quickly search and filter within the 2BA data pool. In addition, Unifeed offers a variety of opportunities to transfer product and/or trading data through webservices to, for example, the calculation or ordering software. In combination with the Online Condition Server (OCS), net price information and/or stock information can be displayed based on condition rules.   Artikeldetails
 

 

 Click image for full screen image

Unifeed features:

  • Over 4 million product records
  • Over 22 million trade records
  • Over 1800 affiliated wholesalers
  • Over 650 ata providers from approximately 1,200 manufacturers
  • Over 2,500 installation and assembly companies with a total of more than 95,000 employee
* Reference date July 2022

Unifeed is a part of the 2BA DaaS reference architecture. For an impression of how the Unifeed search engine works in combination with a calculation program, the 2BA demonstration program DemoCalc can be started here. 

Feedback

Unifeed – Feedback

Each product and item detail card in Unifeed contains feedback buttons. This feature allows you to send questions and/or comments through a ticketing system to the data manager of the relevant data provider. These can be topics such as incorrect GTINs, incorrect product references or classification, but also questions about trade data such as pricing, order or logistical information.

Feedback from data customers plays a very important role in improving the data. With your feedback, you enable the data manager to take immediate action and take the data to the next level!

Information for suppliers

Information for suppliers

In addition to reading condition files, the Online Condition Server (OCS) also supports:

If your organization provides a stock and/or net price through a web service, or intends to develop it, these web services can be linked to the Online Condition Server of 2BA. With this link your customers have access to real-time stock and/or their own net price information within Unifeed or the ERP package.

Possible options for the stock web service:

  1. Stock available yes/no; this is indicated by a tick or cross.
  2. The number in stock; this is indicated by the specific number in stock.
Authentication

Both the stock and net price Web service can be provided with authentication. Authentication can be based on user name, password and/or debtor number.

Techology

For calling up your Web service, 2BA supports both SOAP and JSON formats.

Would you like to join or find more information?

If your organisation already has a Web service, complete this form and return it to us at: helpdesk@2ba.nl or get in touch with your contact at 2BA.

Stock webservice

Stock directly from supplier

The Online Condition Server supports web services that return a stock.

2BA has a number of parameters available that can serve as input on your web service.
In addition, 2BA asks a minimum piece of output.

Input

2BA can supply the following fields as input for your service. In your mapping document, indicate how and which fields on your service should be mapped.

Feature Type  Description

Username

string(255)

User name

Password

string(255)

Password

Debtor

string(255)

Debtor number/identification

 GLN

 

 string(13)

Global Location Number of the supplier

  • exactly 13 characters
  • numerical

TradeItemId

 

 string(35)

Item number

  • maximum of 35 characters

Quantity

decimal?(12,3)

Number of items requested (expressed in order unit)

  • Number requested by the customer
  • Default = nill
  • Numerical 12 digits before the decimal point, 3 digits after..
 

Output

2BA can process the following fields. Indicate in the mapping document how 2BA can access these fields from the output of your web service

Feature Type  Description
Available boolean

If Quantity input was empty, it will indicate available if there is stock.outputQuantity >= 1

If Quantity input was not empty, it will indicate available if the amount requested is in stock.outputQuantity >= inputQuantity

Quantity

decimal?(12,3)

Number of items in stock (expressed in order unit)

• not required.
• numerical 12 digits before the decimal point, 3 digits after

Net price webservice

Net price directly from supplier

The Online Condition Server supports web services that return a net price.

2BA has a number of parameters available that can serve as input on your web service.
In addition, 2BA asks a minimum piece of output.

Input

2BA can supply the following fields as input for your service. In your mapping document, indicate how and which fields on your service should be mapped.

Feature Type  Description

Username

string(255)

User name

Password

string(255)

Password

Debtor

string(255)

Debtor number/identification

 GLN

 

 string(13)

Global Location Number of the supplier

  • exactly 13 characters
  • numerical

TradeItemId

 

 string(35)

Item number

  • maximum of 35 characters
ProjectNumber string(17) Project number for any project conditions

Quantity

decimal(12,3)

Number of items requested (expressed in order unit)

  • Number requested by the customer
  • Default = minimum OrderQuantity (if the customer has not filled anything in)
  • Numerical 12 digits before the decimal point, 3 digits after.

 

Output

2BA can process the following fields. Indicate in the mapping document how 2BA can access these fields from the output of your web service

Feature Type  Description

NetPriceInOrderUnit

decimal(11,4)

Net price in order unit

  • numerical 11 digits before the decimal point, 4 digits after

TermsTypeCode

 

 string(2)

 Type of condition

  • AC = Action condition (special offer)
  • BC = Basic condition
  • PC = Project condition

.

Model

Model

Explanation of the conditions model:
Attribute Type  Description

GLN

Required

 string(13)

 Global Location Number of the supplier

  • exact 13 characters
  • numeric

AllowanceGroup

Required

 string(35)

 Discount group

  • maximum of 35 characters
  • Not allowed characters: “%”, “?”, “[“, “]”
  • Character “*” can be used as a wildcard. So only * means all discount groups, and 123* means all groups starting with with 123 comply.

TradeItemId

Optional

 string(35)

 Trade item

  • maximum of 35 characters

GTIN

Optional

 string(14)

 Global Trade Item Number

NetPrice

Optional

 decimal(11,4)

Net price

  • numeric 11 digits before the decimal point, 4 digits after the decimal point
  • If filled, minimum > 0
  • Or net prices or discount percentage 1 must be filled (one or the other, not both)

AllowancePercentage1

Optional

 decimal(3,4)

 Discount percentage 1

  • numeric 3 digits before the decimal point,  4 digits after the decimal point
  • maximum 100, minimum >= 0
  • Or net prices or discount percentage 1 must be filled (one or the other, not both)

AllowancePercentage2

Optional

 decimal(3,4)

Discount percentage 2

  • numeric 3 digits before the decimal point, 4 digtis after the decimal point
  • maximum 100, minimum >= 0

AllowancePercentage3

Optional

 decimal(3,4)

Discount percentage 3

  • numeric 3 digits before the decimal point, 4 digits after the decimal point
  • maximum 100, minimum >= 0

ValidityStartDate

Required

 date

Start date of the condition

ValidityEndDate

Optional

 date

End data of the condition

TermsTypeCode

Required

 string(2)

Type of condition

  • AC = Action condition
  • BC = Base condition
  • PC = Project condition, if filled, then ProjectNumber required

ProjectNumber

Optional

 string(17)

 Project number

  • If filled, then TermsTypeCode = “PC”

BracketLowerLimit

Required

 integer

 Bracket lower limit from which this condition is valid

  • Minimum 0
     

Thank you for your registration / update

You submissions has been received and processed. You will receive an email to indicate your areas of interest. If you don’t receive an email please also check your spam box.

Regards,

2BA

Calculation

Calculation

This article applies only to the scenario ‘saved conditions’. condities”

Background

The calculation of the net price is a complex matter, due to the number of variables and supporting situations. It is therefore not unimportant for interested parties to know how the calculation works. 2BA follows the systematic as described in ‘IC wijzigingsverzoek 2012/003’ by the CCB&I (the commission for communication standards for the constructions and installations sectors).

Provisions, exceptions and beyond scope

A number of provisions apply to the calculation. The basic provisions are:

  • The conditions must be correct according to the model imported (no negative prices or percentages; no percentages >100%)
  • The conditions must be up to date (commencing date condition >= now and < closing date condition)
  • ‘Gross price processing surcharge’ from the item message will be completely ignored
  • ‘Follow indication manufacturer’s price’ from the item message will be completely ignored
  • ‘Surcharges and discounts’ from the item message (such as disposal charge) will be ignored in the calculation The total of discounts and surcharges can however be added after calculation.

Net price selection

The net price is collected/calculated by taking the following steps:
For every step (main step), a price will be returned if found/possible  

    1. Project conditions (only if a project number has been submitted)
      The basis is determined by the first match with the provisions from the options below.
      1. Item number Discount group exact: Discount percentage(s) processed over gross price based on exact discount group and project number
        1. Net price based on item number and project number
        2. Discount percentage(s) processed over gross price based on item number and project number
      2. Discount group exact: Discount percentage(s) processed over gross price based on exact discount group and project number
      3. Discount group wild card: Discount percentage(s) processed over gross price based on wild card discount group (longest match applies) and project number
    2. Special offer conditions
      The basis is determined by the first match with the provisions from the options below.
      1. Item number
        1. Net price based on item number
        2. Discount percentage(s) processed over gross price based on item number
      2. Discount group exact: Discount percentage(s) processed over gross price based on exact discount group
      3. Discount group wild card: Discount percentage(s) processed over gross price based on wild card discount group (longest match applies)
    3. Basic ondition
      The basis is determined by the first match with the provisions from the options below.
    1. Item number
      1. Net price based item number
      2. Discount percentage(s) processed over gross price based on item number
    2. Discount group exact: Discount percentage(s) processed over gross price based on exact discount group
    3. Discount group wild card: Discount percentage(s) processed over gross price based on wild card discount group (longest match applies)
  1. Nett price from item information
    The net price from the item information will be optionally included in the call-up

     

  2. Gross price from item information
    The net price from the item information will be optionally included in the call-up

The net price calculated or selected is excluding tax (btw) and discounts/surcharges defined at item level as disposal charge, collection discount etc.
It is possible that no price will be returned.

 

Example situations

 

Input item information Input condition Output  Comment
gross price net price or discount original gross price; net price calculated  
gross price original gross price  
net price net price original net price; net price calculated  
net price discount  
net price original net price  
gross price, net price net price or discount original gross price; orginal net price, net price calculated  
gross price, net price original gross price; original net price  
net price net price calculated  
discount  
 

‘Price on request’ Indicator

Within the item information, it is possible to submit ‘Price on request’ through an indicator. This indicator does not affect the processing or calculation of the net price. This indicator does not even go to the Condition Server. Any handling of this indicator should take place on receipt of the ERP package.

Discount percentage

10% discount on a gross price of €250 results in a net price of:   € 250 – (10% of € 250)
  € 250 – (€ 25)
  € 225
100% discount on a gross price of €75 results in a net price of: € 75 – (100% of € 75)
  € 75 – (€ 75)
  € 0
Formulas

Net price = Gross price – (percentage/100 * gross price) or
Net price = Gross price * (1-[percentage/100])

 

Discount on discount

Although it can be calculate back to one percent mathematically, it is possible to submit the discount percentage in three separate percentages (disount1, discount2 and discount3). Discount1 of 75%, discount2 of 10% and discount3 of 2% result in a total discount of 77.95%.

Formulas

Total percentage = 100 ((((100-percentage1))*((100-percentage2))*((100-percentage3)))/10000)
Net price = Gross price *(1-(percentage1/100)) * (1-(percentage2/100)) * (1-(percentage3/100))

Overview

Unifeed Interface – Overview

Unifeed supports various links to transfer an item, product or a selection list of items to an application. To make use of this interface option, the interface type and interface (position) must be passed when calling Unifeed (?InterfaceType=…&interface=…). A “hand icon” will appear at the selected position to take over the product, item or selection list. By clicking on the hand, the link is activated and the chosen product, items or selection list is transferred to your own system.

Selection profile NOT rules

Manual for Selection profile NOT rules

Selection profile NOT rules are similar to normal selection profile rules. Whereas a normal selection profile rule can select data, a NOT rule will filter the items found from the end result.

These NOT rules can only be used in combination with regular selection profile rules.

Example – Theoretical

+ Supplier: ‘lot X’
– Supplier: ‘lot X’, Discount group: ‘45*’
– Supplier: ‘lot X’, Item code: ‘48574’

+ = (default) selection profile line
– = selection profile NOT line

So in the above, the selection profile will contain everything from Lot X except discount groups (from Lot X) starting with ‘45’ and except item 48574 (from Lot X). So in this example the selection profile has 3 selection rules.

Simple Example – Practice

Objects: All Technische Unie data except all Technische Unie items which have discount groups starting with 13

UitvoermethodeEenvoudig

In the above example, all Technische Unie data is selected. This is done by specifying 1 standard line where only the supplier is specified.

In order to filter out the Technische Unie items, 1 ‘NOT’ line has been added which indicates which items do not have to be included. In this case, these are all the items from the Technische Unie supplier where the discount group begins with 13 (= ‘13*’).

Complex(er) example Practice

Objects: Data of the profile above, plus all Bailey items where the discount group starts with A or B, unless the item code starts with ‘P230’.

UitvoermethodeUitgebreid

Bovenstaand (eenvoudig) voorbeeld uitgebreid met twee regels van Bailey waar artikelen beginnend met kortingsgroep A en B geselecteerd worden (dit had ook eventueel in 1 regel gemogen).

The above simple example extended with two lines from Bailey where items starting with discount group A and B are selected (this could also have been done in one line).
In the ‘NOT’ lines, a rule is added to select all the Bailey items where the item code starts with ‘P230’. These are the rules that do not have to be included in the final result. The discount group may be left blank here in order to filter out from the selection both items starting with discount group A and B. (N.B. If discount group ‘B*’ were specified, this would then only filter out items whose discount group starts with ‘B’. Items starting with discount group A could in this situation theoretically still start with ‘P230’).

Settings

When editing a selection profile rule, you can choose whether the rule in question is a normal rule or a ‘NOT rule’. This option can be found in the section ‘Omgekeerde selectie (Filter-regel)’ (Reverse selection (Filter rule). This part is closed by default.

 

Items details

Unifeed – Items details

When you click on a supplier in the “Product Details” page, the item details of this particular supplier are displayed.

Here you can find all relevant supplier and item details. See also examples on 2BA unifeed

Artikeldetails

404 error

404 error404 error

Hmmm, something doesn’t seem quite right.

The most important thing is to get you back on the road as soon as possible. The links below may help you further:

  • Link 2BA search page
  • Link 2BA documentation
  • Link 2BA sitemap
  • Link 2BA contact contact form
  • You are trying to open a English link with the website language set to Dutch.Change the URL to 2ba.nl/en

INSBOU

INSBOU

The INSBOU exchange format is an XML-oriented message administered by the CCB&I (the commission for communication standards for the constructions and installations sectors). With this exchange format, you can communicate such matters as product and trade data and condition messages between a number of affiliated software packages. You should decode the XML messages according to UTF-8 (=Unicode).

XML files that are delivered should comply with the accompanying XSD diagram in terms of layout and content and be fully valid. Participants of Ketenstandaard Bouw en Techniek can use the Ketenstandaard XML validation tool (log in required) to check whether the INSBOU message meets the DICO Standaard.

INSBOU004

We would like to point out that there is now a follow-up to the INSBOU004 messages standard. So we recommend that you deliver your datasets through the new DICO (formerly SALES005) format.

The 2BA data pool and the INSBOU004 offer the option of communicating your product and/or trade information in multiple language forms. This applies to

  • brief description
  • long description
  • marketing texts
  • brand, series and type

If you deliver data according to INSBOU004, we would like to point out that the Ketenstandaard documentation contains no reference to the ISO list for language codes which has to be complied with. The 2BA system adheres for this to ISO 639-1: two letter codes.

Including therefore:

  • NL – Dutch
  • EN – English
  • DE – German
  • FR – French
INSBOU003

INSBOU003 is the predecessor of INSBOU004. We do not recommend that you use this exchange format to submit datasets. Our advice is to bring your exchange format up to date as quickly as possible, given the current data needs.

More information:

Ketenstandaard Bouw en Techniek

Selection list

Unifeed – Selection list

Selection list

The details window allows you to include items in a selection list. In this selection list the price per item is displayed and if condition services are active you will also find the net price. The selection list can be accessed from the top left menu; it also offers the option of removing items from the list if necessary.

Contact your software vendor and ask about the possibilities.

For technical implementation, refer to the information below:

If you have specified an Interface Type in Settings (see Unifeed – Parameters, section interfaceType it is possible to adopt the selection through this interface. This can be done, for example, through a Web Service to ERP Software after which the user can continue to carry out calculations in their own software environment. It is also possible to create an extra selection list from ERP Software which can be read back into the ERP package after use.

Selectielijst

price to order details examples

Specification price to order details examples

When exchanging item data, it is extremely important that it is clear how the item can be ordered (minimum order quantity, order multiple and order unit measure), what the price of the item is (price and/or conversion price) and the quantity of that the item (the quantity of use units). Because the ‘number of units in pricebasis’ can be used in different ways, such as priced per meter and sold per piece, but also priced per 1000 pieces and sold per 250 pieces, it is important that an uniform specification of the units is used.

In the overview below you will find the most common situations (examples in dutch, english version will follow).
Download the dataset here in the format you prefer, such as DICO / SALES005, BMEcat 2005 ETIM V4.0 or BMEcat 2005 ETIM V5.0

ProductDescriptionPackagingAssuming aTrade item
productledlamp1 LED-lamp1 piece in 1 boxprice per piecelamp
productledlamp10 LED-lamps10 pieces in 1 boxprice per 10 piecesdoos10lampen
kabel1 cable (with connector)1 piece in 1 bopxprice per piecekabel
kabel1 cable (without connector)1 piece (unpackaged)price per piecekabel
kabelcable (without connector)500 meter on a reelprice per reeel
haspel

kabelcable (without connector)500 meter on a reelprice per 1000 meter
buis

1 tube of 6 meter

unpackagedprice per tubebuis
buis1 tube of 6 meter *example to follow10 tubes with packaging code LENprice per 10 tubes
Buizen

buis1 tube of 6 meter10 tubes in a bundleprice per 10 tubes
buis1 tube of 6 meter * example to follow10 tubes with packaging code LENprice per 1000 meter
buis1 tube of 6 meter10 tubes in a bundleprice per 1000 meter
productschroef

250 screws

250 screws in a boxprice per 100 piecesdoosschroeven
productisolatieplaat10 insulation plates10 insulation plates in a packprice per plate
isolatieplaten

 

productisolatieplaat10 insulation plates10 insulation plates in a packprice per pack

Download here the dataset in the desired format

PAB 2

PAB 2

The electronic exchange and distribution of data is here to stay. However, as soon as people go outsides their ‘own’ system, there is unfortunately a lack of uniformity and a great deal of effort is required to exchange the information correctly and ready for use. This has resulted in the Ketenstandaard Bouw en Techniek, in agreements with the participating companies, deciding a few years ago to establishing a number of rules and agreements for uniform use, in the: ASCII* ASCII Productgegevens & Artikel (PAB, Product data and item).

An important point of attention is that the PAB exchange format is now very outdated and no longer corresponds to today’s data needs. Due to the arrival of new formats, the PAB exchange format has not been further developed since 2007, so it is not recommended to use it for the exchange of data.**

ZIP ASCII Product information & Item message (PAB) 2.0

 
* ETIM uses the term ‘ASCII’ for the GABI, PAB 1 and PAB 2 formats. However, in practice, exchange actually takes place according to the ANSI/Latin-1 (officially: ISO/IEC 8859-1) set. This is essential to exchange with 2BA. For more information: WikipediA ISO 8859-1

** Since the uniform description of the ASCII messages in the installation sector, the Ketenstandaard Bouw en Techniek foundation has decided to stop any further development. The starting point for data communication in the installation sector is the functional layout which, together with GSI Nederlands, has been incorporated into the GSI importing convention for the installation sector. The messages based on that are the sector standards which the Ketenstandaard will further develop.

Product details

Unifeed – Productdetails

After clicking on a product line, the product details are displayed. This overview consists of several tabs, which depend on the user’s rights.

Suppliers tab

The “Leveranciers” (Suppliers) tab gives the overview of the suppliers of the product. By default gross price information is shown, if the Online Conditie Server is used and conditions for relevant trade records have been read in, then net price information can also be shown.

The “Overnemen” (Take over) column offers the possibility of transferring items to the personal selection list. If an “externe koppeling/interface” (external link/interface) is set up, it is also possible to transfer the item directly to a software package. When taking over, it is also possible to set the number of items.

Features tab

The “Kenmerken” (Features) tab contains the ETIM product characteristics, possibly ETIM MC features or other features of the relevant product specified by the manufacturer.

Attachments tab

The “Bijlagen” (Attachments) tab shows the attachments specified by the manufacturer, also called digital assets. Digital assets include files such as:

  • Photo material (incl. metadata, such as resolution, number of pixels, dimensions, 3D views)<l/i>
  • Film material (incl. metadata, such as resolution, number of pixels, dimensions, 3D views)<l/i>
  • Technical documents, such as drawings, schematics, specifications<l/i>
  • CAD and 3D objects and symbols<l/i>
  • User manuals and processing instructions<l/i>
  • Animations, graphs and drawings<l/i>
  • Sound fragments<l/i>
  • Certificates<l/i>
  • Other documents, including emails, presentations etc.<l/i>

Time Standard tab

The tab “Tijdnormen” (Time Standards) shows the calculation time standards of Techniek Nederland .

that apply to the product.

Redated tab

The tab “Verwant” (Related) contains any product references and/or relationships.

 

Koppel tabel

Koppel tabel

We have received requests from a number of parties who want to be able to pass on links between products, between items or between products and items (trade). The Koppel tabel, as it is called, is an expansion of the PAB product and item message.

The following links exist in the current model:

  • At product level: successor and predecessor
  • At item/trade level: reference to product, successor and predecessor

In addition to the links above, all other types of links are placed in a separate connected table. Three types of relationship can be distinguished here:

  • Product on product (P-P),
  • Product on item (P-A),
  • Item on item (A-A)

If the manufacturer delivers these details, the products that fit on the product selected will be displayed under the ‘Verwant’ tab in Unifeed.

Download:

PDFDescription of Koppel tabel file format (Dutch)
PDFDescription of Products and Item Relationships (English)

Koppelingen

Settings

Unifeed – settings

User settings

When logged in, you have the option of adjusting a number of settings through the menu.

“My” Suppliers

You can limit the search results to only the products of suppliers you do business with. Manage your preferred suppliers through settings –> “My” suppliers.

Introduction

File upload

Creating an archive file

A dataset to be processed should always be delivered as a compressed file, also known as an archive or ZIP file. If datasets are submitted according to the XML formats BMEcat 2005 ETIM V4.0 and V5.0, DICO (SALES and INSBOU), these files should be valid.

Archiving files with Windows

In general, the Windows operating system offers the option of compressing multiple files (packaging them) as a ZIP file. There are also alternative tools available such as 7ZIP and PKZip. The extension of a compressed file is .zip, .gz of 7z.

Archiving files with UNIX

Many UNIX-based operating systems use GZIP. One feature of the GZIP protocol is that only one file can be packaged at a time. TAR allows you to archive multiple files into a single file. 2BA supports only files, even if it concerns a single file, that has been first archived with TAR and then packaged with GZIP. The following two are the extensions permitted: .tar.gz en .tar.gzip. A second restriction is that path names may not be included in the TAR archive.

Options
  1. Automated through SFTP (datasets exceeding 2GB)
  2. Automated via DeliveryUpload API (datasets up to 2GB)
  3. Manually through the MY 2BA environment (datasets up to 2GB)

Search

Unifeed – Search

Zoeken

Search

  1. Free text. Search by any combination of brand, series, type, product description, supplier, class, features etc. . 
    1. 1. Unifeed searches for whole words by default. Using wildcards (*, ?) you can search for parts of a word.
      1. Fiets –> Fiets (words like Fietsbel are not found)
      2. Fiets* –> Fietsbel, Fietsband, Fietszadel, Fietstas, Fietsrek,
      3. Fiets??? –>  Fietsbel, Fietstas, Fietsrek
    2. 2. Specifying two or more words means that all words specified must appear in the results (AND) .
      Example: ABB ALS
    3. | (pipe) can be used for or situations (OR). Example: blue | green;blauw | groen
  2. Active filters. At the top of the screen, the active filters are displayed. Filters can be removed and added here.
  3. Add feature. Add an ETIM feature filter without first choosing a class.
  4. Suppliers: Standard search is performed across all vendors. Here you can choose to search only from 1 specific supplier. For logged-in users it is also possible to search in “Mijn leveranciers” (My Suppliers), a self- compiled list of suppliers.
  5. Expired products: Ability to search in expired products as well.
  6. If the search returns multiple ETIM classes, you will first be taken to the “Klassen” (Classes) tab. Here you can choose the desired class. The advantage of choosing a class, is that all feature filters (7) for that class are shown. It is also possible to not choose a class, by clicking on the “Producten” (Products) tab.
  7. Feature. The moment an ETIM class is chosen, the ETIM feature filters are shown here, with all possible values.
  8. Brand. Under the “Merk” (Brand) tab, you will find filters for brand, series and type.
  9. Feature filter values. Add the desired values as a filter for your search.
  10. Number of selected feature values. Clicking on “x” deletes all set values for this feature at once.
  11. Search: Clicking the search button activates the search. Similar to key in search field (1)
  12. Delete: Clear search including all filters.
  13. Share: Share search. Open an email containing a link with search text and all filters. Useful to send to others, or for yourself to save the search.

Order of search results

The Unifeed search engine shows search results based on product information. For the order (sorting), an algorithm is used which, in addition to data richness, also takes into account the relevance of the product. Here are the most important factors (in order of importance):

  1. Does the product contain trade items of suppliers
  2. Is the product still in production
  3. Is the product ETIM classified
  4. Does the product have an image
  5. How many technical features have been filled compared to the maximum number to be filled

The more complete the data supplier presents the product, the easier the product is findable for buyers.

The sorting can of course be controlled manually based on various filter functions such as: suppliers, ETIM characteristic, refurbished, used and rental.

TSV format Definition

TSV format Definition

The TSV-file can be used to add supplier selection rules to an existing selection profile. The supplied file will override the existing rules of the selection profile.

Upload:

You can upload the TSV file by clicking on an existing selection profile and then Data selection click New supplier > Import selection profile -> Select file.

  Import TSV
Download:

Click here for an example file. A TSV template can also be generated by using the “Download TSV” button at the suppliers. If supplier selection rules are already present, these will be exported.

  Download TSV

The column layout of the TSV file (TAB file) is as follows:

 

Column names must be in order and are case sensitive, values that do not meet criteria give no values.

Column Content Mandatory
GLNSupplier Must be 13 digits long
A non-valid GLN number will give an error message
Yes
ArticleCodeSupplier Free text, Wildcards (* and ?) accepted  
DiscountGroupSupplier Free text wildcards (* and ? ) accepted
Separate multiple discount groups with a comma (,)
The discount groups specified must be enclosed in double quotes: “groep1, group2, groupX”
 
GroupIDSupplier May be one existing supplier purchase group  
AssortmentType OLD (advanced filtering): with filtering
ALL (all data from specified GLN) : no filtering, only specify GLNSupplier and DownloadRowType
SRA (product range): not usable in this TSV file
 
CustomPropertyValue FreeValue01, Free text, max 70 characters long  
ManufacturerGLN Must be 13 digits long  
ProductCodeManufacturer Free text, Wildcards (* and ?) accepted  
ProductClassManufacturer Format EC######  
BrandNameManufacturer Brand must exist in 2BA
A non-existing brannd will give an error
 
ProductSeriesManufacturer Free text, Wildcards (* and ?) accepted  
ProductTypeManufacturer Free text, Wildcards (* and ?) accepted  
InverseRowSelection True / False, default value is False
If the value is True, the values that meet the criteria are removed from the result. More information Not-Regels
 
DownloadRowType Complete, Mutation, Restore Yes

Through the MY environment

Through the MY environment

Datasets up to 2GB can be submitted manually through the 2BA My environment. Compressed datasets can be delivered to the processing queue through the menu [My data], [Uploads]. This menu is only available for accounts given the role of ‘Data upload’ or ‘Superuser’. 

A compressed dataset can be ‘dragged’ to the import box or ‘scrolled through’ to select a dataset. If the dataset is successfully delivered, you will see the notification ‘Upload successful, please note! It can take a few minutes for the upload to appear in the list of processes”. The file will then be incorporated in the processing queue and subsequently processed.

DataUploaden

 

Selection Output Method

Selection Output Method

Complete

This method collects the complete current assortment per selection line.
The data is collected without taking into account the mutation date set at profile level. This includes: orderable or current article range from the selected supplier.

Mutations

This method collects changes per selection line from the specified mutation date or the last download date of the exported files. This includes: changes supplied by supplier on articles and/or products depending on the selection method.

Restore

This method collects the complete current article range per selection line. Added to this is also the expired assortment (products with status code expired en deleted articles within the 2BA datapool. As a result, you will receive a file of products and/or articles that are or have ever been in the article range of the supplier(s). Please note: the PAB format does not support status code expired and this is an optional setting in your selectionprofile.

The data is collected without taking into account the change date set at profile level. After output, the Profile’s Output Method is automatically converted to Transactions. Subsequently, the mutation date of the profile level is again leading.CAUTION! Can become a very large file. This includes:

  • current article and product range available from the supplier
  • expired products and deleted articles from the supplier. Expired products are products that are deleted by the supplier. Suppliers remove products that are no longer produced, but the data will remain for product history and serve as an informative record for referring trade item records from suppliers.

Introduction

Download files

There are several ways to download item files through 2BA:

Through a selection profile

In a selection profile, you can choose the output format, select suppliers, and set the schedule when you want to receive the data. There are also various filtering options such as discount groups, brands and item numbers.

Click here for more information.

Through a direct download

You have the option of searching for the desired suppliers through the participant list ,click My Omgeving and then click Download dataset.

Click here for a complete list of companies.

Through the Unifeed search engine (with Web Services)

You have the option of searching for desired items and retrieving them through Web services to your (ERP) software.

Click here for Unifeed. For web services documentation click here.

Overview

File formats

Below you will find the possible standard exchange formats that 2BA supports. New formats and/or versions developed by the industry are phased in and introduced in agreement with software firms, data suppliers and data customers.

Current exchange formats:

Format Import Export Description
DICO (SALES005)
*** preferred ***
    XML-based exchange format (successor of INSBOU) developed by Ketenstandaard Bouw en Techniek.
ETIM xChange     JSON exchange format developed by ETIM International
BMECat 2005 V5.0        Most up-to-date version 5.0 (incl. ETIM Guidelines) by BMEcat administered by ETIM International.

2BA Webservices

 

  The 2BA Webservices are basic, lightweight and fast services to integrate your systems with the 2BA database. Via web services you can search our database, retrieve product or article details and, for example, download your selection profiles automatically.

Other exchange formats:

Format Import Export Description
INSBOU004     XML exchange format developed by Ketenstandaard Bouw en Techniek.
BMECat 2005 V4.0     Version 4.0 (incl. ETIM Guideline) by BMEcat administered by ETIM International.
BMECat 2005 V3.1     Predecessor of BMEcat 2005 ETIM 4.0 by BMEcat administered by ETIM International.
PAB 2    

Successor of PAB 1 but no longer further developed.

AttachmentIndex    

Exchange format for attachments but no longer further developed.

Koppeltabel    

Exchange format with which to make references between products but no longer further developed.

ICC Condition message    

Exchange format to communicate discounts on item groups or net prices on items.

2BA Database

Based on the national character, history and compatibility, the ‘ANSI’/’Latin-1’ (officially: ISO/IEC 8859-1) drawing set ISO/IEC 8859-1) set. The Latin-1 drawing set supports West European languages (so not Hebrew, Chinese etc.) Exports from the 2BA database are coded as standard according to the Latin-1 encoding (GABI, PAB1 and PAB 2).

More information:

  WikipediA ISO 8859-1

Tools

2BA Documentation

Here you can find documentation about the following subjects:

informatie gids

Shipbuilder

Shipbuilder and 2BA support One Maritime Data Standard

  • Logo ShipbuilderShipbuilder
  • Software partner
  • In file format via downloads (selection profile))
  • Since 2020

Expensive input work for products is greatly reduced through collaboration with 2BA

Manually entering products and product specifications before and during the construction of ships, yachts and superyachts costs maritime companies thousands of hours of expensive and tedious input work. The Shipbuilder team believes that this has to be done differently, better and, above all, faster. Geert Schouten, director at Shipbuilder: ‘We see that engineers at maritime companies spend many hours on expensive input work for products and product specifications. Work that is not fun and that always costs maritime companies a lot of money. We have found the solution for this in the collaboration with 2BA: the portal for maritime product data. Based on the One Maritime Data Standard (OMDS), our customers can now search the catalogs of an increasing number of maritime suppliers. That has many surprising advantages.’

Speed up lead time, improve projects

Schouten: ‘With our software, maritime projects are fully supervised from A to Z. We immediately saw that integration of the 2BA portal within our software accelerates the throughput speed of a maritime project. Because: a large part of the entire manual input process of products and the associated specifications can now be skipped. This information can usually be added to the project with 1 mouse click. Because the digital catalogs of the suppliers are based on the One Maritime Data Standard and these can increasingly be found in 2BA’s database, companies have direct insight into which products are available within their wishes and search criteria. They can improve their projects because they can also directly compare products. And they may discover even better products for their project. Products they might never have found otherwise.’

Always current, correct data

‘What we also often see is that maritime companies work with outdated specifications of products or even calculate with products that are no longer available on the market at all. A team often only finds out about this during the course of a project, which means that they have to go to the drawing board again. That will be prevented from now on. Because maritime suppliers themselves keep the data within the 2BA data pool according to the OMDS standard, shipyards have the guarantee that they are continuously working with the correct information.’

Innovation boost for the maritime sector

Shipbuilder is the first maritime software supplier that, in collaboration with 2BA, makes it possible for companies to unlock product information within their projects based on the One Maritime Data Standard. With this we want to give the maritime sector an innovation boost. This gives maritime engineers time to do what they are really good at. We want to improve the continuity and profitability of the maritime sector with this.

Read more about Shipbuilder

Read more about 2BA and One Maritime Data Standard (OMDS)                                   

       

Beenen Industrial Automation

Optimum use of combined product data from 2BA and BeeFinity

  • Batenburg Techniek - BeenenBeenen Industrial Automation
  • Data user
  • In file form through downloads (selection profile)
  • Since 2005

Beenen Industrial Automation, as part of Batenburg Techniek, is a well known system integrator with three branches in the Netherlands: Heerenveen, Zwolle and Nijkerk. The company designs and implements complete control systems for the food, engineering, infrastructure, water and chemical sectors. Beenen operates regionally, nationally and internationally.

beenenexterieur 02

2BA and Beefinity: One plus one is three

BeeFinityBoth Beenen and Batenburg have been using 2BA for 15 years now. Initially, this was mainly for product, price and logistics information for the purchasing department. But nowadays the product data from 2BA is also used directly in the engineering process at Beenen. In the BeeFinity platform, being the internal digital product catalogue for electrical engineering products, the data from 2BA is managed, enriched and linked to other systems. In the case of Beenen, these are 4PS (ERP), Typical Manager (product configuration and generation) and Eplan (CAD). Where applicable, the technical data will be further completed by Beenen. This is also done by other system integrators. BeeFinity’s algorithm determines the greatest common denominator and the reliability of adjusted data. These additional technical data will soon be sent by BeeFinity in digital form to 2BA, which in turn will offer this information directly to the manufacturer concerned, with the aim of further optimising their product data for 2BA for use by system integrators. In this way, increased Data Label is quickly offered to the entire chain.

Product information more widely available and usable

The great advantage is that the uniform product and price information as well as technical data within the organisation are now more widely available and usable. This creates significant efficiency advantages. Thanks to 2BA there is direct insight into available stocks at suppliers and delivery times of products. Products with a long delivery time can be identified and ordered in good time. Expired items can be identified during the engineering instead of afterwards by the purchaser. This saves a lot of internal actions and revisions of design documents.

All advantages at a glance:

Cost savings, uniformity and convenience!

  • One central place for product information within the organisation
  • Less time consuming searching in (online) catalogues
  • Improved insight into supplier product availability
  • As a result, lower failure costs
  • Cost savings thanks to a strong improvement in the engineer’s ordering process
  • Efficiency advantages by linking different systems internally and classified product information directly from 2BA
  • Additional advantage: Uniform descriptions and designations throughout the organisation

Calculation Time Standards linked to product data

Techniek Nederland

The calculation time standards of Techniek Nederland offer per manufacturer product the standardised assembly time in work hours in order to be able to substantiate a time calculation on this basis. The Techniek Nederland calculation time standards have been compiled accurately and in detail by time standards specialists in the industry. In these time standards, environmental factors such as new and existing construction, and repetitive or one-time installation activities are also taken into account.

Assembly time standards with product link through 2BA

Where possible, 2BA in turn has linked these calculation time standards to the ETIM product classes. Provided that products are classified in an ETIM product class and Techniek Nederland time standards are known for these product classes too, these standards can be automatically displayed in 2BA with the product. This enables the estimator to quickly calculate the net cost price of the product, as well as the standard assembly time and the associated costs.

2BA offers two options for the estimator to use the calculation time standards linked to products:

  • In the 2BA Unifeed search engine. The relevant assembly time standard is displayed for a product found. Click here for more details.
  • Through various software packages for installers, among others, within which the Calculation Time Standards, Web Services or the 2BA Unifeed module for calculation time standards are supported.

The following software vendors already support the calculation time standards Web Services or Unifeed module:

If you have any questions, please send an email to ctn@2ba.nl

 

DICO (SALES005)

DICO

DICO

The DICO Standaard (formerly SALES Standaard) is the Dutch messaging standard for communication between chain parties in the construction and installation industries. Using the software-independent messaging standard, businesses can exchange messages between their computer systems safely, efficiently and without errors. DICO is the most recent national exchange format that 2BA can both import and export. This documentation is supplementary to the original format description of Ketenstandaard.

DICO is the new name for SALES005, the successor to INSBOU004 and has a similar construction. This standard has a product data message that includes ETIM classification, attachments and certificates and an item message with trade data such as details of price, order and logistics. In addition, the item relationship message offers the option of facilitating product relationships and references.

Mapping

2BA ensures that the data pool complies with the Dutch standards of Ketenstandaard with XML files INSBOU and DICO. The supporting exchange formats are allocated to the internal fields of the data model. Some internal fields may vary in length or type as described in the guideline of the exchange formats.

Ketenstandaard Bouw en Techniek (Chain Standard Construction and Engineering)

For the full documentation of the DICO standard, we refer you to the Ketenstandaard Bouw en Techniek foundation. They issue XSD diagrams, the list of functional features and support for all DICO messages. You need to be a member of Ketenstandaard or your organisation needs to have a 2BA-ETIM combination contract with 2BA.

DICO messages should be validated according to the original XSD. Ketenstandaard Bouw en Techniek offers a validation tool (Ketenstandaard account required) on their website.


Item message header

Example header of the DICO item message:

<PriceCatalogue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.ketenstandaard.nl/artikelbericht/SALES/005" xmlns:exs="http://www.ketenstandaard.nl/SALES/Extensies" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ketenstandaard.nl/artikelbericht/SALES/005 Artikelbericht_SALES005.xsd">
    <PriceCatalogueNumber>cataogusnummer10</PriceCatalogueNumber>
    <MessageDate>2019-11-11</MessageDate>
    <PriceChangeIndicator>false</PriceChangeIndicator>
    <Currency>EUR</Currency>
    <MutationCode>4</MutationCode>
     <Datapool>
            <GLN>8714252005929</GLN>
    </Datapool>
    <Manufacturer>
        <GLN>8714252005929</GLN>
    </Manufacturer>
    <Grouping>
        <Supplier>
            <GLN>8714252005929</GLN>
        </Supplier>

Important notes:

  1. Buyer not required.
  2. Data Pool GLN from 2BA or InstallData.
  3. Manufacturer not required.
  4. Grouping, required. This element can be repeated if item records of varying GLNs have to be delivered.
  5. The NAW information is not necessary here.
  6. Attachments and certificates at header level will not be imported.


Header product message

Example header of the DICO product message:

<ProductData xmlns:xs="http://www.w3.org/2001/XMLSchema"
             xmlns="http://www.ketenstandaard.nl/productgegevens/SALES/005"
             xmlns:exs="http://www.ketenstandaard.nl/SALES/Extensies"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.ketenstandaard.nl/productgegevens/SALES/005 Productgegevens_SALES005.xsd"><
    <MessageNumber>P45789</MessageNumber>
    <MutationCode>9</MutationCode>
    <MessageDate>2019-01-05</MessageDate>
    <ETIMVersion>
         <VersionNumber>DYNAMIC</VersionNumber>
         <IssueDate>2018-10-11</IssueDate>
    </ETIMVersion>
    <Supplier>
       <GLN>8714252005929</GLN>
    </Supplier>
    <Datapool>
        <GLN>8714252005929</GLN>
    </Datapool>
    <Manufacturer>
        <GLN>8714252005929</GLN>
    </Manufacturer>

Important notes:

  1. Buyer not required.
  2. Supplier GLN for the supplied batch.
  3. Data Pool GLN from 2BA or InstallData.
  4. Manufacturer not necessary, the GLN at record level will be used.
  5. The address information is not necessary here.
  6. Attachments and certificates at header level will not be imported.


Type of dataset

2BA supports DICO complete or update and mutation files. A complete dataset should contain all active products. The fact is that a new, complete file overwrites all records in the database! Use MutationCode to define the dataset as a complete or mutation file.

Existing product records not present in the complete file will be given status code 130 – ‘lapsed product’. Existing trade data not present in the complete file will be deleted.

  1. Mutation code9: complete file.
  2. Mutation code4: mutation file.

We recommend working with complete datasets. By working with complete datasets, the published data stays most similar to your source data.


ETIM Classification

Country specific features

With the introduction of ETIM version 8 it is possible to communicate country-specific features. This functionality is supported from DICO SALES005.1.

ETIM version listing

According to the SALES005 product message documentation, a value of up to 35 characters can be specified for the ETIM version. The data model supports up to 10 characters for the ETIM version. See the mapping of the ETIM version versus data model here.

Reason no value

According to the ETIM guideline, if a value cannot be allocated, the data supplier has the option of using a minus sign. 2BA does not recognise values with a minus sign. Instead, use one of the following reasons:

  1. NA; Not applicable (this feature is not applicable in the context of a product in this class).
  2. MV; Missing value (an alphanumerical feature is relevant, but there is no correct value in this ETIM version).
  3. UN; Unknown (the data supplier can specify no value at present; but it is possible in principle).


Status code

There is also a mutation code at line level in the model. This value cannot be delivered with the DICO standard. There is however a mutation code at file level (for both the item and the product message). A status code has also been defined at line level. The combination of the two codes is interpreted as follows:

Type of dataset: mutation (4):

  1. Read all product records with mutation code: 3 (modify).
  2. Item records with status code 125, 94E to mutation code: 3 (modify).
  3. tem records with status code 130 to mutation code: 2 (delete).

Type of dataset: complete (9):

  1. Read all items with mutation code (model): 1 (add/new).
  2. Read all products with mutation code (model) 1: (add/new).


Logistics Information

The item message refers you to the EANCOM 7065 list for packaging codes. This list is not included in the XSD diagram. Since the list contains many double forms, irrelevant to the sector, it was decided to use a selection from the list.

If a code is missing and there is no alternative available, you can request 2BA to add this code. Such a request will also be submitted to ETIM International for the exchange format BMEcat 2005 ETIM Guidelines.

Mapping packaging codes versus data model

Important notes:

  1. If the number of packaging parts is greater than one, the packaging dimensions submitted will apply for all packaging parts.

Price details:

For each item it can be defined how the item can be ordered, on which unit the price is based, which discount group the item falls into and how the item can be used.

Important note:
  • The DICO exchange format supports communicating price information with an effective date in the future. In addition to a gross price, a discount group and price unit that will apply in the future can also be specified; The data pool does not yet support this (expected Q4 2024).

Descriptions, brand, model and variation

With a good description it becomes clear which product is mentioned. Data downloaders use these within the (web) catalog, on transaction messages and within the calculations. In addition, the trade item or product can also be found based on the description. The standard has two descriptions: short and long, in addition there is room for an extensive marketing text.

Important notes:

  1. When the description is longer than 70 characters, it is recommended to
    to be explained by means of the ‘long description’ (256 characters)
  2. Product level translations are only imported if the short description, serie and type are present in the same language code within the dataset.
  3. The brand is copied from the brand description specified with the relevant GLN

Dangerous substances and certificates

The certificate structure as included in the DICO standard is fully supported by the data pool. Certificates supplied as attachments are imported, these are related to the associated indicator(s) such as ROHS, CE Certificate and ‘contains battery’.

  • Mapping Productcertificaten versus datamodel
  • Important notes:

    1. Within the default product message the REACH indicator is missing. This has been added as Data UDE as of January 2024.
    2. From the product message (certificates section), the indicator REACH=true may also be imported based on the existing REACH certificate.
    3. Please note. If the REACH certificate is missing as an attachment, the value for REACH as described in the ETIM Guideline will be exported as ‘no data’ for a BMEcat 2005 export.
    4. The revision date for SDS and REACH is imported from the product message.
    5. The certificate number for DIN, ISO, ECCN and UN number is imported from the product message.
    6. No certificate information is imported from the article message.


    Attachments

    The attachment structure has been significantly expanded compared to INSBOU004 allowing physical attachments to be sent too. And it offers the option of submitting a title and description for the attachment, in other words submitting further information about the attachment. At present, attachments are only accepted from within the product message.

    By default, the import routine will download an attachment and add it to the product data. If the original source indicator is specified as ‘true’, the import routine will not download the attachment but will keep the attachment as a reference (as specified) to the source (URL). This is for example desirable when an attachment such as a certificate or manual is dynamically updated but the URL remains the same. This is not possible for the low-resolution image (PPI).

    File Hash and OriginalFileSource

    The import routine automatically creates an MD5 Hash from each downloaded attachment/file. An MD5 Hash makes it possible to determine whether it is a new file or a duplicate. The MD5 Hash is sent per attachment with a dataset export using the attachment attribute AttachmentHash. In addition, the original file name published by the data supplier is also included in the OrginalFileSource attribute.

    Language code of the attachment content

    Within the DICO standard, the ContentLanguage attribute offers the possibility to communicate the content language of the attachment. This may apply, for example, if a data-technical manual has a Dutch title and description, but the manual itself is written in English.

    Deeplinks

    A deeplink to a product or article page could be specified in a separate field in the exchange format INSBOU004. Within the DICO standard, a deeplink must be specified as an attachment type (LPP). Only the first specified deeplink is imported as a product or trade item deeplink. If you enter multiple deeplinks, they will be imported as attachment type ‘other’ (OTA).

    Considerations:

    1. When files are physically supplied within the dataset, the file name must be specified within the element.
    2. If the low-resolution image is missing from a product and a high-resolution image (PHI) has been supplied, the import system will automatically generate a low-resolution image (PPI). If this fails, this will be reported in the processing report. If the high resolution image is specified as a reference on the internet (OriginalSourceIndicator=true) then the system cannot generate a low resolution image.
    3. Within the data pool, the element ‘presentation sequence’ is a numerical field. Alphanumeric values are not imported.


    Product references and relationships

    The item relationship message makes it possible to indicate relationships between products or items. The mapping of the type of relationship to the data model is available here.

    Important note:

    • The DICO standard assumes an implicit unit for a specified quantity; since it is a trade item (or product) to trade item (or product) relation, pieces (PCE) are assumed.
    • A part or accessory of a product can be specified with relation type ‘ONV.’

    Important notes::

    1. Within the default product message the REACH indicator is missing. This has been added as Data UDE as of January 2024.
    2. The indication REACH=true is imported from the product message (certificates section) based on the specified REACH certificate.
    3. Please note. If the REACH certificate is missing as an attachment, the value for REACH as described in the ETIM Guideline will be exported as ‘no data’ for a BMEcat 2005 export.
    4. If REACH does not apply to products (REACH=false), this can be specified via an import manipulate operation.
    5. The revision date for SDS and REACH is imported from the product message.
    6. The certificate number for DIN, ISO, ECCN and UN number is imported from the product message.
    7. No certificate information is imported from the article message.


    Attachments

    The attachment structure has been significantly expanded compared to INSBOU004 allowing physical attachments to be sent too. And it offers the option of submitting a title and description for the attachment, in other words submitting further information about the attachment. At present, attachments are only accepted from within the product message.

    By default, the import routine will download an attachment and add it to the product data. If the original source indicator is specified as ‘true’, the import routine will not download the attachment but will keep the attachment as a reference (as specified) to the source (URL). This is for example desirable when an attachment such as a certificate or manual is dynamically updated but the URL remains the same. This is not possible for the low-resolution image (PPI).

    File Hash and OriginalFileSource

    The import routine automatically creates an MD5 Hash from each downloaded attachment/file. An MD5 Hash makes it possible to determine whether it is a new file or a duplicate. The MD5 Hash is sent per attachment with a dataset export using the attachment attribute AttachmentHash. In addition, the original file name published by the data supplier is also included in the OrginalFileSource attribute.

    Language code of the attachment content

    Within the DICO standard, the ContentLanguage attribute offers the possibility to communicate the content language of the attachment. This may apply, for example, if a data-technical manual has a Dutch title and description, but the manual itself is written in English.

    Deeplinks

    A deeplink to a product or article page could be specified in a separate field in the exchange format INSBOU004. Within the DICO standard, a deeplink must be specified as an attachment type (LPP). Only the first specified deeplink is imported as a product or trade item deeplink. If you enter multiple deeplinks, they will be imported as attachment type ‘other’ (OTA).

    Considerations:

    1. When files are physically supplied within the dataset, the file name must be specified within the element.
    2. If the low-resolution image is missing from a product and a high-resolution image (PHI) has been supplied, the import system will automatically generate a low-resolution image (PPI). If this fails, this will be reported in the processing report. If the high resolution image is specified as a reference on the internet (OriginalSourceIndicator=true) then the system cannot generate a low resolution image.
    3. Within the data pool, the element ‘presentation sequence’ is a numerical field. Alphanumeric values are not imported.


    Product references and relationships

    The item relationship message makes it possible to indicate relationships between products or items. The mapping of the type of relationship to the data model is available here.

    Important note:

    • The DICO standard assumes an implicit unit for a specified quantity; since it is a trade item (or product) to trade item (or product) relation, pieces (PCE) are assumed.
    • A part or accessory of a product can be specified with relation type ‘ONV.’

    Via SFTP

    Through SFTP Protocol

    For the upload of datasets, preference is given to delivery via the SFTP protocol.

    Account

    If the datasets are to be uploaded through SFTP, an SFTP account is required. The SFTP account is a company-wide account that should be linked to an existing user account with the function ‘Data upload’. This linked account will receive the email messages with regard to the processing. These might include the processing report, any interactive checks and the messages with which to approve or disapprove the data processing.

    User accounts with the function ‘Super user’ can set up/activate an SFTP account through the My environment, in the menu [Mijn bedrijf] (My company), [ SFTP instellingen] (SFTP settings).

    The SFTP account is a stand-alone account because it is integrated into the export feature of PIM software, for example, or can be incorporated in the user’s own scripts. An additional advantage is that the SFTP account can be transferred to another account allowing the credentials of the SFTP account to remain unchanged.

    Credentials
    • Server address : sftp.2ba.nl
    • Login Name : {the username generated by the system}
    • Password : {the password generated by the system}
    • Port : 22

    Feedback ticket system

    Feedback ticket system

    2BA works with a feedback ticket system for A. support request and B. questions about the data of manufacturers and/or suppliers. Go to My 2BA Environment for an an overview of your feedback tickets.

    A. 2BA support
    If you have a query or would like support, you can create a feedback tickets through the green ‘Nieuw’ (New) button. In the pop-up screen, you can fill in a title and topic and add any attachment you wish. Click on ‘Opslaan’ (Save) and this ticket will be dealt with by your internal contact at 2BA.

    B. Item/product feedback tickets
    It is also possible to ask questions about the data delivered by manufacturers or suppliers. With this type of ticket, the communication goes directly between you as the submitter and the receiver (manufacturer or supplier). 2BA sees these tickets too and will offer any necessary help or advice if so desired. You will receive an update by email if there are changes in the ticket.

    To check this, go to Unifeed and search for the product or item/.
    – If you have a query or remark for the manufacturer, click on ‘Product Feedback’ (Product Feedback)
    – If you have a query or remark for the supplier, click on ‘Artikel Feedback’ (Item Feedback)

    Artikel-Product tickets

    Renumbering procedure

    Renumbering procedure

    What is renumbering?
    If the assortment remains the same but other (order) numbers are used. For example, when the trade item and/or product number changes from 123456 to a1a2a3 while it concerns the same product or trade item.
    An assortment that is completely replaced by another assortment does not fall under renumbering and can be regarded as adding or removing.

    Potentially major impact for (data) processors and your customers

    database schema

    A renumbering can have a major impact for your customers! Your data may be included in various (including ERP, PIM or CAD) systems. That is why it is very important that your relations (customers of your data) are informed in time of an upcoming renumbering.

    This prevents:

    1. Duplicates with product and/or trade items within the systems of your relations
    2. Broken links, for e.g. CAD designs, calculations, order lists or invoices
    3. Broken links between ETIM Classification, attachments and matching records
    4. Orders with outdated product and/or item numbers
    Length of product and/or trade items

    When choosing new product and/or trade item to be used, it is important that you take into account that there are various software packages available with a maximum field length of 17 characters. By limiting the numbers to a maximum of 17 characters, you prevent product and/or trade items from NOT being read by your relations.

    Clear communication

    Due to the impact mentioned above, it is important that data customers are informed in good time and are able to make the necessary adjustments in their own system(s). We recommend that you jointly coordinate communication with data customers and draw up a schedule for this. In addition, it is of course also important that your own organization is aware of the renumbering.

    The exchange format provides successor and predecessor fields for both product and trade items to communicate the renumbering to data customers.
    It is very important not to delete the old product and/or trade items immediately, but to provide them with a valid successor and status code. We recommend that you obtain information in advance from your PIM software supplier.

    Role 2BA and responsibility data supplier

    Of course we provide guidance with a renumbering procedure, but the ultimate responsibility always lies with you as a data supplier. If we carry out the majority of the renumbering, there may be a financial contribution based on subsequent calculation.


    Checklist renumbering:

    Coordination between data supplier and your internal contact person is of great importance. Carefully coordinate which moments are chosen to ensure that the renumbering runs smoothly. For a correct implementation, the following points must be coordinated:

    • Contact person renumbering
    • Date of renumbering announcement (2BA news item)
    • Date of actual renumbering
    • Reason for renumbering
    • Concept text announcement renumbering
    • Current dataset with successors
    • New dataset with predecessors
    • Renumbering table in Excel and CSV format (1st column old numbering/2nd column new numbering)

    1. Planning

    1. Publish dataset 1 with currently valid numbers with successors
    2. Publish news item (by 2BA)
      At least 10 working days later:
    3. Publish dataset 2 with predecessors.

    2. Datasets and step-by-step plan

    Two datasets must be supplied:

    Dataset 1: assortment with current product and/or trade items

      • Successors (both product/article and possibly GTIN successor)
      • Status code ‘Discontinued’

    To avoid duplicates within the database, published GTINs must be removed beforehand with dataset 1 from 2BA.The GTINs can then be added again with the actual renumbering (dataset 2).

    Dataset 2: assortment with new product and/or article numbers

    • Predecessors (both product/trade item and possibly GTIN predecessor)
    • Status code ‘New’

    If necessary, consult the accompanying documentation for the exchange format used.

    3. Renumbering table

    Within various software applications, the renumbering is possibly processed via a renumbering table. In addition, a renumbering table can also serve as a check and/or reference work. The renumbering table, submitted in .XLS and .CSV (semicolon separated) file format, must be made available (hosted) by your own organization. The link to the renumbering table will be included in the pre-announcement..

    • 1st column the old trade item
    • 2nd column the new trade item

     

    Wholesaler Elektrobode

    Wholesaler Elektrobode (Alfana) transfers articles from 2BA directly to its web store

    • ElektrobodeWholesaler Elektrobode
    • Data user
    • Thtrough Web Services
    • Since 2016

    ETIM Product Features: Available for multiple purposes

    ETIM (ETIM Technical Information Model) links specific, technical product characteristics per product class. These characteristics are provided by the manufacturer to 2BA on a product-by-product basis for correction and full inclusion in the 2BA database. Wholesalers can then link their trade information to the product information of the manufacturer (price, packaging unit, delivery time, etc.).

    Technical product characteristics now also in the web store!

    As mentioned earlier, convenience serves the purpose. Because all product and trade information is already stored in 2BA, Elektrobode makes good use of this to immediately fill and update its own web store (based on downloads from 2BA). Recently Elektrobode took an extra step in this; the company now also transfers all ETIM product characteristics from 2BA to the web store. As a result, the web store visitor will from now on receive the same product information as the installer who requests items from Elektrobode through the 2BA Unifeed search engine.

    2BA Klantcase Elektrobode

    Process parameters

    Process parameters

    Process parameters offer the option of including extra tasks and/or relevant information in the data processing.

    The various process parameters can be delivered in the file parameters.xml. This file can be included with the delivery of the dataset (ZIP of 7-ZIP file) with every kind of file format (INSBOU, BMEcat or PAB).

    Possible parameters
    ElementPermitted valueDescription
    GeneratedByText, maximum 255 charactersThis parameter allows you to indicate through which software package the dataset was delivered. This parameter does not affect the processing.
    PackageDescriptionText. Maximum 255 charactersThe ‘PackageDescription’ field allows you to allocate a certain description to a data delivery. This text will be displayed in the processing report. One possible value might be: ‘Data delivery Q3’. This parameter does not affect the processing.
    SendReportToEmailText. Maximum 255 characters. According to the format of an email address.

    The email address to which the processing report is sent. When this field is empty, the data supplier’s email address will be used. Important! If this parameter is submitted, the report will not be sent to the email address of the account which delivers the dataset! It is possible to submit multiple email addresses by separating them with a semicolon (;).

    Sample value:  mijzelf@mijnbedrijf.nl;mijncollega@mijnbedrijf.nl

     

    ReportLanguage

    EN; NL
    Standard value NL

    It is possible to display the error notifications in the processing report in another language. If no translation of a particular error notification is available, the standard, generally Dutch, language notification will be used. For the time being, only Dutch and English translations are available.
    SkipLoadProducts

    true; false

    Standard value: false

    With some formats, including BMEcat 1.2, items and products are loaded simultaneously. By setting this option to ‘true’, you can exclude the loading of products.
    SkipLoadArticlesAndPrices

    true; false

    Standard value: false

    SkipLoadProducts now applies only to items and price information.
    SkipLoadPrices

    true; false

    Standard value: false

    As SkipLoadProducts, now applies only to excluding the price information.
    SkipLoadAttachments

    true; false

    Standard value: false

    SkipLoadAttachments=true any attachments/references included will not be read.
    InteractiveChecks complete set<InteractiveChecks>
    <Check Code=”7000160″ SolutionId=”###”/>
    </InteractiveChecks>

    When delivering a complete dataset with attachments, it’s possible to determine the action of how the attachments (delivered or not) should be treated, by means of the SolutionId. Possible SolutionId (###):
    106 = Keep attachments not delivered and work mutations
    108 = Delete existing attachments not delivered with the product (or product number)

    NB. If both Check Code 7000160 and 7000161 are included in the <InteractiveChecks> element, the check to be carried out will depend on the type of dataset (mutation or complete) delivered.

    InteractiveChecks mutatie set<InteractiveChecks>
    <Check Code=”7000161″ SolutionId=”###”/>
    </InteractiveChecks>

    When delivering a complete dataset with attachments, it’s possible to determine the action of how the attachments (delivered or not) should be treated, by means of the SolutionId. Possible SolutionId (###):
    165 = Delete all attachments not delivered with the product numbers delivered
    166 = Mutation set applied as submitted (attachments not delivered kept)
    NB. If both Check Code 7000160 and 7000161 are included in the <InteractiveChecks> element, the check to be carried out will depend on the type of dataset (mutation or complete) delivered.

    OverrulePackageMutationCode

    true; false

    Standard value: false

    By setting this parameter to ‘true’, it is possible to overwrite the standard method of a certain format by means of the PackageMutationCode parameter. The BMEcat format is by design a complete data delivery. It can happen that this file still has to be processed as a mutation delivery. In that case, through this parameter combined with the PackageMutationCode parameter, the file can still be processed as a mutation delivery.
    PackageMutationCode

    “ReplaceExistingCatalog”; “UpdateExistingCatalog”

    Standard value ReplaceExistingCatalog

    With the PackageMutationCode, it is possible to request that the dataset be processed either as complete or as a mutation. This parameter only applies if OverrulPackageMutationCode is on ‘true’.

    • “ReplaceExistingCatalog”; the dataset will be processed as complete
    • “UpdateExistingCatalog”; the dataset will be processed as a mutation.
    KeepMimeURL

    Semicolon separated list of BMEcat MIME codes like MD99;MD12 or * for all possible codes

    Use this parameter when an BMEcat MIME code should retain the specified source URL (excepted: MD01, MD02, MD20, MD23, MD24, MD25, MD26, MD27, MD28, MD29, MD30, MD47 (BME 5.0) MD59, MD65.)

    AutoConvertToMasterGLN

    true; false

    Standard value: false

     
    Example

    Important: the file name of the parameters file is parameters.xml (download an example)

    The elements are case sensitive.

    Example – Delete all attachments

    The example below will delete all attachments

    <UCProcessParameters xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.2ba.nl">
    	<PackageDescription>Aanlevering attachments compleet</PackageDescription>
    	<OverrulePackageMutationCode>true</OverrulePackageMutationCode>
    	<PackageMutationCode>ReplaceExistingCatalog</PackageMutationCode>
    </UCProcessParameters></script>
    

    Security

    Security

    Parts of your sensitive data are stored in 2BA’s private cloud. Security of this service is essential. You do not want your conditions to be put on the street or even to your competitor. “Your business environment”, in which the conditions and possibly external account data is stored, is therefore a completely separate database that other accounts cannot access.

    Company database

    The conditions are stored in its own database. This database is not shared and not accessible to other companies. Multiple company databases are possible. This can be useful for test/production environments or e.g. different operating companies with different suppliers/preferences.

    HTTPS / TLS

    Communication via the interface of the Condition Server, for example for uploading the conditions, takes place over a secure https connection. (*1)

    Logging

    Every request to the Condition Server is logged. This stores both the details of the request and the calculated results. This allows you to see exactly what is happening.

    Backups

    Your database(s) are backed up every day. We keep the last 7 days of these backups and 1 backup per month. These backups are made to survive (system) crashes (*2)

    Failover environment

    The DaaS architecture (online working) of 2BA is designed in such a way that it is constantly available at two geographically separated locations (Amsterdam and Alblasserdam). The Condition Server is part of the DaaS architecture and is therefore also available at these two locations. The failover environment is updated once a night. 

     

    (*1) The use of our API, Unifeed, can be done over both http and https. This is a choice that you can make yourself or that is made by your software supplier. The use of the web services via http or https from your supplier via the Condition Server is determined by the supplier

    (*2) To restore a backup made by us, at your request, an amount of € 150 will be charged. However, you can backup and restore your own database(s) yourself using the functionality provided for this purpose. No costs will be charged for backing up/restoring yourself.

    Homepage English

    Condition Sheet (ICC Message)

    Condition Sheet (ICC Message)

    Condition messages offer suppliers the opportunity to communicate purchasing conditions (discounts granted by the supplier to the buyer on certain item groups or net prices) on merchandise bilaterally with the buyers.

    A condition is defined as a standard or customer-related agreement regarding prices or discounts per article or article group. The described standard is intended for the exchange of conditions that apply specifically to each customer.

    For clear communication of trade data, it is very important that items belong to specific discount group(s). The discount code is assigned by the supplier to one or more related group of items. All items that belong to a certain discount group have the same discount for a customer.

    Request condition messages

    Condition messages are coordinated bilaterally between supplier and buyer. You can contact the sales department of your suppliers directly) or send a request directly via the presentation page of the desired party. You can reach a supplier’s presentation via the unifeed search engine or via the participant overview (login required).

    XML DICO (SALES005) en INSBOU004

    KetenstandaardLogo2023For complete documentation of the INSBOU004 and DICO (SALES005) standard, we refer you to the Ketenstandard Bouw en Techniek foundation. They provide XSD diagrams, the functional attribute list and support on all DICO messages. To do this, you must either be a member of Ketenstandaard or your organization must have concluded a 2BA-ETIM combination contract with 2BA. DICO messages must be validated according to the original XSD. Chain Standard Construction and Technology offers a validation tool for this (Chain Standard account required) within their website.

    ASCII Conditions ICC 1.1

    Online Conditie Server (OCS)

    Both the ICC message 1.1 and the INSBOU004 and DICO (SALES005) Condition Message can be read in the Online Condition Server of 2BA.

    Read more about the Online Condition Server here

    AttachmentIndex

    AttachmentIndex

    AttachmentVisual support in combination with additional information is very important for optimal product positioning. Products can therefore be enhanced by attachments, also known as digital assets.

    Digital assets are mainly used by the wholesalers to back up the product information on the Internet, in catalogues (print and online) and also leaflets, newsletters and flyers (print and online). In addition, there are attachments available for the customer. The basic principle is that a product is provided with at least one (free cut) image preferably in high resolution. Consult the description of the file format AttachmentIndex to see the desired minimum specifications.

    By digital assets, we mean attachments such as:

    • Photo material (incl. metadata, such as resolution, number of pixels, dimensions, 3D views)
    • Film material (incl. metadata, such as resolution, number of pixels, dimensions, 3D views)
    • Technical documents (incl. drawings, graphs, specifications)
    • CAD and 3D objects and symbols
    • User manuals and processing instructions
    • Animations, graphs and drawings
    • Sound fragments
    • Certificates (incl. DoP certificates, RoHs certificates, CE Marking and declaration of guarantee).

    Product Information Management

    For efficient data management, we recommend you administer your data using PIM (Product Information Management) software. A PIM system acts as a central source of information for your product data (incl.): ETIM classification, product references and attachments, known as digital assets. In addition to administering and exchanging the data, functions such as automatic generation of catalogues (on and offline) and advanced web stores are also among the options. We strongly recommend you get together with one or more of 2BA’s software partners to look into what data management can do for you in your organisation.

    Get in touch with one of our Software Partners today and make an appointment!

    Download:

    PDF Description of File Format AttachmentIndex (Dutch)
    PDF Definition of Exchange format AttachmentIndex (English)

    Customers can download the attachments through the selection profile or Product Attachments Webservice

    The thumbnails created by 2BA are also available for external use. This is done through the Thumbnail WebService.

    Hotkey

    Hotkey

    The 2BA Hotkey is a simple tool that allows you to create ‘shortcuts’ to different websites or applications. What makes this tool special is that it can take a word selected from a document, website or other application when opening a website or application.

    For example, you can search for a selected item number, barcode or text in 2BA Unifeed. This possibility is not limited to 2BA. Based on your own settings, any website can be opened this way.

    Download and en more information:

      2BA Hotkey Setup
      Default configuration file recommended by 2BA (download after installation)

    Examples of shortscuts

    Hotkey Parameter
    CTRL + ALT + U https://unifeed.2ba.nl/?interfaceType=JSON&interface=3&q=$$T$
    CTRL + ALT + G https://www.google.com/search?q=$$T$
    CTRL + ALT + T https://translate.google.com/?hl=nl#view=home&op=translate&sl=nl&tl=en&text=$$T$
    CTRL + ALT + C https://prod.etim-international.com/Class/Details?classId=$$T$

     

    Publishing a file

    Publishing a file

    The processing chain

    When a dataset, in compliance with the requirements of the file format, is received by the 2BA system, the processing is set in motion.

    In short, the following steps are taken:

    1. Establishment and validation of the file format and delivery type.
    2. Various checks and actions on the data (also with regard to data present in the data pool).
    3. Any interactive actions on the data delivered will be proposed by email to the data uploader.
    4. The data will be made available on the STAGING environment and the reporting will be offered by email by way of a check.
    5. Once the reporting has been checked, the data can be approved or disapproved. If approved, the data will be loaded through to the MASTER environment.
    6. Once approved, your data will be available to customers and visible on Unifeed the day after it is loaded through.

    N.B. Only one processing per supplier can be dealt with; multiple deliveries will be automatically placed in the queue.

    Method of publishing/approving data

    The method of publishing data consists of 3 steps:

    1. After you have checked the statistics, you tick the box to show you agree with the changes in the data.
    2. Once you have read the tab checks you can also indicate that you agree with that too.
    3. When you have agreed with both elements, the [Data goedkeuren] (Approve data) button becomes active and the data can be loaded through.

    N.B. We recommend you publish a dataset on the same day it is delivered. Published data is available in the product environment and in the Unifeed search engine the following day. If that data has been published, it can no longer be disapproved.

    Statistics and checks

    The statistics tab gives you important information about the data delivered with regard to the data that is already available through 2BA. The statistics which have been 100% filled in are not displayed, as standard, but can be activated separately with the option ‘display 100% statistics’.
    The checks tab gives you information per check or action. Detailed information can be viewed per line. These overviews are restricted to the first 250 notifications. By using parameters.xml, one of the possible options is to request that all detail notifications in the report be displayed.

    Type of data delivery/processing

    A dataset can be delivered as a mutation or complete type. Depending on the type of delivery, the data will be added or data already present will be supplemented or replaced completely (!).

    Type Complete
    A dataset can be delivered as a mutation or complete type. Depending on the type of delivery, the data will be added or data already present will be supplemented or replaced completely (!).

    Data already in the data pool will be completely replaced by the newly delivered data. Item records which are not present in the dataset delivered will therefore be permanently deleted from the data pool and removed to the clean set! Any product records missing from the dataset delivered will be given the status code ‘lapsed'(130) and will remain available as a collecting point for trade records and for product history (such as ETIM features, attachments, product references and relationships).

    Type Update
    In the case of an update, records already present will be brought up to date and any new records added. Records present in the data pool that are missing from the dataset delivered remain available without change.

    Exceptions:

    1. If the product or item message is not included in the delivery in the case of a complete processing, these records will remain available, without change.
    2. ETIM features will be added or amended.

    Interactive checks (Level 9)

    Interactive checks are those actions carried out during the data processing. In an interactive check, the data uploader is asked which action should be carried out. The data uploader is given the opportunity of having the choice(s) selected automatically carried out for subsequent deliveries. These checks can be administered through the overview of interactive checks with your data deliveries.

    Online mutate

    With the online mutate function, adjustments can be made quickly to product and/or item data, for example for emergencies surrounding published price data and other data and to quickly respond to feedback from installers and wholesalers. Go to information about online mutate.

    Selection Profile

    Selection Profile Set-up

    Selection Profile

    If you have an account with the option to download on 2BA and are logged in to the management environment https://my.2ba.nl, go to [Mijn selectprofielen] (My selection profiles) in the [Download] menu.

    SelectieProfiel

    Note: Accounts with the superuser role have an additional option within the [Mijn bedrijf] (My company) menu, namely [Selectieprofielen] (Selection profiles). This option provides a list of all selection profiles within the company.

    Creating a new selection profile

    • Click on ‘Nieuw profiel’(New profile).

    Stap1Instellingen

    Step 1a: Algemene instellingen (General settings)

    • Select the general settings that should apply to the profile:
    • Omschrijving (Description):
      Free name of your choice.
    • Uitvoerformaat (Output format):
      Choice of output format PAB or GS1 XML Inst & Build XML. The selection of the output format should correspond to a format supported by your software package. If in doubt, please contact your software supplier or 2BA.
    • Actief/inactief (Active/inactive – tick):
      Allows you to switch the profile on/off.

    Step 1b: Berichtgeving (Reporting)

    • Choose how you want to be kept informed:
    • Informeer mij (Please inform me):
      Only if there is data and/or also if no data is found.
    • Informeer mij via (Please inform me by):
      You can indicate that you wish to be informed by e-mail, news message (also personal) or both options.
    • Stuur ook een e-mail naar (Also send an email to):
      If necessary, enter one or more email addresses (separated by a semicolon ‘;’) to which a copy of the email should be sent.

    Step 1c: Geavanceerde instellingen (Advanced settings)

    • The default settings of the advanced options are usually sufficient.
    • If you have problems downloading files with ‘.exe’ extensions, please choose the output file type ‘.zip’.
    • Export ArtToKo can be switched off (not with PAB 2.00).
    • You can choose not to select any product data.

     

    • Go to Step 2 – Data selection

    Step 2a: Selectie (Selection)

    • Once you have set everything up, you will find here what we call the selection lines, each containing the supplier, the filter settings and the output method:
    • Eenmalig alles, daarna mutaties (Everything once, then mutations)
      This option generates a total set once, after which the profile automatically switches to mutation. This option is recommended for the first time running or to completely update the existing data..
    • Totale set data (volledig bestand) (Total data set, full file)
      Every time the selection profile runs, it provides a complete set of data with all the current records of the respective supplier.
      Please note that this can be time-consuming for your system.
    • Alleen de wijzigingen (mutatiebestand) (Only the changes, mutation file)
      With these green lines, only the changes are collected and the output files are automatically merged up to 9 times.
    • Notes:
      An orange line is a selection profile line which is almost the same as a ‘Total data set’ and additionally has all known deleted records. This is often necessary to correct ‘old’ records or to fill new systems completely. This orange line is executed once after which it automatically changes to a green line (the normal mutation profile line) and collects all changed records from date x to date y.
    • Clicking on the ‘Nieuwe regel’ (New line) button takes you to the ‘Selectieprofielregel instellen’ (Set selection profile line) screen.

    Stap2Selectie

    Step 2b: Selectieprofiel regel instellen (Set selection profile line)

    • In this screen you can indicate what items must comply with in order to be included in your selection profile

    SelectieProfielregel

    • Leverancier (Supplier):
      In the box ‘leverancier’ (supplier) you can indicate from which supplier you want the data. 2BA will (after entering some initial letters) give you a list of available suppliers, from which you can choose.
      By default, only suppliers with data are shown in the list. If there is a supplier who will be delivering in the future and someone wants to create a profile rule now, this can be done by unchecking the checkbox. Now you can also select suppliers for whom no data is available ‘yet’.
    • Alles (All):
      Choose this option if you wish to receive all available item and/or product data and click on ‘Opslaan’ (Save).
    • In the ‘merk’ (brand) box, you can indicate which brand an item must be from to be included in your selection. Here, too, you can enter the initial letters of the brand, after which 2BA will offer you a number of available brands. (Please note that if you select a brand that does not appear in a supplier’s list, there will be no result).
    • If required, a discount group and/or an item code can be entered.
    • At least one of the following fields must be present per selection line: ‘Leverancier’ (Supplier), ‘Merk’ (Brand), ‘Kortingsgroep’ (Discount Group) or ‘ArtikelCode’ (Item Code), must be filled in.
    • By clicking on the ‘Opslaan’ (Save) button, the line is added (the profile will be saved on the 2BA server). If you wish to refrain from adding the line, you can use the ‘Annuleren’ (Cancel) button.
      SelectieProfielRegels
    • In the case of an orange line, the last mutation date is not considered (once only), but all records are collected.
    • When a new line is entered, it is automatically created as a complete mutation file (orange line), which collects all the data; after the first output, the line is automatically changed back to mutations (green line).
    • Go to Step 3 – Planning

    Step 3: Planning

    • There are 3 options as an output pattern. When choosing the complete set, the repeat schedule will disappear and only the date of first execution will apply. In the other two options, you can use the repeat scheduler to set the repetition of your profile.

    Stap3Planning

    • With the option ‘mutations from’ you can choose the date. As soon as your selection profile is executed, this date will automatically be moved forward, which ensures that you always receive the changes from the intervening period. With a new profile, this date is set to January 1, 2004, which means that the first time you run it, you will receive everything from your selection, because all data on/after January 1, 2004, is reloaded in 2BA. If you have missed the changes of a period, for example because your profile was switched off for a period, you can adjust this date to the date on which you received the last changes.
    • Immediately after making changes in the replay schedule, you will see on the right a list of the dates on which your selection profile would be carried out.

    Notes:

    • Do not forget to save your changes.
    • By default, a selection profile is carried out at night.
    • A selection profile will be disabled after 3 executions if the output files are not deleted..

    Other possibilities

    • The output files already created can be downloaded through the ‘Downloads’ tab. In addition, you can delete unused or files already downloaded here. You can see your profile list in the menu Downloaden/Mijn selectieprofielen (Download/My selection profiles), click on a profile and the tab ‘Downloads’. Here you will see all the downloads of the selection profile concerned.
    • Filter by means of what are known as NOT rules:
      Selection profile NOT rules are similar to normal selection profile rules. Whereas a normal selection profile rule can select data, a NOT rule will filter the found items from the end result. Read more about the Selection profile NOT rules
    • The selection (selection profile lines) can be provided through a text file if required. A description of this text file can be found by pressing the ‘Upload selection’ button: do this as follows:
    • Choose the selection profile for which you want to add the rules
    • Choose the ‘Selectie’ (Selection) tab
    • Click on the ‘Selectie uploaden’ (Upload selection) button
    • Use the ‘Browse…’ button to search for the file containing the selection profile rules
    • Select ‘Uploaden’ (Upload)

    DemoCalc

    DemoCalc

    2BA DemoCalc is an example application that demonstrates the connection between an ERP software-package and the 2BA datapool via Unifeed. Whilst DemoCalc is not a true calculation program, it shows how Unifeed can be used within a calculation application. DemoCalc uses interfaceType=JSON (see Unifeed – Parameters).

    Function

    First, a coupling with a 2BA account should be established using the “settings” tab. Once done, the key F2 can be used to invoke Unifeed to find a product in the 2BA database. Once a product has been found, the ‘import’ button next to the desired supplier can be used to import the data into DemoCalc. At the time of writing, the key (GLN+articlecode) is imported into the application (DemoCalc for now). From DemoCalc a call is made to the web service to retrieve the product/article details.

    DemoCalc4

    Coupling with a 2BA account

    To be able to use Unifeed and the associated services without having to log into each separately, a coupling is established between the application and a 2BA user account. This is achieved using the OAuth2 “Authorization Code” flow. Using this flow means that the user’s credentials do not have to be stored within the application or the system, but only an access token, etc. Should the function keys F2 of F3 not work properly, you will need to recouple your account.

    Continuous mode

    DemoCalc by default demonstrates opening Unifeed in a modal dialog (pop-up). As alternative, using the settings menu, Unifeed can also be opened in “continuous” mode. Unifeed will then always be available as a docked window.

    Downloads

    ClickOnce installer 

    The application runs on Windows XP and later. .NET Framework 4.0 or higher is required. On startup, the application will automatically be updated to the latest version.

    Wat biedt 2BA voor u als Installateur Wat biedt 2BA voor u als Groothandel Wat biedt 2BA voor u als Fabrikant Wat biedt 2BA voor u als Software Partner
    This site is registered on wpml.org as a development site.