Why use Platform 6?
Platform 6 is a unique platform to develop, package, distribute and run applications involving business-to-business transactions combining data transformation, automated processes and user actions.
More specifically, Platform 6 is a perfect fit for applications that require:
- structured data exchange with remote computer systems and blockchain ledgers
- data transformation and enrichment
- business process orchestration
- workflows allowing user to take action (such as review, complete or validate transactions)
Platform 6 comes with a comprehensive, modern and responsive web user interface that allow developers to create and package their apps, and users to search and display transactions, process workflow tasks, view charts and reports…
In addition, Platform 6 offers an extensive permissions system which control in detail what users can do through the user interface and which actions remote systems can perform through the exposed API.
Configure your user interface¶
Responsive and fast¶
Built with the latest technologies (React, Bootstrap, etc.), the P6 Portal web user interface automatically adjusts to the size of the viewing device and optimizes its rendering for ultimate speed.
_Display on a laptop screen_
_Display on a mobile device_
Highly configurable¶
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.
_Sample Dashboard displayed on the Home page_
Customizable 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.
Supporting custom forms and pages¶
Platform 6 makes it easy to design nice displays of Transactions and Workflow Tasks metadata as well as Transactions details.
_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 support custom forms for Workflow actions and Custom Services.
_Sample window for a Workflow action_
Manage users and permissions¶
All Platform 6 features 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.
Connect anything, anywhere¶
Platform 6 comes with ready-made connectors and an extensive REST API.
Application developers also have the possibility to develop their own extensions to the API and new custom connectors.
REST API¶
Platform 6 exposes a REST API which is fully documented and easily 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.
Connectors¶
To perform outbound connections from a P6 instance or handle specific protocols (inbound and outbound), Platform 6 comes with ready-made connectors.
These connectors include:
- an Ethereum connector to connect to an Ethereum blockchain, perform calls to smart contracts, listen to log events, etc.
- an HTTP/HTTPS inbound and outbound connector, to receive or post MIME envelopes or any other specifically enveloped data
- a RosettaNet Implementation Framework (RNIF standard) connector
- an AS2 connector
- an SFTP connector
- an FTP/FTPS connector
- an MQTT connector to directly connect your IoT devices to the platform
Store and query transactions¶
Platform 6 provides all the necessary tools to manipulate and generate structured data in many formats: XML, CSV, TXT, ANSI X12, EDIFACT, Excel, IDoc, etc.
Platform 6 supports XML data models expressed in the form of an XML Schema Definition (XSD). XML files can be validated against these models before being stored and indexed.
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.
Data manipulation and UI components¶
Platform 6 supports scripting through a data manipulation DSL and readily available UI components.
Groovy scripting¶
Groovy is supported for back-end data processing and process orchestration. 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.
JavaScript scripting¶
JavaScript is supported for the development of custom forms and pages in React. 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.
Develop custom services¶
When additional pages are needed for an app user interface 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 distribute an application¶
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.
Scale vertically and horizontally¶
The core platform is designed to leverage all the CPUs available on a machine.
When adding more CPUs is not possible, the platform can be scaled horizontally by spreading the services on multiple machines, interconnected by a fast in-memory bus.
These machines can run either a JVM, .NET or Node.js based custom services, allowing services developed in different languages to coexist on the same instance.
Examples¶
Following are two examples of typical applications built on the platform.
Automated Material Master Quote System¶
The application would typically:
- Recover a Bill Of Material (BOM) in different formats (CSV, XML, JSON, etc.) from a manufacturing application using a shared directory on the file system (SFTP connections, HTTPS call, etc.).
- Transform each line of the BOM into a Request For Quotation (RFQ) in XML. This transformation could use calls to a Customer Relationship Management (CRM) system to determine which suppliers to send the RFQ to, or use a simple lookup table directly loaded on the platform.
- Propagate the RFQs to the suppliers using a smart contract running on a blockchain.
- Receive the suppliers quotes from the blockchain smart contract.
- Aggregate and process the quotes and trigger a user workflow to review the quotes and accept/reject them.
IOT triggering work orders¶
The application would typically:
- Receive via Message Queuing Telemetry Transport (MQTT) a stream of readings from Internet of Things (IoT) devices or sensors monitoring the health state of selected equipment.
- Process the readings and trigger an alert when the readings meet certain tresholds.
- Trigger a user workflow with notification to a maintenance technician.
- Generate in parallel a work order in a customized Intermediate Document (IDoc) format to be pushed to an existing SAP system.
- Offer a custom form to be filled by the technician with work details on its mobile device.
- Convert the details entered to IDoc for integration in the SAP system.