Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
themeEclipse
languagejavascript
titleExemplo 2
firstline1
linenumberstrue
 function()function beforeStateEntry(sequenceId) {
	
	var user = getValue("WKUser");
	
	//Cria a constraint para buscar os formulários ativos
	var cst1 = DatasetFactory.createConstraint("card_is_active_boolean_is", true, true, ConstraintType.MUST);
	
	//É obrigatório informar a constraint userSecurityId para indicar o usuário 
	//que sera validada a permissão nos formulários
	var cst2 = DatasetFactory.createConstraint("userSecurityId", user, user, ConstraintType.MUST);
	
	var constraints = new Array(cst1, cst2);
	
	var datasetPrincipal = DatasetFactory.getDataset("dsExemploPaiFilho", null, constraints, null);
	
	for (var i = 0; i < datasetPrincipal.rowsCount; i++) {
		var documentId = datasetPrincipal.getValue(i, "DocumentId");
		var documentVersion = datasetPrincipal.getValue(i, "documentVersion_number_is");
		
		//Cria as constraints para buscar os campos filhos, passando o tablename, número da formulário e versão
		var c1 = DatasetFactory.createConstraint("tablename", "tabelaPecas" ,"tabelaPecas", ConstraintType.MUST);
		var c2 = DatasetFactory.createConstraint("metadata#id", documentId, documentId, ConstraintType.MUST);
		var c3 = DatasetFactory.createConstraint("metadata#version", documentVersion, documentVersion, ConstraintType.MUST);
		
		//É obrigatório informar a constraint userSecurityId para indicar o usuário 
		//que sera validada a permissão nos formulários
		var c4 = DatasetFactory.createConstraint("userSecurityId", user, user, ConstraintType.MUST);
		
		var constraintsFilhos = new Array(c1, c2, c3, c4);
		
		//Busca o dataset
		var datasetFilhos = DatasetFactory.getDataset("dsExemploPaiFilho", null, constraintsFilhos, null);
		for (var j = 0; j < datasetFilhos.rowsCount; j++) {
			//Utiliza os campos do Dataset. Exibindo como exemplo.
			log.info("CAMPO 1: " + documentId);
			log.info("CAMPO 2: " + datasetFilhos.getValue(j, "wdk_sequence_id"));
			log.info("CAMPO 3: " + datasetFilhos.getValue(j, "peca"));
			log.info("CAMPO 4: " + datasetFilhos.getValue(j, "qtde"));
		}
	}

}

 

Utilizando um dos modelos de Dataset acima, é possível recuperar os valores "filhos" dos formulários ativos, ou seja, a última versão criada. Existem alguns parâmetros obrigatórios que devem ser passados através de constraints, onde o valor inicial e final devem ser iguais. A forma de recuperar esses valores é opcional. Segue abaixo a nomenclatura obrigatória de cada parâmetro:

ParâmetroDescrição
tablename

Atributo utilizado para nomear cada tabela filha do HTML. Exemplo:

Bloco de código
themeEclipse
languagehtml/xml
firstline1
linenumberstrue
<table border="1" tablename="tabelaProdutotabelaPecas" addbuttonlabel="Adicionar ProdutoPeça">
	<!-- Campos Filhos -->
</table>
metadata#idNúmero do formulário.
metadata#versionNúmero da versão do formulário
userSecurityId

Código do usuário que será validada a permissão no formulário

Nota

Observação: Esse parâmetro não será validado na Visualização de Datasets, visto que nessa opção é um exemplo de visualização dos dados.

Também é possível exibir a ordem dos campos filhos, para isso deve-se utilizar o campo wdk_sequence_id, sendo que este não poderá ser utilizado como nome de algum campo do formulário.

Resultado final do Dataset do exemplo 1:

Image Added

Guia de Referência de Datasets

...