Recentemente tenho visitado muitas empresas no Brasil para entender como está o PowerBuilder. Para minha boa surpresa, várias destas empresas possuem pessoas que me conhecem daqui do Blog e comentam que já utilizaram bastante o Blog para resolver seus problemas.
Fico muito lisonjeado em ouvir isto e tenho vontade de começar novamente a publicar artigos técnicos aqui no Blog, porém a função que ocupo hoje me exige foco em outras questões e acabo não conseguindo dar a atenção necessária a este canal.
Entretanto, existe pessoas que estão no seu ápice de desenvolvimento PowerBuilder e hoje tem um conhecimento muito maior que o meu. Desta forma, gostaria de compartilhar o Blog que dois grandes amigos meus criaram com o mesmo objetivo que este blog.
No link abaixo você pode acessar várias publicações sobre dicas e soluções para problemas que o Armando e o Breno estão postando várias vezes por semana.
Utilizem a ferramenta e em caso de dúvida, sugestões ou contribuições, fiquem a vontade para enviar para eles.
http://raccoon.ninja/pt/tag/powerbuilder/
Blog de Tecnologia desenvolvido por Thiago Campos Pereira
Blog criado para documentar e disseminar o conhecimento tecnológico adquirido por Thiago Campos Pereira e colaboradores.
quarta-feira, maio 31, 2017
terça-feira, março 14, 2017
Empresas que utilizam PowerBuilder - 2017
Ultima Atualização da Lista: 04/08/2017 10:00
Pessoal,
a 12 anos atrás eu realizei uma pesquisas ( http://thiagocpereira.blogspot.com.br/2005/07/powerbuilder-empresas-que-utilizam.html ) e publiquei aqui da empresas que utilizavam PowerBuilder.
Como muitas pessoas me questionam quais empresas ainda continuam utilizando PowerBuilder, estou refazendo a pesquisa e gostaria do apoio de vocês.
Abaixo a lista de empresas que utiliza PowerBuilder, baseado na pesquisa anterior e em alguns ajustes que já fiz. Gostraria do apoio de vocês para me enviar empresa desta lista que não utilizam mais PowerBuilder e empresas que utilizam PowerBuilder e não estão aqui.
1. Ambev
2. AMIL planos de saúde.
3. Ápia Consultoria e Sistemas Ltda
4. Attps informática (Belo Horizonte)
5. Banco ABN-AMRO
6. Banco BBA
7. Banco BBM
8. Banco BMG
9. Banco do Nordeste
10. Banco Finaustria
11. Banco SAFRA.
12. Banco Mercantil
13. Banco Santander
14. Banco Tokio-Mitsubishi S.A.
15. Banco Votorantim
16. BANESTES
17. Bank Boston
18. Basf S.A
19. BCP
20. Banque Nationale de Paris
21. Bolsa de Valores do Estado de São Paulo
22. Bozano
23. Caixa Econômica Federal
24. Carioca Engenharia ( Christiane Nielsen )
25. Carrefour
26. Caterpillar do Brasil
27. CITROSUCO PAULISTA S/A ( Maior exportadora de Suco de Laranja do País )
28. CODESA (Porto de Vitória)
29. Companhia de Informática de Pernambuco
30. Companhia de Processamento de dados de Uberaba
31. Confederação Nacional da Indústria
32. Consorcio RodoBens
33. Construtora Norberto Odebrecht
34. Coperguaçu ( Maior Cooperativa de criação de frangos do país )
35. Companhia Ciderurgica de Tubarão
36. Credicard S/A
37. CSG International
38. Cumerlato & Schuster
39. DBMS COMPSIS
40. DBMS Tecnologia da Informação
41. Deten Química (Salvador)
42. ECAD MasterSaf
43. Electronic Data Systems do Brasil ( Banco GM )
44. Electronic Data Systems do Brasil ( Cartão de Crédito )
45. Electronic Data Systems do Brasil ( GM )
46. Electronic Data Systems do Brasil ( Visanet )
47. Energisa (Cataguases MG)
48. Engenharia e Teleinformática Ltda ( Salvador/BA )
49. Firestone
50. Fundação Baiana de Cardiologia
51. Fundação José Silveira
52. Golden Cross
53. GoodLife Belo Horizonte
54. HSBC
55. IBM do Brasil
56. Laboratório Clínico Delboni Auriemo
57. Line Informática (Uberlandia)
58. LOGOCENTER
59. MasterSaf
60. Matera System
61. Nutris Tecnologia E Sistemas De Nutrição Ltda
62. OAB Minas Gerais
63. PENSKE
64. Petrobras
65. Pif Paf Alimentos
66. Pirelli Cabos S.A.
67. Pirelli Pneus S.A.
68. Porto Seguro – Seguros
69. PowerLogic
70. Prefeitura Municipal de Patrocinio/MG
71. Prefeitura Municipal de Uberaba
72. Processamento de dados de Uberlandia
73. Prodemge - Processamento de Dados de Minas Gerais
74. Racional Engenharia
75. Redecard S/A
76. RK Hotéis e Turismo S/A
77. Salux
78. Seguros de Saúde
79. South Systems (São Paulo)
80. Staff Informática
81. Shell do Brasil
82. Shop Tour
83. SICS – HELP Informática
84. TecBan
85. Tecnovia Informática
86. Tools Software
87. TotalBanco
88. Telecomunicações Do Paraná S.A. ( Brasil Telecom )
89. Tenaris Confab (Pindamonhangaba)
90. Trends Advance
91. Tribanco de Uberlandia
92. Uma Das Cias Elétricas Do RS Cigna Seguradora
93. Unibanco
94. Unitech Tecnologia de Informação
95. Universidade de Uberaba
96. Universidade do Extremo Sul Catarinense
97. Universidade do Rio dos Sinos Procergs
98. Universidade Federal de Minas Gerais
99. Universidade Federal do Rio Grande do Sul
100. Unnisa S/A
101. Van Communications
102. Visanet Companhia de Meios de Pagamento S/A
103. Volkswagen do Brasil S/A
104. Votorantim Mineração e Metais
105. Xerox do Brasil
106. Zeus Rio Solutions (Juiz de Fora)
Pessoal,
a 12 anos atrás eu realizei uma pesquisas ( http://thiagocpereira.blogspot.com.br/2005/07/powerbuilder-empresas-que-utilizam.html ) e publiquei aqui da empresas que utilizavam PowerBuilder.
Como muitas pessoas me questionam quais empresas ainda continuam utilizando PowerBuilder, estou refazendo a pesquisa e gostaria do apoio de vocês.
Abaixo a lista de empresas que utiliza PowerBuilder, baseado na pesquisa anterior e em alguns ajustes que já fiz. Gostraria do apoio de vocês para me enviar empresa desta lista que não utilizam mais PowerBuilder e empresas que utilizam PowerBuilder e não estão aqui.
1. Ambev
2. AMIL planos de saúde.
3. Ápia Consultoria e Sistemas Ltda
4. Attps informática (Belo Horizonte)
5. Banco ABN-AMRO
6. Banco BBA
7. Banco BBM
8. Banco BMG
9. Banco do Nordeste
10. Banco Finaustria
11. Banco SAFRA.
12. Banco Mercantil
13. Banco Santander
14. Banco Tokio-Mitsubishi S.A.
15. Banco Votorantim
16. BANESTES
17. Bank Boston
18. Basf S.A
19. BCP
20. Banque Nationale de Paris
21. Bolsa de Valores do Estado de São Paulo
22. Bozano
23. Caixa Econômica Federal
24. Carioca Engenharia ( Christiane Nielsen )
25. Carrefour
26. Caterpillar do Brasil
27. CITROSUCO PAULISTA S/A ( Maior exportadora de Suco de Laranja do País )
28. CODESA (Porto de Vitória)
29. Companhia de Informática de Pernambuco
30. Companhia de Processamento de dados de Uberaba
31. Confederação Nacional da Indústria
32. Consorcio RodoBens
33. Construtora Norberto Odebrecht
34. Coperguaçu ( Maior Cooperativa de criação de frangos do país )
35. Companhia Ciderurgica de Tubarão
36. Credicard S/A
37. CSG International
38. Cumerlato & Schuster
39. DBMS COMPSIS
40. DBMS Tecnologia da Informação
41. Deten Química (Salvador)
42. ECAD MasterSaf
43. Electronic Data Systems do Brasil ( Banco GM )
44. Electronic Data Systems do Brasil ( Cartão de Crédito )
45. Electronic Data Systems do Brasil ( GM )
46. Electronic Data Systems do Brasil ( Visanet )
47. Energisa (Cataguases MG)
48. Engenharia e Teleinformática Ltda ( Salvador/BA )
49. Firestone
50. Fundação Baiana de Cardiologia
51. Fundação José Silveira
52. Golden Cross
53. GoodLife Belo Horizonte
54. HSBC
55. IBM do Brasil
56. Laboratório Clínico Delboni Auriemo
57. Line Informática (Uberlandia)
58. LOGOCENTER
59. MasterSaf
60. Matera System
61. Nutris Tecnologia E Sistemas De Nutrição Ltda
62. OAB Minas Gerais
63. PENSKE
64. Petrobras
65. Pif Paf Alimentos
66. Pirelli Cabos S.A.
67. Pirelli Pneus S.A.
68. Porto Seguro – Seguros
69. PowerLogic
70. Prefeitura Municipal de Patrocinio/MG
71. Prefeitura Municipal de Uberaba
72. Processamento de dados de Uberlandia
73. Prodemge - Processamento de Dados de Minas Gerais
74. Racional Engenharia
75. Redecard S/A
76. RK Hotéis e Turismo S/A
77. Salux
78. Seguros de Saúde
79. South Systems (São Paulo)
80. Staff Informática
81. Shell do Brasil
82. Shop Tour
83. SICS – HELP Informática
84. TecBan
85. Tecnovia Informática
86. Tools Software
87. TotalBanco
88. Telecomunicações Do Paraná S.A. ( Brasil Telecom )
89. Tenaris Confab (Pindamonhangaba)
90. Trends Advance
91. Tribanco de Uberlandia
92. Uma Das Cias Elétricas Do RS Cigna Seguradora
93. Unibanco
94. Unitech Tecnologia de Informação
95. Universidade de Uberaba
96. Universidade do Extremo Sul Catarinense
97. Universidade do Rio dos Sinos Procergs
98. Universidade Federal de Minas Gerais
99. Universidade Federal do Rio Grande do Sul
100. Unnisa S/A
101. Van Communications
102. Visanet Companhia de Meios de Pagamento S/A
103. Volkswagen do Brasil S/A
104. Votorantim Mineração e Metais
105. Xerox do Brasil
106. Zeus Rio Solutions (Juiz de Fora)
segunda-feira, junho 08, 2015
Qual o futuro do PowerBuidler?
Uma das grandes
questões sobre o PowerBuilder é qual o futuro do mesmo? Várias empresas têm
grande parte das suas aplicações em PowerBuilder e não sabem para onde seguir.
Outro ponto e como colocar uma aplicação
PowerBuilder na internet. Devo reescreve-la toda novamente?
Baseado na dúvidas acima e que também são
problemas para a attps ( www.attps.com.br ), estive representando a attps na Conferência
de PowerBuilder que occorreu em Charllote - Carolina do Norte - USA ( Charlotte
PowerBuilder Conference 2015 ).
Estavam presente no evento os maiores
evangelistas de PowerBuilder do mundo, destacando o Chris Pollach
( http://chrispollach.blogspot.com.br/ ), Bruce Armstrong (
http://www.brucearmstrong.org/ ) e o Matt Balent (http://www.ncpbug.org ).
Chris Pollach descreveu muito bem a
conferencia no seu post http://chrispollach.blogspot.com.br/2015/06/pbc.html
e não irei repetir aqui o que está bem dito por ele.
Porém, respondendo as questões acima:
Como evoluir a minha aplicação para Web?
Este ponto foi muito discutido pelos participantes do evento e o
caminho mais simples e com maior sucesso para disponibilizar a aplicação na Web
foi a utilização do Appeon ( www.apppeon.com
). No passado eu tinha feito um teste com o Appeon, quando trabalhava na
Energisa ( www.energisa.com.br ) e
tinha me decepcionado muito, porém após os relatos feitos no evento, resolvi
testar a ferramenta.
Para a minha surpresa, conseguir migrar uma aplicação grande para
a Web com sucesso com apenas 16 horas. É claro que existem alguns pontos a
ajustar, mas nada crítico. A aplicação funcionou 100% e ficou excelente. Não
vou me aprofundar no Appeon aqui, pois este é assunto para um outro post, mas
vale destacar que realmente é um caminho muito bom para quem está no PowerBuilder
e precisar disponibilizar a aplicação na web.
A opção de reescrever a aplicação em outra linguagem como Java e
.Net foi pouco recomendada pelo investimento necessário e os custos envolvidos.
Quem fez esta escolha não gostou dos resultados se a opção for apenas migrar
por migrar, mas se for para reconstruir a aplicação, talvez neste caso o custo
se pague com os ganhos obtidos por uma aplicação melhor.
Qual o futuro do Power Builder?
Esta é a questão que não queria calar. Na primeira apresentação do
evento este assunto era pauta de conversa entre os participantes. Porém, todos
os apresentadores fugiam do assunto e o motivo era claro, ninguém sabia a
resposta.
Porém, na última apresentação do evento, Mr Dirk Boessmann, Senior SAP VP, teve um bate-papo com os participantes
para conversarmos sobre este assunto. Resumidamente, a SAP deixou o
PowerBuilder de lado de 2010 até 2015, pelo produto não ser a prioridade em seu
portfólio de produtos. Este ponto explica porque algumas vezes tentei comprar
licenças do PowerBuilder e não consegui. Porém, ocorreu um movimento de grandes
empresas no mundo e que usam PowerBuilder cobrando uma posição da SAP, o que
fez a empresa procurar saber o que é o tal do PowerBuilder. Com isto, eles
identificaram que o Power Builder precisava de uma atenção especial e
resolveram retomar o mesmo. Neste ponto entra outro problema, porque nos anos
que o PowerBuilder ficou parado, a SAP desmontou todo o time de PowerBuilder e
não tem mais capacidade de evolui-lo. Para resolver está questão, a SAP
resolveu transferir o desenvolvimento / sustentação do PowerBuilder para outra
empresa e, após uma análise de mercado, a SAP fechou uma parceria com a Appeon
que será responsável por manter o PowerBuilder.
O CEO da Appeon, Mr. Armeen Mazda, que estava presente no evento,
comentou que a Appeon tem todo interesse em evoluir o PowerBuilder e pretende
liberar melhorias de forma rápida, seguindo metodologias Ágeis de
desenvolvimento de software.
Uma questão colocada por um participante e que a resposta foi boa
é se não existe um conflito de interesse entre o PowerBuilder e o Appeon, já
que o Appeon é uma ferramenta que complementa o PowerBuilder e, que de agora em
diante a Appeon não iria aproveitar todo este conhecimento para evoluir o
Appeon e não o PowerBuilder. A resposta do Mr. Armeen é que o objetivo deles, e
o mais interessante para o negócio, é que o PowerBuilder cresça e não o Appeon
e que neste caso a tendência é que o PowerBuilder comece a incorporar
funcionalidade do Appeon.
A comunidade de PowerBuilder ficou muito entusiasmada com a notícia,
pois desta forma o PowerBuilder tem uma chance de crescer em muito, já que terá
uma empresa praticamente dedicada a evolução da mesma, o que poderá colher bons
frutos no futuro. Digamos que a Appeon pode se tornar uma “PowerSoft” que foi a
época de ouro do PowerBuilder.
Agora é aguardar e ver quais são os próximos caminhos.
Abaixo alguns links sobre a parceria SAP e Appeon.
sábado, março 15, 2014
Mudanças......
Pessoal,
recentemente eu tenho recebido várias questões referentes ao Power Builder e acredito que falhei em não ter comunicado aqui as mudanças que ocorreram na minha vida profissional nos últimos anos.
Como nunca é tarde, valos lá...
Desde 2008 eu deixei de de realizar atividades técnicas e passei a trabalhar mais com atividades gerenciais. Quem conhece o conceito de carreira em Y, eu mudei da linha técnica para a linha gerencial.
Porém, como todos que já passaram por isto sabem como é, a transição não é fácil, principalmente para quem é apaixonado pela tecnologia como eu. Desta forma, até 2010 eu ainda "brincava" com a parte técnica.
Hoje eu tenho uma carreira 100% gerencial e deixo a parte técnica apenas para lazer e quando o tempo permite, o que é raro.
Com relação ao Power Builder, a última vez que instalei um Power Builder foi em 2009. Por decisão própria e por não acreditar que no futuro do Power Builder (Vou escrever um post sobre isto), resolvi abandonar totalmente o Power Builder. Desta forma e infelizmente, não consigo mais ajuda-los em questões técnicas referentes ao Power Builder. O primeiro motivo é porque não consigo mais me lembrar das soluções e o segundo motivo é que não possuo nem mesmo uma instalação do Power Builder para relembrar.
Hoje ocupo um cargo de gestão na attps informatica ( www.attps.com.br ) e me dedico 100% a questões estratégicas. Porém, continuo apaixonado pela tecnologia, mas me permito escolher onde quero me divertir. Como parceiros GOLD ALM da Microsoft, procuro direcionar todos os meus esforços para a ALM, incluindo o TFS, SQL Server e Visual Studio.
Pretendo retomar os meus Posts, direcionando este Blog para assuntos de gestão, tecnologias que ainda gosto de "brincar" e o Microsoft ALM.
Abraços a todos e fiquem a vontade para enviar os comentários.
recentemente eu tenho recebido várias questões referentes ao Power Builder e acredito que falhei em não ter comunicado aqui as mudanças que ocorreram na minha vida profissional nos últimos anos.
Como nunca é tarde, valos lá...
Desde 2008 eu deixei de de realizar atividades técnicas e passei a trabalhar mais com atividades gerenciais. Quem conhece o conceito de carreira em Y, eu mudei da linha técnica para a linha gerencial.
Porém, como todos que já passaram por isto sabem como é, a transição não é fácil, principalmente para quem é apaixonado pela tecnologia como eu. Desta forma, até 2010 eu ainda "brincava" com a parte técnica.
Hoje eu tenho uma carreira 100% gerencial e deixo a parte técnica apenas para lazer e quando o tempo permite, o que é raro.
Com relação ao Power Builder, a última vez que instalei um Power Builder foi em 2009. Por decisão própria e por não acreditar que no futuro do Power Builder (Vou escrever um post sobre isto), resolvi abandonar totalmente o Power Builder. Desta forma e infelizmente, não consigo mais ajuda-los em questões técnicas referentes ao Power Builder. O primeiro motivo é porque não consigo mais me lembrar das soluções e o segundo motivo é que não possuo nem mesmo uma instalação do Power Builder para relembrar.
Hoje ocupo um cargo de gestão na attps informatica ( www.attps.com.br ) e me dedico 100% a questões estratégicas. Porém, continuo apaixonado pela tecnologia, mas me permito escolher onde quero me divertir. Como parceiros GOLD ALM da Microsoft, procuro direcionar todos os meus esforços para a ALM, incluindo o TFS, SQL Server e Visual Studio.
Pretendo retomar os meus Posts, direcionando este Blog para assuntos de gestão, tecnologias que ainda gosto de "brincar" e o Microsoft ALM.
Abraços a todos e fiquem a vontade para enviar os comentários.
sexta-feira, outubro 11, 2013
Windows 8.1 não hiberna
Pessoal, instalei o Windows 8.1 e a princípio estava tudo funcionando. Após instalar todos os softwares ele parou de Hibernar, Sleep e Shutdown.
Após N tentativas de resolver, formatei novamente e tudo voltou a funcionar. Instalei os softwares novamente e começou a apresentar o mesmo problema.
Resolvi desinstalar software por software até descobrir que o problema estava sendo causado pelo cliente da VPN utilizada na empresa (SonicWall Global VPN Client Version 4.7.3.0403).
Verifiquei no site do fornecedor e baixei a nova versão do cliente da VPN (SonicWall Global VPN Client Version 4.8.6.0826) e resolveu o problema.
sexta-feira, outubro 21, 2011
SQL - Utilização do Comando Merge
Prezados
O comando MERGE, antes exclusivo do Oracle, agora também está presente no SQL Server (2008 em diante). Ele é muito interessante para situações onde se deseja fazer um UPDATE ou INSERT, baseado na existência ou não dos dados na tabela destino. Sua performance é MUITO melhor que efetuar o select para verificar a existência, e então decidir entre o update ou o insert, pois o merge faz tudo ao mesmo tempo, para todos os registros.
A sintaxe básica do comando é:
MERGE INTO
USING
ON ( )
WHEN MATCHED THEN
UPDATE SET
WHEN NOT MATCHED THEN
INSERT ( )
VALUES ( )
Como exemplo, suponha que se deseje atualizar uma tabela de pessoas jurídicas, baseado em uma tabela genérica com todos os clientes. O comando seria algo assim:
MERGE INTO tb_pj dst
USING (select cod_cli,
nome_cli,
cpfcnpj
from tb_cli
where cli_tip = 'PJ') ori (ori é um alias qualquer, para o select dos clientes PJ)
ON (dst.cod_cli = ori.cod_cli) (join da ori com dst, para definir a existência dos dados)
WHEN MATCHED THEN UPDATE (lista das colunas que serão atualizadas, caso já exista)
SET dst.hdrdathor = getdate(),
nome = ori.nome,
dst.cnpj = ori.cpfcnpj
WHEN NOT MATCHED THEN INSERT ( (colunas da dst que receberão valores)
hdrdathor,
cod_cli,
nome_cli,
cnpj )
VALUES ( (lista de valores que serão inseridos)
getdate(),
ori.nome_cli,
ori.cpfcnpj )
Equipe DTP
terça-feira, julho 19, 2011
VAGAS Grupo attPS Informática
O grupo attPS Informática está selecionando profissionais para fazer parte do seu quadro de funcionários.
Segue abaixo as atuais vagas do grupo.
As indicações são bem vindas!
Os interessados deverão encaminhar currículo para rhbhz@attps.com.br.
Belo Horizonte | São Paulo | |||
Vaga | Nº de vagas | Vaga | Nº de vagas | |
ANALISTA DESENVOLVEDOR - Júnior | 1 | ANALISTA DE NEGOCIOS - SENIOR | 2 | |
ANALISTA DESENVOLVEDOR .NET - Pleno | 10 | ANALISTA DE SUPORTE - JÚNIOR | 1 | |
ANALISTA DE SISTEMAS (VB) | 1 | ANALISTA PROGRAMADOR C# - JÚNIOR | 2 | |
Analista Negócios Contábil | 1 | ANALISTA PROGRAMADOR C# - PLENO | 2 | |
Analista Sênior Java | 1 | ANALISTA PROGRAMADOR C# - SÊNIOR | 2 | |
CONSULTOR DE IMPLANTAÇÃO | 2 | ANALISTA PROGRAMADOR - PLENO | 1 | |
DESENVOLVEDOR JAVA PLENO | 4 | ANALISTA DE SISTEMAS | 1 | |
Desenvolvedor Sharepoint Pleno | 1 | ASSISTENTE DE INFORMÁTICA | 1 | |
ENGENHEIRO DE SOFTWARE | 1 | |||
HELP DESK | 1 |
sábado, maio 21, 2011
End of Life Notification for PowerBuilder and InfoMaker 11.5
Veja no link abaixo quando termina o suporte ao PB 11.x
End of Life Notification for PowerBuilder and InfoMaker 11.5
End of Life Notification for PowerBuilder and InfoMaker 11.5
sábado, abril 30, 2011
Mudanças no suporte do SQL Server 2000 e SQL Server 2005
O SQL Server 2000 está em período de suporte estendido, que se encerra em 09 abril de 2013. A partir desta data não haverá atualizações para a versão. O suporte online continua disponível por 12 meses. O SQL Server 2005 está em período de suporte estendido desde 12 de abril de 2011. A versão mais atual é o SQL Server 2008 R2.
Saiba mais sobre o SQL Server 2008 R2.
segunda-feira, abril 18, 2011
Iniciando os testes unitários no Visual Studio 2010
Para quem está começando, link que simples, mas funcional.
http://qualidadeteste.wordpress.com/2011/04/12/iniciando-os-testes-unitarios-no-visual-studio-2010/
http://qualidadeteste.wordpress.com/2011/04/12/iniciando-os-testes-unitarios-no-visual-studio-2010/
terça-feira, abril 05, 2011
PowerBuilder - Ativação do PBDebug (-DEB)
Texto criado por Daniel Carvalho
Fui designado para resolver um problema de performance que estava acontecendo na integração de um sistema, o problema era o seguinte, quando um sistema erá disparado a partir de outro ele demorava 2 HORAS para terminar o processo, mas quando era feito diretamente, não levava mais do que 2 minutos. No mínimo INTRIGANTE!
Ficou comigo então a missão de descobrir o problema de performance e a sua solução!
A primeira coisa a ser feita foi colocar alguns logs dentro do sistema, gerei uma versão e copiei esta para uma outra pasta sem DLL e sem INI, lá só estavam o .EXE e as PBDs. Criei um arquivo BAT que passava a misteriosa string para o sistema: RSE#9#Rel. SEDE por Agência-Debito #1#SQLSERVER##OLE DB#amdteslgn0603#amdteslgn0603 #amdteslgn0603#amdteslgn0603#AMDTESDBS0603# ATTBHZS015 #PROVIDER='SQLOLEDB', DATASOURCE='ATTBHZS015', OJSyntax = 'ANSI'#4#
Na primeira execução notei que TUDO estava lento. Quando fechei o arquivo de log notei que havia um estranho no ninho, um arquivo de nome “XXXXXXX.DBG”. Fiquei ali olhando para aquele arquivo e me perguntando quem diabos tinha colocado ele ali, e pelo horário e owner notei que tinha sido EU! O problema disso é que esse arquivo só deveria ser criado quando fosse passado o parâmetro “/PBDEBUG” para o sistema, o que não era o caso, pois dentro da string misteriosa não havia nenhum sinal deste termo. Apaguei o invasor e tentei executar o sistema passando o nome do arquivo TXT, como se fosse uma execução em lote, e tudo correu sem problemas de performance.
Foi aí que começou a minha luta contra o NADA, pois de alguma forma dentro da string misteriosa existia algum termo não documentando pela Sybase que gerava o arquivo de debug “.DBG”. Retirei toda a string e fui colocando letra por letra e executando o sistema para ver onde que o arquivo .DBG começava a ser gerado, para minha sorte e espanto consegui chegar rapidamente ao “TERMO SECRETO”, ele encontra-se no início da string e nunca encontrei documentação nenhuma falando a respeito dele, o termo misterioso é “-Deb”. Para verificar se isso era realmente o problema conversei com o pessoal da sistema e eles substituíram o “-“ por um espaço e adivinhem.......... O problema de performance foi RESOLVIDO!!!! Agora o problema é explicar para um usuário final que a retirada de um traço resolve o problema de performance.
PowerBuilder - RuntTime Errors
Link muito interessante contendo a relação de Runtimes Erros do PowerBuilder
Contribuição de Brun o Henrique S. Quaresma
quinta-feira, março 31, 2011
Tuning .NET Application Performance
Vale a pena dar uma olhada no link abaixo:
http://msdn.microsoft.com/en-us/library/ff647813.aspx
http://msdn.microsoft.com/en-us/library/ff647813.aspx
quinta-feira, janeiro 20, 2011
.NET Framework System Requirements
No link abaixo encontra-se os requisitos (Memória e processador) e sistemas operacionais suportados pelas diversas versões do .Net Framework.
.NET Framework System Requirements
.NET Framework System Requirements
Mudando as configurações de IDE do Visual Studio
Aconteceu um problema comigo ao instalar o Visual Studio e após isto umas três pessoas já me tiveram o mesmo problema.
Ao instalar o Visual Studio 2010 eu escolhi a opção de configurar a IDE para desenvolvimento e Team Projects. A minha surpresa é que ao concluir a instalação não tinha as opções de criar projetos para desenvolvimento (Web Sites, C# applications, etc...).
Após uma longa pesquisa na Internet e tentar restaurar as configurações via linha de comando, registry e etc., descobri o procedimento correto, conforme informado abaixo:
1. Abra o Visual Studio 2010
2. Vá à opção Tools --> Import and Export Settings...
3. Marque a opção Import selected environment setting e clique em Next
4. Selecione No, just import new…. E clique em Next
5. Selecione a opção desejada e clique Next. No meu caso é a opção General Development Settings, que permite desenvolver qualquer tipo de projeto.
6. Clique em Finish para aplicar as configurações.
Pronto, com o procedimento acima você consegue resolver o problema inicial.
Ao instalar o Visual Studio 2010 eu escolhi a opção de configurar a IDE para desenvolvimento e Team Projects. A minha surpresa é que ao concluir a instalação não tinha as opções de criar projetos para desenvolvimento (Web Sites, C# applications, etc...).
Após uma longa pesquisa na Internet e tentar restaurar as configurações via linha de comando, registry e etc., descobri o procedimento correto, conforme informado abaixo:
1. Abra o Visual Studio 2010
2. Vá à opção Tools --> Import and Export Settings...
3. Marque a opção Import selected environment setting e clique em Next
4. Selecione No, just import new…. E clique em Next
5. Selecione a opção desejada e clique Next. No meu caso é a opção General Development Settings, que permite desenvolver qualquer tipo de projeto.
6. Clique em Finish para aplicar as configurações.
Pronto, com o procedimento acima você consegue resolver o problema inicial.
terça-feira, janeiro 04, 2011
PowerBuilder – Enviando e-mail por SMTP - Parte 4 / 4
String ls_ret
uo_email luo_email
luo_email = Create uo_email
/* ***** Configurações do Servidor ***** */
luo_email.is_Server_SMTP = 'smtp.xyz.com.br'
luo_email.is_Server_Port = '25'
luo_email.is_Server_UserId = 'teste'
luo_email.is_Server_UserPass = '*******'
luo_email.ib_Server_smtpAuth = True
luo_email.ib_Server_TLS_Encryption = False
/* ***** Fim Configurações do Servidor ***** */
/* ***** Dados para envio do E-Mail ***** */
luo_email.is_email_to_address[] = {'teste@gmail.com, teste@msn.com'}
luo_email.is_email_from_address = 'teste@yahoo.com'
luo_email.is_email_subject = 'Teste'
luo_email.is_email_body = 'Teste de email'
luo_email.is_email_attach[] = {'D:\foto.JPG'}
luo_email.ib_email_receipt = False
/* ***** Fim Dados para envio do E-Mail ***** */
ls_ret = luo_email.of_send_email()
If ls_ret <> ''Then
MessageBox('Teste', 'Falha no envio: ' + ls_ret)
Else
MessageBox('Teste', 'Email enviado com sucesso.')
End If
Destroy luo_email
PowerBuilder – Enviando e-mail por SMTP - Parte 3 / 4
$PBExportHeader$uo_email.sru
forward
global type uo_email from nonvisualobject
end type
end forward
global type uo_email from nonvisualobject
end type
global uo_email uo_email
type variables
/* ***** Configurações do Servidor ***** */
String is_Server_SMTP // IP ou nome do servidor de SMTP
String is_Server_Port = '25' // Porta SMTP no servidor (default = 25)
String is_Server_UserId // ID ou login no servidor SMTP
String is_Server_UserPass // Password no servidor SMTP
Boolean ib_Server_smtpAuth // Se o servidor necessita de autenticação por login/senha (is_Server_UserId, is_Server_UserPass) (Default = False)
Boolean ib_Server_TLS_Encryption // Se o servidor SMTP requer criptografia TLS (Default = False)
//Ex. Para GMail:
//is_Server_SMTP = "smtp.gmail.com"
//is_Server_Port = "465"
//is_Server_UserId =
//is_Server_UserPass =
//ib_Server_smtpAuth = True
//ib_Server_TLS_Encryption = True
/* ***** Fim Configurações do Servidor ***** */
/* ***** Dados para envio do E-Mail ***** */
String is_email_to_name[] // Nomes para aparecer no endereço de email (destinatários) - Opcional
String is_email_to_address[] // Endereços de email (destinatários)
String is_email_from_name // Nome para aparecer no sender do email - Opcional
String is_email_from_address // Sender do email
String is_email_subject // Título do email
String is_email_body // Corpo (texto) do email
String is_email_attach[] // Anexos do email - Opcional
Boolean ib_email_receipt // Se deseja receber confirmação de recebimento (Default = False)
//Ex. de e-mail:
//is_email_to_name[1] = 'José da Silva'
//is_email_to_address[1] = 'jose@email.com'
//is_email_from_name[] 'Maria da Silva'
//is_email_from_address[] 'Maria@email.com'
//is_email_subject = 'Teste de e-mail'
//is_email_body 'Este é um email de teste'
//is_email_attach[1] = 'D:\Teste.txt'
//ib_email_receipt = False
/* ***** Fim Dados para envio do E-Mail ***** */
/* ***** Outras variáveis ***** */
end variables
forward prototypes
public function string of_send_email ()
public function string of_server_data ()
public function string of_email_data ()
end prototypes
public function string of_send_email ();
// Função principal para envio de email. Necessita do preenchimento das variáveis de instância de configuração do servidor
// e dos dados do e-mail.
String ls_ret
Long i
Boolean lb_ret
n_smtp ln_smtp
SetPointer(HourGlass!)
/* ***** Validações ***** */
// Dados do servidor
ls_ret = of_server_data()
If ls_ret <> '' Then Return ls_ret
// Dados do email
ls_ret = of_email_data()
If ls_ret <> '' Then Return ls_ret
/* ***** Fim Validações ***** */
/* ***** Dados para envio do email ***** */
ln_smtp.of_ResetAll()
// Propriedades do servidor
ln_smtp.of_SetServer(is_server_SMTP)
ln_smtp.of_SetPort(Long(is_server_Port))
If ib_Server_smtpAuth Then
ln_smtp.of_SetLogin(is_Server_UserId, is_Server_UserPass)
End If
// Dados do email
ln_smtp.of_SetReceipt(ib_email_receipt)
ln_smtp.of_SetLogFile(False)
ln_smtp.of_SetSubject(is_email_Subject)
ln_smtp.of_SetBody(is_email_body, False)
ln_smtp.of_SetFrom(is_email_from_address, is_email_from_name)
// Destinatários
For i = 1 To UpperBound(is_email_to_address[])
If UpperBound(is_email_to_name[]) >= i Then
ln_smtp.of_AddAddress(is_email_to_address[i], is_email_to_name[i])
Else
ln_smtp.of_AddAddress(is_email_to_address[i])
End If
Next
// Anexos
For i = 1 To UpperBound(is_email_attach[])
ln_smtp.of_AddAttachment(is_email_attach[i])
Next
/* ***** Fim Dados para envio do email ***** */
/* ***** Envia o e-mail ***** */
If ib_Server_TLS_Encryption Then
lb_ret = ln_smtp.of_SendTLSMail()
Else
lb_ret = ln_smtp.of_SendMail()
End If
If lb_ret Then
// Email enviado com sucesso
Return ''
Else
// Falha no envio do email
return ln_smtp.of_GetLastError()
End If
/* ***** Fim Envia o e-mail ***** */
end function
public function string of_server_data ();
// Valida os dados de configuração do servidor
is_server_SMTP = Trim(is_server_SMTP)
If IsNull(is_server_SMTP) or is_server_SMTP = '' Then Return 'Especifique o servidor SMTP'
is_Server_Port = Trim(is_Server_Port)
If IsNull(is_Server_Port) or IsNumber(is_Server_Port) = False or is_Server_Port = '0' Then Return 'Especifique a porta do servidor SMTP'
If ib_Server_smtpAuth Then
is_Server_UserId = Trim(is_Server_UserId)
If IsNull(is_Server_UserId) or is_Server_UserId = '' Then Return 'A opção de autenticação está marcada, então informe o usuário do servidor SMTP'
is_Server_UserPass = Trim(is_Server_UserPass)
If IsNull(is_Server_UserPass) or is_Server_UserPass = '' Then Return 'A opção de autenticação está marcada, então informe a senha do servidor SMTP'
End If
Return ''
end function
public function string of_email_data ();
// Valida os dados de envio do email
Long i
If UpperBound(is_email_to_address[]) = 0 Then Return 'Informe pelo menos 1 (um) destinatário'
If UpperBound(is_email_to_address[]) > 0 and UpperBound(is_email_to_name[]) > 0 and UpperBound(is_email_to_address[]) <> UpperBound(is_email_to_name[]) Then
Return 'A lista de nomes dos destinatários está com tamanho diferente da lista de emails dos destinatários'
End If
For i = 1 To UpperBound(is_email_to_name[])
is_email_to_name[i] = Trim(is_email_to_name[i])
Next
For i = 1 To UpperBound(is_email_to_address[])
is_email_to_address[i] = Trim(is_email_to_address[i])
Next
is_email_from_name = Trim(is_email_from_name)
is_email_from_address = Trim(is_email_from_address)
If IsNull(is_email_from_address) or is_email_from_address = '' Then Return 'Informe o sender do email'
is_email_subject = Trim(is_email_subject)
If IsNull(is_email_subject) or is_email_subject = '' Then Return 'Informe o título do email'
is_email_body = Trim(is_email_body)
If IsNull(is_email_body) or is_email_body = '' Then Return 'Informe o texto para o corpo do email'
Return ''
end function
on uo_email.create
call super::create
TriggerEvent( this, "constructor" )
end on
on uo_email.destroy
TriggerEvent( this, "destructor" )
call super::destroy
end on
Assinar:
Postagens (Atom)