Árvore de páginas


01. DADOS GERAIS

Linha de Produto:Microsiga Protheus
Segmento:Recursos Humanos
Módulo:SIGARSP
Função:RSPA010
Ticket:N/A
Requisito/Story/Issue :

DRHPAG-29354


02. SITUAÇÃO/REQUISITO

Preparar a rotina de Cadastro de Candidatos (RSPA010) para execução de ExecAuto a fim de ser utilizado no processo de anonimização.

03. SOLUÇÃO

Realizada adaptação da rotina de Cadastro de Candidatos (RSPA010) para execução via ExecAuto.

Abaixo exemplo de utilização e chamada da rotina.


  • Chamada da rotina: MSExecAuto({|v,x,y,z| RSPA010(v,x,y,z)}, "SQG" , , nOpc, aRotAuto)
  • Onde:
    • nOpc        = tipo de operação. 3 = Inclusão; 4 = Alteração; 5 = Exclusão
    • aRotAuto  = array com os dados a incluir ou alterar
      • Estrutura aRotAuto:
      • aRotAuto[1] - posição destinada à tabela SQG
        • aRotAuto[1][1] = "SQG"                                                    //alias da tabela
        • aRotAuto[1][2] = 1                                                           //índice para busca na tabela
        • aRotAuto[1][3] = xFilial("SQG","D MG 01")+"000012"    //chave de busca na tabela conforme índice escolhido
        • aRotAuto[1][4] = array com dados a incluir na tabela. Formato = {{campo,conteúdo},{campo,conteúdo},{campo,conteúdo}}
          • aRotAuto[1][4] = { {"QG_FILIAL", xFilial("SQG","D MG 01")} , { "QG_CURRIC", "000012"} }
      • aRotAuto[2] - posição destinada à tabela SQL
        • aRotAuto[2][1] - array com nome do campo a ser manipulado
          • aRotAuto[2][1] = { {"QL_FILIAL" , "QL_CURRIC" , "QL_DTADMIS" , "QL_DTDEMIS" , "QL_ATIVIDA" ,"QL_AREA" ,"QL_EMPRESA" ,"QL_FUNCAO"} }
        • aRotAuto[2][2] - array com as linhas a serem manipuladas, o conteúdo deve seguir a ordem dos campos definida no array aRotAuto[2][1][1]
          • aRotAuto[2][2] = { {xFilial("SQL","D MG 01") , "000012" , CtoD("10/10/2000"), CtoD("10/10/2010"), "TESTE INCLUSAO - 5" ,"001" ,"empresa x" ,"funcao x"} }
      • aRotAuto[3] - posição destinada à tabela SQM
        • aRotAuto[3][1] - array com nome do campo a ser manipulado
          • aRotAuto[3][1] = { {"QM_FILIAL" , "QM_CURRIC" , "QM_ENTIDAD" , "QM_DATA" ,"QM_CURSO"} }
        • aRotAuto[3][2] - array com as linhas a serem manipuladas, o conteúdo deve seguir a ordem dos campos definida no array aRotAuto[2][1][1]
          • aRotAuto[3][2] = { {xFilial("SQM","D MG 01") , "000012" , "GPE_ESTAGIARIO" , CtoD("10/10/2000"), "00004"} }
      • aRotAuto[4] - posição destinada à tabela SQI
        • aRotAuto[4][1] - array com nome do campo a ser manipulado
          • aRotAuto[4][1] = { {"QI_FILIAL" , "QI_CURRIC" , "QI_GRUPO", "QI_FATOR", "QI_GRAU" , "QI_DATA" } }
        • aRotAuto[4][2] - array com as linhas a serem manipuladas, o conteúdo deve seguir a ordem dos campos definida no array aRotAuto[2][1][1]
          • aRotAuto[4][2] = { {xFilial("SQI","D MG 01") , "000012" , "01" , "01" , "03" , CtoD("09/09/2018")} }
      • aRotAuto[5] - posição destinada à tabela SQR
        • aRotAuto[5][1] - array com nome do campo a ser manipulado
          • aRotAuto[5][1] =  { {"QR_FILIAL" , "QR_CURRIC" , "QR_TESTE", "QR_TOPICO" , "QR_QUESTAO" , "QR_ALTERNA" , "QR_RESULTA" , "QR_VAGA" , "QR_DATA"} }
        • aRotAuto[5][2] - array com as linhas a serem manipuladas, o conteúdo deve seguir a ordem dos campos definida no array aRotAuto[2][1][1]
          • aRotAuto[5][2] = { {xFilial("SQR","D MG 01") , "000012" , "001" , "001" , "001" , "02" , 100 , "000001" , CtoD("10/11/2019")} }
      • aRotAuto[6] - posição destinada à tabela SM6
        • aRotAuto[6][1] - array com nome do campo a ser manipulado
          • aRotAuto[6][1] = { {"M6_FILIAL" , "M6_CURRIC" , "M6_TIPO" , "M6_RESP" , "M6_ALTERNA"} }
        • aRotAuto[6][2] - array com as linhas a serem manipuladas, o conteúdo deve seguir a ordem dos campos definida no array aRotAuto[2][1][1]
          • aRotAuto[6][2] = { {xFilial("SM6","D MG 01") , "000012" , "00003" , "" , "001*004*003"} } 


Exemplo chamada ExecAuto RSPA010 - inclusão / alteração / exclusão
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"
#INCLUDE "RWMAKE.CH"

User Function AutRSPA010()
    Private lMsErroAuto := .F.

    PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01" MODULO "RSP"

    If IncCurric()
    	If AltCurric()
    		DelCurric()
    	EndIf
    EndIf

    RESET ENVIRONMENT

Return NIL

Static Function IncCurric()
Local nOpc := 3
Local aRotAuto := {}
lMsErroAuto := .F.
    ConOut(Repl("-",80))
    ConOut("Inicio: "+Time())
    ConOut(PadC("Rotina Automatica INCLUSAO CURRICULO - SQG, SQL, SQM, SQI, SQR",80))

        Aadd( aRotAuto, { "SQG",1,xFilial("SQG","D MG 01")+"000012",{;
        					{"QG_FILIAL", xFilial("SQG","D MG 01")},;
        					{ "QG_CURRIC", "000012"},;
        					{ "QG_CIC", "83807719075"},;
        					{ "QG_RG", "834104710"},;
        					{ "QG_NOME", "TESTE INCLUSAO"};
        					}})

        Aadd( aRotAuto, {;
        				 {{"QL_FILIAL"				, "QL_CURRIC"	, "QL_DTADMIS"		, "QL_DTDEMIS"		, "QL_ATIVIDA"			,"QL_AREA"	,"QL_EMPRESA"	,"QL_FUNCAO"} },;
        				 {{xFilial("SQL","D MG 01")	, "000012"		, CtoD("10/10/2000"), CtoD("10/10/2010"), "TESTE INCLUSAO - 5"	,"001"		,"empresa x"	,"funcao x"},;
        				  {xFilial("SQL","D MG 01")	, "000012"		, CtoD("21/11/2010"), CtoD("10/10/2018"), "TESTE INCLUSAO - 5A" ,"001"		,"empresa y"	,"funcao y"}};
        				})

        Aadd( aRotAuto, { ;
        				 {{"QM_FILIAL"				, "QM_CURRIC"	, "QM_ENTIDAD"		, "QM_DATA"			,"QM_CURSO"}},;
        				 {{xFilial("SQM","D MG 01")	, "000012"		, "GPE_ESTAGIARIO"	, CtoD("10/10/2000"), "00004"},;
        				  {xFilial("SQM","D MG 01")	, "000012"		, "GPE_ESTAGIARIO"	, CtoD("10/10/2018"), "00001"}};
        				})

        Aadd( aRotAuto, { ;
        				 {{"QI_FILIAL"				, "QI_CURRIC"	, "QI_GRUPO", "QI_FATOR", "QI_GRAU"	, "QI_DATA" } },;
        				 {{xFilial("SQI","D MG 01")	, "000012"		, "01"		, "01"		, "03"		, CtoD("09/09/2018")},;
        				  {xFilial("SQI","D MG 01")	, "000012"		, "01"		, "02"		, "01"		, CtoD("09/09/2018") }};
        				})

        Aadd( aRotAuto, { ;
        				 {{"QR_FILIAL"				, "QR_CURRIC"	, "QR_TESTE", "QR_TOPICO"	, "QR_QUESTAO"	, "QR_ALTERNA"	, "QR_RESULTA"	, "QR_VAGA"	, "QR_DATA"} },;
        				 {{xFilial("SQR","D MG 01")	, "000012"		, "001"		, "001"			, "001"			, "02"			, 100			, "000001"	, CtoD("10/11/2019")} ,;
        				  {xFilial("SQR","D MG 01")	, "000012"		, "001"		, "001"			, "002"			, "03"			, 100			, "000001"	, CtoD("10/11/2019")} ,;
        				  {xFilial("SQR","D MG 01")	, "000012"		, "001"		, "001"			, "003"			, "01"			, 100			, "000001"	, CtoD("10/11/2019")} };
        				})

        Aadd( aRotAuto, { ;
        				 {{"M6_FILIAL"				, "M6_CURRIC"	, "M6_TIPO"	, "M6_RESP"		, "M6_ALTERNA"} },;
        				 {{xFilial("SM6","D MG 01")	, "000012"		, "00001"	, "001"			, ""} ,;
        				  {xFilial("SM6","D MG 01")	, "000012"		, "00002"	, ""			, "002"} ,;
        				  {xFilial("SM6","D MG 01")	, "000012"		, "00003"	, ""			, "001*004*003"} };
        				})

	MSExecAuto({|v,x,y,z| RSPA010(v,x,y,z)},"SQG" , , nOpc, aRotAuto)

    If !lMsErroAuto
        ConOut("**** INCLUSAO com sucesso! ****")
    Else
        MostraErro()
        ConOut("**********ERRO na INCLUSAO!*************")
    EndIf

    ConOut("Fim Inclusao: "+Time())
    ConOut(Repl("-",80))

Return !lMsErroAuto

Static Function AltCurric()`
Local nOpc := 4
Local aRotAuto := {}
lMsErroAuto := .F.
    ConOut(Repl("-",80))
    ConOut("Inicio: "+Time())
    ConOut(PadC("Rotina Automatica ALTERACAO CURRICULO - SQG, SQL, SQM, SQI, SQR",80))

        Aadd( aRotAuto, { "SQG",1,xFilial("SQG","D MG 01")+"000012",{;
        					{"QG_FILIAL", xFilial("SQG","D MG 01"), Nil },;
        					{ "QG_CURRIC", "000012", Nil },;
        					{ "QG_CIC", "83807719075", Nil },;
        					{ "QG_RG", "834104710", Nil },;
        					{ "QG_NOME", "TESTE ALTERACAO - 5", Nil };
        					}})

        Aadd( aRotAuto, {;
        				 {{"QL_FILIAL"				, "QL_CURRIC"	, "QL_DTADMIS"		, "QL_DTDEMIS"		, "QL_ATIVIDA"			,"QL_AREA"	,"QL_EMPRESA"			,"QL_FUNCAO"} },;
        				 {{xFilial("SQL","D MG 01")	, "000012"		, CtoD("10/10/2005"), CtoD("10/10/2015"), "TESTE ALTERACAO - 5"	,"001"		,"empresa x - alterada"	,"funcao x"},;
        				  {xFilial("SQL","D MG 01")	, "000012"		, CtoD("21/11/2015"), CtoD("10/10/2018"), "TESTE ALTERACAO - 5A" ,"001"		,"empresa y - alterada"	,"funcao y"}};
        				})

        Aadd( aRotAuto, { ;
        				 {{"QM_FILIAL"				, "QM_CURRIC"	, "QM_ENTIDAD"		, "QM_DATA"			,"QM_CURSO"}},;
        				 {{xFilial("SQM","D MG 01")	, "000012"		, "GPE_ESTAGIARIO"	, CtoD("10/10/2015"), "00004"},;
        				  {xFilial("SQM","D MG 01")	, "000012"		, "GPE_ESTAGIARIO"	, CtoD("10/10/2018"), "00001"}};
        				})

        Aadd( aRotAuto, { ;
        				 {{"QI_FILIAL"				, "QI_CURRIC"	, "QI_GRUPO", "QI_FATOR", "QI_GRAU"	, "QI_DATA" } },;
        				 {{xFilial("SQI","D MG 01")	, "000012"		, "01"		, "01"		, "02"		, CtoD("10/10/2018")},;
        				  {xFilial("SQI","D MG 01")	, "000012"		, "01"		, "02"		, "02"		, CtoD("10/10/2018") }};
        				})

        Aadd( aRotAuto, { ;
        				 {{"QR_FILIAL"				, "QR_CURRIC"	, "QR_TESTE", "QR_TOPICO"	, "QR_QUESTAO"	, "QR_ALTERNA"	, "QR_RESULTA"	, "QR_VAGA"	, "QR_DATA"} },;
        				 {{xFilial("SQR","D MG 01")	, "000012"		, "001"		, "001"			, "001"			, "01"			, 000			, "000001"	, CtoD("20/11/2019")} ,;
        				  {xFilial("SQR","D MG 01")	, "000012"		, "001"		, "001"			, "002"			, "03"			, 100			, "000001"	, CtoD("11/11/2019")} ,;
        				  {xFilial("SQR","D MG 01")	, "000012"		, "001"		, "001"			, "003"			, "01"			, 100			, "000001"	, CtoD("11/11/2019")} };
        				})

        Aadd( aRotAuto, { ;
        				 {{"M6_FILIAL"				, "M6_CURRIC"	, "M6_TIPO"	, "M6_RESP"		, "M6_ALTERNA"} },;
        				 {{xFilial("SM6","D MG 01")	, "000012"		, "00001"	, "002"			, ""} ,;
        				  {xFilial("SM6","D MG 01")	, "000012"		, "00002"	, ""			, "003"} ,;
        				  {xFilial("SM6","D MG 01")	, "000012"		, "00003"	, ""			, "002*004*003"} };
        				})

	MSExecAuto({|v,x,y,z| RSPA010(v,x,y,z)}, "SQG", , nOpc, aRotAuto)

    If !lMsErroAuto
        ConOut("**** ALTERACAO com sucesso! ****")
    Else
        MostraErro()
        ConOut("**********ERRO na ALTERACAO!*************")
    EndIf

    ConOut("Fim Alteracao: "+Time())
    ConOut(Repl("-",80))
Return !lMsErroAuto

Static Function DelCurric()
Local nOpc := 5
lMsErroAuto := .F.
    ConOut(Repl("-",80))
    ConOut("Inicio: "+Time())
    ConOut(PadC("Rotina Automatica EXCLUSAO CURRICULO - SQG, SQL, SQM, SQI, SQR",80))

	DbSelectArea("SQG")
	DbSetOrder(3) //Filial + CIC
	If SQG->(DbSeek(xFilial("SQG","D MG 01")+"83807719075"))
		MSExecAuto({|v,x,y,z| RSPA010(v,x,y,z)}, "SQG", , nOpc, {} )
	EndIf
    ConOut("Fim Excluso: "+Time())
    ConOut(Repl("-",80))
Return !lMsErroAuto





04. DEMAIS INFORMAÇÕES

N/A



05. ASSUNTOS RELACIONADOS

  • N/A