"
Supported by

Best practices
Thou shalt use a constants table

Whenever you feel a constant value can change and you can’t add it as a user parameter, store it in ZCONSTS. This table should never be used directly. Instead, a class like ZCL_CONSTS should be created to properly access it, like shown in this article:
https://abapinho.com/2009/06/constantes/ (portuguese only)

Resist the temptation of using T900 or similar tables for this purpose. It’s true that a lot of people do it. But it’s ugly, durty and besides these tables don’t even have an adequate key because they were not designed with this in mind.

2 comentários a “Thou shalt use a constants table”

  1. Pedro Diz:

    Viva,

    A t-code STVARV pode ser uma boa opção, dependendo das situações.

    Cumprimentos,

  2. Nuno Godinho Diz:

    Olá Pedro,

    Só concordo num cenário muito simples em que chegas a um cliente que não conheces, ficas lá só por um dia e só te pedem para fazer um relatório com um valor constante parametrizável. Mas só mesmo num cenário simplista desses.

    Porque numa situação em que estás num cliente por um período maior, ficarão todos a ganhar se criares uma alternativa mais robusta que não dependa de fazer SELECTs a tabelas dessas directamente no código. É preferível fazer uso de uma classe que obrigue à sua boa utilização.

    Além disso a transacção que sugeres não permite agrupar valores, nem identificar qual o desenvolvimento a que cada constante pertence, nem adicionar comentários ao valor para o descrever. É tudo a eito. Por isso é certinho que se for muito usada resulta no caos.

    É como tudo. É como as variáveis globais. Se precisares de uma, apenas uma, para uma coisa muito simples, OK, às vezes até pode ajudar a deixar tudo mais simples. Mas se usares e abusares delas, caos.

Deixe um comentário


About Abapinho
Abapinho runs on WordPress
Articles (RSS) e Comments (RSS).