Process Suite Platform - White Paper - Low-Code Development
Process Suite Platform - White Paper - Low-Code Development
Low-code
development
Build applications more quickly and easily
through code reuse and simplified practices
Workspace 4
Projects 5
Documents 5
Sample projects 7
Building blocks 8
Basic 9
Process flow 9
Business logic 9
Presentation 10
Imported entities 11
EIS entities 11
APIs 12
Technology connectors 13
Panels 13
Building applications 13
Orchestration scenario 16
APIs overview 21
iHub 22
Process Intelligence 22
Magellan 23
Application deployment 23
Conclusion 23
Identity component 24
What is low-code?
Low-code is an emerging development approach that reduces the need for a developer
to write new code every time they build an application. Instead, low-code development
environments provide reusable, pre-built components with “drag and drop” capabilities
that minimize the coding effort and speed time to deployment. Using this simplified
approach, developers can more easily collaborate with subject matter experts throughout
the development process and business users can work on the application themselves,
reducing development cycles and the pull on IT resources.
Low-code can be used to build highly complex, enterprise-caliber applications. The OpenText
approach to low-code supports many development approaches including: information-
centric low-code, process-centric low-code, model-assisted coding and traditional
development. This empowers the professional developer to build the optimal application(s)
for their business. The focus of this white paper is on the three low-code approaches:
1. Information-centric low-code: Start by modeling the data and the data that resides
in the business, and then determine the lifecycle of the data and how this data flows
through the business
2. Process-centric low-code: Begin with the business process model and model the
processes executed in the business domain and then determine which systems, services
and actors are involved in the various processes
3. Model-assisted coding: Model applications using a separate IDE and then add generated
artifacts to the project along with other AppWorks models
This section describes many of the platform components that are accessible to the
low-code developer. These components are presented in the order that a developer would
engage with them to build an application for the first time.
Workspace
A workspace is the starting point for the low-code developer. A workspace contains all
the projects with which a developer works.
In most organizations, there isn’t just one developer working in a workspace, but rather,
there is a development team. The platform supports various ways to configure workspaces
to support development teams. The best practice is to create a separate workspace for
each developer on the team, all connected to a common SVN source control repository.
Developers can also leverage applications from others in the Imported Application
Packages area. Developers do not have the source code for these packaged applications.
These may be purchased applications or applications from other teams in the same
enterprise. An example of an OpenText application that is available out of the box in the
Application Packages area is the Identity Package (see Standard domain model).
Projects
Projects can vary from simple to complex, depending on the type of application. The platform
provides options to help the developer organize their projects to make their applications easy
to maintain. The following example shows an application that has several projects.
Documents
A project contains a set of artifacts called documents. Many kinds of documents can be
added to a project and the list in the table below will continue to grow as new capabilities
are added to the platform. There are more than 60 document types, however many of them
are not frequently used and will be deprecated over time. The following table summarizes
the most frequently used and valuable document types.
1 Projects can also be referred to as a package. A package typically represents an application that has been deployed.
2 Controlling who can deploy to production, ensuring that the package deployed to production is the same as the
package that was tested, etc.
4 There is some overlap with entity modeling, as the EIS document types also provide integration features.
5 Enterprise Information Service (EIS) entity connectors provide access to information in other systems.
6 Enterprise Information Service (EIS) entity connectors provide access to information in other systems.
Sample projects
As mentioned above, projects can vary from simple to complex, depending on the type of
application. For example, a simple application might have only one or two projects, whereas
a more complex application might include numerous projects. The following example shows
an expanded view of a low-code application structure. To help make complex projects
easier to maintain, developers create a common folder structure inside each project and
establish naming conventions in the beginning of the development cycle.
Common folder
structure
Business
process
models
Home page
layouts
An entity represents a business object that is used by an organization. For example, entities
for a case management application might be Case, Requestor or Priority. Entities are
typically related to each other, as when a Case is related to the Requestor (person) who has
made the request.
Entity modeling offers low-code and compositional development capabilities that simplify
application development in various ways:
1. Introduces an intuitive way of modeling the business domain that is close to how the
subject matter expert conceptually thinks about it
2. Guides the subject matter expert when navigating through the domain model to express
business logic
With this approach, a developer can start by adding entities to their project. An entity is one
of the types of “documents” that can be added to a project. See Documents.
Building blocks
With an understanding of entities, a developer can start to think about other elements to
build onto their entities. These elements are called building blocks.
A building block adds pre-built functionality to an entity. Out of the box, AppWorks
provides a library of building blocks. For example, adding the Discussion building block to
an entity adds a threaded discussion form to it.
The following table describes the current set of building blocks. This list grows with each
release, as OpenText adds functionality to the platform.
• Basic
• Process flow
• Business logic
• Presentation
Basic
Process flow
Business logic
Business logic building blocks define business logic and integration with other parts of
the platform.
Presentation building blocks define the user interface for the application.
Content and collaboration building blocks provide users with features to manage content
and communicate about items.
The following examples show how building blocks can extend the entity:
• Lifecycle: Includes many properties, including CurrentState and last performed task
• Relationships: Adds the CreatedBy and ModifiedBy relationships to User with tracking
• Permissions: Provides permissions controlling who can upload or download the file
Imported entities
EIS entities
If the information needed by the application is only available through APIs, the developer
may choose to create an EIS connector for that repository. An EIS connector provides the
information from another repository to the project by adding appropriate entities to the
project. These EIS entities can be used much like the entities created in the project8.
The target external systems for a custom EIS connector include enterprise applications
(ERPs such as SAP®) and repositories (for example, SAP® SuccessFactors® or Microsoft®
SharePoint®). As each of these systems holds information, that information can be used
in an application. An application developer can focus on building their application without
having to create the connection to an information repository.
Order Case
management management
Enterprise
information
Content Archive
management management
People
management
The structure of an EIS entity is determined by the target repository and it cannot be
modified. That is, a developer cannot add, remove or modify its structured building blocks.
But they can add and modify presentation building blocks and build the user interface just
as they would for a native entity. Once the presentation is added, they can access an EIS
entity via OpenText™ Process Experience, just as they would access native entities.
7 The primary difference is that imported entities cannot be modified as OpenText does not own the table definition.
8 The primary difference is that EIS entities cannot be modified as they must conform to the information model in the
external repository.
1
Developer 1
Developer
• Define the entities and properties
• Implement the CRUDL operations in JAVA
• Package the EIS connector
2 3
Developer 2
Administrator Builder
• Deploy EIS connector on • Import EIS entities into project
builder’s environment • Decorate entities and use in application
• Configure connection properties • Package application
4 5
Production
Administrator Participant
• Deploy EIS connector and • Use the application
application packages • Perform CRUDL operations
• Configure connection properties
AppWorks provides a growing set of EIS connectors out of the box to support many
developer scenarios exposed via APIs, building blocks and web services.
To help customers move from other OpenText digital process automation (DPA) products,
EIS connectors have added capabilities. Out of the box, AppWorks provides connectors to:
• OpenText MBPM
• OpenText Case360
APIs
If the external system exposes an API that cannot be easily wrapped with an EIS connector,
the developer can use a business process model to retrieve information from the external
system or orchestrate transactions against it.9
API Description
SOAP AppWorks provides a set of SOAP APIs that a developer can expose for use by
coders creating applications that leverage low-code
Web AppWorks delivers a set of APIs that a developer can use in their application to
define its interaction patterns with the backend API, enabling an application to
communicate with the backend for processing information.
REST AppWorks includes a set of APIs that offers access to instances, task management
and Case activities/details
Entity REST AppWorks has an API that consists of URIs that identify resources on the server
where a developer can use the standard HTTP methods (the uniform interface).
AppWorks supports the following technology connectors that can be used to interact
with external systems:
• Database connector
• Email connector
• FTP connector
• Java connector
• SOAP connector
• REST connector
Panels
With this extensibility point, a developer can create panels to use in a layout. There are
two types of panels, entity instance and home page. Entity instance panels can only be
used on layouts on an entity. Home page panels may be used on both home page layouts
(dashboards) and entity layouts.
An entity instance panel can be configured so that it is only available in the layout designer
if a specific building block is present in the entity. As an example, the Tasks panel is only
available if the Lifecycle building block is present in the entity.
Using this extensibility point, a developer can add operators and functions to the entity
expression language. Functions can have various implementations, including rule
expressions, web services and JavaScript.
Building applications
Before a developer begins building an application, they need to think about what they want
to build. It is important to think about what problems it needs to solve, what information
they need to collect and act on, what business processes they can automate, how users will
use it and what they need to see. Thinking in in this way, will help a developer build a solid
information-based application domain model.
4 Create the user interface (Presentation) and add a form, list and layout
This section takes a closer look at the steps involved to create an application. Once an
application takes shape, a developer can add more functionality based on their requirements.
A developer begins creating an application by building entities. They must think of the
entities as the information they want to capture in their application. For example, an
automobile claims application might have Claim, Policy, Vehicle and Policy Holder entities.
A healthcare application might have Physician, Patient, Allergy and Medication entities. An
HR staffing application might have Job and Candidate entities.
Not all entities need to be related, but most of the time when building an application, one
or more of the entities are related in some way. So, after creating the entities they want in
their application, the developer must think about how they are related. For example, in an
automobile claims application, when a claim is created, the user needs to be able to select
the policy holder to create the claim. Therefore, the Claim entity must have a relationship
to Policy Holder.
After entities are defined, a developer can add properties to the entity. Properties in a
Claim entity in the automobile claims application might include, Date of Accident, Accident
Location and Driver.
Creating the user interface involves three steps that bring the application to life for users.
Typically, to begin, at least one of the following is added:
1. A form: Drag and drop the properties to design the form that users will use in
Process Experience
2. A layout: Design the layout with the panels for users to see. Often layouts display a form,
an action toolbar, breadcrumb panel and more (based upon the building blocks used in
the entity).
3. A list: Add the properties to display to users in the list. A list displays the existing entity
instances. For example, an All Jobs list in an HR staffing application would include a list
of all the job openings. This list might include properties, such as Job Title, Summary,
Date Opened and Hiring Manager.
With just four steps, an application begins to take shape. A developer can then think
about other functionality to add to the application. Options include:
• The ability for users to attach files via the Content panel
• Security permissions
All the above steps describe the functionality added to entities. However, functionality can
also be created and customized at the application level. For example, a developer might
apply their company’s color scheme with a custom theme, add their company logo to the
header or create a customized home (landing) page for users.
In addition to the customizations mentioned above, a developer can add a structured, long-
lived or short-lived business process to the application. These processes can interact with
web services and entities, allowing a developer to take advantage of any outside services
needed to accomplish their application requirements.
Applications can quickly become complex by the sheer number of items added to the
entities. Consider a simple application that has a few entities, five relationships to other
entities and only a handful of business rules. In a complex application, a single entity might
have 26 relationships and 30 to 35 business rules. In addition, complex applications often
include various structured, long-lived and short-lived business processes, integration with
external systems using web services and external user interfaces.
Process-centric applications can be used to build applications that include the following
use cases:
• Orchestration is used to create services that, when called, perform a series of operations
against one or more other services. In this case, the process has few, if any, user activities.
• Structured human interaction is used when a business process is fully understood10 and
the developer wishes to completely control the way work is performed.
10 One of the main pitfalls of this type of application is thinking the process is fully understood, when it is not. This is the
primary driver for more case-oriented application development where the participants have more control to deal with
edge conditions. In today’s world, applications with significant human interaction are usually implemented as case-
centric applications.
Orchestration scenario
Because businesses run diverse sets of information systems, often gathered through
various acquisitions, new applications must integrate with multiple existing systems.
AppWorks is designed to operate in this context. It provides connectivity for various
existing systems and a framework to build connectors for yet unsupported systems and
includes functionality to develop new applications.
Consider this following scenario: A company builds a solution to provide triple play
services to their customers. The solution needs to automate the entire chain from
taking the order on a website to activating the internet connection at home. Most of the
functionality is available in existing systems and these systems need to be integrated:
Siebel® for CRM, SAP for billing, a home-grown system for service engineer planning and
another proprietary system to handle the dispatching of physical goods, such as routers.
Solution
BIN
RFC
• The order entry form is implemented in ASP.NET, as the company has chosen to implement
the customer portal in ASP.NET.
• A set of related entities are created, including the Order entity, which is generated when
the customer submits the web form. The Order entity has a lifecycle that describes the
state and activities of the order.
• An EIS connector is built to interact with the service to manage physical goods.
• User interfaces have been created for employees through Process Experience.
Given that every new customer needs to be registered in both Siebel and SAP, the developers
built a composite service on top of both products, implemented as a short-lived business
process, on top of both systems. The composite service is a regular SOAP web service that is
implemented through the model below.
The basic communication architecture of the platform resembles a bus, as depicted in the
following diagram.
External
system
Web
gateway
Repository DPA SSO
CARS CRM
External
system
All participants linked to the bus can exchange SOAP messages. Logically, there is a
central bus that links all participants, but technically, the communication is direct. The bus
framework knows the containers that provide the logical service, which of these containers
are available right now and whether these containers are properly functioning. Within that
set, the requests are load balanced and directly sent from sender to receiver.
DPA 1
CRM
Has
Connectivity framework
The Document Management capabilities are exposed to the developer in the following ways:
• Content Server
• Archive Center
• Documentum
• OpenText Core
• Person: Represents a natural person. This entity can be used to represent a user,
employee, etc.
• Address: Persons and enterprises have an address, but the same entity can be used for
addresses of warehouses and stops for deliveries.
• User: A user of the system. This entity is related to Person, basically giving that person
the role of user in the system.
• Group: This is a notion from the security system. Commonly, roles are synchronized
from an external identity management system, for example, Microsoft ® Active
Directory®, through OpenText™ Directory Services.
• Role: This is a security notion too. Roles are defined by applications and systems to
grant permissions to user personas.
Besides these key entities, there are entities for phone number, email address, country
and state.
The entities in the Identity Package are provided for reuse by application developers. This
out-of-the-box domain model helps speed application modeling and, if used properly, also
reduces the administrative burden for users.
Explanations of all current data domain models and their properties are contained in
Appendix A: Data domain models and properties.
Even a non-coding developer can produce APIs that can be consumed by others. Adding
APIs to an entity is a trivial operation that requires virtually no coding skills.
Every process and entity in an application extends the set of APIs available for creating
the next application.
With most applications on the market, customizations could block the road to upgrades,
as they modify the original application, making it impossible to accept newer versions from
the vendor. But in AppWorks, the customizations are kept separate from the application.
The customization is applied to the original application when running it. When the vendor
delivers a new version, the customizations can be applied on top of that.
The Mobile App building block is added to the entity’s model and configured as shown below.
The app can then be deployed and enabled automatically on the OpenText™ AppWorks
Gateway. It then becomes available to mobile users through the AppWorks mobile app.
First, for an application built in AppWorks, one can download a Data Object Design file,
which can be imported into OpenText™ Analytics Designer. This file contains the connection
details, data sources and relationships of the entities in the format used by Analytics
Designer. As a result, a report developer does not have to perform the data provisioning,
which is done automatically.
Second, AppWorks provides an iHub panel, which allows displaying an iHub report or
dashboard on a layout. If required, the iHub panel interacts with its context, as reports can
be filtered dynamically based on AppWorks data being displayed.
Process Intelligence
Magellan
Massive amounts of structured and unstructured data from any source can be leveraged
and combined with AppWorks application data to enable machine-assisted decision-
making, automation and business optimization.
As Magellan comes up with findings and insights, it will deliver them through iHub reports
and dashboards to stakeholders in a visually compelling way that makes them easy to
understand and act on. With AppWorks’ iHub panel, these visualizations can be brought
back into the AppWorks application to have the insights where they need to be, with the
decision makers and knowledge workers.
Magellan can solve requirements specific to any solution built in AppWorks and digest case
management archives, employee records and similar unstructured documents to help find
more efficient processes, maintain SLAs, accurately rate employee effectiveness, manage
risk prudently or detect fraud, just to name a few examples.
A developer does not have to worry about whether their application will run in the cloud
or on-premises. They only need to build it once and can deploy it where they want–with no
extra steps. They only need to focus on how the application will work and what document
store (Content Suite, Core, xECM) to use.
Application deployment
Conclusion
As organizations continue their digital transformation, developers face a lot of pressure to do
more, faster. The low-code application development platform will ensure developers thrive
under pressure. Now they can use a consistent look and feel and infrastructure and consistent
communication methods to build applications. With these capabilities, they can more quickly
create applications and more easily deliver features that help business users succeed.
About OpenText
OpenText, The Information Company™, enables organizations to gain insight through
market leading information management solutions, on-premises or in the cloud. For more
information about OpenText (NASDAQ: OTEX, TSX: OTEX) visit: opentext.com.
• Identity component – Provided out of the box with AppWorks, it is automatically installed
and deployed and includes artifacts for the developer to leverage in their applications
• This appendix provides an overview of each domain model with a brief description of their
use. Detailed information on all properties of each entity shown in the following domain.
Identity component
Domain model overview
Most of the enterprise applications require common entities such as Person, User
and Enterprise. The purpose of this component is to provide such entities as part of
AppWorks itself so that multiple applications can use the same data set, avoiding the
data duplication for such entities in each application.
Apart from basic Entities like Person, User, Enterprise, Address, State and Country, the
Identity component provides entities to store organization structure-related information,
such as Organizational Units, Groups and Roles.
The Identity component also provides integration with OpenText Directory Services for
synchronizing user information and User/Group assignments in real time into Identity
component entities.
This package also provides APIs to access/update Personal and Organization structure
related information.
The Identity component domain model is split into two diagrams, one showing overall
domain model (without details on Person entity) and another one showing more detailed
diagram around Person entity.
The Case Management application can automate a complex, unpredictable and unstructured
business process. It empowers knowledge workers to handle scenarios with dynamic and
unpredictable interactions between people, processes and content. Case Management offers
knowledge workers complete flexibility to intervene and decide the next course of action
in the process, to modify case progression and to initiate ad-hoc jobs based on the tasks
at hand. Case Management offers organizations flexibility to adapt processes according to
their business requirements. After a few iterations, organizations can further customize and
configure this generic system by means of enhancing or subtyping.
The Help Topic Management component provides capabilities to manage Help articles in
various formats, for example, File, Text and Hyperlink to an existing webpage. This article
can be categorized and searched based on the keywords associated with the articles.
These modules also provide search and view capabilities, which other applications can
use to find content more quickly and easily and to help users find enough information for
a specific category or keyword.
opentext.com/contact
Copyright ©2018 Open Text. OpenText is a trademark or registered trademark of Open Text. The list of trademarks is not exhaustive of other trademarks.
Registered trademarks, product names, company names, brands and service names mentioned herein are property of Open Text. All rights reserved.
For more information, visit: http://www.opentext.com/2/global/site-copyright.html • (04/2018)09781.2EN 26/26