Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Expand
titleTable of Contents
Table of Contents

...

Overview

The purpose of theLogix API LogiX Business Integrator Component is to enable data exchange between LogixApplications andbusiness LogiX Applications and ISA-95 Level 4: Business logistics and reporting systems, such as ERP, APS, or CMMS.

The API Integrator will ultimately cover the following areas:

  • Processing orders

  • Repository of Handling materials and BOM’s

  • Scheduling production activitiesRegistering events related to lifecycle of an activity (start/stop/complete)Exposing selected raw data and aggregated KPIs (including OEE metrics, downtimes, reported labor time)

  • Processing raw and aggregated KIPs and other data by LogiX applications

Assumptions

  • Almost every LogiX deployment needs to communicate with ERP systems or other business apps.

  • Those applications are often COTS or legacy software that are hard to change.

  • Even for the same app (or a set of apps), there are often various integration scenarios for a single Client.

Goals

  • Decoupling:

    • Logix LogiX internal data model, of which semantics is known across Logix LogiX components, from external data models.

    • Logix LogiX cloud services from implementation of custom integration components, supporting various interfaces, different orchestrations, ETL batch exchanges, and data formats.

  • Common core message bus and data structure

  • Security:

    • Authorizations

    • DDoS - Request Flood prevention

    • Events/errors logging

  • Out-of-the-box observability:

    • Monitoring

    • Logging for auditing and debugging

    • Tracing in case there is a need for deeper problem analysis.

API -

...

General Description

The description is available here: https://gatewaystage.stageapi.logix.cloud/index.html

Authentication

To access Logix API you need API Key to authenticate.

To obtain your Key you need to contact Ilabo support.

How to use API

1. Location:

In accordance with OpenID Connect specifications, the following parameters are sent to each Client individually:

  • Authentication base URL

  • Client ID

  • Client Secret

You can use them to generate a new token using the following parameters:

Grant Type: client_credentials

Discovery Endpoint: [baseUrl]/.well-known/openid-configuration

Access Token URL: [baseUrl]/connect/token

Scope: api.logix.cloud logix.api

Example Request:

Code Block
POST /connect/token
CONTENT-TYPE application/x-www-form-urlencoded

    client_id=client1&
    client_secret=secret&
    grant_type=client_credentials&
    scope=api.logix.cloud%20logix.api

Example Response:

Code Block
{
    "access_token": "eyJh...",
    "expires_in": 3600,
    "token_type": "Bearer",
    "scope": "api.logix.cloud logix.api"
}

General Assumptions

  1. In API calls, you should use IDs for factories (PlantCode) and production lines (LineCode). You can find those IDs in the ConfigHub app in the

...

  1. Factories tab.

2. Handling updates

  1. If you want to add new activities or modify the existing ones, you should use the HTTP PUT method:

...

  • if the activity that you are adding exists, it will be updated.

...

  • if the activity that you are adding does not exist, it will be added as a new activity.

Updating via an external system is not allowed only if a specific activity is blocked as Managed by

...

LogiX (it is done by setting a special internal flag in

...

LogiX). Such blocking occurs automatically when an activity is added or modified through an app that belongs to the

...

LogiX Suite (PackOS or KeepUp).

3. Registering events

  1. Changing the statuses of activities that are in the

...

LogiX scheduler can be initiated from outside by invoking

...

right methods on the resources related to specific activities

...

.

...

4. Data validation - and “draft” and “released” states

Activities added through API pass through two stage validation

- simple, synchronous validation done while processing request (unvalidated requests are not persisted)

- complex cross-validation done asynchronously. After initially validated request activity is saved in “Draft” State. Then another dedicated service preforms complex validations of activity (i.e. does Logix have all data needed to process production lifecycle of given activity). This is repeated after each change of activity data. If this validation is positive then activity state is changed to “Released” state. If not - activity stays in “Draft” state and relevant information are added to activity:

- “validationErrorCount” attribute is filled

...

Resources

/activities

Read-only use. It returns the activity schedules of all types: scheduled, executed, or historical ones. You can use filters for schedules by providing the LineCode ID and narrowing down the time range of activity (for example, production orders).

...