Ponto de Entrada – A200GRVE

Exemplo do Ponto de Entrada A200GRVE.

Exemplo do Ponto de Entrada:

//Bibliotecas
#Include "Protheus.ch"
#Include "TopConn.ch"

/*--------------------------------------------------------------------------------------------------------------*
 | P.E.:  A200GRVE                                                                                              |
 | Desc:  P.E. chamado na confirmação de dados da Estrutura                                                     |
 | Link:  http://tdn.totvs.com/display/public/PROT/A200GRVE                                                     |
 *--------------------------------------------------------------------------------------------------------------*/

User Function A200GRVE()
	Local aArea     := GetArea()
	Local nOperacao := ParamIxb[1]
	Local lMapDiv   := ParamIxb[2]
	Local aRecExc   := ParamIxb[3]
	Local aRecAlt   := ParamIxb[4]
	Local cEmAlter  := SuperGetMV("MV_X_ALTEM", .F., "suporte@terminaldeinformacao.com")
	Local cEmExclu  := SuperGetMV("MV_X_EXCEM", .F., "suporte@terminaldeinformacao.com")
	Local cMsg      := ""
	Local nAtual    := 0
	Local aRegsInc  := {}
	Local aRegsAlt  := {}
	Local aRegsExc  := {}
	Local cQryAux   := ""
	Local cCodProd  := ""
	Local cDesProd  := ""
	
	If nOperacao != 3
		cMsg += "Produto: "+cProduto+"("+Alltrim(Posicione('SB1', 1, FWxFilial('SB1')+cProduto, 'B1_DESC'))+")
" cMsg += "Data: "+dToC(Date())+"
" cMsg += "Hora: "+Time()+"
" cMsg += "Usuário: "+RetCodUsr()+" ("+cUserName+")

" EndIf //Visualização If nOperacao == 2 //Inclusão ElseIf nOperacao == 3 //Alteração ElseIf nOperacao == 4 //Se tiver alteração, dispara e-Mail cMsg := '

Alteração na Estrutura.



'+cMsg+'

' //Percorre os recnos For nAtual := 1 To Len(aRecAlt) cQryAux := " SELECT " cQryAux += " G1_COMP, " cQryAux += " B1_DESC AS DESCRICAO " cQryAux += " FROM " cQryAux += " "+RetSQLName('SG1')+" SG1 WITH (NOLOCK) " cQryAux += " INNER JOIN "+RetSQLName('SB1')+" SB1 WITH (NOLOCK) ON (" cQryAux += " B1_FILIAL = '"+FWxFilial('SB1')+"' " cQryAux += " AND B1_COD = G1_COMP " cQryAux += " AND SB1.D_E_L_E_T_ = ' ' " cQryAux += " ) " cQryAux += " WHERE " cQryAux += " SG1.R_E_C_N_O_ = "+cValToChar(aRecAlt[nAtual][1])+" " TCQuery cQryAux New Alias "QRY_AUX" cCodProd := "" cDesProd := "" //Se houver dados If !QRY_AUX->(EoF()) cCodProd := QRY_AUX->G1_COMP cDesProd := QRY_AUX->DESCRICAO EndIf QRY_AUX->(DbCloseArea()) //Se tiver produto e/ou descrição If !Empty(cCodProd) .Or. !Empty(cDesProd) //Alteração de Item If aRecAlt[nAtual][2] == 3 aAdd(aRegsInc, {cCodProd, cDesProd}) //Inclusão de Item ElseIf aRecAlt[nAtual][2] == 1 aAdd(aRegsAlt, {cCodProd, cDesProd}) //Exclusão de Item ElseIf aRecAlt[nAtual][2] == 2 aAdd(aRegsExc, {cCodProd, cDesProd}) EndIf EndIf Next //Se tiver dados de inclusão If Len(aRegsInc) > 0 cMsg += '
Inclusão de Produtos:
' cMsg += '' cMsg += '' cMsg += '' cMsg += '' cMsg += '' For nAtual := 1 To Len(aRegsInc) cMsg += '' cMsg += '' cMsg += '' cMsg += '' Next cMsg += '
CódigoDescrição
'+aRegsInc[nAtual][1]+''+aRegsInc[nAtual][2]+'
' cMsg += '
' cMsg += '

' EndIf //Se tiver dados de alteração If Len(aRegsAlt) > 0 cMsg += '
Alteraç&ão de Produtos:
' cMsg += '' cMsg += '' cMsg += '' cMsg += '' cMsg += '' For nAtual := 1 To Len(aRegsAlt) cMsg += '' cMsg += '' cMsg += '' cMsg += '' Next cMsg += '
CódigoDescrição
'+aRegsAlt[nAtual][1]+''+aRegsAlt[nAtual][2]+'
' cMsg += '
' cMsg += '

' EndIf //Se tiver dados de exclusão If Len(aRegsExc) > 0 cMsg += '
Exclusão de Produtos:
' cMsg += '' cMsg += '' cMsg += '' cMsg += '' cMsg += '' For nAtual := 1 To Len(aRegsExc) cMsg += '' cMsg += '' cMsg += '' cMsg += '' Next cMsg += '
CódigoDescrição
'+aRegsExc[nAtual][1]+''+aRegsExc[nAtual][2]+'
' cMsg += '
' cMsg += '

' EndIf cMsg += '
' u_EnviarEmail(cEmAlter, "[Estrutura] Alteração de Produto", cMsg) //Exclusão ElseIf nOperacao == 5 cMsg := "

Produto excluído na Estrutura - "+cProduto+".



"+cMsg u_EnviarEmail(cEmExclu, "[Estrutura] Exclusão de Produto", cMsg) EndIf RestArea(aArea) Return

Observações:

– Caso tenha dúvidas ou problemas com os exemplos, entre em contato;
– Se tiver sugestões de rotinas, pode entrar em contato;

Links:

Pesquisa no TDN