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!