Á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.

Sistema(s) Operacional(is):

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

na rotina de Transferência de Bens(MNTA693), para atribuir valores em variáveis

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

de WorkFlow

.

Localização:

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

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
titleAtençã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
languagesql
titleExemplo do Ponto de Entrada MNT6931NGTWFPro
linenumberstrue
#Include 'ProtheusPROTHEUS.chCH'

User Function MNT655D3CCNGTWFPro()

    Local oProcess := ParamIXB[1]
    Local lRetcOrigin  := ParamIXB[2]
    Local nIndex   := .T.
    0

	Do Case

		// Transferência de Bens
   		Case cOrigin //Parâmetros
	cTipo		:= PARAMIXB[1] // requisição ou devolução
	cVeic		:= PARAMIXB[2] // Código do Veículo/Bem
	cCCust	:= PARAMIXB[3] // Código de Centro de Custo
	cFilTQF	:= PARAMIXB[4] // Código da filial do Posto
	
	If IsInCallStack( "MNTA655" )
	    nRecno	:= PARAMIXB[5] // Último registro
	   	dbSelectArea("SD3")
	    dbGoTo(nRecno)
	    RecLock("SD3",.F.)
	    SD3->D3_EMISSAO := dDataBase
	    MsUnlock("SD3")
	EndIf

Return lRet 
Bloco de código
languagexml
titleArquivo mntw693.htm

...

== '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