Páginas filhas
  • WfCard

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.
Lista de Arquivos

A lista de arquivos deve ser uma variável do tipo ARRAY OF RECORD com dois atributos:

  1. name - Nome do arquivo que será criado
  2. 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&aacute;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&atilde;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&atilde;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&ecirc;s</option>'
    LET l_wf_html = l_wf_html CLIPPED,'                                <option value="2">Ingl&ecirc;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">&Eacute; 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&atilde;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&atilde;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&ccedil;&atilde;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.