Intro to P6 apps
Platform 6 is both a development platform to easily build enterprise-class transactional applications, and the runtime allowing companies to run these applications.
Applications developed on Platform 6 typically allow businesses to exchange electronic transactions with their trading partners and automate B2B processes:
- Receive and send transactions leveraging blockchain and peer-to-peer technologies or using more traditional transport protocols (AS2, HTTPS, SFTP, FTPS…)
- Transform data from any structured source format to any target format (XML, CSV, TXT, binary, Excel, EDI, PDF…) - and validate output files
- Orchestrate business document flows (routing documents, scheduling tasks, triggering a workflow…)
- Interface with multiple systems (ERP, CRM, SaaS solution…) using any type of integration method (batch or synchronous, inbound or outbound…)
- Expose APIs allowing external solutions to easily communicate with the app
- Allow users to search and display transactions, handle workflow tasks (reviewing, completing or approving inbound or outbound transactions), benefit from dashboards displaying KPIs, reports and content
- Allow admin users to manage organizations and other app users, granting them permission sets and assigning them to nodes in the organizational tree structure
An application developed on a Platform 6 instance can be packaged and installed on other Platform 6 instances (Platform 6 being then used as a runtime).
A packaged P6 application is a signed and encrypted file containing all the resources created by the app developer (service items, bundled resources, custom services…).
Transactions¶
A Platform 6 transaction is an XML record carrying metadata information related to a business transaction:
- 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/transaction 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
Built-in Services¶
Platform 6 comes with a large set of built-in services that can be leveraged and combined to create enterprise-class transactional applications in general, and blockchain-based decentralized applications in particular.
Each service is exposed through a REST API, enabling easy integration with Platform 6, for example to develop a custom user interface on top of it.
Communication between services is performed through the Common Message Bus (P6 CMB).
Available services¶
- Applications: manage applications (install/uninstall applications, package applications)
- Bundled Resources: handle resources to be included on a P6 application
- Configuration: manage configuration of P6 applications
- Counters: manage queries that can be run on Transactions and Routing Orders
- Data Models: store XML schemas to validate the structure of XML files
- Email Profiles: create and edit the email profiles
- Frames: create and visualize inline frames to be included in dashboards in Home Pages
- Home Pages: configure Home Pages combining Counters, Reports and Frames
- Organizations: manage an organization tree structure and assign users to nodes
- Reports: design graphical Reports that can be included in Home Pages
- Routes: create and manage Routes
- Routing Orders: manage Routing Orders
- Scripts: develop and execute Scripts
- Stored Procedures: write and execute SQL queries
- Stripe Payments: charge customers online
- Tables: create and edit Tables, manage data stored in Tables (add,edit,delete records)
- Transactions: search, display, delete, edit and reprocess Transactions
- User Administration: manage users, permission sets, integrations and SSO connections
- Views: configure the display of the Transactions and the Workflow Tasks screens
- Workflow Steps: create and edit Workflow Steps defining actions offered to Assignees and subsequent processing
REST API¶
You can download the OpenAPI-compliant P6 API specification file from your Platform 6 instance from http://YourInstanceURL/p6/openapi. Then you can open it in Swagger Editor (File / Import file) or with the Postman app.
Custom Services¶
Developers can also create their own custom services using their preferred language, and connect them to other services thanks to the P6 Common Message Bus.
Groovy DSL¶
Platform 6 scripts and routes are written in Groovy, a Java-syntax-compatible object-oriented programming language.
Groovy allows objects to be bound into the interpreter which modify and extend the language notation. Platform 6 benefits from a powerful Groovy DSL (domain-specific language).
Read the Platform 6 Groovy DSL guide for details about the mini-language developed for the operation and the control of Platform 6 instances.
Common Message Bus API¶
Platform 6 services communicate with one another through a bus connector called Common Message Bus. The Common Message Bus API explains how to send a specific message to a deployed built-in service.
Platform 6 additional tools¶
- Audit Providers: audit the Platform 6 functions
- Jobs Control Panel: manage and monitor all the long running jobs
- Service Status Header: manage the service execution lifecycle
- P6 Sync: extract and push configuration (service items) between a P6 instance and a filesystem
Demo App¶
Shipped with each Platform 6 instance, the Demo App has been designed and built to help developers understand how Platform 6 can be leveraged to create applications. Developers are highly encouraged to install the Demo App and go through the documentation to understand how it works, step by step.