Micro-pattern de prise en compte des accès SQL personnalisés

Après avoir personnalisé un accès SQL dans les Lignes -GG d'un Segment, vous pouvez décider de le prendre en compte ou de l'ignorer dans le Programme, l'Ecran ou le Composant Applicatif qui appelle ce Segment. Vous devez pour cela utiliser le micro-pattern SQL.

Prise en compte dans les Programmes

Les accès personnalisés sont pris en compte dans un Programme si les Lignes -CD du Programme contiennent le code du Bloc dans la zone Nom externe et l'organisation dans la zone Organisation.

Vous devez appeler explicitement chaque accès personnalisé devant être généré dans le Programme.

Pour gérer la prise en compte des accès SQL dans un Programme, ouvrez le code COBOL du Programme avec l'éditeur COBOL PDP puis indiquez le micro-pattern SQL avec ses différents paramètres.

La syntaxe est la suivante :
  • *! est la balise de début du micro-pattern, obligatoire. Le * doit être saisi en colonne 7, réservée aux commentaires dans le code COBOL, et le ! doit être saisi en colonne 8.
    Remarque : Si vous appuyez sur CTRL + barre d'espacement dans l'éditeur COBOL PDP, l'assistant de contenu affiche la liste des micro-patterns adaptés à l'entité et à la position dans le COBOL (WORKING-STORAGE SECTION ou PROCEDURE DIVISION). Les micro-patterns relatifs à la reprise des données Pacbase ne font pas partie de la liste. Chaque micro-pattern de la liste est documenté. Si vous double-cliquez sur l'un d'eux, la balise de début et l'identifiant du micro-pattern sont insérés dans le code. Vous devez alors complétez la déclaration.
  • SQL est l'identifiant du micro-pattern, obligatoire.
  • " " doit encadrer les opérandes.
  • Le code Segment dans le Programme, obligatoire (SGPG par exemple).
  • Le code Segment dans le référentiel, s'il est différent du code Segment dans le Programme (SS00 par exemple).
  • Le type d'accès, obligatoire.
    • Si vous indiquez l'accès standard avant l'accès non standard, la personnalisation de l'accès non standard sera prise en compte et complétera l'accès standard.
    • Si vous n'indiquez que l'accès non standard sans indiquer d'accès standard, la personnalisation de l'accès non standard sera prise en compte. Elle constituera une fonction utilisateur inconnue du générateur et vous devrez donc la décrire et la gérer entièrement en spécifique.
Remarque : Vous devez saisir un seul blanc entre chaque opérande. Les accès doivent être codés sur deux positions s'ils sont sur un caractère (D, P, R, W) et s'ils sont redéfinis et personnalisés.
Figure 1. Dans cet exemple, la personnalisation de l'accès standard en sélection indiquée dans le Segment SS00 sera prise en compte.
*!SQL "SGPG SS00 R"
Figure 2. Dans cet exemple, la personnalisation de l'accès non standard en sélection indiquée dans le Segment SS00 sera prise en compte.
*!SQL "SGPG SS00 R  R1"
Important : Pour pouvoir prendre en compte le multiligne, vous devez indiquer, dans les Lignes -GO du Programme, l'option MULTIROW=ssss,xxx, où ssss est un Segment et xxx est l'indice maximal.

Prise en compte dans les Ecrans ou Composants Applicatifs

Les accès personnalisés sont pris en compte dans les Ecrans standard si l'option PACSQL est indiquée dans l'onglet Complément du Dialogue ou les Lignes -GO du Dialogue ou de l'Ecran.

Tous les accès sont générés dans la fonction 80.

Les accès standard personnalisés sont automatiquement générés avec les compléments de personnalisation saisis dans les Lignes -GG du Segment. Si vous souhaitez ignorer la personnalisation, vous devez le spécifier dans le code COBOL de l'Ecran ou du Composant Applicatif.

Pour prendre en compte les accès non standard, vous devez les appeler explicitement dans le code COBOL de l'Ecran ou du Composant Applicatif.
Remarque : Les accès standard sont ignorés pour les organisations R (SQL RDMS) et 2 (DB2 sans accès généré) mais vous pouvez spécifier la prise en compte des accès non standard.

Pour gérer la prise en compte des accès SQL, ouvrez le code COBOL associé à l'Ecran ou au Composant Applicatif en utilisant l'éditeur COBOL PDP. Créez une sous-fonction de la fonction 80. Saisissez le micro-pattern SQL avec ses différents paramètres.

Le début de la syntaxe doit être le suivant :
  • *! est la balise de début du micro-pattern, obligatoire. Le * doit être saisi en colonne 7, réservée aux commentaires dans le code COBOL, et le ! doit être saisi en colonne 8.
    Remarque : Si vous appuyez sur CTRL + barre d'espacement dans l'éditeur COBOL PDP, l'assistant de contenu affiche la liste des micro-patterns adaptés à l'entité et à la position dans le COBOL (WORKING-STORAGE SECTION ou PROCEDURE DIVISION). Les micro-patterns relatifs à la reprise des données Pacbase ne font pas partie de la liste. Chaque micro-pattern de la liste est documenté. Si vous double-cliquez sur l'un d'eux, la balise de début et l'identifiant du micro-pattern sont insérés dans le code. Vous devez alors complétez la déclaration.
  • SQL est l'identifiant du micro-pattern, obligatoire.
  • " " doit encadrer les opérandes.
  • Le code Segment est obligatoire (SS00 par exemple).
La suite de la syntaxe dépend de la façon dont vous voulez prendre en compte l'accès personnalisé indiqué dans les Lignes -GG du Segment :
  • Pour ignorer la personnalisation d’un accès standard, vous devez faire suivre le Segment du code de l’accès standard.
    Figure 3. Dans cet exemple, la personnalisation de l'accès standard en sélection indiquée dans le Segment SS00 sera ignorée.
    *!SQL "SS00 R"
  • Pour prendre en compte un accès non standard, vous avez trois possibilités :
    • Si vous saisissez le code de l’accès standard avant le code de l’accès non standard, la personnalisation de l’accès non standard sera prise en compte et sera générée dans les traitements standard de la fonction 80.
      Figure 4. Dans cet exemple, l’accès non standard en sélection indiqué dans le Segment SS00 sera pris en compte et le traitement automatique de la lecture du Segment SS00 sera complété par les lignes correspondant à l’accès en sélection R1.
      *!SQL "SS00 R R1"
    • Si vous ne saisissez que le code de l’accès non standard (sans indiquer d’accès standard), la personnalisation de l’accès non standard sera prise en compte et sera générée dans une sous-fonction spécifique de la fonction 80. Elle constituera donc une fonction utilisateur inconnue du générateur et vous devrez donc la décrire et la gérer entièrement en spécifique.
      Figure 5. Dans cet exemple, l’accès non standard en sélection indiqué dans le Segment SS00 sera pris en compte mais les lignes correspondant à R1 seront générées sous la forme d’une sous-fonction spécifique F80-SS00-R1.
      *!SQL "SS00 R1"
    • Si vous saisissez le code de l’accès non standard, suivi du signe = et du code de l’accès standard, la personnalisation de l’accès non standard sera prise en compte et complétée par les traitements générés automatiquement pour l’accès standard en fonction 80.
      Figure 6. Dans cet exemple, l’accès non standard en sélection indiqué dans le Segment SS00 sera pris en compte et complété par les traitements générés automatiquement pour l’accès standard en sélection.
      *!SQL "SS00 R1=R"
    Remarque : Vous devez saisir un seul blanc entre chaque opérande. Les accès doivent être codés sur deux positions s'ils sont sur un caractère (D, P, R, W) et s'ils sont redéfinis et personnalisés.
    Remarque : Pour prendre en compte les accès personnalisés d'une méthode d'extraction, vous devez appeler la Macro protégée ££80EX dans les Lignes -CP du Composant Applicatif et indiquer la valeur de ses paramètres.

Indentation des lignes générées d'un micro-pattern

Vous pouvez indenter les lignes générées d'un micro-pattern en indiquant indent=nn (où nn est un nombre) n'importe où sur la ligne de déclaration du micro-pattern. La nouvelle indentation est prise en compte après une regénération.

L'indentation s'applique à la première ligne générée du micro-pattern. Le décalage avec les lignes suivantes, s'il existe, est conservé par rapport à la première ligne nouvellement indentée. Par exemple, si la première ligne générée a une indentation initiale de 11 et si vous indiquez indent=20 et regénérez, la première ligne aura une indentation de 20 et commencera donc en position 21. L'indentation des lignes suivantes sera décalée de 9 pour conserver le décalage initial.

Les contrôles suivants sont effectués sur les lignes nouvellement indentées lors de la regénération :
  • Elles ne doivent pas se situer au-delà de la colonne 72.
  • Elles doivent commencer en marge B du COBOL si elles se situent en PROCEDURE DIVISION ou proviennent d'un micropattern WI, WE ou WS.
  • Les niveaux 01 et 77 des lignes générées à partir du micro-pattern WF doivent se situer en marge A du COBOL.

Si au moins une ligne générée ne peut pas être indentée avec l'indentation demandée, toutes les lignes générées sont positionnées avec l'indentation par défaut. L'indication indent=nn est donc ignorée et l'avertissement Valeur indentation erronée apparaît sur la ligne de déclaration du micropattern dans l'éditeur COBOL PDP et dans la vue Erreurs.


Vos commentaires