Pular para o conteúdo principal

Postagem em destaque

🚀 Oferecendo Serviços Remotos de Desenvolvedor AdvPL e Mais 🖥️

🚀 Oferecendo Serviços Remotos de Desenvolvedor AdvPL e Mais 🖥️ Olá pessoal, Espero que este post encontre todos vocês bem! É com grande entusiasmo que compartilho que estou expandindo meus serviços como Desenvolvedor AdvPL para novos desafios e colaborações. Com mais de duas décadas de experiência sólida, minha jornada profissional tem sido enriquecedora, com a oportunidade de participar de projetos empolgantes ao longo dos anos. Agora, estou ansioso para trazer minha experiência e habilidades para novas equipes e projetos, trabalhando de forma remota. Minha expertise abrange não apenas AdvPL, mas também outras tecnologias-chave, incluindo JS, SQL, Infraestrutura e Otimização de Processos. Acredito que essa combinação de conhecimentos me permite oferecer soluções abrangentes e eficazes para uma variedade de necessidades de desenvolvimento. Acredito que a tecnologia tem o poder de transformar negócios e impulsionar o sucesso, e estou comprometido em ajudar meus clientes a alcançar seu

Protheus :: "Integrando o Totvs Development Studio (IDE) ao TortoiseSVN"



Hoje postarei uma dica de como integrar o Totvs Development Studio (IDE) ao SVN (Subversion) utilizando o "client" TortoiseSVN para controle de versão dos fontes do Totvs/Protheus.

Utilizaremos, para isso, macros do IDE. No Exemplo, a macro $SOURCE_NAME irá retornar o caminho completo do "fonte" a ser manipulado. Algumas macros do IDE são:

$SOURCE_NAME
$SOURCE_NAME_NO_DRIVE
$SOURCE_SHORT_NAME
$SOURCE_CURSOR_LINE
$SOURCE_CURSOR_COLUMN
$SOURCE_CURSOR_WORD
$SOURCE_EXECUTION_LINE
$SOURCE_PATH
$SOURCE_EXT
$SOURCE_DRIVE
$SYSTEM_DATE
$SYSTEM_TIME
$SYSTEM_USER_NAME
$SYSTEM_USER_ACCESS
$VERSION_ADD_FILE
$VERSION_ASK_FOR_COMMENT
$VERSION_CHECK_OUT
$VERSION_CHECK_IN
$VERSION_GET_LAST
$VERSION_REMOVE_FILE
$VERSION_UNDO_CHECK_OUT

Observações:
  1. Se o server do SubVersion estiver em linux, não utilize a macro $SOURCE_NAME_NO_DRIVE, pois essa, quando o arquivo "fonte" possui _ ("underline"), passa-o como "upper case" fazendo com que o cliente do SubVersion, o TortoiseSVN não consiga encontrar o arquivo;
  2. Para que seja possível efetuar o "lock/unlock" dos "fontes" a propriedade "svn:needs-lock" deverá ter sido atribuida aos arquivos que deseja versionar;
Vamos ao que interessa:
  • Abra o "Totvs Development Studio" (IDE) executando o arquivo TotvsDevStudio.exe;
  • No menu Arquivo\Preferências, selecione a "aba" Controle de Versão;
  • Marque o "check box" Utiliza Controle de Versão;
  • Dentre as opções "Visual Source Safe" e "Outros", selecione: "Outros";
  • Configure as opções como abaixo:




  1. Software: TortoiseProc.exe
  2. Iniciar em: %ProgramFiles%\TortoiseSVN\bin\
  3. Última Versão: /command:update /path:"$SOURCE_NAME" /notempfile /closeonend:3
  4. Reservar: /command:lock /path:"$SOURCE_NAME" /notempfile /closeonend:3
  5. Canc. Reserva: /command:unlock /path:"$SOURCE_NAME" /notempfile /closeonend:3
  6. Confirmar: /command:commit /path:"$SOURCE_NAME" /notempfile /closeonend:3
  7. Adicionar: /command:add /path:"$SOURCE_NAME" /notempfile /closeonend:3
  8. Remover: /command:remove /path:"$SOURCE_NAME" /notempfile /closeonend:3
Se preferir, copie e cole o conteúdo abaixo no totvsdevstudio.ini na seção "[Source Control]"

[Source Control]
Source Control Software=TortoiseProc.exe
Initial Path=%ProgramFiles%\TortoiseSVN\bin\
Get Latest Version=/command:update /path:"$SOURCE_NAME" /notempfile /closeonend:3
Check In=/command:commit /path:"$SOURCE_NAME" /notempfile /closeonend:3
Check Out=/command:lock /path:"$SOURCE_NAME" /notempfile /closeonend:3
Add File=/command:add /path:"$SOURCE_NAME" /notempfile /closeonend:3
Remove File=/command:remove /path:"$SOURCE_NAME" /notempfile /closeonend:3
Undo Check Out=/command:unlock /path:"$SOURCE_NAME" /notempfile /closeonend:3

e altere a chave "Use Source Control" de 0 para 1 como em: Use Source Control=1 na seção [Preferences].

Ao fazer isso, será disponibilizada uma nova "palheta" com as seguintes opções:



Onde:

obtém a última versão do arquivo

efetua a reserva do arquivo

confirma as alterações enviando-as para o software de versionamento

desfaz/cancela a reserva

adiciona arquivo ao controle de versionamento

remove arquivo do controle de versionamento

Para informações e download do SubVersion, clique aqui;
Para baixar o TortoiseSVN clique aqui; e
Para mais informações de como utilizar o TortoiseSVN em linha de comando, clique aqui;

Comentários

  1. Ola Naldo. Voce eh o cara! Dah uma olhada nesse projeto e entra em contato comigo por favor: http://sourceforge.net/projects/pactvs pegue o documento com a descricao do projeto no link "files".
    Abracos
    MSilver

    ResponderExcluir
  2. Naldo meus parabéns ficou incrível...

    Jean

    ResponderExcluir
  3. Boa tarde Naldo.
    No caso de termos vários programadores, o TortoiseSVN será instalado no servidor de aplicação ou nas máquinas dos programadores ???
    Muito obrigado.

    ResponderExcluir
  4. Rodrigo,

    O TortoiseSVN é o "client" do SubVersion ou SVN e, dada a sua característica, deverá ser instalado no ambiente local de trabalho. Para não me alongar no comentário vou fazer-lhe uma pequena, mas útil, recomendação: Acompanhe os "Links" do Post: Dicas de Leitura :: SVN http://naldodjblogs.blogspot.com/2011/09/dicas-de-leitura-svn.html que vc encontrará boas recomendações.

    []s

    иαldσ dj

    ResponderExcluir
  5. Belíssimo tutorial Naldo.
    Parabéns pela dedicação e didática.

    Ronaldo Marins

    ResponderExcluir
  6. Olá Naldo.

    Você sabe me dizer se esses procedimentos podem ser aplicados para integrar a IDE com TFS 2012?

    Obrigada.

    ResponderExcluir
    Respostas
    1. Se estiver utilizando o TDS basta instalar o plug-in do TFS para Eclipse. Existem bons materiais na nuvem. Procure por TFS Eclipse. Já para a antiga IDE você terá que descobrir os comandos equivalentes aos do tortoise para check-in, check-out, etc... e aí, basta substituí-los.

      Excluir
  7. Como a TOTVS tem essa particularidade de controlar os fontes por data/hora conforme o RPO, qual ferramenta de versionamento de fontes consegue preservar a data/hora do arquivo ao realizar o commit do arquivo?

    ResponderExcluir
  8. Boa tarde Naldo.

    Também estou testando com o SVN, só não consegui que os fontes após o commit, a data/hora dos mesmos fossem preservadas conforme o arquivo.

    Você está conseguindo preservar a data/hora? Você consegue verificar se a data de um determinado fonte do RPO é igual a de um determinado arquivo no repositório do SVN?

    Obrigado.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

BlackTDN :: RLeg ~ Desvendando a Função ParamBox

Para quem precisar desenvolver uma interface de entrada de dados, coisa rápida, e não quer ter aquele trabalhão danado que todos já sabemos, o Protheus tem uma função que ajuda muito, é uma interface semelhante a função Pergunte, porém com muito mais opção de objeto de entrada de dados, alias até colocar o scrollbox desta interface com todos os objetos em outra MsDialog ou Wizard é simples. Vejam o exemplo abaixo, boa sorte! Rleg. //---------------------------------------------------------- // Função exemplo utilizando a função ParamBox() //---------------------------------------------------------- User Function xParamBox() Local aRet := {} Local aParamBox := {} Local aCombo := {"Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"} Local i := 0 Private cCadastro := "xParambox" // ---------------

BlackTDN :: Customizando a interface de Login no Protheus e by You

A publicação “ BlackTDN :: By You e sua nova tela de login ”  de nosso amigo OBona deu o que falar e, em função disso, esse que a muito não vos escreve resolveu criar uma versão onde será possível personalizar, “por completo”, a tela de login no Protheus/by You. Considerando que OBona já havia “mapeado, identificado e customizado” as imagens peguei-as emprestadas para o exemplo que se segue: O primeiro passo para a customização “total” da interface de login do Protheus/by You será implementar o “Ponto de Entrada” ChgPrDir (Diretório de impressão) . Usaremos esse PE juntamente como programa U_FindMsObject.prg (apresentado pela primeira vez em: Protheus :: ADVPL : The Container : Presents Pandora's box ). Diferente do exemplo proposto por OBona, que substitui, durante o processo de compilação, as imagens padrões do sistema (excluindo-as) por imagens customizadas (com o mesmo nome) este novo exemplo mantém, no RPO, as imagens padrões adicionando novas imagens customizadas que serã

Protheus :: Chamando Funções do Menu Diretamente e sem a Necessidade de Login

Ferne$ perguntou: "...é possível abrir alguma rotina do sistema sem solicitar login ao usuário, como por exemplo a rotina MATA010..." Sim Ferne$, é possível sim. Abaixo um Exemplo para a Chamada à função MATA010 sem a necessidade de Login no sistema. #INCLUDE "PROTHEUS.CH" #INCLUDE "TBICONN.CH" /*/ Funcao: MATA010Ex Data: 30/04/2011 Autor: Marinaldo de Jesus Descricao: Executar a Funcao MATA010 diretamente sem a necessidade de LOGIN no Protheus Sintaxe: 1 ) U_MATA010Ex ( Chamada diretamente na Tela de Entrada do Sistema ) ; ou 2 ) totvsclient.exe -q -p=u_MATA010Ex -a=01;01 -c=rnp_local -e=rnp -m -l ( Chamada Via Linha de Comando ) /*/ User Function MATA010Ex( cEmpFil ) Local aEmpFil Local bWindowInit := { || __Execute( "MATA010()" , "xxxxxxxxxxxxxxxxxxxx" , "MATA010" , "SIGAFAT" , "SIGAFAT", 1 , .T. ) } Local cEmp Local cFil Local cMod Local cModName := "SIGAFAT" DEFA