Escrever dinheiro sem preocupações decimais
Há quem leia a TCURX para descobrir o número de casas decimais de uma MOEDA quando precisa de escrever um campo endinheirado para uma variável ALFANUMERICA.
És assim? Não sejas.
Há quem leia a TCURX para descobrir o número de casas decimais de uma MOEDA quando precisa de escrever um campo endinheirado para uma variável ALFANUMERICA.
És assim? Não sejas.
Espatifaste o sistema produtivo: fizeste uma alteração a um método de uma classe (ou a uma função, vá). Outra pessoa faz outra alteração a outro método da mesma classe (ou a outra função do mesmo grupo de funções, vá) e grava-a num transporte diferente. Quando transportas as tuas alterações para produtivo descobres que a classe (ou função, vá) agora tem um erro de sintaxe porque as alterações tinham dependências. Descobres também que agora, e até resolveres este problema, todos os teus colegas funcionais te odeiam.
Finalmente, com o SAP NetWeaver 7.0 Enhancement Package 2 o ABAP começa a parecer-se com uma linguagem de programação normal.
Até já dá para encadear expressões, vê lá tu!
Ao ler um ficheiro com valores numéricos para uma tabela interna ou vice-versa, o sucesso da conversão destes depende de o utilizador tem definido o ponto ou a vírgula como separador decimal. É costume ir então ler a configuração do utilizador e depois, adaptar os valores vindos do ficheiro com ponto ou vírgula conforme.
Mas isto é lamentável e pouco elegante. Devia haver uma forma de não fazer a coisa depender do utilizador.
E há.
Há bastante tempo atrás escrevi aqui um artigo demonstrando as vantagens de usar tabelas internas com índices definidos em vez de simples tabelas STANDARD.
Confissão: é tal o hábito instalado que desde então, quase todas as tabelas internas que criei continuaram a ser STANDARD TABLE.
É muito frequente criar tabelas internas para fazer cache de dados que sei que vou utilizar amiúde dentro de LOOPs para evitar fazer SELECT SINGLEs lá pelo meio.
Imagina que tens uma manada de classes relacionadas as quais partilham entre elas uma manada de constantes. Dizendo a mesma coisa de outra forma, gostavas que todas as classes da manada tivessem acesso de forma simples à manada de constantes.
(Se estás baralhado, fica sabendo que a manada era só para baralhar)
Continuando.
Se precisas mesmo de aceder a um SAP e ninguém te deixa e não tens um computador onde o possas instalar ou não tens ciência ou paciência para o fazer, podes sempre alugar.
Isto não é um artigo. Isto quase nem é uma dica. Isto aproxima-se mais de um desabafo em tom de arco-iris.
Cada vez uso mais RANGEs. Uso-os ao pequeno-almoço, ao almoço, ao jantar e fora das refeições. É como o molho de soja. Umas colheradas daquilo e fica logo tudo mais saboroso.
Até há dois dias atrás, se eu precisasse de criar entradas de bloqueio numa tabela ZCOISO criada por mim iria à SE11 criar um objecto de bloqueio para a tabela ZCOISO para depois poder usar os módulos de função gerados pelo objecto de bloqueio para bloquear os dados.
Mas agora já não.