eBAConnect Document
This document describes the configuration of eBAConnect, the endpoints in it, and the request-response models of these endpoints.
Configuration
In order to run the eBAConnect API, the values under the appSettings breakdown in the eBAConnect/Web.Config file must be set in the instructions below.
- eBAPath: The location of the Common folder in the directory where eBA is installed (e.g. C:\BimserCozum\eBA\Common).
- Server: The instance name of the installed eBA (e.g. PRODUCTION).
General Information
There are 4 different controllers in the API, these are;
- Login
- Menu
- Process
- ShareLink
NOTE: Endpoints that do not have a response example in the document do not return a value.
The API includes a response wrapper, so all endpoint results are returned in a fixed format. You can check out the format below.
Success
'''json { "Success": true, "Code": 200, "Result": null }
#### Error
'''json
{
"success": false,
"code": 200,
"message": "An error occured",
"stackTrace": "An error occured in PropertyController line:21"
}
Authentication
In order to use the endpoints in the API, a token must be obtained with a user registered in the eBA system, and then other endpoints must be used with this token. The api/Login/Login '(POST)' endpoint is used to get tokens. In other endpoints, we need to send this created token with the token value in the header section.
Request Example
http://localhost/eBAConnect/api/Login/Login
Request Body Parameters
- UserId ('string'): eBA username.
- ImpersonatingUserId ('string'): The ID of the user on whose behalf the action will be taken.
- Password ('string'):eBA user password.
- Language ('string'): The language to be used can be specified, such as English, Turkish.
- ExternalUserType ('string'): The parameter value that needs to be defined by the eBAConfiguration Manager must be defined in the Security.AcceptedExternalUserProperties key, multiple values can be specified by separating them with "," A custom property must be defined on the SystemManager to be the same as this defined value.
- ExternalUserName ('string'): The value to be given to the defined ExternalUserType property. This value must be set to the user to be logged in on SystemManager.
Response Example
'''json { "Success": true, "Code": 200, "Result": { "UserID": "admin", "ImpersonatingUser": "admin", "Token": "h7b9g1N+69N2X7VieO75Hd05UcK6YfzYTnwNIFnrJS8maKyK2pFxmrIpofVXBdeHw4CAkH8MlIDoD8VTr3FHMKC6xjUK0VLVX+7Ldaw+Gpc=" } }
## Endpoints
### api/Login/**Logout** '[POST]'
---
Ends the session by deleting the eBAConnect token.
#### Headers
Content-Type: 'application/json'\
**Token**: 'token'
### api/Menu/**GetMenuStructure** '[POST]'
---
Based on the token information sent, it brings up menus that the user can see.
#### Headers
Content-Type: 'application/json'\
**Token**: 'token'
#### Request Example
'''json
{
"ExcludeTypes": [
0
]
}
Request Body Parameters
- ExcludeTypes ('integer[]'): Specifies the menu types that are not intended to be fetched.
Response Example
'''json { "Success": true, "Code": 200, "Result": [ { "id": 0, "ParentId": 0, "Text": "string", "Items": [ { "id": 0, "ParentId": 0, "Text": "string", "Items": [ {} ], "NodeKey": "string", "NodeActionType": 0 } ], "NodeKey": "string", "NodeActionType": 0 } ] }
### api/Process/**GetWaitingProcesses** '[POST]'
---
Based on the token information sent, the user's checklist is returned.
#### Headers
Content-Type: 'application/json'\
**Token**: 'token'
#### Response Example
'''json
{
"Success": true,
"Code": 200,
"Result": [
{
"ProcessName": "string",
"ProcessCaption": "string",
"Description": {},
"Count": 0,
"MultiLanguage": true
}
]
}
api/Process/GetWaitingProcessRequests '[POST]'
Based on the submitted values, pending processes and their values are returned.
Headers
Content-Type: 'application/json'\ Token: 'token'
Request Example
'''json { "ProcessName": "string", "Skip": 0, "Take": 0 }
#### Request Body Parameters
* **ProcessName** ('string'): The name of the process whose details are to be fetched.
* **skip** ('integer'): Parameter that specifies how many values to skip for the paging operation.
* **Take** ('integer'): A parameter that specifies how many values to fetch for the paging operation.
#### Response Example
'''json
{
"Success": true,
"Code": 200,
"Result": [
{
"ProcessId": 0,
"RequestId": 0,
"Status": "string",
"Fields": [
{
"Name": "string",
"FieldName": "string",
"Value": "string",
"OrjValue": {},
"FieldType": 0,
"OrjName": "string",
"DisplayFormat": "string"
}
],
"RequestDate": {}
}
]
}
api/Process/GetFlowRequestEvents '[POST]'
Fetches the events of the process according to the values sent.
Headers
Content-Type: 'application/json'\ Token: 'token'
Request Example
'''json { "ProcessId": 0, "RequestId": 0 }
#### Request Body Parameters
* **ProcessId** ('integer'): The ID value of the process for which events are to be fetched.
* **RequestId** ('integer'): The Request ID value of the process whose events are to be fetched.
#### Response Example
'''json
{
"Success": true,
"Code": 200,
"Result": {
"Events": [
{
"id": 0,
"Text": "string",
"ReasonRequired": true,
"Validate": true,
"EventForm": "string",
"EventIcon": "string",
"EventIconColor": "string",
"Confirm": true,
"FastApprove": true,
"DigitalSignatureRequired": true
}
]
}
}
api/Process/ContinueProcess '[POST]'
According to the sent values, it proceeds the process through the specified event.
Headers
Content-Type: 'application/json'\ Token: 'token'
Request Example
'''json { "ProcessId": 0, "RequestId": 0, "EventId": 0, "Reason": "string", "EventFormId": 0 }
#### Request Body Parameters
ProcessId** ('integer'): The ID of the process to be escalated.
* **RequestId** ('integer'): The Request ID of the process to be escalated.
* **EventId** ('integer'): The Event ID value that specifies which event the process will proceed from.
* **Reason** ('string'): The field where to enter the reason value for events with Reason Required.
* **EventormId** ('integer'): If Event will open a form, the ID of that form.
### api/ShareLink/**CreateLinkForProcessItem** '[POST]'
---
Based on the submitted values, it returns a URL from which to open the process.
#### Headers
Content-Type: 'application/json'\
**Token**: 'token'
#### Request Example
'''json
{
"ProcessId": 0,
"RequestId": 0
}
Request Body Parameters
- ProcessId ('integer'): The ID of the process for which the link is to be created.
- RequestId ('integer'): The Request ID of the process for which the link is to be created.
Response Example
'''json { "Success": true, "Code": 200, "Result": "http://localhost/eba.net/default.aspx?ep=63927904-EF0F-4748-9E68-8F9924831D37" }
### api/ShareLink/**CreateLinkForMenu** '[POST]'
---
Creates a link for the menu according to the MenuItemKey value sent.
#### Headers
Content-Type: 'application/json'\
**Token**: 'token'
#### Request Example
'''json
{
"MenuItemKey": 0
}
Request Body Parameters
- MenuItemKey ('integer'): The value of the menu to which you want to link.
Response Example
'''json { "Success": true, "Code": 200, "Result": "http://localhost/eba.net/default.aspx?ep=099A84FD-E43D-40E7-84DC-89B99608FB3C" }