What can P6 do?

Manage users and permissions

Platform 6 allows you to create and manage users and permissions, as well as an organizational tree structure to which users can be assigned.

All Platform 6 services expose a set of permissions which can be combined to create detailed roles to be assigned to users. These permissions are enforced for all actions performed either through the user interface or the REST API.

The grouping of permissions into permissions sets and the use of wildcards facilitate the creation of precise roles to be granted to the users.

User's permissions

Connect anything, anywhere

Platform 6 comes with ready-made Camel components and an extensive REST API.

Application developers also have the possibility to develop their own extensions to the API and add other Camel components.

The REST API exposed by Platform 6 is fully documented and can easily be tested using a Swagger UI. The P6 Portal user interface itself leverages the API, so anything that can be performed through the user interface, can be performed through an API call.

OpenAPI - swagger.io

To perform outbound connections from a P6 instance or handle specific protocols (inbound and outbound), Platform 6 comes with ready-made components.

These components include:

Orchestrate business processes

Thanks to routes, Platform 6 allows application developers to define the choreography of business document flows.
They can set what specific conditions on a transaction will trigger particular actions (like launching a workflow, issuing a notification, transforming and sending an electronic business document to a trading partner, performing API calls, inserting transactions in the blockhain…) Routes also allow them to schedule events (like the generation and email submission of a report, recurring calls to an external system…), or set up a file system listener, or listen to smart contract events.

Handle workflows

Business processes often require end users to perform actions like reviewing, completing, updating or approving transactions or business documents. Thanks to its powerful workflow engine, Platform 6 allows app developers to create workflows that offer options to end users, take their actions into account and help streamlining processes.

Store and query transactions

In Platform 6, a transaction item is an XML record containing the metadata of the related business document/transaction, such as:

  • The transaction type (Request for Quotation, Quote, Order, Service Request, Advanced Shipping Notification, Field Ticket, Service Entry, Invoice, Bill of Lading…)
  • The transaction number and creation date
  • The URI(s) of the actual business document in its various formats - potentially multiple URIs, one for the document in its source format, in the pivot format (if one was used), in the target format…
  • The URI(s) of attachments if applicable (PDF copy of the business document, supporting documents…)
  • The identification of the source and target formats (UBL, cXML, EDI ANSI X12, Excel… )
  • The name and identifiers of the involved parties or systems (buyer, supplier, logistics provider, bank, business network…)
  • The current technical and functional statuses, as well as related messages and dates
  • An audit trail
  • And any additional information that would need to be captured

XML transaction items must match a defined XSD (XML Schema) stored as a data model

Native XML indexing provides the ability to efficiently query documents using XPath expressions, in order to:

  • configure custom parametric search screens,
  • extract data from the database in tabular format,
  • transform data to another format, XML or others.

Manipulate data with Groovy

Platform 6 provides all the necessary tools to manipulate and generate structured data in many formats: XML, JSON, CSV, TXT, ANSI X12, EDIFACT, Excel, IDoc, etc.

XML data models expressed in the form of an XML Schema Definition (XSD) can be leveraged to validate XML files.

Groovy scripts are leveraged for back-end data processing and process orchestration, and a rich DSL has been added to the language to enable one-liner complex data transformation, such as running an XSLT, parsing a CSV or manipulating extremely large XML documents.

Numerous JVM libraries are also available to Groovy scripts to perform complex cryptography, JSON manipulation, etc.

def messageInfo = new XmlSlurper().parseText(message)

def SUPPLIER_DUNS = transactionInfo.KeyValue.find{it.Key == "SupplierID"}.Value.text()
def BUYER_DUNS = transactionInfo.KeyValue.find{it.Key == "BuyerID"}.Value.text()

def model = [
    supplierDUNS: SUPPLIER_DUNS,
    buyerDUNS: BUYER_DUNS,
]

Developers can also include their own libraries or resources if the ones already included are not sufficient.

Leverage P6 Portal UI

P6 Portal benefits from a fast and responsive user interface: built with the latest technologies (React, Bootstrap, etc.), the web UI automatically adjusts to the size of the viewing device and optimizes its rendering for ultimate speed.

Responsive user interface for laptop
Display on a laptop screen


Responsive user interface for mobile
Display on a mobile device

On the Transactions and Workflow Tasks pages, search criteria and result display columns can easily be configured thanks to Views.

Dashboards mixing content, KPIs and graphical reports can also be configured so end users can display them on their Home page.

Home page
Sample Dashboard displayed on the Home page

P6 Portal supports UI customization by end users.
On all pages with a search panel and a list of results, end users can sort and resize columns, hide/unhide them, change text alignment and color and save their preferences. Users with appropriate permissions can also customize the home page(s) they have access to: reorganizing and resizing modules, hiding/unhiding them, etc.

Platform 6 makes it easy to design nice displays of Transactions and Workflow Tasks metadata as well as Transactions details.

Metadata Transaction Form
Sample display for the metadata of a Transaction

[Insert a couple of screenshots – one of the source XML of a given transaction, and one of the related HTML display]

Platform 6 also supports custom forms for Workflow actions and Custom Services.

Custom form
Sample window for a Workflow action

Create custom user interfaces

JavaScript scripting is supported for the development of custom forms and pages in ReactJS. Powerful components that respect the look and feel of the platform are readily available to accelerate application development and delivery.

However, developers can also build their own frontend with the framework of their choice and consume Platform 6’ REST API.

When additional pages are needed for an app user interface leveraging P6 Portal or if specific features cannot be accommodated with existing built-in services or when keeping the source code closed is necessary, developers can create custom services using their preferred language (Java, Scala, C#, JavaScript, etc).

Custom services can communicate with all other Platform 6 services thanks to the P6 Common Message Bus.

A service combines server-side code, usually including a REST API, its own set of permissions and front-end code as needed.

Sample custom service projects are provided for the following languages:

Others will follow.

Build and package applications

Platform 6 let developers package all the service items, custom services and bundled resources required for a given app into a signed, encrypted and compressed P6 application file.

Once packaged, an application can be distributed and deployed on any Platform 6 instance.