Introduction

OpenBOM is a cloud-based real-time collaboration & data management technology that allows managing Parts, Catalogs, Bill of Materials, Inventories, and purchase orders across networks of engineers, supply chain managers, and contract manufacturers. The goal of this connector is to integrate OpenBOM with Tulip using Tulip's HTTP Connectors & provide you with an out of box OpenBOM connector that can be imported into your instance.

Purpose

  1. We are going to highlight different HTTP connector functions that can be built by doing HTTP calls to OpenBOM's endpoints to pull information on Bill of Materials (BOMs) configured, Catalogs maintained & pulling information on production order BOMs released in OpenBOM.
  2. Tulip apps can be built to customize work-instructions for operators on the shop floor that pull information on production orders highlighting the parts needed for operators to assemble products & complete the production order on the shop floor. Leveraging Catalogs in OpenBOMs, we will showcase how shop-floor managers can maintain a real-time inventory of different parts required to assemble the product on the shop floor.

API Doc

The following connector functions highlighted in this document have leveraged OpenBOM's API Docs

Pre-Requisites

  1. Create an account on OpenBOM & configure OpenBOM Catalogs & BOM for the product to be assembled on your shop-floor.
  2. You would need to generate an API key which is used in Tulip connectors for making connections with OpenBOM.
  3. Using basic authentication (username & password), obtain the Access Token (explained below) which would be passed as a request header in all the connector functions.

Tulip Connection Details

The following information would need to be configured on Tulip's HTTP connector.

  1. Running On: Cloud Connector Host
  2. Host: developer-api.openbom.com
  3. Port:443
  4. TLS: Yes
  5. Authentication: No Auth
  6. Headers: x-openbom-appkey

Connector Functions

Getting Access Token

Purpose

  1. Obtain the access token which would be used as a request header in all subsequent connector functions.
  2. Access Token expires every 24 hours. After running this connector function, OpenBOM returns the access token that can be stored in a Tulip variable which can be dynamically used by all the subsequent connector functions as a request header.

Endpoint & Headers

  1. A POST call to the Endpoint: https://developer-api.openbom.com:443/login
  2. Request Header: x-openbom-appkey
  3. Request Body : ContentType: JSON username & password as keys

Required Output Extractor

  1. Access Token - The returned Access Token would be used in all the sub connector functions.

Getting a List of Catalogs

Purpose

  1. This endpoint provides a list of catalogs available in the user's OpenBOM profile.
  2. The list can be used to extract the Catalog IDs that can be used to leverage specific Catalogs for pulling the current Inventory for different materials & updating different properties within the Catalog in real-time.

Endpoint & Headers

  1. A GET call to the Endpoint: https://developer-api.openbom.com:443/catalogs
  2. Request Headers: x-openbom-appkey, x-openbom-accesstoken

Required Input

  1. Access Token to be passed by a variable that is required as a request header for the HTTP call to the above endpoint.

Required Output Extractors

  1. CatalogId - Can be used to call specific catalogs of interest

Getting a List of BOMs

Purpose

  1. This endpoint provides a list of BOMs available in the user's OpenBOM profile.
  2. The list can be used to extract the BOM IDs or Name of the BOMs that can be used to leverage specific BOMs for pulling information on different parts needed to complete the assembly of a unit on the shop-floor.

Endpoint & Headers

  1. A GET call to the Endpoint: https://developer-api.openbom.com:443/boms
  2. Request Headers x-openbom-appkey, x-openbom-accesstoken

Required Input

  1. Access Token to be passed by a variable that is required as a request header for the HTTP call to the above endpoint.

Required Output Extractors

  1. BOMId - Can be used to call specific BOMs of interest
  2. Name - Can be used to do a POST to call a specific BOM by passing the Name property.

Getting Production Order BOM

Purpose

  1. This function pulls the production order BOM when the specific BOM for assembling a unit is released to production on OpenBOM.
  2. This connector function extracts important details (Name, BOMID, Number of Units) about the production order which would be dynamically passed to call a specific BOM ID that will contain all the information on the total number of parts needed for the operator to complete the entire production Order.

EndPoint & Headers

  1. A GET call to the endpoint: https://developer-api.openbom.com:443/orderboms
  2. Request Headers: x-openbom-appkey, x-openbom-accesstoken

Required Input

  1. Access Token to be passed by a variable that is required as a request header for the HTTP call to the above endpoint.

Required Output Extractors

  1. Name - This can be used to get the details for a specific Production BOM by passing the Name to the BOM specific endpoint.
  2. BOMID - This would be used to get all the details for a specific Production BOM by passing the ID to the BOM specific endpoint.
  3. numUnits - This property can be used to indicate the number of units to be produced on the shop-floor for a single production order.

Getting Specific BOM

Purpose

  1. This function gets the properties for all the different materials included in a specific BOM to assemble a unit.
  2. The rows returned by OpenBOM can be parsed into Tulip which is used to display the Quantity of different raw material needed to complete production Order in addition to all the other BOM properties returned by OpenBOM depending on how the BOM is configured.

Endpoint & Headers

  1. A GET call to the endpoint : https://developer-api.openbom.com:443/bom/{bomid}
  2. Request Header: x-openbom-appkey, x-openbom-accesstoken
  3. URL Parameter : {bomid} - This will be passed as an Input.

Required Inputs

  1. Access Token to be passed by a variable that is required as a request header for the HTTP call to the above endpoint.
  2. BOMID - To get the information on the specific BOM of interest.

Required Outputs

  1. Rows returned by OpenBOM for a specific BOM that includes the properties for different materials that are part of the BOM
  2. Users can parse specific details returned by OpenBOM based on the use case.

Getting Specific BOM by Name

Purpose

  1. This function gets the properties for all the different materials included in a specific BOM to assemble a unit by passing BOM Name in-place of an id.
  2. The rows returned by OpenBOM can be parsed into Tulip which are used to display the Quantity of different raw material needed to complete production Order in addition to all the other BOM properties returned by OpenBOM depending on how the BOM is configured.

Endpoint & Headers

  1. A POST call to the Endpoint: https://developer-api.openbom.com:443/boms/byparams
  2. Request Header x-openbom-appkey, x-openbom-accesstoken
  3. Request Body Content-Type :JSON , name as the key passed in the JSON

Required Inputs

  1. Access Token
  2. BOM NAME - Passed as the value to the 'name' key in the request body.

Required Outputs

  1. Rows returned by OpenBOM for a specific BOM that includes the properties for different materials that are part of the BOM
  2. Users can parse specific details returned by OpenBOM based on the use case.

Getting Specific Catalog

Purpose

  1. In addition to various other pre-defined or customized properties, Catalogs in OpenBOM maintains the inventory of the parts in hand that could be used to display/update real-time inventory within Tulip
  2. This function is used to get information on all the properties available in OpenBOMs Catalogs.

EndPoint & Headers

  1. A GET call to the endpoint: https://developer-api.openbom.com:443/bom/{bomid}
  2. Request Header x-openbom-appkey, x-openbom-accesstoken
  3. URL Parameter : {catid} - This will be passed as an Input.

Required Input

  1. Access Token
  2. CATID: To get the information on the specific BOM of interest.

Required Output

  1. Depending on the use case, users can extract different Catalog Properties returned by OpenBOM with Quantity On Hand being one property that could be used to manage Inventory in Tulip & update in real-time.

Updating Catalog Properties

Purpose

  1. Catalog in OpenBOM maintains the inventory of the parts in hand that could be used to display/update the real-time inventory of these parts within Tulip apps running on the shop floor.
  2. This function is used to update properties in Catalog in real-time with Quantity On Hand being one example that highlights the inventory of materials being used to assemble the product on the shop floor. As the materials are being consumed in real-time we can leverage this function to update Quantity in real-time as the operator proceeds with assembling a unit using the work-instructions app in Tulip.

Endpoint & Headers

  1. A POST call to endpoint : https://developer-api.openbom.com:443/catalog/{catid}/propertyvalue
  2. Request Header x-openbom-appkey, x-openbom-accesstoken
  3. Request Body Content Type : JSON
  4. 4 keys are needed to be passed in a JSON -partNumberPropertyName, partNumber, propertyName, propertyValue

Required Input

  1. Access Token
  2. CATID: URL Parameter
  3. PartNumberPropertyName: Value for key passed in the Request Body
  4. PartNumber: Value for key passed in the Request Body
  5. PropertyName: Value for key passed in the Request Body
  6. PropertyValue: Value for key passed in the Request Body

OpenBOM returns a status of 200 with a successful "Property Updated" response.

Video

A small video explaining how you can use OpenBOM with a Tulip App.

Did this answer your question?