API Enhancements and Updates

Summary

Information applicable to the enhancements outlined below is available in the API documentation at [system]/sdk or access the STEP API Documentation from the Start Page. Updates include:

  • Partners and customers can use the new public GraphQL API to develop applications that integrate with STEP.
  • Users can now develop asynchronous services using the Extension API.
  • Data container types that have assigned key definitions can now be modified via REST API V2.
  • Changes from the Main workspace can now trigger events.
  • Users can now retrieve information about missing mandatory attribute values and reference links for objects in workflows via the Scripting API and Extension API.
  • A new REST resource allows users to upload multi-part data and preserve the initial uploaded file names.

Details

New GraphQL API

It is possible to create web applications and mobile apps that integrate with STEP via a new GraphQL API. Refer to the New GraphQL API release note for more details here.

Extension API enhancements

Asynchronous framework is now part of the Extension API, which allows users to develop new asynchronous services based on their specific requirements. As an example, users can develop new asynchronous integrations to translation services that are not yet part of the existing suite of translation services offered by Stibo Systems.

An example of this extension API is included in the 'Extension API Libraries, Javadoc and Examples' file, which can be accessed in the STEP API documentation, as described in the summary section of this topic. To view this information, the X.ExtensionAPI license must be enabled. Contact your account manager or partner manager to begin the process of enabling a license or licenses for your system.

REST API V2 enhancements

With the new data container key functionality, it is now possible to alter existing data container objects via REST API V2 when the data container type has an assigned key definition. Additionally:

  • If key attributes / reference types are missing, the API will return an error message.
  • If the data container contains duplicate key values, the API will return an error message.

The documentation of the API calls can be looked up via the swagger-ui. The swagger-ui URLs to the six relevant API calls that can add / replace data container objects are:

Entity

  • POST: [STEP-server]/restapiv2/swagger-ui/#/Entities/post_entities
  • PUT: [STEP-server]/restapiv2/swagger-ui/#/Entities/put_entities_id
  • PATCH: [STEP-server]/restapiv2/swagger-ui/#/Entities/patch_entities_id

Product

  • POST: [STEP-server]/restapiv2/swagger-ui/#/Products/post_products
  • PUT [STEP-server]/restapiv2/swagger-ui/#/Products/put_products_id
  • PATCH [STEP-server]/restapiv2/swagger-ui/#/Products/patch_products_id

To access the REST API V2, the 'restapiv2' add-on component must be installed on your system. For on-premise systems, instructions for installing components can be found in the SPOT Program topic in the System Administration Guide found in Downloadable Documentation. For SaaS systems, contact your Stibo Systems account manager.

For more information on data containers keys, refer to the Data Container Keys topic in the Data Container Keys documentation here.

New event generation and processing from Main workspace

The functionality described below is currently in ramp-up status. Refer to the License and Component Lifecycle topic for details about what this status means here.

It is now possible to easily configure which workspace or workspaces to trigger events from when publishing data to the Elasticsearch search engine for display on the Web UI Search Screen. For systems that have the functionality enabled, event-based outbound integration endpoints (OIEPs) and event processors (EPs) display a Trigger Workspace flipper within the Event Trigger Definitions tab. The options are Main (which is new for 10.0), Approved (the default option), and Main and Approved (typically used with in-house EPs). 

This functionality is primarily intended for keeping Elasticsearch indexes up to date for faceted searches. Processing each and every event from the maintenance workspace can lead to bottlenecks, and in worst case, to overall performance decrease of the entire system. In particularly, never tie business rules doing complex processing to events reflecting frequent activities done in the maintenance workspace.

A new JavaScript Event Handling bind (Current Event Triggering Workspace) supplies the TriggeringWorkspace for the current event that is about to be generated. Previously, this bind was only applicable when execution rules on 'Event Filter' and 'Generate Event' were done.

To make it possible to identify which workspace(s) the event in question is generating changes from, the TriggeringWorkspace enum has been added to the Scripting API and Extension API. Also added to the API is com.stibo.core.domain.eventqueue.event.Event#getTriggeringWorkspace(), making it possible to identify which workspace(s) from which the event in question is generating change.

For more information, refer to the Triggering Workspace Flipper information for event-based OIEPs and EPs that can be found in the Data Exchange documentation here. Additional information can also be found in the Event Handling Binds topic in the JavaScript in STEP section of the Resource Materials documentation here.

Scripting API and Extension API information can be found in the STEP API Documentation available at [system]/sdk or accessible from the system Start Page. Search Screen documentation can be found in the Web User Interfaces documentation here.

New API methods to query missing mandatory attributes and reference links for workflow states and transitions

Developers now have the ability to retrieve information about missing mandatory attribute values and reference links for objects in workflows via Scripting API and Extension API methods. Exposing this functionality allows customers to programmatically query this type of information as needed. Previously, an object had to be submitted with missing values to acquire equivalent information. And, once submitted, customers were unable to access conditionally mandatory attributes, references, and links.

A new bind named Workflow Function Home has been added to the Workflow category for business rules in the Business Rule Editor, as shown in the screenshot below.

To query an object's mandatory and conditionally mandatory attributes or references that are missing values, the following four methods are now available via the WorkflowFunctionHome interface: 

  • getStateMissingMandatoryAttributes
  • getStateMissingMandatoryLinkTypes
  • getTransitionMissingMandatoryAttributes
  • getTransitionMissingMandatoryLinkTypes

It should be noted that an object need not be in the specified workflow to execute these checks. For those wanting to check whether or not the current object / node is valid for the specified workflow, a new WorkflowableNode method (isValidForWorkflow) is also available.

The functionality described above has been backported and can now be used in 9.3-MP3.

For more information, refer to the Workflow Binds topic in the JavaScript in STEP section of the Resource Materials documentation here. Additional information is also available in the Scripting API and Extension API sections of the STEP API Documentation available at [system]/sdk or accessible from the system Start Page.

New REST resource added to REST API V1 for multi-part upload to REST IIEP

Operation: POST /integrationendpoints/{integrationendpointid}/uploadmultipart

This REST resource allows users to upload multi-part data and preserve the initial uploaded file names. When the upload is successful, the Integration Endpoint (IE) is invoked. If the IIEP receiver type is not a ‘REST’ receiver, a 406 status will be returned. If the IIEP is disabled or the hotfolder does not exist, then a 503 status will be returned. If a file with the same name as the uploading file exists, a warning will be added to the STEP logs and a new file with the same name and temporary suffix is created.

For information about this functionality, refer to the REST API V1 documentation available via the STEP API Documentation page for your system. Information about Inbound Integration Endpoints can be found in the Data Exchange documentation here.