Histórico da Página
...
Para que seja possível criar um dataset que acesse uma base externa ao fluig, é necessário, primeiramente, configurar o arquivo standalonedomain.xml. Este arquivo se encontra dentro da pasta de instalação do fluig. Por exemplo: partindo do principio que a instalação foi feita em ambiente Windows no diretório C, o arquivo será encontrado em C:\fluig\jbossappserver\standalonedomain\configuration\standalonedomain.xml.
Edite o arquivo e procure pela linha que contém a tag <datasources>. Esta tag é responsável pelo agrupamento das conexões criadas na aplicação.
A seguir é apresentado um exemplo da tag no arquivo standalonedomain.xml:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
<subsystem xmlns="urn:jboss:domain:datasources:14.20"> <datasources> |
Dentro desta tag terá uma outra tag chamada <datasource>, reponsável pelas configurações de uma conexão com um banco de dados.
...
Nota | ||
---|---|---|
| ||
Nunca remova ou altere as conexões( <datasource>) que já estão contidas no arquivo de configuração standalonedomain.xml. Estas conexões são vitais para o funcionamento do fluig. Somente as novas conexões criadas com a finalidade de acesso aos datasets podem ser manipuladas. |
...
Aviso | ||
---|---|---|
| ||
Para garantir a integridade da base de dados que será acessada, é importante garantir que o usuário configurado para acesso ao banco seja criado com privilégios somente de leitura, garantindo assim que nenhum registro possa ser alterado. Após criado o datasource, salve o arquivo standalonedomain.xml, e reinicie o serviço do fluig para que o servidor de aplicação (JbossWildfly) consiga mapear a nova conexão criada. |
...
O exemplo abaixo apresenta o acesso ao datasource MeuDataSet criado como exemplo no arquivo standalonedomain.xml.
Bloco de código | ||||
---|---|---|---|---|
| ||||
function createDataset(fields, constraints, sortFields) { var newDataset = DatasetBuilder.newDataset(); log.info("QUERY: " + myQuery); var dataSource = "/jdbc/MeuDataSet"; var ic = new javax.naming.InitialContext(); var ds = ic.lookup(dataSource); var created = false; var myQuery = "select * from pessoas"; try { var conn = ds.getConnection(); var stmt = conn.createStatement(); var rs = stmt.executeQuery(myQuery); var columnCount = rs.getMetaData().getColumnCount(); while (rs.next()) { if (!created) { for (var i = 1; i <= columnCount; i++) { newDataset.addColumn(rs.getMetaData().getColumnName(i)); } created = true; } var Arr = new Array(); for (var i = 1; i <= columnCount; i++) { var obj = rs.getObject(rs.getMetaData().getColumnName(i)); if (null != obj) { Arr[i - 1] = rs.getObject(rs.getMetaData().getColumnName(i)).toString(); } else { Arr[i - 1] = "null"; } } newDataset.addRow(Arr); } } catch (e) { log.error("ERRO==============> " + e.message); } finally { if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } return newDataset; } |
...