Skip to main content

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" }