diff --git a/workflow/engine/bin/tasks/cliFlushCache.php b/workflow/engine/bin/tasks/cliFlushCache.php index 543b68932..f69ca51bd 100644 --- a/workflow/engine/bin/tasks/cliFlushCache.php +++ b/workflow/engine/bin/tasks/cliFlushCache.php @@ -28,6 +28,8 @@ G::LoadSystem("g"); CLI::taskName('flush-cache'); CLI::taskDescription(<< 0 ) { $taskName = $args[0]; } else { $taskName = $args; } if (! $taskName) { - echo "usage: $scriptName [options] [args]\n"; - echo "Type '$scriptName help ' for help on a specific task\n"; - echo "\nAvailable tasks:\n"; + echo "usage: processmaker [options] [args]\n"; + echo " If using Linux/UNIX, prepend './' to specify the directory: " . $scriptName . " [options] [args]\n"; + echo "Type 'processmaker help ' for help on a specific task."; + echo "\n\nAvailable tasks:\n"; $tasks = array (); ksort( self::$tasks ); foreach (self::$tasks as $name => $data) { @@ -180,13 +181,16 @@ class CLI } $valid_args[] = $arg; } + + $nameHotfixFile = ($taskName == "hotfix-install")? "HOTFIX-FILE" : ""; + $valid_args = join( " ", $valid_args ); $description = explode( "\n", self::$tasks[$taskName]['description'] ); $taskDescription = trim( array_shift( $description ) ); $description = trim( implode( "\n", $description ) ); $message = <<< EOT $taskName: {$taskDescription} -Usage: $scriptName $taskName $valid_args +Usage: processmaker $taskName $nameHotfixFile $valid_args $description diff --git a/workflow/engine/classes/class.licensedFeatures.php b/workflow/engine/classes/class.licensedFeatures.php index 7bdb7fa30..5235bda86 100644 --- a/workflow/engine/classes/class.licensedFeatures.php +++ b/workflow/engine/classes/class.licensedFeatures.php @@ -29,7 +29,7 @@ class PMLicensedFeatures private $features = array (); private $newFeatures = array( 0 => array( - "description" => "Enables de Actions By Email feature.", + "description" => "Actions By Email allows users to enter information and route cases via email.", "enabled" => false, "id" => "actionsByEmail", "latest_version" => "", @@ -46,7 +46,7 @@ class PMLicensedFeatures "version" => "" ), 1 => array( - "description" => "Enables de Batch Routing feature.", + "description" => "Batch Routing allows a user to route multiple cases at a time onto the next task in the process. ", "enabled" => false, "id" => "pmConsolidatedCL", "latest_version" => "", @@ -97,7 +97,7 @@ class PMLicensedFeatures "version" => "" ), 4 => array( - "description" => "Registers every admin action in a log. The actions in administration settings options are registered in the log.", + "description" => "Registers every administrator action in a log. Any change in the settings under the Admin menu is registered in the log.", "enabled" => false, "id" => "auditLog", "latest_version" => "", @@ -131,7 +131,7 @@ class PMLicensedFeatures "version" => "" ), 6 => array( - "description" => "This functionality enables the flexibility to send mails from different email servers or configurations.", + "description" => "This features allows ProcessMaker to send out notifications using different email accounts and email servers.", "enabled" => false, "id" => "sendEmailFromDifferentEmailServers", "latest_version" => "", @@ -423,4 +423,3 @@ class PMLicensedFeatures } /*----------------------------------********---------------------------------*/ } - diff --git a/workflow/engine/classes/class.pmDynaform.php b/workflow/engine/classes/class.pmDynaform.php index 9975154bc..6c0301310 100644 --- a/workflow/engine/classes/class.pmDynaform.php +++ b/workflow/engine/classes/class.pmDynaform.php @@ -177,7 +177,7 @@ class pmDynaform array_push($json->optionsSql, $option); } } catch (Exception $e) { - + } } if (isset($json->options[0])) { diff --git a/workflow/engine/data/mysql/insert.sql b/workflow/engine/data/mysql/insert.sql index 7226a23ae..436481405 100644 --- a/workflow/engine/data/mysql/insert.sql +++ b/workflow/engine/data/mysql/insert.sql @@ -60026,10 +60026,10 @@ INSERT INTO CATALOG (CAT_UID, CAT_LABEL_ID, CAT_TYPE, CAT_FLAG, CAT_OBSERVATION, ('1050','ID_OVER_DUE','INDICATOR','%','Unit for displaying','2015-03-04','2015-03-04'); INSERT INTO ADDONS_MANAGER (ADDON_DESCRIPTION,ADDON_ID,ADDON_NAME,ADDON_NICK,ADDON_PUBLISHER,ADDON_RELEASE_TYPE,ADDON_STATUS,STORE_ID,ADDON_TYPE,ADDON_DOWNLOAD_URL,ADDON_VERSION,ADDON_DOWNLOAD_PROGRESS) VALUES -('Enables de Actions By Email feature.','actionsByEmail','actionsByEmail','actionsByEmail','Colosa','localRegistry','ready','00000000000000000000000000010004','features','','','0'), -('Enables de Batch Routing feature.','pmConsolidatedCL','pmConsolidatedCL','pmConsolidatedCL','Colosa','localRegistry','ready','00000000000000000000000000010005','features','','','0'), +('Actions By Email allows users to enter information and route cases via email.','actionsByEmail','actionsByEmail','actionsByEmail','Colosa','localRegistry','ready','00000000000000000000000000010004','features','','','0'), +('Batch Routing allows a user to route multiple cases at a time onto the next task in the process.','pmConsolidatedCL','pmConsolidatedCL','pmConsolidatedCL','Colosa','localRegistry','ready','00000000000000000000000000010005','features','','','0'), ('Dashboard with improved charting graphics and optimized to show strategic information like Process Efficiency and User Efficiency indicators.','strategicDashboards','strategicDashboards','Strategic Dashboards','Colosa','localRegistry','ready','00000000000000000000000000010006','features','','','0'), ('Enables the configuration of a second database connection in order to divide the database requests in read and write operations. This features is used with database clusters to improve the application performance.','secondDatabaseConnection','secondDatabaseConnection','secondDatabaseConnection','Colosa','localRegistry','ready','00000000000000000000000000010000','features','','','0'), ('A more secure option to store user passwords in ProcessMaker. The modern algorithm SHA-2 is used to store the passwords.','secureUserPasswordHash','secureUserPasswordHash','secureUserPasswordHash','Colosa','localRegistry','ready','00000000000000000000000000010002','features','','','0'), -('This functionality enables the flexibility to send mails from different email servers or configurations.','sendEmailFromDifferentEmailServers','sendEmailFromDifferentEmailServers','sendEmailFromDifferentEmailServers','Colosa','localRegistry','ready','00000000000000000000000000010003','features','','','0'), -('Registers every admin action in a log. The actions in administration settings options are registered in the log.','auditLog','auditLog','auditLog','Colosa','localRegistry','ready','00000000000000000000000000010001','features','','','0'); +('This features allows ProcessMaker to send out notifications using different email accounts and email servers.','sendEmailFromDifferentEmailServers','sendEmailFromDifferentEmailServers','sendEmailFromDifferentEmailServers','Colosa','localRegistry','ready','00000000000000000000000000010003','features','','','0'), +('Registers every administrator action in a log. Any change in the settings under the Admin menu is registered in the log.','auditLog','auditLog','auditLog','Colosa','localRegistry','ready','00000000000000000000000000010001','features','','','0'); diff --git a/workflow/engine/methods/controls/varsAjax.php b/workflow/engine/methods/controls/varsAjax.php index b05999ff0..843b775a5 100755 --- a/workflow/engine/methods/controls/varsAjax.php +++ b/workflow/engine/methods/controls/varsAjax.php @@ -86,14 +86,17 @@ $html .= ''; $html .= ''; $html .= '     '; $html .= ''; diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/DataBaseConnection.php b/workflow/engine/src/ProcessMaker/BusinessModel/DataBaseConnection.php index 68354446c..6f71762eb 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/DataBaseConnection.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/DataBaseConnection.php @@ -31,6 +31,12 @@ class DataBaseConnection while ($row = $rs->getRow()) { $row = array_change_key_case($row, CASE_LOWER); $dataDb = $this->getDataBaseConnection($pro_uid, $row['dbs_uid'], false); + + if($dataDb["dbs_type"] == "oracle" && $dataDb["dbs_connection_type"] == "TNS") { + $dataDb["dbs_server"] = "[" . $dataDb["dbs_tns"] . "]"; + $dataDb["dbs_database_name"] = "[" . $dataDb["dbs_tns"] . "]"; + } + $dbConnecions[] = array_change_key_case($dataDb, CASE_LOWER); $rs->next(); } @@ -96,6 +102,8 @@ class DataBaseConnection $oContent = new \Content(); $dataDBConnection = array_change_key_case($dataDBConnection, CASE_UPPER); + $flagTns = ($dataDBConnection["DBS_TYPE"] == "oracle" && $dataDBConnection["DBS_CONNECTION_TYPE"] == "TNS")? 1 : 0; + $dataDBConnection['PRO_UID'] = $pro_uid; if (isset($dataDBConnection['DBS_TYPE'])) { @@ -109,17 +117,23 @@ class DataBaseConnection } } - if (isset($dataDBConnection['DBS_SERVER']) && $dataDBConnection['DBS_SERVER'] == '') { + if (isset($dataDBConnection["DBS_SERVER"]) && $dataDBConnection["DBS_SERVER"] == "" && $flagTns == 0) { throw (new \Exception(\G::LoadTranslation("ID_DBC_SERVER_INVALID", array($dataDBConnection['DBS_SERVER'])))); } - if (isset($dataDBConnection['DBS_DATABASE_NAME']) && $dataDBConnection['DBS_DATABASE_NAME'] == '') { + if (isset($dataDBConnection["DBS_DATABASE_NAME"]) && $dataDBConnection["DBS_DATABASE_NAME"] == "" && $flagTns == 0) { throw (new \Exception(\G::LoadTranslation("ID_DBC_DBNAME_INVALID", array($dataDBConnection['DBS_DATABASE_NAME'])))); } if (isset($dataDBConnection['DBS_PORT']) && ($dataDBConnection['DBS_PORT'] == ''|| $dataDBConnection['DBS_PORT'] == 0)) { - throw (new \Exception(\G::LoadTranslation("ID_DBC_PORT_INVALID", array($dataDBConnection['DBS_PORT'])))); + if ($flagTns == 0) { + throw (new \Exception(\G::LoadTranslation("ID_DBC_PORT_INVALID", array($dataDBConnection["DBS_PORT"])))); + } + } + + if (isset($dataDBConnection["DBS_TNS"]) && $dataDBConnection["DBS_TNS"] == "" && $flagTns == 1) { + throw (new \Exception(\G::LoadTranslation("ID_DBC_TNS_NOT_EXIST", array($dataDBConnection["DBS_TNS"])))); } if (isset($dataDBConnection['DBS_ENCODE'])) { @@ -140,11 +154,25 @@ class DataBaseConnection if ($dataDBConnection['DBS_PASSWORD'] == 'none') { $dataDBConnection['DBS_PASSWORD'] = ''; } else { - $pass = G::encrypt( $dataDBConnection['DBS_PASSWORD'], $dataDBConnection['DBS_DATABASE_NAME']) . "_2NnV3ujj3w"; + if ($flagTns == 0) { + $pass = \G::encrypt( $dataDBConnection["DBS_PASSWORD"], $dataDBConnection["DBS_DATABASE_NAME"]) . "_2NnV3ujj3w"; + } else { + $pass = \G::encrypt($dataDBConnection["DBS_PASSWORD"], $dataDBConnection["DBS_TNS"]) . "_2NnV3ujj3w"; + } + $dataDBConnection['DBS_PASSWORD'] = $pass; } } + if ($flagTns == 0) { + $dataDBConnection["DBS_CONNECTION_TYPE"] = "NORMAL"; + $dataDBConnection["DBS_TNS"] = ""; + } else { + $dataDBConnection["DBS_SERVER"] = ""; + $dataDBConnection["DBS_DATABASE_NAME"] = ""; + $dataDBConnection["DBS_PORT"] = 0; + } + if ($create) { unset($dataDBConnection['DBS_UID']); // TEST CONNECTION @@ -216,42 +244,54 @@ class DataBaseConnection $dataCon = array_change_key_case($dataCon, CASE_UPPER); + $flagTns = ($dataCon["DBS_TYPE"] == "oracle" && $dataCon["DBS_CONNECTION_TYPE"] == "TNS")? 1 : 0; + G::LoadClass( 'net' ); - $Server = new \NET($dataCon['DBS_SERVER']); - // STEP 1 : Resolving Host Name - $respTest['0'] = array(); - $respTest['0']['test'] = 'Resolving Host Name ' . $dataCon['DBS_SERVER']; - if ($Server->getErrno() != 0) { - if ($returnArray) { - $respTest['0']['error'] = "Error Testing Connection: Resolving Host Name FAILED : " . $Server->error; - } else { - $resp['message'] = "Error Testing Connection: Resolving Host Name FAILED : " . $Server->error; - return $resp; + if ($flagTns == 0) { + $Server = new \NET($dataCon['DBS_SERVER']); + + // STEP 1 : Resolving Host Name + $respTest['0'] = array(); + $respTest['0']['test'] = 'Resolving Host Name ' . $dataCon['DBS_SERVER']; + if ($Server->getErrno() != 0) { + if ($returnArray) { + $respTest['0']['error'] = "Error Testing Connection: Resolving Host Name FAILED : " . $Server->error; + } else { + $resp['message'] = "Error Testing Connection: Resolving Host Name FAILED : " . $Server->error; + return $resp; + } } - } - // STEP 2 : Checking port - $respTest['1'] = array(); - $respTest['1']['test'] = 'Checking port ' . $dataCon['DBS_PORT']; - $Server->scannPort($dataCon['DBS_PORT']); - if ($Server->getErrno() != 0) { - if ($returnArray) { - $respTest['1']['error'] = "Error Testing Connection: Checking port FAILED : " . $Server->error; - } else { - $resp['message'] = "Error Testing Connection: Checking port FAILED : " . $Server->error; - return $resp; + // STEP 2 : Checking port + $respTest['1'] = array(); + $respTest['1']['test'] = 'Checking port ' . $dataCon['DBS_PORT']; + $Server->scannPort($dataCon['DBS_PORT']); + if ($Server->getErrno() != 0) { + if ($returnArray) { + $respTest['1']['error'] = "Error Testing Connection: Checking port FAILED : " . $Server->error; + } else { + $resp['message'] = "Error Testing Connection: Checking port FAILED : " . $Server->error; + return $resp; + } } - } - // STEP 3 : Trying to connect to host - $respTest['2'] = array(); - $respTest['2']['test'] = 'Connecting to host ' . $dataCon['DBS_SERVER'] . (($dataCon['DBS_PORT'] != '') ? ':'.$dataCon['DBS_PORT'] : ''); - $Server->loginDbServer($dataCon['DBS_USERNAME'], $dataCon['DBS_PASSWORD']); - $Server->setDataBase($dataCon['DBS_DATABASE_NAME'], $dataCon['DBS_PORT']); - if ($Server->errno == 0) { - $response = $Server->tryConnectServer($dataCon['DBS_TYPE']); - if ($response->status != 'SUCCESS') { + // STEP 3 : Trying to connect to host + $respTest['2'] = array(); + $respTest['2']['test'] = 'Connecting to host ' . $dataCon['DBS_SERVER'] . (($dataCon['DBS_PORT'] != '') ? ':'.$dataCon['DBS_PORT'] : ''); + $Server->loginDbServer($dataCon['DBS_USERNAME'], $dataCon['DBS_PASSWORD']); + $Server->setDataBase($dataCon['DBS_DATABASE_NAME'], $dataCon['DBS_PORT']); + if ($Server->errno == 0) { + $response = $Server->tryConnectServer($dataCon['DBS_TYPE']); + if ($response->status != 'SUCCESS') { + if ($returnArray) { + $respTest['2']['error'] = "Error Testing Connection: Connecting to host FAILED : " . $Server->error; + } else { + $resp['message'] = "Error Testing Connection: Connecting to host FAILED : " . $Server->error; + return $resp; + } + } + } else { if ($returnArray) { $respTest['2']['error'] = "Error Testing Connection: Connecting to host FAILED : " . $Server->error; } else { @@ -259,25 +299,25 @@ class DataBaseConnection return $resp; } } - } else { - if ($returnArray) { - $respTest['2']['error'] = "Error Testing Connection: Connecting to host FAILED : " . $Server->error; - } else { - $resp['message'] = "Error Testing Connection: Connecting to host FAILED : " . $Server->error; - return $resp; - } - } - // STEP 4 : Trying to open database - $respTest['3'] = array(); - $respTest['3']['test'] = 'Opening database [' . $dataCon['DBS_DATABASE_NAME'] . ']'; - $Server->loginDbServer($dataCon['DBS_USERNAME'], $dataCon['DBS_PASSWORD']); - $Server->setDataBase($dataCon['DBS_DATABASE_NAME'], $dataCon['DBS_PORT']); - if ($Server->errno == 0) { - $response = $Server->tryConnectServer($dataCon['DBS_TYPE']); - if ($response->status == 'SUCCESS') { - $response = $Server->tryOpenDataBase($dataCon['DBS_TYPE']); - if ($response->status != 'SUCCESS') { + // STEP 4 : Trying to open database + $respTest['3'] = array(); + $respTest['3']['test'] = 'Opening database [' . $dataCon['DBS_DATABASE_NAME'] . ']'; + $Server->loginDbServer($dataCon['DBS_USERNAME'], $dataCon['DBS_PASSWORD']); + $Server->setDataBase($dataCon['DBS_DATABASE_NAME'], $dataCon['DBS_PORT']); + if ($Server->errno == 0) { + $response = $Server->tryConnectServer($dataCon['DBS_TYPE']); + if ($response->status == 'SUCCESS') { + $response = $Server->tryOpenDataBase($dataCon['DBS_TYPE']); + if ($response->status != 'SUCCESS') { + if ($returnArray) { + $respTest['3']['error'] = "Error Testing Connection: Opening database FAILED : " . $Server->error; + } else { + $resp['message'] = "Error Testing Connection: Opening database FAILED : " . $Server->error; + return $resp; + } + } + } else { if ($returnArray) { $respTest['3']['error'] = "Error Testing Connection: Opening database FAILED : " . $Server->error; } else { @@ -294,11 +334,51 @@ class DataBaseConnection } } } else { - if ($returnArray) { - $respTest['3']['error'] = "Error Testing Connection: Opening database FAILED : " . $Server->error; + $net = new \NET(); + + //STEP 0: Trying to open database type TNS + $respTest["0"] = array(); + $respTest["0"]["test"] = "Test TNS: " . $dataCon["DBS_TNS"]; + + $net->loginDbServer($dataCon["DBS_USERNAME"], $dataCon["DBS_PASSWORD"]); + + if ($net->errno == 0) { + $arrayServerData = array("connectionType" => $dataCon["DBS_CONNECTION_TYPE"], "tns" => $dataCon["DBS_TNS"]); + + $response = $net->tryConnectServer($dataCon["DBS_TYPE"], $arrayServerData); + + if ($response->status == "SUCCESS") { + $response = $net->tryOpenDataBase($dataCon["DBS_TYPE"], $arrayServerData); + + if ($response->status != "SUCCESS") { + if ($returnArray) { + $respTest["0"]["error"] = "Error Testing Connection: Opening database type TNS FAILED, " . $net->error; + } else { + $resp["message"] = "Error Testing Connection: Opening database type TNS FAILED, " . $net->error; + + //Return + return $resp; + } + } + } else { + if ($returnArray) { + $respTest["0"]["error"] = "Error Testing Connection: Opening database type TNS FAILED, " . $net->error; + } else { + $resp["message"] = "Error Testing Connection: Opening database type TNS FAILED, " . $net->error; + + //Return + return $resp; + } + } } else { - $resp['message'] = "Error Testing Connection: Opening database FAILED : " . $Server->error; - return $resp; + if ($returnArray) { + $respTest["0"]["error"] = "Error Testing Connection: Opening database type TNS FAILED, " . $net->error; + } else { + $resp["message"] = "Error Testing Connection: Opening database type TNS FAILED, " . $net->error; + + //Return + return $resp; + } } } diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Light.php b/workflow/engine/src/ProcessMaker/BusinessModel/Light.php index eab37c401..6102a6e9e 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Light.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Light.php @@ -358,6 +358,7 @@ class Light case 'REPORT_TO': case 'BALANCED': case 'SELF_SERVICE': + $taskAss = array(); $taskAss['taskId'] = $aValues['NEXT_TASK']['TAS_UID']; $taskAss['taskName'] = $aValues['NEXT_TASK']['TAS_TITLE']; $taskAss['taskAssignType'] = $aValues['NEXT_TASK']['TAS_ASSIGN_TYPE']; @@ -371,6 +372,7 @@ class Light $response[] = $taskAss; break; case 'MANUAL': + $manual = array(); $manual['taskId'] = $aValues['NEXT_TASK']['TAS_UID']; $manual['taskName'] = $aValues['NEXT_TASK']['TAS_TITLE']; $manual['taskAssignType'] = $aValues['NEXT_TASK']['TAS_ASSIGN_TYPE']; diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Task.php b/workflow/engine/src/ProcessMaker/BusinessModel/Task.php index e366e419f..91a978e6e 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Task.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Task.php @@ -870,7 +870,7 @@ class Task } } } else { - $limit = 1000; + $limit = count($aUsers) + 1; } $aUsers = $this->arrayPagination($aUsers, $start, $limit); return $aUsers; @@ -1003,7 +1003,7 @@ class Task } } } else { - $limit = 1000; + $limit = count($aUsers) + 1; } $aUsers = $this->arrayPagination($aUsers, $start, $limit); return $aUsers; @@ -1371,7 +1371,7 @@ class Task } } } else { - $limit = 1000; + $limit = count($aUsers) + 1; } $aUsers = $this->arrayPagination($aUsers, $start, $limit); return $aUsers; @@ -1504,7 +1504,7 @@ class Task } } } else { - $limit = 1000; + $limit = count($aUsers) + 1; } $aUsers = $this->arrayPagination($aUsers, $start, $limit); return $aUsers; @@ -1924,7 +1924,7 @@ class Task } } } else { - $limit = 1000; + $limit = count($aUsersGroups) + 1; } $aUsersGroups = $this->arrayPagination($aUsersGroups, $start, $limit); return $aUsersGroups; @@ -2042,7 +2042,7 @@ class Task } } } else { - $limit = 1000; + $limit = count($aUsersGroups) + 1; } $aUsersGroups = $this->arrayPagination($aUsersGroups, $start, $limit); return $aUsersGroups; diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Project/DataBaseConnection.php b/workflow/engine/src/ProcessMaker/Services/Api/Project/DataBaseConnection.php index 8db262c42..fdeb26732 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Project/DataBaseConnection.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Project/DataBaseConnection.php @@ -62,7 +62,6 @@ class DataBaseConnection extends Api * @param string $dbs_server {@from body} {@required true} * @param string $dbs_database_name {@from body} {@required true} * @param string $dbs_username {@from body} - * @param string $dbs_port {@from body} {@type float} * @param string $dbs_encode {@from body} {@required true} * @param string $dbs_password {@from body} * @param string $dbs_description {@from body} @@ -80,7 +79,6 @@ class DataBaseConnection extends Api $dbs_server, $dbs_database_name, $dbs_username, - $dbs_port, $dbs_encode, $dbs_password = '', $dbs_description = '' @@ -103,7 +101,6 @@ class DataBaseConnection extends Api * @param string $dbs_server {@from body} {@required true} * @param string $dbs_database_name {@from body} {@required true} * @param string $dbs_username {@from body} - * @param string $dbs_port {@from body} {@type float} * @param string $dbs_encode {@from body} {@required true} * @param string $dbs_password {@from body} * @param string $dbs_description {@from body} @@ -122,7 +119,6 @@ class DataBaseConnection extends Api $dbs_server, $dbs_database_name, $dbs_username, - $dbs_port, $dbs_encode, $dbs_password = '', $dbs_description = '' @@ -145,7 +141,6 @@ class DataBaseConnection extends Api * @param string $dbs_server {@from body} {@required true} * @param string $dbs_database_name {@from body} {@required true} * @param string $dbs_username {@from body} - * @param string $dbs_port {@from body} {@type float} * @param string $dbs_encode {@from body} {@required true} * @param string $dbs_password {@from body} * @param string $dbs_description {@from body} @@ -164,7 +159,6 @@ class DataBaseConnection extends Api $dbs_server, $dbs_database_name, $dbs_username, - $dbs_port, $dbs_encode, $dbs_password = '', $dbs_description = ''