Árvore de páginas

Versões comparadas

Chave

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

...

Bloco de código
languagejava
titleExemplo fonte ExecAuto
#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 := Type( "oMainWnd" ) != "O"

	If !lJob

		aAdd( aSay, cDesc1 )
    		aAdd( aSay, cDesc2 )
    		aAdd( aSay, cDesc3 )

    		aAdd( aButton, { 1, .T., { || nOpc := 1, FechaBatch() } } )
    		aAdd( aButton, { 2, .T., { || FechaBatch() } } )

    FormBatch( 		FormBatch( Titulo, aSay, aButton )
	Else
		nOpc := 1 //quando Ifa nOpcchamada ==for 1
via Job recebe automaticamente OK para execução do Processa( { || lOk := Runproc() },'Aguarde','Processando...',.F.)
processo
		RpcSetType(3)
        RpcSetEnv("99", "01 " )
	EndIf

    If nOpc == 1
 If lOk
  	If !lJob
    		Processa( { || lOk := ApMsgInfoRunproc() 'Processamento },'Aguarde','Processando...',.F.)
 			If lOk
				ApMsgInfo( 'Processamento terminado com sucesso.', 'ATENÇÃO' )
        Else
            			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' , '1234ALKM009            ' 	} )
    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' , 'M RJ 01 001'  },;
            	} ) 

    //Valores da TTG
    aCposDet := {}
    aAdd( aCposDet, {	{ 'TTG_ETAPAFILIAL', xFilial("TTG")	},;
						{ 'XTTG_ETAPA' , '000001'       		},;
                        						{ 'TTG_EVENTO', '1234O'   '    		},;
						{       'TTG_SERVIC', 'CORELE'  		},;
						{ 'TTG_CRITIC', 'A'       		} } )


    aAdd( aCposDet, {  	{ 'TTG_SERVICFILIAL', '1234  '    },;
                        { 'TTG_CRITIC', 'A'         } } )



    aAdd( aCposDet, {   { 'TTG_FILIAL', 'M RJ 01 '  },;
                        { 'TTG_ETAPA' , 'Y'         },;
                        xFilial("TTG")	},;
						{ 'TTG_ETAPA' , '000002'		},;
						{ 'TTG_EVENTO', 'N'         },;
                        O'				},;
						{ 'TTG_SERVIC', '1234'      CORELE'		},;
                        						{ 'TTG_CRITIC', 'M'          'M'				} } )

    If !Import( 'TTF', 'TTG', aCposCab, aCposDet )
        lRet := .F.
    EndIf

Return lRet

//-------------------------------------------------------------------
// Importacao dos dados
//-------------------------------------------------------------------
Static Function Import( cMaster, cDetail, aCpoMaster, aCpoDetail )

    Local oModel
    Local lRet    := .T.
    Local nI      	  := 0
    Local nJ      	  := 0
	    Local nK		        := 0
    Local nItErro := 0

    dbSelectArea( cDetail )
    dbSetOrder( 1 )
    dbSelectArea( cMaster )
    dbSetOrder( 1 )

    //Abre o Model da rotina.
    oModel := FWLoadModel( 'MNTA735' )

    // Define a operação desejavada: 3 – Inclusão / 4 – Alteração / 5 - Exclusão
    oModel:SetOperation( 3 )

    // Ativação do Modelo.
    oModel:Activate()

    //Joga os valores da TTF para o modelo - TTFMASTER.
    If Len(aCpoMaster) > 0
        For nI := 1 To Len(aCpoMaster)
            oModel:LoadValue("TTFMASTER",aCpoMaster[nI,1],aCpoMaster[nI,2])
        Next nI
    EndIf

    //Joga o valores da TTG para a Grid - TTGDETAIL.

	    If Len(aCpoDetail) > 0
        For nJ := 1 To Len(aCpoDetail)
            If nJ > 1
                oModel:GetModel('TTGDETAIL'):AddLine()
            EndIf
            For nK := 1 to Len(aCpoDetail[nJ])
                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