1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
| <?php
class IndicatorsController extends Oft_Controller_DatagridAbstract
{
protected $_title = "Indicators per Hosts & Class Instances";
public function init()
{
// Identifiant de colonne
$this->_idColumn = 'HOST_NAME';
// Définition des options de colonnes
$this->_columnOptions = array(
'HOST_NAME' => 'Host Name',
'CLASS_NAME' => 'Class Name',
'INSTANCE' => 'Instance',
'DESCRIPTIONS' => 'Description',
'DISPLAY_STRING' => array('name' => 'Indicator',
'sortable' => false,
'formatter' => 'showlink'
)
);
}
/**
* Récupération de l'iterateur (simple tableau PHP)
*
* @see Oft_Controller_DatagridAbstract::getIterator()
*/
public function getIterator($options)
{
$db = Oft_App::getInstance()->getResource('multidb')->getDb('oracledb');
// CCPHP : ne fonctionne pas (pour l'instant)
// $sql = $db->select()
// ->distinct()
// ->from(array('NY_DATA_TYPES' => 'SM_STATISTICS.NY_DATA_TYPES'), array('NY_HOSTS.HOST_NAME', 'NY_ISMSC_CLASSES.CLASS_NAME', 'NY_STATISTICS_AGG_DATA.INSTANCE', 'NY_OPERATIONS.DESCRIPTIONS', 'NY_DATA_TYPES.DISPLAY_STRING'))
// ->join(array('NY_STATISTICS_AGG_DATA' => 'SM_STATISTICS.NY_STATISTICS_AGG_DATA'), 'NY_DATA_TYPES.TYPE_ID = NY_STATISTICS_AGG_DATA.DATA_TYPE_ID')
// ->join(array('NY_HOSTS' => 'OMAP_CONFIG.NY_HOSTS'), 'NY_HOSTS.HOST_ID = NY_STATISTICS_AGG_DATA.HOST_ID')
// ->join(array('NY_ISMSC_CLASSES' => 'OMAP_CONFIG.NY_ISMSC_CLASSES'), ('NY_ISMSC_CLASSES.CLASS_ID = NY_STATISTICS_AGG_DATA.CLASS_ID AND NY_ISMSC_CLASSES.GROUP_ID = NY_STATISTICS_AGG_DATA.GROUP_ID'))
// ->join(array('NY_OPERATIONS' => 'SM_STATISTICS.NY_OPERATIONS'), 'NY_OPERATIONS.CLASS_ID = NY_DATA_TYPES.CLASS_ID AND NY_OPERATIONS.OPERATION_ID = NY_DATA_TYPES.OPERATION_ID')
// ->order(array('NY_HOSTS.HOST_NAME', 'NY_ISMSC_CLASSES.CLASS_NAME', 'NY_STATISTICS_AGG_DATA.INSTANCE', 'NY_OPERATIONS.DESCRIPTIONS', 'NY_DATA_TYPES.DISPLAY_STRING'))
// ;
// return $sql;
// CCPHP : PAS IDEAL car tous les enregistrements sont récupérés
// SOLUTION : utiliser Zend_Db_Select
$sql = '
SELECT DISTINCT
NY_HOSTS.HOST_NAME,
NY_ISMSC_CLASSES.CLASS_NAME,
NY_STATISTICS_AGG_DATA.INSTANCE,
NY_OPERATIONS.DESCRIPTIONS,
NY_DATA_TYPES.DISPLAY_STRING
FROM
SM_STATISTICS.NY_DATA_TYPES NY_DATA_TYPES
INNER JOIN
SM_STATISTICS.NY_STATISTICS_AGG_DATA NY_STATISTICS_AGG_DATA
ON NY_DATA_TYPES.TYPE_ID = NY_STATISTICS_AGG_DATA.DATA_TYPE_ID
INNER JOIN
OMAP_CONFIG.NY_HOSTS NY_HOSTS
ON NY_HOSTS.HOST_ID = NY_STATISTICS_AGG_DATA.HOST_ID
INNER JOIN
OMAP_CONFIG.NY_ISMSC_CLASSES NY_ISMSC_CLASSES
ON (
NY_ISMSC_CLASSES.CLASS_ID = NY_STATISTICS_AGG_DATA.CLASS_ID AND NY_ISMSC_CLASSES.GROUP_ID = NY_STATISTICS_AGG_DATA.GROUP_ID
)
INNER JOIN
SM_STATISTICS.NY_OPERATIONS NY_OPERATIONS
ON (
NY_OPERATIONS.CLASS_ID = NY_DATA_TYPES.CLASS_ID AND NY_OPERATIONS.OPERATION_ID = NY_DATA_TYPES.OPERATION_ID
)
WHERE 1=1
ORDER BY NY_HOSTS.HOST_NAME,
NY_ISMSC_CLASSES.CLASS_NAME,
NY_STATISTICS_AGG_DATA.INSTANCE,
NY_OPERATIONS.DESCRIPTIONS,
NY_DATA_TYPES.DISPLAY_STRING
';
$result = $db->query($sql)->fetchAll();
return $result;
}
} |