The custom development of Process Automation is restricted to four areas:
Communication with an external system should use the REST connector or the Lambda connector.
Important: The REST service and the AWS Lambda account and function need to be hosted outside of the Alfresco hosted environment.
Both connectors can send and return JSON payloads from a process. The REST connector can also be configured as a trigger for webhooks.
The default end user interface provided with Process Automation is the Alfresco Digital Workspace.
Note: The Digital Workspace can be extended to customize the branding and components. If your requirement is to customize large parts of the Digital Workspace then consider developing a custom user interface instead.
To start developing Digital Workspace customizations:
Request the source code from Support.
Unzip the source code into your development environment and create a .env file in the root folder.
Insert the following contents in the .env file:
# GENERAL AUTH_TYPE="OAUTH" PROVIDER="ALL" LOG_LEVEL="TRACE" ACA_BRANCH="develop" # ADW + APA API_HOST="https://..." API_CONTENT_HOST="https://..." API_PROCESS_HOST="https://..." OAUTH_HOST="https://..." IDENTITY_HOST="https://..." PLUGIN_PROCESS_SERVICE=true APP_CONFIG_APPS_DEPLOYED="[{"name": "..."}]"
Update the contents of the .env file with the following:
| Property | Description |
|---|---|
| API_HOST | The API host for the environment in the format https://alfresco.com. |
| API_CONTENT_HOST | The API host for the content services in the format https://alfresco.com. |
| API_PROCESS_HOST | The API host for the process services in the format https://alfresco.com. |
| OAUTH_HOST | The authentication host in the format https://alfresco.com/auth/realms/alfresco. |
| IDENTITY_HOST | The identity service host in the format https://alfresco.com/auth/realms/alfresco. |
| APP_CONFIG_APPS_DEPLOYED | The name of the deployed application to extend the Digital Workspace against. The name is set when the application is deployed, for example [{"name": "invoice-approval-application"}]. |
Run the following command from the root of your local Digital Workspace: npm run start content-en-cloud.
Your local Digital Workspace is now connected to your hosted Process Automation application and can be extended, tested and debugged.
The Digital Workspace is built using the Application Development Framework. There are a set of content components and a set of process components that can be extended.
Note: Process Automation uses the Process Services Cloud components.
Once the extended Digital Workspace has been fully customized and tested it can be deployed.
Remove the .env file from your source code.
Upload your source code to your Alfresco S3 bucket.
Note: Please contact Support if you do not have the details of this bucket.
Raise a Support request with this information:
A link to the source code in S3.
The name of the application to update.
Note: This should match what is configured in the app.config.json for the interface.
The environment the application is deployed in.
When the application should be updated with the new interface.
The Application Development Framework (ADF) can be used to develop a custom end user interface from scratch.
The Yeoman generator can be used to develop custom user interfaces for Process Automation.
Clone the Yeoman generator project.
Open apps/utils.js and remove the following two templates from being excluded:
const excludedTemplates = ['adf-cli-activiti-template', 'adf-cli-activiti-acs-template'];
Run the following command from the root of the project: yo alfresco-adf-app.
Configure the security in the app.config.json of the generated application:
"$schema": "../node_modules/@alfresco/adf-core/app.config.schema.json",
"ecmHost": "http://{hostname}{:port}",
"bpmHost": "http://{hostname}{:port}",
"identityHost": "https://{hostname}{:port}/auth/realms/alfresco",
"providers": "ALL",
"appName": "invoice-approval-application",
"application": {
"name": "Alfresco ADF Application"
},
"authType": "OAUTH",
"oauth2": {
"host": "https://{hostname}/auth/realms/alfresco",
"clientId": "invoice-approval-application",
"scope": "openid",
"secret": "",
"implicitFlow": true,
"silentLogin": true,
"redirectSilentIframeUri": "{protocol}//{hostname}{:port}/assets/silent-refresh.html",
"redirectUri": "/",
"redirectUriLogout": "/"
},
Add the property "alfresco-deployed-apps" to the app.config.json with the name of the deployed application you are developing an interface for. For example, "alfresco-deployed-apps": [{"name":"invoice-approval-application"}].
To develop the interface locally, CORS will need to be bypassed. Edit the proxy.conf.js replacing the {hostname} and {realm} with those relevant to your environment and realm:
module.exports = { "/auth/admin/realms/{realm}": { "target": "https://{hostname}", "secure": false, "pathRewrite": { "^/auth/admin/realms/{realm}": "" }, "changeOrigin": true, "logLevel": "debug" }, "/auth/realms/...": { "target": "https://{hostname}", "secure": false, "pathRewrite": { "^/auth/realms/{realm}": "" }, "changeOrigin": true, "logLevel": "debug" }, "/": { "target": "https://{hostname}", "secure": false, "changeOrigin": true, "logLevel": "debug" }, "/alfresco": { "target": "https://{hostname}", "secure": false, "changeOrigin": true } }
There are a set of content components and a set of process components that can be used to develop the custom user interface with. The content components can only be used if you selected the option Content and Process Services with Activiti when generating the application.
Note: Process Automation uses the Process Services Cloud components.
Once the custom interface has been fully developed and tested it can be deployed.
Upload your source code to your Alfresco S3 bucket.
Note: Please contact Support if you do not have the details of this bucket.
Raise a Support request with this information:
A link to the source code in S3.
The name of the application to update
Note: This should match what is configured in the app.config.json for the interface.
The environment the application is deployed in.
When the application should be updated with the new interface.
To include custom form fields within a form, the form field customizations must be included in the customization of Digital Workspace or the development of a custom user interface.
Note: The custom field can be included in a form before the custom interface has been deployed.
© 2023 Alfresco Software, Inc. All Rights Reserved.
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.