Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

O diagrama abaixo apresenta um modelo conceitual sobre os Datasets.

 

Image Added

Tipos de Datasets

Atualmente existem três tipos de Datasets gerenciados pelo produto:

...

Code Block
themeEclipse
languagejavascript
firstline1
linenumberstrue
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 constraints   = new Array(c1, c2, c3, c4);
	
	//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"));
	}
}

...

Constraints Especiais

Existe uma constraint em especial que é utilizada para limitar o número de registros na consulta do 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 um ficháriouma definição de formulário, esta consulta retornará os 100 registros, porém após isso são executadas validações para verificar se a ficha o formulário está ativa 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:

 

...

Code Block
themeEclipse
languagejavascript
firstline1
linenumberstrue
 DatasetFactory.createConstraint("sqlLimit", "10", "10", ConstraintType.MUST);

...

Note

...

Observação: O valor considerado no sqlLimit é sempre o initialValue, o que for informado no finalValue não será considerado.

Existe outra constraint especial utilizada somente para acesso a dataset datasets de ficháriosdefinições de formulário, ela indica se ao buscar o serviço de dados devem ser retornados APENAS os dados das fichas do fichário dos formulários da definição de formulário principal. A constraint é a onlyMainCards e por padrão seu valor é false, ou seja, são retornados os dados das fichas do fichário principal e sub-fichários. dos formulários da definição de formulário principal e das definições de formulários filhas.

Code Block
DatasetFactory.createConstraint("onlyMainCards", "true", "true", ConstraintType.MUST);

...

Note

...

Observação: O valor considerado no

...

onlyMainCards é sempre o initialValue, o que for informado no finalValue não será considerado.

...

Note

...

Atenção: As constraints podem ser utilizadas apenas para datasets internos. Datasets customizados não aceitam constraints, pelo fato de os dados serem externos, não sendo possível aplicar o filtro em sua origem. Para

...

Datasets customizados o tratamento de

...

filtros deve ser feito

...

na codificação do Dataset, manipulando o objeto retornado e retirando as informações desnecessárias.

 

  • Ordenação: Vetor com a lista de campos que será utilizada para ordenação dos registros no Dataset.
Exemplificação de uso de Constraints

...