Árvore de páginas

Versões comparadas

Chave

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

...

Ponto de entrada para atribuição de valores no arquivo .htm utilizado nos workflows.

Características do Requisito

Linha de Produto:

Microsiga Protheus.

Segmento:

Manufatura.

Módulo:

SIGAMNT - Manutenção de Ativos e Gestão de Frotas.

Rotina:

Rotina

Nome Técnico

NGUTIL

Funções Genéricas

Rotinas envolvidas

Nome Técnico

MNTA693

Transferência de Bens

Rotina(s) envolvida(s)

Nome Técnico

MNTA6931

Ponto de Entrada

País(es)

MNTW025Inclusão de S.S.

MNTW040

Workflow de Distribuição de S.S. para o Executante

MNTW060Workflow de Inclusão de Multa
MNTW061Workflow de Inclusão de Notificação

Países:

Todos.

Banco(s)

Bancos de Dados:

Todos.

Sistemas Operacionais:

Todos.

Sistema(s) Operacional(is):

Todos.

...

.

Importante:
  • É necessário possuir o arquivo .htm do workflow que se deseja customizar no diretório de WorkFlow, do dicionário do ambiente e que será informado no parâmetro MV_WFDIR.
  • Para variáveis fora de tabelas não há necessidade de se separar através de ponto.
    • Exemplo: ( (oProcess:oHTML:ValByName( 't5l1.1') ), cValToChar( nIndex ) + '. Geração de campo em tabela 1' ).
  • Para variáveis dentro de tabelas se utiliza a referência à tabela na linha em que se encontra, separa-se com ponto e se nomeia o campo.
    • Exemplo: oProcess:oHTML:ValByName( 'strEX1', 'WorkFlow Teste' )

Ponto de Entrada

Descrição:

Ponto de Entrada chamado

na rotina de Transferência de Bens(MNTA693), para atribuir valores em variáveis do arquivo .htm de WorkFlow.

Localização:

SIGAMNT: Atualizações/Construção Civil/Transferência/Transferência de Bens

ao acionar o processo de envio de workflow, que permite customização com adição e/ou mudança de conteúdo de campos, através do arquivo .htm.

Programa Fonte:

MNTA693
NGUTIL.prx

Função:

MNTA6931

NGTWFProcB()

Parâmetros:

NomeTipo
Pode Alterar
Descrição
DescriçãooProcess
Obrigatório
ParamIXB[1]Objeto
TWFProcessSim

Objeto para manipular o WorkFlow.

Sim
ParamIXB[2]CaractereDefine a rotina de origem que realizara a chamada do P.E.Sim
Retorno:
NomeTipoDescriçãoObrigatório
oProcessObjeto
TWFProcess
Retorna o Objeto alterado para utilização no envio de WorkFlow.Sim
Aviso
title

...

É necessário ter o arquivo MNTW693.htm no diretório de WorkFlow no servidor e ter editado esse arquivo de forma que as variáveis sejam posicionada nas estruturas desejadas.

Para variáveis fora de tabelas não se utiliza '.' em seu nome.

...

Atenção

Para utilização do exemplo do ponto de entrada é imprescindível que se utilize o arquivo correspondente a rotina desejada abaixo: 

mntw693.htm

mntw025.htm

mntw040.htm

mntw060.htm

mntw061.htm

Qualquer alteração realizada no P.E. deve-se ser replicada ao arquivo de layout, caso contrário resultará em uma inconsistência.

Bloco de código
languagexmlsql
titleArquivo mntw693.htm
<html>

	<head>
		<title>%strTitulo%</title>
	</head>

	<body bgcolor="#FFFFFF">

		<p><b><font face="Arial">%strTitulo%</font></b></p>
		</u>
		<p><b><font face="Arial">%strEX1%</font></b></p>
		</u>

		<table border=0 WIDTH=655 cellpadding="1">

			<tr>
				<td bgcolor="#FFFFFF" align="left" width="157"><font face="Arial" size="2">%t1l1.strSubTitulo%</font></td>
			</tr>

		</table>

		<br>
		<b><font face="Arial" size="2">Origem</font></b>
		<br><br>

		<table border=0 WIDTH=655 cellpadding="1">

			<tr>
				<td bgcolor="#EEEEEE" align="left" width="157"><b><font face="Arial" size="2">Num. ME.</font></b></td>
				<td bgcolor="#EEEEEE" align="left" width="420"><font face="Arial" size="1">%t2l1.strNUMME%</font></td>
			</tr>
			<tr>
				<td bgcolor="#EEEEEE" align="left" width="157"><b><font face="Arial" size="2">Empresa</font></b></td>
				<td bgcolor="#EEEEEE" align="left" width="420"><font face="Arial" size="1">%t2l2.strEMPORI%</font></td>
			</tr>
			<tr>
				<td bgcolor="#EEEEEE" align="left" width="157"><b><font face="Arial" size="2">Filial</font></b></td>
				<td bgcolor="#EEEEEE" align="left" width="420"><font face="Arial" size="1">%t2l3.strFILORI%</font></td>
			</tr>
			<tr>
				<td bgcolor="#EEEEEE" align="left" width="157"><b><font face="Arial" size="2">Equipamento</font></b></td>
				<td bgcolor="#EEEEEE" align="left" width="420"><font face="Arial" size="1">%t2l4.strCODBEM%</font></td>
			</tr>
			<tr>
				<td bgcolor="#EEEEEE" align="left" width="157"><b><font face="Arial" size="2">Nº Série</font></b></td>
				<td bgcolor="#EEEEEE" align="left" width="420"><font face="Arial" size="1">%t2l5.strSERIE%</font></td>
			</tr>
			<tr>
				<td bgcolor="#EEEEEE" align="left" width="157"><b><font face="Arial" size="2">Data</font></b></td>
				<td bgcolor="#EEEEEE" align="left" width="420"><font face="Arial" size="1">%t2l6.strDATATR%</font></td>
			</tr>
			<tr>
				<td bgcolor="#EEEEEE" align="left" width="157"><b><font face="Arial" size="2">Hora</font></b></td>
				<td bgcolor="#EEEEEE" align="left" width="420"><font face="Arial" size="1">%t2l7.strHORATR%</font></td>
			</tr>
			<tr>
				<td bgcolor="#EEEEEE" align="left" width="157"><b><font face="Arial" size="2">Teste</font></b></td>
				<td bgcolor="#EEEEEE" align="left" width="420"><font face="Arial" size="1">%t2l8.strEX2%</font></td>
			</tr>

		</table>

		<br>
		<b><font face="Arial" size="2">Destino</font></b>
		<br><br>

		<table border=0 WIDTH=655 cellpadding="1">

			<tr>
				<td bgcolor="#EEEEEE" align="left" width="157"><b><font face="Arial" size="2">Empresa</font></b></td>
				<td bgcolor="#EEEEEE" align="left" width="420"><font face="Arial" size="1">%t3l1.strEMPDES%</font></td>
			</tr>
			<tr>
				<td bgcolor="#EEEEEE" align="left" width="157"><b><font face="Arial" size="2">Filial</font></b></td>
				<td bgcolor="#EEEEEE" align="left" width="420"><font face="Arial" size="1">%t3l2.strFILDES%</font></td>
			</tr>
			<tr>
				<td bgcolor="#EEEEEE" align="left" width="157"><b><font face="Arial" size="2">Observação</font></b></td>
				<td bgcolor="#EEEEEE" align="left" width="420"><font face="Arial" size="1">%t3l3.strMOTTRA%</font></td>
			</tr>

		</table>

		<table border=0 WIDTH=655 cellpadding="1">

			<tr>
				<td bgcolor="#EEEEEE" align="left" width="157" colspan="4"><b><font face="Arial" size="2">Exemplo campos inserdos em tabela</font></b></td>
			</tr>
			<tr>
				<td bgcolor="#EEEEEE" align="left" width="420"><font face="Arial" size="1">%t4l1.1%</font></td>
				<td bgcolor="#EEEEEE" align="left" width="420"><font face="Arial" size="1">%t4l1.2%</font></td>
				<td bgcolor="#EEEEEE" align="left" width="420"><font face="Arial" size="1">%t4l1.3%</font></td>
				<td bgcolor="#EEEEEE" align="left" width="420"><font face="Arial" size="1">%t4l1.4%</font></td>
			</tr>

		</table>

	</body>

</html>
Exemplo do Ponto de Entrada NGTWFPro
linenumberstrue
#Include 'PROTHEUS.CH'

User Function NGTWFPro()

    Local oProcess := ParamIXB[1]
    Local cOrigin  := ParamIXB[2]
    Local nIndex   := 0

	Do Case

		// Transferência de Bens
   		Case cOrigin == 'MNTA693'

			//Valor 'WorkFlow Transferência de Veículos via Construção Civil' na variável strEX1
			oProcess:oHTML:ValByName( 'strEX1', 'WorkFlow Transferência de Veículos via Construção Civil' )

			//Inserido campo centro de custo do registro posicionado da TQ2 na variavel t2l8.strEX2
			aAdd( oProcess:oHTML:ValByName( 't2l8.strCCusto' ), TQ2->TQ2_CCUSTO )

			// titulo inserido antes da montagem da tabela.
			oProcess:oHTML:ValByName( 'strEX2', 'Exemplo campos inserdos em tabela' )

			//Inseridos valores de modo dinâmico em tabela html que contém apenas uma linha, baseia-se nos campos dessa linha para inserir outras novas linhas.
			//Abaixo inserem-se 10 linhas com quatro campos.
			For nIndex := 1 To 10

				aAdd( (oProcess:oHTML:ValByName( 't5l1.1') ), cValToChar( nIndex ) + '. Geração de campo em tabela 1' )
				aAdd( (oProcess:oHTML:ValByName( 't5l1.2') ), cValToChar( nIndex ) + '. Geração de campo em tabela 2' )
				aAdd( (oProcess:oHTML:ValByName( 't5l1.3') ), cValToChar( nIndex ) + '. Geração de campo em tabela 3' )
				aAdd( (oProcess:oHTML:ValByName( 't5l1.4') ), cValToChar( nIndex ) + '. Geração de campo em tabela 4' )

			Next nIndex

		// Distribuição de S.S.
    	Case cOrigin == 'MNTW040'

			aAdd( oProcess:oHTML:ValByName( 'head1.strRamal' ), 'Ramal'        )
			aAdd( oProcess:oHTML:ValByName( 'col1.strRamal'  ), TQB->TQB_RAMAL )

			dbSelectArea( 'ST9' )
			dbSetOrder( 1 )
			dbSeek( xFilial( 'ST9' ) + TQB->TQB_CODBEM )

			aAdd( oProcess:oHTML:ValByName( 'head2.strCcusto' ), 'Centro de Custos'   )
			aAdd( oProcess:oHTML:ValByName( 'head2.strCtrab'  ), 'Centro de Trabalho' )

			aAdd( oProcess:oHTML:ValByName( 'col2.strCcusto' ), ST9->T9_CCUSTO  )
			aAdd( oProcess:oHTML:ValByName( 'col2.strCtrab'  ), ST9->T9_CENTRAB )

		// Inclusão de S.S.
		Case cOrigin == 'MNTW025'

			aAdd( oProcess:oHTML:ValByName( 'head.strCCusto' ), 'Centro de Custos'        )
			aAdd( oProcess:oHTML:ValByName( 'cols.strCCusto'  ), TQB->TQB_CCUSTO )

        // Inclusão de Multa           // Inclusão de Notificação
        Case cOrigin == 'MNTW060' .Or. cOrigin == 'MNTW061'

            aAdd( oProcess:oHTML:ValByName( 'it1.TEXTO2' ), 'Recebemos a notificação de multa abaixo apresentada, a qual identificada pelo sistema de rastreador que o Sr(a) é o condutor.' )
            
Bloco de código
titleExemplo do Ponto de Entrada MNT6931
User Function MNTA6931()

	Local oProcess := ParamIXB[1] // objeto oProcess
	Local nI

	// inserindo o valor 'Campo fora de tabela' na variavel strEX1
	oProcess:oHTML:ValByName( 'strEX1', 'Campo fora de tabela' )

	// inserindo o valor 'Campo dentro de tabela' na variavel t2l8.strEX2 ( deve sempre estar referenciada a tabela se for campo em tabela )
	aAdd( oProcess:oHTML:ValByName( 't2l8it1.strEX2TEXTO3' ), 'Campo dentro de tabela' )

	// inserindo valores de modo dinâmico em tabela que contem apenas uma linha, baseia-se nos campos dessa linha para inserir outras novas linhas.
	// no exempo se inserem 10 linhas com quatro campos.
	For nI := 1 To 10

		aAdd( (Notificamos que, conforme prevê a CLT em seu art. 462 § 1º, o desconto da multa + 5% de taxa administrativa, será realizado em sua folha de pagamento.' )
            aAdd( oProcess:oHTML:ValByName( 't4l1it1.1TEXTO4') ), cValToChar( nI ) + '. Geração de campo em tabela 1' )
		aAdd( (oProcess:oHTML:ValByName( 't4l1.2') ), cValToChar( nI ) + '. Geração de campo em tabela 2' )
		aAdd( ( 'Informamos que caso queira indicar o condutor na infração descriminada abaixo é necessário entrar em contato com o departamento de frota no prazo de 15 dias, a contar de hoje.' +;
             'Ciente da responsabilidade de arcar com o custo, caso seja lavrada a multa por não identificação do condutor.' )
            aAdd( oProcess:oHTML:ValByName( 't4l1it1.3TEXTO5') ), cValToChar( nI ) + '. Geração de campo em tabela 3' )
		aAdd( (oProcess:oHTML:ValByName( 't4l1.4') ), cValToChar( nI ) + '. Geração de campo em tabela 4' )

	Next

Return oProcess 'Caso tenha interesse em realizar o parcelamento da multa, desde que o valor de cada parcela não seja inferior a R$100,00, o condutor deve procurar também o Departamento de Frota no prazo supracitado.' )

    EndCase

Return oProcess