From cc5a1c4e6549f9531d51cc729d3c0cf43a71c136 Mon Sep 17 00:00:00 2001 From: Luis Fernando Saisa Lopez Date: Tue, 1 Mar 2016 12:35:02 -0400 Subject: [PATCH] HOR-362 "Conexiones a Oracle por TNS no se discriminan..." SOLVED --- .../engine/classes/class.dbConnections.php | 31 +++++++++++++++++-- .../BusinessModel/DataBaseConnection.php | 26 ++++++++++++++++ 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/workflow/engine/classes/class.dbConnections.php b/workflow/engine/classes/class.dbConnections.php index 462932612..17641b478 100755 --- a/workflow/engine/classes/class.dbConnections.php +++ b/workflow/engine/classes/class.dbConnections.php @@ -137,7 +137,7 @@ class dbConnections * getConnectionsProUid * * Parameter $only list of items displayed, everything else is ignored. - * + * * @param string $pProUid * @param string $only * @return Array $connections @@ -153,6 +153,8 @@ class dbConnections $c->addSelectColumn( DbSourcePeer::DBS_TYPE ); $c->addSelectColumn( DbSourcePeer::DBS_SERVER ); $c->addSelectColumn( DbSourcePeer::DBS_DATABASE_NAME ); + $c->addSelectColumn( DbSourcePeer::DBS_CONNECTION_TYPE ); + $c->addSelectColumn( DbSourcePeer::DBS_TNS ); $result = DbSourcePeer::doSelectRS( $c ); $result->next(); @@ -161,8 +163,31 @@ class dbConnections $sw = count($only) > 0; while ($row = $result->getRow()) { if ((trim( $pProUid ) == trim( $row[1] )) && ( $sw ? in_array($row[2], $only) : true )) { - $connections[] = Array ('DBS_UID' => $row[0],'DBS_NAME' => '[' . $row[3] . '] ' . $row[2] . ': ' . $row[4] - ); + $dbUid = $row[0]; + + $dbDescription = ''; + + $criteria2 = new Criteria('workflow'); + + $criteria2->addSelectColumn(ContentPeer::CON_VALUE); + $criteria2->add(ContentPeer::CON_ID, $dbUid, Criteria::EQUAL); + + $rsCriteria2 = ContentPeer::doSelectRS($criteria2); + $rsCriteria2->setFetchmode(ResultSet::FETCHMODE_ASSOC); + + if ($rsCriteria2->next()) { + $row2 = $rsCriteria2->getRow(); + + if ($row2['CON_VALUE'] != '') { + $dbDescription = ' - [' . $row2['CON_VALUE'] . ']'; + } + } + + if ($row[5] == 'NORMAL') { + $connections[] = array('DBS_UID' => $row[0], 'DBS_NAME' => '[' . $row[3] . '] ' . $row[2] . ': ' . $row[4] . $dbDescription); + } else { + $connections[] = array('DBS_UID' => $row[0], 'DBS_NAME' => '[' . $row[6] . '] ' . $row[2] . ': ' . $row[6] . $dbDescription); + } } $result->next(); } diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/DataBaseConnection.php b/workflow/engine/src/ProcessMaker/BusinessModel/DataBaseConnection.php index 0dfa0dc71..80af715d6 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/DataBaseConnection.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/DataBaseConnection.php @@ -70,6 +70,32 @@ class DataBaseConnection } $aFields['DBS_PASSWORD'] = $dbs->getPassWithoutEncrypt($aFields); + $aFields['DBS_DATABASE_DESCRIPTION'] = ''; + + $dbDescription = ''; + + $criteria2 = new \Criteria('workflow'); + + $criteria2->addSelectColumn(\ContentPeer::CON_VALUE); + $criteria2->add(\ContentPeer::CON_ID, $aFields['DBS_UID'], \Criteria::EQUAL); + + $rsCriteria2 = \ContentPeer::doSelectRS($criteria2); + $rsCriteria2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + + if ($rsCriteria2->next()) { + $row2 = $rsCriteria2->getRow(); + + if ($row2['CON_VALUE'] != '') { + $dbDescription = ' - [' . $row2['CON_VALUE'] . ']'; + } + } + + if($aFields['DBS_TYPE'] == 'oracle' && $aFields['DBS_CONNECTION_TYPE'] == 'TNS') { + $aFields['DBS_DATABASE_DESCRIPTION'] = '[' . $aFields['DBS_TNS'] . ']' . $dbDescription; + } else { + $aFields['DBS_DATABASE_DESCRIPTION'] = $dbDescription; + } + $response = array_change_key_case($aFields, CASE_LOWER); return $response; } catch (\Exception $e) {