Histórico da Página
...
Produto: | Manutenção de Ativos e Gestão de Frotas (SIGAMNT). |
Versões: | Todas |
Ocorrência: | Desenvolvimento de função para execução automática(ExecAuto) e inclusão de registros na rotina de Geração Check List. |
Ambiente: | Todos |
Passo a passo: | Deve ser realizado o desenvolvimento de uma "User Function", chamando o modelo de dados "MNTA735" e em seguidaPara desenvolvimento da rotina de execução automática, para inclusão de dados na rotina de Geração Check List, favor utilizar o exemplo abaixo. |
Bloco de código | ||||
---|---|---|---|---|
| ||||
#INCLUDE "PROTHEUS.CH" //-------------------------------------------------- // FUNÇÃO RESPONSÁVEL PELA CRIAÇÃO DO EXECAUTO // DA ROTINA MNTA735 //-------------------------------------------------- User Function MNT735Exec() Local aSay := {} Local aButton := {} Local nOpc := 0 Local Titulo := 'IMPORTAÇÃO DE CHECK LIST' Local cDesc1 := 'Esta rotina fará a importação de Check List' Local cDesc2 := 'conforme layout. ' Local cDesc3 := '' Local lOk := .T. Private lJob := aAddType( aSay, cDesc1"oMainWnd" ) != "O" If !lJob aAdd( aSay, cDesc2cDesc1 ) aAdd( aSay, cDesc2 ) aAdd( aSay, cDesc3 ) aAdd( aButton, { 1, .T., { || nOpc := 1, FechaBatch() } } ) aAdd( aButton, { 2, .T., { || FechaBatch() } } ) FormBatch( Titulo, aSay, aButton ) If Else nOpc :== 1 //quando a chamada for via Job recebe Processa(automaticamente {OK ||para lOkexecução := Runproc() },'Aguarde','Processando...',.F.)do processo RpcSetType(3) If lOk RpcSetEnv("99", "01 " ) EndIf If nOpc ApMsgInfo( 'Processamento terminado com sucesso.', 'ATENÇÃO' )== 1 Else If !lJob Processa( { || lOk := ApMsgStopRunproc() },'Aguarde','Processando...',.F.) If lOk ApMsgInfo( 'Processamento realizadoterminado com problemassucesso.', 'ATENÇÃO' ) Else ApMsgStop( 'Processamento realizado com problemas.', 'ATENÇÃO' ) EndIf Else lOk := Runproc() EndIf EndIf Return Nil //------------------------------------------------------------------- // Rotina para importação de Check List. //------------------------------------------------------------------- Static Function Runproc() Local lRet := .T. Local aCposCab := {} Local aCposDet := {} //Dados da tabela. aCposCab := {} aAdd( aCposCab, { 'TTF_FILIAL' , 'M RJ 01 'xFilial("TTF") } ) aAdd( aCposCab, { 'TTF_CODBEM' , '1234 ALKM009 ' } ) aAdd( aCposCab, { 'TTF_CODFAM' , '1234 FM0003' } ) aAdd( aCposCab, { 'TTF_TIPMOD' , '1234 M00002 ' } ) } ) aAdd( aCposCab, { 'TTF_CODFUN' , '000001' } ) aAdd( aCposCab, { 'TTF_DATA' , dDataBase } ) aAdd( aCposCab, { 'TTF_HORA' , '1812:1800' } ) //Valores da TTG aCposDet := {} aAdd( aCposDetaCposCab, { 'TTGTTF_FILIALSEQFAM' , 'M001' RJ 01 '} ) aAdd( aCposDet, { 'TTD_TIPMOD', 'X' } ) aAdd( aCposDet, { 'TTG_ETAPA' , '1234 ' } )//Valores da TTG aCposDet := {} aAdd( aCposDet, { { 'TTG_EVENTOFILIAL', 'O' } ) aAdd( aCposDet, xFilial("TTG") },; { 'TTG_ETAPA' , '000001' },; { 'TTG_SERVICEVENTO', '1234 O' } ) aAdd( aCposDet, },; { 'TTG_SERVIC', 'CORELE' },; { 'TTG_CRITIC', 'A' } } ) If !ImportaAdd( 'TTF'aCposDet, { { 'TTG_FILIAL', aCposCab, aCposDet ) lRet := .F. EndIf xFilial("TTG") },; { 'TTG_ETAPA' , '000002' },; { 'TTG_EVENTO', 'O' },; { 'TTG_SERVIC', 'CORELE' },; { 'TTG_CRITIC', 'M' } } ) If !Import( 'TTF', 'TTG', aCposCab, aCposDet ) lRet := .F. EndIf Return lRet //------------------------------------------------------------------- // Importacao dos dados //------------------------------------------------------------------- Static Function Import( cMaster, cDetail, aCpoMaster, aCpoDetail ) cMaster, cDetail, aCpoMaster, aCpoDetail ) Local oModel Local lRet := .T. Local nI := 0 Local nJ := 0 Local nK := 0 Local nItErro := 0 dbSelectArea( cDetail ) Local oModeldbSetOrder( 1 ) dbSelectArea( cMaster Local) lRet dbSetOrder( := .T.1 ) Local nI //Abre o Model da rotina. oModel := 0 FWLoadModel( 'MNTA735' ) Local// nJDefine a operação desejavada: 3 – :=Inclusão 0 / 4 – Alteração Local/ nItErro5 :=- 0 Exclusão dbSelectAreaoModel:SetOperation( cDetail3 ) dbSetOrder(// 1Ativação ) dbSelectArea( cMaster )do Modelo. dbSetOrder( 1 oModel:Activate() //AbreJoga os valores da TTF para o Modelmodelo da- rotinaTTFMASTER. oModel := FWLoadModel( 'MNTA735' ) If Len(aCpoMaster) > 0 // Define aFor operaçãonI desejavada:= 31 – Inclusão / 4 – Alteração / 5 - Exclusão To Len(aCpoMaster) oModel:SetOperation( 3 ) LoadValue("TTFMASTER",aCpoMaster[nI,1],aCpoMaster[nI,2]) // Ativação doNext Modelo.nI oModel:Activate()EndIf //Joga oso valores da TTFTTG para oa modeloGrid - TTFMASTERTTGDETAIL. If Len(aCpoMasteraCpoDetail) > 0 For nInJ := 1 To Len(aCpoMaster) aCpoDetail) If nJ > 1 oModel:LoadValue("TTFMASTER",aCpoMaster[nI,1],aCpoMaster[nI,2]GetModel('TTGDETAIL'):AddLine() Next nI EndIf //Joga o valores da TTG para a Grid -For TTGDETAIL. nK := 1 Ifto Len(aCpoDetail[nJ]) > 0 For nJ := 1 To Len(aCpoDetail) ConOut(aCpoDetail[nJ][nK][1]) oModel:LoadValue("TTGDETAIL",aCpoDetail[nJ,][nK][1],aCpoDetail[nJ,][nK][2]) Next nK Next nJ EndIf If ( lRet := oModel:VldData() ) //Valida os dados informados. // Se os dados foram validados faz-se a gravação efetiva dos // dados (commit) oModel:CommitData() EndIf If !lRet // Se os dados não foram validados obtemos a descrição do erro para gerar // LOG ou mensagem de aviso aErro := oModel:GetErrorMessage() // A estrutura do vetor com erro é: // [1] identificador (ID) do formulário de origem // [2] identificador (ID) do campo de origem // [3] identificador (ID) do formulário de erro // [4] identificador (ID) do campo de erro // [5] identificador (ID) do erro // [6] mensagem do erro // [7] mensagem da solução // [8] Valor atribuído // [9] Valor anterior AutoGrLog( "Id do formulário de origem:" + ' [' + AllToChar( aErro[1] ) + ']' ) AutoGrLog( "Id do campo de origem: " + ' [' + AllToChar( aErro[2] ) + ']' ) AutoGrLog( "Id do formulário de erro: " + ' [' + AllToChar( aErro[3] ) + ']' ) AutoGrLog( "Id do campo de erro: " + ' [' + AllToChar( aErro[4] ) + ']' ) AutoGrLog( "Id do erro: " + ' [' + AllToChar( aErro[5] ) + ']' ) AutoGrLog( "Mensagem do erro: " + ' [' + AllToChar( aErro[6] ) + ']' ) AutoGrLog( "Mensagem da solução: " + ' [' + AllToChar( aErro[7] ) + ']' ) AutoGrLog( "Valor atribuído: " + ' [' + AllToChar( aErro[8] ) + ']' ) AutoGrLog( "Valor anterior: " + ' [' + AllToChar( aErro[9] ) + ']' ) If nItErro > 0 AutoGrLog( "Erro no Item: " + ' [' + AllTrim( AllToChar( nItErro ) ) + ']' ) EndIf If !lJob MostraErro() EndIf EndIf // Desativamos o Model oModel:DeActivate() Return lRet |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas