*SUB( )/*ENDSUB

Une structure SUB permet à l'utilisateur de définir des sections de calcul réutilisables partout dans le corps du calcul pour améliorer sa lisibilité et sa gestion.

Une structure *SUB( ) est considérée comme une structure *FUNCTION( ) à plusieurs lignes avec la syntaxe suivante :

*SUB {SubName}({Param1,[,{Param2}…])

{body text}

{body text}

{body text}

[…]

*ENDSUB

Lorsqu'une SUB est ensuite utilisée à un autre emplacement du calcul, les lignes de son corps sont insérées dans le calcul et toutes les valeurs transférées à ses paramètres sont remplacées de manière appropriée.

Une structure SUB se comporte comme des fichiers inclus auxquels il est possible de transférer autant de paramètres que nécessaire. Lorsque le calcul est validé, les SUB sont insérées dans le corps des calculs comme si elles étaient incluses avec une instruction *INCLUDE. Toutefois, pour utiliser une structure SUB, aucun mot-clé particulier n’est nécessaire. Une structure SUB est appelée en insérant une ligne comportant le nom de la SUB, suivi des valeurs affectées à ses paramètres entre parenthèses. Autre différence importante par rapport aux fichiers inclus : une structure SUB ne nécessite pas d’être écrite dans un fichier qui lui est propre, mais peut être écrite à l’emplacement souhaité dans des calculs, de façon similaire à une FUNCTION.

Exemple

Définition d'une structure sub :

*SUB MYSUB(Param1,Param2,Param3,Param4)

[%ACCOUNT_DIM%].[#Param1]=[%ACCOUNT_DIM%].[Param2]+[%ACCOUNT_DIM%].[Param3]

[%ACCOUNT_DIM%].[#Param4]=[%ACCOUNT_DIM%].[#Param1]*[%ACCOUNT_DIM%].[Factor_Param4]

*ENDSUB

Utilisation d'une structure sub :

MySub(A1,B1,C1,D1)

MySub(A2,B2,C2,D2)

MySub(A3,B3,C3,D3)

Tout comme une FUNCTION, une structure SUB est indépendante de sa position et peut être définie partout dans des calculs. Elle peut aussi être stockée dans des fichiers distincts de la bibliothèque qui doivent ensuite être fusionnés avec les calculs via une instruction INCLUDE.

Une SUB peut être invoquée dans toute section de soumission d’un calcul, sans qu’il soit nécessaire de le redéfinir dans chaque section. Toutefois, si une structure SUB est redéfinie dans un fichier de calculs, sa nouvelle définition s'appliquera à toutes les lignes suivant la redéfinition.

Une structure SUB sans paramètre est prise en charge, mais doit toujours être suivie de parenthèses.

Tous les codes logiciels et/ou lignes/chaînes de code ("Code") inclus dans cette documentation sont fournis à titre d'exemples et ne sont en aucun cas destinés à un usage dans un environnement système productif.Le Code a pour but de mieux expliquer et d'offrir un exemple visuel des règles de syntaxe et de rédaction de certains codes.SAP ne garantit pas l'exactitude et l'exhaustivité du Code ci-après et SAP ne pourra pas être tenu responsable des erreurs ou dommages causés par l'utilisation dudit Code, sauf si de tels dommages ont été causés volontairement par SAP ou par négligence grave de SAP.