Toujours plus loin

Vos besoins fonctionnels peuvent parfois nécessiter d'aller au delà du développement classique par du code "non conventionnel" afin de pousser votre système au maximum de ses capacités.

Bien entendu, ces techniques ne sont employées uniquement lorsque cela s'avère pertinent. Elles sont totalement transparentes pour les utilisateurs, mais apportent de la valeur ajoutée à vos développements et plus de contrôle sur vos systèmes. Au travers de divers projets, nous avons employé :

Le développement dynamique

Certaines données ou logique peuvent ne pas être connues ou disponibles au moment de la compilation, voire même impossible à implémenter. Pour passer outre ces contraintes, nous pouvons utiliser les capacités du langage ABAP pour exécuter certaines logiques dynamiquement, qui seront évaluées uniquement au moment de l'exécution.

Le développement dynamique comprend :

  • Les requêtes SQL dynamiques
  • Les appels de fonctions ou méthodes dynamiques
  • L'affection dynamique de valeurs
  • Les interfaces utilisateurs dynamique en Web Dynpro et CRM

Réflexion et introspection

Concept connu dans le monde de Java, la réflexion et l'introspection sont les techniques qui permettent de "découvrir" pendant l'exécution d'un programme des informations sur des variables, structures, objets, classes... Même si cela peut sembler inutile à première vue, c'est très utile quand il est nécessaire d'écrire du code générique pour lequel il faut éviter au maximum les parties "codées en dur". Nous avons utilisé cette technique dans une application assez complexe supposée tracer et identifier tous les objets créés par, ni plus ni moins que, le moteur BSP du CRM Web UI.

Méta programmation

La méta programmation consiste essentiellement de programmes qui écrivent des programmes. Il ne s'agit pas de physique quantique ! Cela ouvre un champ nouveau de possibilités et vous permet de générer du code ABAP pendant l'exécution d'un programme et de l'exécuter à la volée. Nous avons utilisé cette technique, par exemple pour :

  • Une interface sortante qui se devait d'être générique avec une faible empreinte sur le système sur lequel elle est installée. La métaprogrammation nous a permis d'effectuer des opérations particulières de filtrage des données sur des tables dont nous n'avions aucune connaissance au moment de son développement.
  • Nos propres conventions de développement. Afin d'assurer une qualité égale dans les applications codées par différents programmeurs, nous avons écrit des utilitaires qui génèrent pour nous des squelettes de programmes ABAP et même de composants Web Dynpro, selon les règles de notre charte. Ces générateurs ABAP, comme nous les appelons, vont même plus loin car ils préparent également à certaines fonctionnalités comme les tables ALV. Cela permet de gagner du temps et d'améliorer la qualité.

Espace Membre