Publica um arquivo HTML no ECM possibilitando a criação de novos processos workflows.
O conteúdo deste arquivo deverá possuir apenas as informações utilizadas para o formulário do processo. O nome e o conteúdo do arquivo devem ser informados na primeira posição da lista de arquivos que será enviada nesta função. Caso seja necessário enviar outros arquivos anexos ao HTML, estes devem ser informados a partir da segunda posição da lista de arquivos.
Sintaxe: |
LET nFormId = _ADVPL_WfCard( cProcessId, cDescription, cTitle, aFiles ) |
Parâmetros: |
cProcessId → Id do processo do qual deseja-se atualizar o formulário informado [opcional]. |
cDescription → Descrição do formulário que será publicado <obrigatório>. |
cTitle → Título do formulário que será publicado <obrigatório>. |
aFiles → Lista com o nome e o conteúdo dos arquivos que serão publicados (mais detalhes abaixo) <obrigatório>. |
Retorno: |
nFormId → Id do formulário criado pela função, se o retorno for menor que 1 significa que houve erro durante a publicação. |
A lista de arquivos deve ser uma variável do tipo ARRAY OF RECORD com dois atributos:
- name - Nome do arquivo que será criado
- code - código HTML com o conteúdo do arquivo.
O conteúdo pode ser informado diretamente na variável ou lido através de um arquivo APH (compilável TOTVS Tec) ou através de LOG para leituras de arquivos físicos.
Exemplo
#--------------------------------# FUNCTION log02700_create_process() #--------------------------------# DEFINE la_html ARRAY[1] OF RECORD name CHAR(50), code TEXT END RECORD DEFINE la_events ARRAY[1] OF RECORD name CHAR(50), code TEXT END RECORD DEFINE l_form_id INTEGER DEFINE l_return CHAR(100) # Nome e conteúdo do formulário HTML que será criado para o processo. LET la_html[1].name = 'log002700.html' LET la_html[1].code = log02700_get_wf_html() # Define os eventos do formulário. LET la_events[1].name = 'validateForm' LET la_events[1].code = log02700_get_wf_form_event(la_events[1].name) # Cria o formulário HTML no ECM. LET l_form_id = _ADVPL_WfCard('LOG02700','Manutenção de Usuários','Usuários',la_html,la_events) IF l_form_id > 0 THEN CALL LOG_message("Formulário HTML criado com sucesso.","INFO",NULL,NULL,0) ELSE CALL LOG_message(_ADVPL_WfGetError(1),"ERROR",_ADVPL_WfGetError(2),NULL,0) END IF RETURN (l_form_id > 0) END FUNCTION #-----------------------------# FUNCTION log02700_get_wf_html() #-----------------------------# DEFINE l_wf_html TEXT LET l_wf_html = l_wf_html CLIPPED,'<div id="ALL" class="fw-box" style="height: 99%; width: 100%">' LET l_wf_html = l_wf_html CLIPPED,' <div id="USUARIOS" class="fw-fields">' LET l_wf_html = l_wf_html CLIPPED,' <fieldset>' LET l_wf_html = l_wf_html CLIPPED,' <div class="fw-input">' LET l_wf_html = l_wf_html CLIPPED,' <label class="fw-descr-top">Usuário:</label>' LET l_wf_html = l_wf_html CLIPPED,' <input type="text" name="cod_usuario" class="fw-input-char" maxlength="8" size="8">' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' <div class="fw-input">' LET l_wf_html = l_wf_html CLIPPED,' <label class="fw-descr-top">Nome:</label>' LET l_wf_html = l_wf_html CLIPPED,' <input type="text" name="nom_funcionario" class="fw-input-char" maxlength="30" size="30" data="{picture:\'@!\'}">' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' </fieldset>' LET l_wf_html = l_wf_html CLIPPED,' <div class="fw-folder" id="USUARIOS_FOLDER">' LET l_wf_html = l_wf_html CLIPPED,' <ul>' LET l_wf_html = l_wf_html CLIPPED,' <li><a href="#USUARIOS_1">Dados principais</a></li>' LET l_wf_html = l_wf_html CLIPPED,' <li><a href="#USUARIOS_2">Dados complementares</a></li>' LET l_wf_html = l_wf_html CLIPPED,' </ul>' LET l_wf_html = l_wf_html CLIPPED,' <div id="USUARIOS_1" class="fw-sheet">' LET l_wf_html = l_wf_html CLIPPED,' <div class="ui-widget-content ui-corner-all">' LET l_wf_html = l_wf_html CLIPPED,' <fieldset>' LET l_wf_html = l_wf_html CLIPPED,' <div class="fw-input">' LET l_wf_html = l_wf_html CLIPPED,' <label class="fw-descr-top">Telefone:</label>' LET l_wf_html = l_wf_html CLIPPED,' <input type="text" name="num_telefone" class="fw-input-char" maxlength="20" size="20" data="{picture:\'(99) 9999-9999\'}">' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' <div class="fw-input">' LET l_wf_html = l_wf_html CLIPPED,' <label class="fw-descr-top">Ramal:</label>' LET l_wf_html = l_wf_html CLIPPED,' <input type="text" name="num_ramal" class="fw-input-char" maxlength="5" size="5" data="{picture:\'99999\'}">' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' <div class="fw-input">' LET l_wf_html = l_wf_html CLIPPED,' <label class="fw-descr-top">E-mail:</label>' LET l_wf_html = l_wf_html CLIPPED,' <input type="text" name="e_mail" class="fw-input-char" maxlength="35" size="35">' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' <div class="fw-input">' LET l_wf_html = l_wf_html CLIPPED,' <label class="fw-descr-top">Empresa padrão:</label>' LET l_wf_html = l_wf_html CLIPPED,' <input type="text" name="cod_empresa_padrao" class="fw-input-char" maxlength="02" size="02" data="{picture:\'@!\',zoom:{name:\'zoom_empresa\',selection:[[\'cod_empresa_padrao\',\'cod_empresa\']]}}">' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' <div class="fw-input">' LET l_wf_html = l_wf_html CLIPPED,' <label class="fw-descr-top">Dispositivo padrão:</label>' LET l_wf_html = l_wf_html CLIPPED,' <input type="text" name="cod_impress_padrao" class="fw-input-char" maxlength="10" size="10" data="{picture:\'@!\'}">' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' <div class="fw-input">' LET l_wf_html = l_wf_html CLIPPED,' <label class="fw-descr-top">Idioma:</label>' LET l_wf_html = l_wf_html CLIPPED,' <select name="idioma" class="fw-input-select" value="1">' LET l_wf_html = l_wf_html CLIPPED,' <option value="1">Português</option>' LET l_wf_html = l_wf_html CLIPPED,' <option value="2">Inglês</option>' LET l_wf_html = l_wf_html CLIPPED,' <option value="3">Espanhol</option>' LET l_wf_html = l_wf_html CLIPPED,' </select>' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' <div class="fw-input">' LET l_wf_html = l_wf_html CLIPPED,' <label class="fw-descr-top">É administrador?</label>' LET l_wf_html = l_wf_html CLIPPED,' <select name="ind_admlog" class="fw-input-select" value="N">' LET l_wf_html = l_wf_html CLIPPED,' <option value="S">Sim</option>' LET l_wf_html = l_wf_html CLIPPED,' <option value="N">Não</option>' LET l_wf_html = l_wf_html CLIPPED,' </select>' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' <div class="fw-input">' LET l_wf_html = l_wf_html CLIPPED,' <label class="fw-descr-top">Cria pesquisa relacional?</label>' LET l_wf_html = l_wf_html CLIPPED,' <select name="mantem_pesq_relac" class="fw-input-select" value="N">' LET l_wf_html = l_wf_html CLIPPED,' <option value="S">Sim</option>' LET l_wf_html = l_wf_html CLIPPED,' <option value="N">Não</option>' LET l_wf_html = l_wf_html CLIPPED,' </select>' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' </fieldset>' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' <div id="USUARIOS_2" class="fw-sheet">' LET l_wf_html = l_wf_html CLIPPED,' <div class="ui-widget-content ui-corner-all">' LET l_wf_html = l_wf_html CLIPPED,' <fieldset>' LET l_wf_html = l_wf_html CLIPPED,' <div class="fw-input">' LET l_wf_html = l_wf_html CLIPPED,' <label class="fw-descr-top">Senha:</label>' LET l_wf_html = l_wf_html CLIPPED,' <input type="password" name="senha" class="fw-input-char" maxlength="24" size="24">' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' <div class="fw-input">' LET l_wf_html = l_wf_html CLIPPED,' <label class="fw-descr-top">Confirmação de senha:</label>' LET l_wf_html = l_wf_html CLIPPED,' <input type="password" name="confirma_senha" class="fw-input-char" maxlength="24" size="24">' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' <div class="fw-input">' LET l_wf_html = l_wf_html CLIPPED,' <label class="fw-descr-top">Dica de senha:</label>' LET l_wf_html = l_wf_html CLIPPED,' <input type="text" name="dica_senha" class="fw-input-char" maxlength="16" size="24">' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' </fieldset>' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,' </div>' LET l_wf_html = l_wf_html CLIPPED,'</div>' RETURN l_wf_html END FUNCTION #-----------------------------------------------# FUNCTION log02700_get_wf_form_event(l_event_name) #-----------------------------------------------# DEFINE l_event_name CHAR(50) DEFINE l_event_code TEXT CASE l_event_name WHEN "validateForm" LET l_event_code = l_event_code CLIPPED,'function validateForm(form) {' LET l_event_code = l_event_code CLIPPED,' var senha = form.getValue("senha"),' LET l_event_code = l_event_code CLIPPED,' confirma_senha = form.getValue("confirma_senha");' LET l_event_code = l_event_code CLIPPED,' if (senha != confirma_senha) {' LET l_event_code = l_event_code CLIPPED,' throw "Senhas informadas não conferem.";' LET l_event_code = l_event_code CLIPPED,' }' LET l_event_code = l_event_code CLIPPED,'}' END CASE RETURN l_event_code END FUNCTION
Observações
Se houver erros durante a publicação do formulário, para recuperar a mensagem e os detalhes do mesmo deve-se utilizar a função WfGetError.
Arquivo 4GL utilizado no exemplo desta função: log02700.4gl.