MSExecAuto GPEA020

Alguem ja fez uso da rotina automatica para alterar e para excluir dependentes gpea020.


User function ftstDepend()
    Local aCabec   := {}
    Local aItens   := {}
    Local aLinha   := {}
    PRIVATE lMsErroAuto := .F.

    RPCSetType(3)
    PREPARE ENVIRONMENT EMPRESA "01" FILIAL "060101" TABLES "SRA", "SRB", "SX3", "SX2" MODULO "GPE"

    //==============> INCLUSAO DOS PRIMEIROS DEPENDENTES
    aCabec   := {}
    aadd(aCabec,{"RA_FILIAL","060101" ,Nil  })
    aadd(aCabec,{"RA_MAT"   ,"000026" ,Nil  })

    aLinha := {}
    aItens := {}

    aadd(aLinha,{"RB_FILIAL"    , "060101"           , Nil })
    aadd(aLinha,{"RB_MAT"       , "000026"           , Nil })
    aadd(aLinha,{"RB_COD"         , "01"              , Nil })
    aadd(aLinha,{"RB_NOME"       , "MARIA DA SILVA"     , Nil })
    aadd(aLinha,{"RB_DTNASC"     , Ctod("01/01/99")     , Nil })
    aadd(aLinha,{"RB_SEXO"      , "F"                , Nil })
    aadd(aLinha,{"RB_GRAUPAR"     , "F"                , Nil })
    aadd(aLinha,{"RB_TIPIR"      , "1"                , Nil })
    aadd(aLinha,{"RB_TIPSF"      , "1"                , Nil })
    aadd(aLinha,{"RB_LOCNASC"     , "SP"                , Nil })
    aadd(aItens,aLinha)

    aLinha := {}

    aadd(aLinha,{"RB_FILIAL"    , "01"                , Nil })
    aadd(aLinha,{"RB_MAT"       , "000026"           , Nil })
    aadd(aLinha,{"RB_COD"         , "02"                , Nil })
    aadd(aLinha,{"RB_NOME"       , "PEDRO DA SILVA"     , Nil })
    aadd(aLinha,{"RB_DTNASC"     , Ctod("01/01/02")     , Nil })
    aadd(aLinha,{"RB_SEXO"      , "M"                , Nil })
    aadd(aLinha,{"RB_GRAUPAR"      , "F"                , Nil })
    aadd(aLinha,{"RB_TIPIR"      , "1"                , Nil })
    aadd(aLinha,{"RB_TIPSF"      , "1"                , Nil })
    aadd(aLinha,{"RB_LOCNASC"     , "SP"                , Nil })                             

    aadd(aItens,aLinha)   

    MSExecAuto({|x,y,k,w,z| GPEA020(x,y,k,w,z)},3,aCabec,aItens,3) 

    //-- Retorno de erro na execução da rotina
    If lMsErroAuto
        MostraErro()
    Else     
        msgstop("Registro(s) Incluído(s) !!!")      
    EndIf

    //==============> FIM DA INCLUSAO DOS PRIMEIROS REGISTROS

    //==============> TENTATIVA DE ADD UM NOVO DEPENDENTE
    aItens := {}
    aLinha := {}

    aadd(aLinha,{"RB_FILIAL"    , "060101"           , Nil })
    aadd(aLinha,{"RB_MAT"       , "000026"           , Nil })
    aadd(aLinha,{"RB_COD"         , "03"              , Nil })
    aadd(aLinha,{"RB_NOME"       , "JORGE MATEUS"     , Nil })
    aadd(aLinha,{"RB_DTNASC"     , Ctod("01/01/04")     , Nil })
    aadd(aLinha,{"RB_SEXO"      , "F"                , Nil })
    aadd(aLinha,{"RB_GRAUPAR"     , "F"                , Nil })
    aadd(aLinha,{"RB_TIPIR"      , "1"                , Nil })
    aadd(aLinha,{"RB_TIPSF"      , "1"                , Nil })
    aadd(aLinha,{"RB_LOCNASC"     , "SP"                , Nil })
    aadd(aItens,aLinha)

    MSExecAuto({|x,y,k,w,z| GPEA020(x,y,k,w,z)},3,aCabec,aItens,3) 

    //-- Retorno de erro na execução da rotina
    If lMsErroAuto
        MostraErro()
    Else     
        msgstop("Registro(s) Incluído(s) !!!")      
    EndIf
    //==============> FIM DA TENTATIVA DE ADD UM NOVO DEPENDENTE   

    //==============> TENTANDO ALTERA O ULTIMO DEPENDENTE PRA CORRECAO DO NOME
    aItens := {}
    aLinha := {}

    aadd(aLinha,{"RB_FILIAL"    , "060101"           , Nil })
    aadd(aLinha,{"RB_MAT"       , "000026"           , Nil })
    aadd(aLinha,{"RB_COD"         , "03"              , Nil })
    aadd(aLinha,{"RB_NOME"       , "JORGE MATHEUS"     , Nil })
    aadd(aLinha,{"RB_DTNASC"     , Ctod("01/01/04")     , Nil })
    aadd(aLinha,{"RB_SEXO"      , "F"                , Nil })
    aadd(aLinha,{"RB_GRAUPAR"     , "F"                , Nil })
    aadd(aLinha,{"RB_TIPIR"      , "1"                , Nil })
    aadd(aLinha,{"RB_TIPSF"      , "1"                , Nil })
    aadd(aLinha,{"RB_LOCNASC"     , "SP"                , Nil })
    aadd(aItens,aLinha)

    MSExecAuto({|x,y,k,w,z| GPEA020(x,y,k,w,z)},4,aCabec,aItens,4) 

    //-- Retorno de erro na execução da rotina
    If lMsErroAuto
        MostraErro()
    Else     
        msgstop("Registro(s) Incluído(s) !!!")      
    EndIf
    //==============> FIM DA ALTERACAO

    //==============> EXCLUSAO DO PRIMEIRO DEPENDENTE
    aItens := {}
    aLinha := {}

    aadd(aLinha,{"RB_FILIAL"    , "060101"           , Nil })
    aadd(aLinha,{"RB_MAT"       , "000026"           , Nil })
    aadd(aLinha,{"RB_COD"         , "01"              , Nil })
    aadd(aLinha,{"RB_NOME"       , "MARIA DA SILVA"     , Nil })
    aadd(aLinha,{"RB_DTNASC"     , Ctod("01/01/99")     , Nil })
    aadd(aLinha,{"RB_SEXO"      , "F"                , Nil })
    aadd(aLinha,{"RB_GRAUPAR"     , "F"                , Nil })
    aadd(aLinha,{"RB_TIPIR"      , "1"                , Nil })
    aadd(aLinha,{"RB_TIPSF"      , "1"                , Nil })
    aadd(aLinha,{"RB_LOCNASC"     , "SP"                , Nil })
    aadd(aItens,aLinha)

    MSExecAuto({|x,y,k,w,z| GPEA020(x,y,k,w,z)},5,aCabec,aItens,5) 

    //-- Retorno de erro na execução da rotina
    If lMsErroAuto
        MostraErro()
    Else     
        msgstop("Registro(s) Incluído(s) !!!")      
    EndIf
Return(.T.)

Fiz este pequeno fonte para exemplificar, ocorre erro na alteracao dando como chave duplicada devido ter este codigo e ele compreende como inclusao.

E ao excluir um unico dependente ocorre a exclusao de todos.

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags gpea020 msexecauto ou faça a sua própria pergunta.