Opção transferir

Como transferir solicitações sem que seja obrigatório o preenchimento de campos? A ideia é que quando a opção for Enviar o formulários, a mensagem de campo obrigatório deve aparecer. E quando a opção for Transferir, os campos não devem ser obrigatórios. Como posso fazer isto?

@NEM IT,

Você pode utilizar esse parâmetro: WKIsTransfer

Segue link: http://tdn.totvs.com/pages/releaseview.action?pageId=270919174

No caso o código ficaria assim:? function validateForm(form) {
var activity = getValue(‘WKNumState’);
var isTransfer = getValue(“WKIsTransfer”);

if (activity == 2) {
    if (((form.getValue("escolha_aprov") == null || form.getValue("escolha_aprov") == "") &&(isTransfer == false)))
     {            throw "Preencha o Motivo da Recusa"; } } }

Tente assim:


function validateForm(form) { 
	var activity   = getValue('WKNumState'); 
	var isTransfer = getValue("WKIsTransfer"); 
	
	if (activity == 2) { 
		if (((form.getValue("escolha_aprov") == null || form.getValue("escolha_aprov") == "")) && (!JSON.parse(isTransfer))) { 
			throw "Preencha o Motivo da Recusa"; 
		} 
	} 
}

Ele continua bloqueando quando tento transferir. Não deveria ter algum null ali no meio?

Quando o isTransfer for true (no caso a pessoa está querendo transferir) ele precisa ignorar os campos obrigatórios. Quando o isTransfer for false/null, ou seja, quando o formulário for enviado, os campos precisam ser obrigatórios.

Editei o IF no fonte

Mas como posso tratar essa situação? Já cheguei a tentar até o if ((activity == 2) && (isTransfer == null)) { mas também não deu certo.

Tente colocar isso no código e acompanhe o log:


if (JSON.parse(isTransfer)) {
	log.info("#### TRUE ####");
} else {
	log.info("#### FALSE ####");
}

Esse foi o resultado:
2018-03-12 08:34:17,718 INFO [com.datasul.technology.webdesk.workflow.business.WorkflowBO] (default task-204) # Saving card. Process: teste_controle_desvio, Instance: 2619, Sequence: 6, Dados: {text_cp=, escolha_aprov=}
2018-03-12 08:34:17,776 INFO [com.datasul.technology.webdesk.customization.ScriptingLog] (default task-204) #### FALSE ####
2018-03-12 08:34:17,798 INFO [com.fluig.ecm.workflow.service.ProcessAttachmentServiceBean] (default task-204) NewCardVersion nrDocto: 8086

Ele caiu no Else quando eu cliquei em transferir.

Coloca assim agora:


log.info("#### UM ####");
log.info(isTransfer);
log.info("#### DOIS ####");
log.info(JSON.parse(isTransfer));

if (isTransfer) {
    log.info("#### TRUE ####");
} else {
    log.info("#### FALSE ####");
}

Ele nao deixa nem iniciar o formulário, para depois transferir a atividade. Este é o erro: Erro ao salvar dados de formulário:

Wrapped java.lang.NullPointerException

O código está assim: function validateForm(form) {
var isTransfer = getValue(“WKIsTransfer”);
log.info(“#### UM ####”);
log.info(isTransfer);
log.info(“#### DOIS ####”);
log.info(JSON.parse(isTransfer));
if (isTransfer) {
log.info(“#### TRUE ####”);
} else {
log.info(“#### FALSE ####”);
}
}

@Gabriel, alguma ideia?

@NEM IT, conseguiu resolver este problema? Estou com a mesma necessidade, porém neste ponto o WKIsTransfer está sempre null.

Infelizmente nao @Eduardo Godoy

Conseguiram resolver isso? Também gostaria de utilizar o IsTransfer no validateForm, mas sempre tenho null no retorno.

Eu acabei colocando a validação nos eventos de Workflow. Em algum Before…

tô vendo que não vai ter outro jeito, rs…obrigado!