Histórico da Página
...
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
function doTest2() { //Monta as constraints para consulta var c1 = DatasetFactory.createConstraint("activeVersion", "true", "true", ConstraintType.MUST); var c2 = DatasetFactory.createConstraint("publisherId", "adm", "adm", ConstraintType.MUST_NOT); var c3 = DatasetFactory.createConstraint("documentType", "1", "1", ConstraintType.SHOULD); var c4 = DatasetFactory.createConstraint("documentType", "2", "2", ConstraintType.SHOULD); var c5 = DatasetFactory.createConstraint("documentDescription", "%teste%", "%teste%", ConstraintType.MUST_NOT); c5.setLikeSearch(true); var constraints = new Array(c1, c2, c3, c4, c5); //Define os campos para ordenação var sortingFields = new Array("documentPK.documentId"); //Busca o dataset var dataset = DatasetFactory.getDataset("document", null, constraints, sortingFields); for(var i = 0; i < dataset.rowsCount; i++) { log.info(dataset.getValue(i, "documentPK.documentId")); } } |
Nota | |||||||||
---|---|---|---|---|---|---|---|---|---|
Após a criação da constraint, é Para utilizar a função likeSearch utilizando a biblioteca vcXMLRPC.js, deve ser adicionado mais um parâmetro no método DatasetFactory.createConstraint, e não utilizar o método setLikeSearch(true). Exemplo:
Isto é válido apenas para a utilização da biblioteca vcXMLRPC.js. |
Aqui é feito o uso de duas constrainsts do tipo SHOULD. A primeira indica que o campo 'documentType' pode retornar os registros do tipo 2. Já a segunda constraint indica que o campo documentDescription pode retornar todos os registros que possuam pelo menos a palavra teste em seu corpo, e isso se deve ao like estar habilitado por meio de "setLikeSearch(true)"
Exemplo:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
function doTest3() {
//Monta as constraints para consulta
var c1 = DatasetFactory.createConstraint("documentType", "2", "2", ConstraintType.SHOULD);
var c2 = DatasetFactory.createConstraint("documentDescription", "%teste%", "%teste%", ConstraintType.SHOULD);
c2.setLikeSearch(true);
var constraints = new Array(c1, c2);
//Define os campos para ordenação
var sortingFields = new Array("documentPK.documentId");
//Busca o dataset
var dataset = DatasetFactory.getDataset("document", null, constraints, sortingFields);
return dataset;
} |
Constraints Avançadas
Existe uma constraint em especial que é utilizada para limitar o número de registros na consulta SQL chamada de sqlLimit. Então é possível definir o número máximo de registros que uma consulta SQL pode retornar, porém o número de registros pode ser menor que o esperado, devido algumas validações que são feitas após o retorno dos dados. Por exemplo: O sqlLimit tem um valor 100 e é feita uma consulta em um serviço de dados de uma definição de formulário, esta consulta retornará os 100 registros, porém após isso são executadas validações para verificar se o formulário está ativo e se o usuário corrente tem permissão para visualizar os dados fazendo com que o retorno possa ser menor que 100. Para o sqlLimit é utilizada a seguinte sintaxe:
...