SDC Component Diagram:
Sequence Diagram:
In this case, the Catalog plays a manager role of the workflows, it manage the designed workflows and provide the Create/Updata/Query operations of workflows for Service Designer and provide the storage of workflows.
At the same time, the '(ZTE) WF Designer' plays an editor role of a workflow selected.
The interaction between Catalog and '(ZTE) WF Designer' is as follows:
So, the rest APIs of Catalog should be provide by Amdocs/AT&T as follow:
Get Workflow Content by WF ID
Get Brief Information of Extend BPMN Activities (from Catalog)
Get Detail Information of Extend BPMN Activites (from Catalog)
Save Workflow Content with WF ID (to Catalog)
The rest APIs of '(ZTE) WF Designer' should be provided by ZTE as follow:
- Open and Navigates to (ZTE) WF Designer
Rest APIs of (ZTE) WF Designer:
Define the Rest APIs of (ZTE) WF Designer, these APIs will be provided by ZTE.
Open and Navigates to (ZTE) WF Designer:
Open the an existed workflow and navigate to the '(ZTE) WF Designer'.
For a new workflow, before it be opened, the catalog should create it first. The Sequence Diagram shows as follow:
URL:
Get http://{wf-designer-ip}:{port}/workflow-modeler
Request:
Query Parameters:
Name | Data Type | Required | Description | Comment |
---|---|---|---|---|
id | String | Yes | Unique UUID of the workflow | |
operation | Enum | Yes | The operation for the workflow, Valid value as follow: view - can view only, can't modify. modify - can view and modify both. |
Response:
Navigate to the (ZTE) WF Designer UI, load the workflow data with the given id from Catalog.
Rest APIs of Catalog
Define the rest APIs of Catalog, these APIs will be provided by Amdocs/AT&T.
Get Workflow Content by WF ID
URL:
GET http://{sdc-ip}:{port}/api/sdc/v1/workflow-modeler/models/{id}
Request:
Path Parameters:
Name | Data Type | Required | Description | Comment |
---|---|---|---|---|
id | String | Yes | Unique UUID of the workflow |
Response:
Return the information of the workflow in json format. see data information WorkflowInfo for details.
Get Brief Information of Extend BPMN Activities (from Catalog)
Get the extend Activities such as 'Stop Traffic', 'Stop VNF', 'Create VNF', etc.
URL:
GET http://{sdc-ip}:{port}/api/sdc/v1/workflow-modeler/ext-activities
Request:
Query Parameters:
Name | Data Type | Required | Description | Comment |
---|---|---|---|---|
scene | Enum | Yes | the scene of the workflow designer. Valid value as follow: resource - open a VNF's workflow service - open a Service's workflow | different scene may has different activities extend. |
Response:
Name | Data Type | Required | Description | Comment |
---|---|---|---|---|
activities | ExtendActivityBriefInfo[] | Yes | extend activity brief/base information list |
Get Detail Information of Extend BPMN Activites (from Catalog):
URL:
GET http://{sdc-ip}:{port}/api/sdc/v1/workflow-modeler/ext-activities/{id}
Request:
Path Parameters:
Name | Data Type | Required | Description | Comment |
---|---|---|---|---|
id | String | Yes | Uniqued id of the extend bpmn activity. |
Response:
Return the detail information of the extend activity. see data information ExtendActivity for details.
Save Workflow Content with WF ID (to Catalog)
Save workflow content to the Catalog.
URL:
PUT http://{sdc-ip}:{port}/api/sdc/v1/workflow-modeler/models/{id}
Request:
Pah Parameters:
Name | Data Type | Required | Description | Comment |
---|---|---|---|---|
id | String | Yes | Unique UUID of the workflow |
Body Parameters:
The information of the workflow in json format, for details to see data information WorkflowInfo.
Response:
Name | Data Type | Required | Description | Comment |
---|---|---|---|---|
id | String | Yes | Unique UUID of the workflow saved |
Data Information:
WorkflowInfo:
Name | Data Type | Required | Description | Comment |
---|---|---|---|---|
id | String | Yes | Unique UUID of the workflow | |
name | String | Yes | Name of the workflow | |
version | String | No | version of the workflow | |
description | String | No | description of the workflow | |
scene | Enum | Yes | the scene of the workflow designer. Valid value as follow: resource - open a VNF's workflow service - open a Service's workflow | different scene may has different activities extend. |
data | String | Yes | Contnent of the workflow in json format | for new workflow, the data field maybe empty. |
ExtendActivityBriefInfo:
Brief informtion of the extend activity.
Name | Data Type | Required | Description | Comment |
---|---|---|---|---|
id | String | Yes | id of the activity | |
name | String | Yes | name of the activity | |
description | String | No | name of the activity | |
category | String | No | Categorization to help better experience to the Designer while building the work-flow | |
svg | String | Yes | the icon to show |
ExtendActivity:
Detail informtion of the extend activity.
Name | Data Type | Required | Description | Comment |
---|---|---|---|---|
id | String | Yes | id of the activity | |
name | String | Yes | name of the activity | |
description | String | No | description of the activity | |
category | String | No | Categorization to help better experience to the Designer while building the work-flow | |
type | Enum | Yes | activity type, valid values as follow: java - Service(Java) Task script - Script Task rest - Rest Task | |
activity | JavaTask|ScriptTask|RestTask | Yes | Type related bpmn task information of the activity. These information will be used by the workflow engine. | JavaTask for Service(Java) Task, ScriptTask for Script Task, RestTask for Rest Task. |
JavaTask:
Name | Data Type | Required | Description | Comment |
---|---|---|---|---|
class | String | Yes | The implement class of the bpmn service task | |
inputs | Input[] | No | The input parameter definitions of the service task. These parameters will dispaly on UI for designer to fullfill. | |
mappingInputs | MappingInput[] | No | The mapping input parameter definitions of the service task. These parameters will tranform to the actual input parameters of the service task which will be executed on the workflow engine. | Only define the relationshipe between the actual input parameter and the UI dispalyed input parameter of the bpmn task. |
ScriptTask:
Name | Data Type | Required | Description | Comment |
---|---|---|---|---|
format | String | Yes | The default script format, For example: javascript groovy | |
script | String | Yes | The default script content. |
RestTask:
Name | Data Type | Required | Description | Comment |
---|---|---|---|---|
url | String | No | The URL of the REST API exposed through the API router. | Choose between the 'url' field and ('name', 'version') filed. |
name | String | No | The microservcie name of the REST API. Only for the condition of access the REST API via MircoServiceBus. | |
version | String | No | The microservcie version of the REST API. Only for the condition of access the REST API via MircoServiceBus. | In the condition of access the REST API via MircoServiceBus, The workflow engine can query the URL of the REST API exposed through the MircoServiceBus by name and version. |
path | String | Yes | The path of the REST API relative to the API router exposed path. | |
method | Enum | Yes | The method of the rest api to be called while the activity be executed on the workflow engine. Valid value as follow: get, post, put, delete | |
headers | Map<Strting, String> | Yes | The header paramters of the rest api associated to the rest task. Map key is the header paramter name, such as 'Accept'.Map value is the header paramter name, such as ''application/json. | |
inputs | Input[] | No | The input parameter definitions of the rest task. These parameters will dispaly on UI for designer to fullfill. | |
mappingInputs | MappingInput[] | No | The mapping input parameter definitions of the rest task. These parameters will tranform to the actual input parameters of the rest task which will be executed on the workflow engine. | Only define the relationshipe between the actual input parameter and the UI dispalyed input parameter of the bpmn task. |
Input:
Name | Data Type | Required | Description | Comment |
---|---|---|---|---|
name | String | Yes | Input paramter name | |
dataType | Enum | Yes | data type of the input paramter. Valid value as follow: string, integer, float, boolean, enum | |
required | boolean | Yes | Should the input paramter be necessary? true - necessary false - not necessary | |
default | any | No | the default value of the input paramter. | |
enumValue | String[] | No | the enum value of the paramter. only need when the dataType of the paramter is 'enum'. |
MappingInput:
Define the relationshipe between the actual input parameter and the UI dispalyed input parameter of the bpmn task.
Name | Data Type | Required | Description | Comment |
---|---|---|---|---|
name | String | Yes | The actual parameter name of the bpmn task. | |
valueType | Enum | Yes | Type of the 'Value' field, Valid Value as follow: fixed - fixed value, suck as 'abc', 123 reference - name of the UI displayed parameter referenced | |
value | any | No | fixed value or UI displayed parameter name referenced. such as: "abc" –fixed 123 --fixed true –fixed [Name] - UI displayed parameter name |