Árvore de páginas

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

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.

Bancos de Dados:

Todos.

Sistemas Operacionais:

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 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:

NGUTIL.prx

Função:

NGTWFProcB()

Parâmetros:

NomeTipoDescriçãoObrigatório
ParamIXB[1]Objeto

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
oProcessObjetoRetorna o Objeto alterado para utilização no envio de WorkFlow.Sim

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.

Exemplo do Ponto de Entrada NGTWFPro
#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.' )
            aAdd( oProcess:oHTML:ValByName( 'it1.TEXTO3' ), '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( 'it1.TEXTO4' ), '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( 'it1.TEXTO5' ), '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