https://www.gaia.fr/wp-content/uploads/2017/02/team3.png600600Pierre-Louis BERTHOIN/wp-content/uploads/2017/05/logogaia.pngPierre-Louis BERTHOIN2026-10-16 09:55:402026-10-16 09:55:41Garder vos options de compile sur vos DDS
API, IA, VSCodeQu’est-ce que le Model Context Protocol (MCP) ?
Définition du protocole MCP
Le Model Context Protocol (MCP) est un protocole ouvert et standardisé qui permet aux intelligences artificielles (comme Claude, ChatGPT, ou autres grands modèles de langage) de se connecter facilement à des outils, services et sources de données externes. C’est un peu comme l’USB-C des applications IA : au lieu d’avoir un câble différent pour chaque appareil, tu as un seul connecteur universel qui fonctionne avec tout.
Comment ça fonctionne ?
Sans MCP, chaque outil (GitHub, base de données, email, API) avait sa propre façon de se connecter, ce qui obligeait les développeurs à créer des intégrations personnalisées pour chaque combinaison. Avec le MCP, tout le monde utilise la même méthode standard, ce qui rend les connexions beaucoup plus simples et universelles.
Le MCP permet aux IA de sortir de leurs données d’entraînement et d’accéder à des informations en temps réel. Mais surtout, il leur permet d’agir dans le monde réel. Par exemple, tu peux demander à ton IA dans VS Code de lire un fichier source, puis d’écrire automatiquement un résumé dans ton outil de prise de notes comme Notion. D’autres actions possibles : envoyer un email, consulter GitHub, modifier un fichier, créer un événement dans l’agenda, etc. C’est ce qui rend possible l’IA agentique : des programmes intelligents capables de poursuivre des objectifs et d’entreprendre des actions de manière autonome, sans que l’humain ait à copier-coller ou basculer manuellement entre ses outils.
Pourquoi est-il important de s’intéresser au protocole MCP ?
Pour rappel, le protocole MCP joue un rôle essentiel puisqu’il facilite les échanges entre les IA, les applications et les outils utilisés en entreprise. Il permet de connecter plus simplement différents systèmes tout en améliorant la circulation et l’exploitation des données.
Selon les différents rôles dans une entreprise, le MCP apporte plusieurs avantages :
Équipes techniques et développeurs : il simplifie les intégrations, réduit la complexité du développement et accélère la mise en place de nouveaux outils.
Managers et responsables métiers : il améliore l’automatisation, la circulation des informations et l’efficacité des processus internes.
Pour les responsables métiers et managers : ilaméliore la circulation des informations et facilite l’automatisation de certaines tâches. Il aide les managers à gagner du temps, à mieux suivre les activités et à prendre des décisions plus efficacement grâce à un accès simplifié aux données.
En résumé les MCP accompagne la modernisation des entreprises en favorisant des architectures plus connectées, flexibles et évolutives.
Exemple d’utilisation :
Étapes du processus
L’utilisateur saisit sa question dans l’interface de chat (ex. : « Quelles commandes sont en retard cette semaine ? »).
L’assistant IA transmet la requête au serveur MCP PostgreSQL ou autre.
Le serveur MCP traduit la requête en SQL et interroge la bdd.
Le résultat est retourné au LLM, qui formule une réponse en langage naturel.
L’utilisateur obtient une réponse contextualisée, sans accès direct à la base.
La sécurité des MCP
Le MCP supporte OAuth pour l’authentification et recommande TLS pour le chiffrement des échanges.deux mécanismes que tu dois explicitement configurer, ils ne sont pas actifs par défaut
Le modèle Zero Trust : « ne jamais faire confiance au réseau, même interne ».
Les bonnes pratiques recommandées :
Accorder aux serveurs MCP uniquement les droits strictement nécessaires à leur fonctionnement, conformément au principe du moindre privilège, afin de limiter les risques liés aux erreurs, attaques ou accès non autorisés.
Contrôler régulièrement les accès et permissions attribués à chaque serveur pour éviter toute autorisation excessive ou inutile.
Vérifier et comprendre précisément les accès accordés lors de la mise en place d’une connexion MCP.
Utiliser exclusivement des serveurs MCP fiables et de confiance.
Human-in-the-loop : toujours exiger une confirmation manuelle avant les actions critiques (suppression, déploiement, envoi)
Sandboxing : isoler les serveurs MCP dans des containers Docker pour limiter la portée d’une compromission
Rotation des secrets : ne jamais hardcoder de clés API dans la config MCP.
/wp-content/uploads/2017/05/logogaia.png00Dilhan Dincer/wp-content/uploads/2017/05/logogaia.pngDilhan Dincer2026-06-02 10:00:002026-06-02 17:23:19Qu’est-ce que le Model Context Protocol (MCP) ?
VSCodeAppliquer une extensions à tous les profils utilisateur sur VS Code
Cet article fait partie d’une série d’articles consacrés aux profils utilisateurs de VS Code.
Principe
Parfois, une extension peut être tellement pratique qu’elle en devient indispensable. Dans ce cas, il existe une fonctionnalité qui vous permet facilement de la rendre disponible à tous les profils utilisateur de VS Code, actuels et futurs.
Démonstration
Tout se fait très rapidement : la manipulation ne vous prendra que quelques secondes !
Ouvrir l’activité Extensions
Ouvrir la vue Installé
Ouvrir le menu contextuel de gestion de l’extension
Activer l’option Appliquer l’extension à tous les profils.
Après quoi, il me suffit de changer de profil (repasser sur celui par défaut, par exemple). La vue Installé se met à jour et indique bien que l’extension y est également installée.
Remarques
La gestion d’une extension appliquée à tous les profils se fait également au niveau collectif.
Lorsque vous décochez l’option Appliquer l’extension à tous les profils pour une extension, il se passe trois choses :
l’extension cesse d’être appliquée automatiquement aux nouveaux profils.
L’extension reste installée sur tous les profils existants.
la gestion de l’extension redevient propre à chaque profil.
/wp-content/uploads/2017/05/logogaia.png00Lucas Kleinmann/wp-content/uploads/2017/05/logogaia.pngLucas Kleinmann2026-03-24 10:15:002026-03-23 11:08:08Appliquer une extensions à tous les profils utilisateur sur VS Code
VSCodeExporter et importer un profil utilisateur sur VS Code
Nous le disions dans l’article de présentation des profils utilisateurs : c’est super pour faciliter la gestion des configurations de travail sur ma machine. Mais que se passe-t-il si je change de machine ou si mon collègue doit effectuer des tests avec la même configuration ?
Nous allons voir que le gestionnaire de profils offre quelques fonctionnalités très pratiques.
Exporter un profil
La manipulation est très simple :
Ouvrir le gestionnaire de profils
Survoler le profil à exporter pour faire apparaître le bouton Plus d’actions… puis cliquer dessus
Cliquer sur l’option Exporter...
Sélectionner le format d’export
Export en local
L’export en local génère un fichier de type .code-profile à l’emplacement de votre choix, que vous pouvez ensuite partager de la manière qui vous convient le mieux (dossier synchronisé, envoi par e-mail…)
Export via GitHub
Cette option nécessite préalablement d’avoir un compte GitHub et de l’avoir connecté à VS Code (ne vous en faites pas, Microsoft met bien en avant cette possibilité, vous ne la louperez pas). Le fichier généré, appelé gist, y est sauvegardé et rendu accessible sur la page Web de votre compte GitHub, dans la section dédiée GitHub Gist. Vous pouvez ensuite en partager l’URL aux personnes qui ont besoin de le télécharger.
Importer un profil
Là aussi, la manipulation est très simple :
Cliquer sur Plus d’actions… au niveau du bouton de création de profils
Cliquer sur Importer le profil…
Dans la barre de dialogue, soit coller l’URL du gist, soit cliquer sur Sélectionner le fichier… pour pouvoir sélectionner le fichier de type .code-profile à utiliser
Voilà, vous avez maintenant un nouveau profil utilisateur !
Remarques
Pour ceux qui maîtrisent bien Git, Un gist peut être vu comme un référentiel miniature dédié au partage d’un seul élément
Par défaut, les gists générés par cette méthode sont privés. Je recommande de ne pas chercher à les rendre publics
Voilà pour l’import et l’export de profils utilisateurs, j’espère que ça vous aidera dans votre prise en main de VS Code. On se retrouve bientôt pour un dernier article dans cette série !
/wp-content/uploads/2017/05/logogaia.png00Lucas Kleinmann/wp-content/uploads/2017/05/logogaia.pngLucas Kleinmann2026-03-17 10:00:002026-03-16 16:04:25Exporter et importer un profil utilisateur sur VS Code
Visual Studio Code, c’est une adaptabilité géniale, notamment via ses extensions. Mais comme pour tous les IDEs, la gestion des paramètres qui permettent cette adaptabilité peut vite devenir compliquée.
C’est pourquoi nous entamons aujourd’hui une courte série d’articles consacrés à la notion de profil utilisateur, introduite par Microsoft pour nous simplifier la vie.
Principe
Les profils utilisateurs sont des regroupements de paramètres et d’extensions, entre lesquels vous pouvez basculer en deux clics (littéralement), une fois ceux-ci créés. Si on devait donner une dénomination purement technique, on parlerait de profils de configurations.
Gestionnaire de profils
Pour ouvrir le gestionnaire de profils, cliquez sur la roue crantée en bas de la barre d’activités, survolez l’option Profil du menu contextuel, puis cliquez sur Profils dans le menu contextuel de second niveau.
Le gestionnaire de profils s’affiche et à partir de là, il suffit de nommer votre nouveau profil puis de cliquer sur le bouton Créer en bas de page. La configuration appliquée par défaut reprend celle du profil initial fourni par VS Code et vous fournit une base saine suffisante dans la grande majorité des cas.
Maintenant que le nouveau profil est créé, il est disponible dans le menu contextuel de sélection des profils utilisateurs. Cliquez dessus pour l’appliquer ; l’aspect de la roue crantée sera modifié pour vous indiquer quel profil est actuellement utilisé.
A partir de là, une installation d’extension, modification de paramètre… se fera au niveau du profil utilisé, sans venir influer sur les autres. Vous pouvez maintenant facilement basculer d’un usage de VS Code à un autre !
Conseils d’usage et remarques
Un profil utilisateur = un type d’usage de VS Code
Microsoft fournit des modèles de profils sur lesquels se baser à la création d’un nouveau profil (section Copier à partir de dans le gestionnaire de profils)
Il est possible d’étendre l’usage d’une extension à tous les profils
Il est possible d’exporter et d’importer des profils utilisateurs via le gestionnaire de profils
/wp-content/uploads/2017/05/logogaia.png00Lucas Kleinmann/wp-content/uploads/2017/05/logogaia.pngLucas Kleinmann2026-03-10 09:32:292026-03-10 09:32:30Les profils utilisateurs de VS Code
Vous avez vos sources coté IBMi qui sont le plus souvent stockés dans des fichiers sources QRPGLESRC et le CCSID est à 1147 (je reviens pas sur les dangers du 65635)
Vous décidez de placer, vos sources dans l’IFS et vous décidez d’adopter un (CCSID UTF-8 recommandé) ,voir Windows 1252.
C’est le sens de l’histoire pour giter par exemple
Le CCSID du source a un impact sur les constantes de votre programme RPGLE, à la compilation on va voir un exemple :
Les constantes étant basées sur le CCSID du source par défaut
Voici un programme
**free
ctl-opt dftactgrp(*no)
// ccsid(*exact) // << clé : figer au CCSID de
;
dcl-c titre 'Tarif semaine dès 4 jours ? ' ; // Constante
dcl-s mots char(06) dim(3) ctdata perrcd(1); // tableau chargé à la
dcl-ds ds_texte ; // tableau de constante
*N Char(06) Inz('école' ) ; //
*N Char(06) Inz('garçon') ; //
*N Char(06) Inz('café ' ) ; //
texte char(06) dim(3) pos(1) ;
end-ds;
dcl-s i int(10);
// Affichage Résultat
dsply ('Constante : ' + titre);
for i = 1 to %elem(texte) ;
dsply ('Texte : ' + texte(i));
endfor;
for i = 1 to %elem(mots);
dsply (' CTDATA : ' + mots(i));
endfor;
*inlr = *on;
** CTDATA mots (3 lignes, codées avec accents)
école
garçon
café
Vous avez une option de compile TGTCCSID qui fixe le CCSID à utiliser
donc on ajoute l’option
CRTBNDRPG PGM(GDATA/SRCCCSID)
SRCSTMF(‘SRCCCSID.RPGLE’)
TGTCCSID(1147)
L’affichage est correct
Conclusion :
Vous pouvez également utiliser *JOB dans la valeur de TGTCCSID(), à ce moment la vous aurez le même comportement dans les 2 cas si votre job est en 1147.
Ajouter l’action dans VSCode en remplaçant <BIBOBJ>, <BIBBDD>, <PATH> par votre bibliothèque, la bibliothèque de base de données et le chemin du fichier à générer :
?<BIBOBJ>/TODBML LIB(<BIBBDD>) PATH('<PATH>')
Paramètres de la commande:
LIB : Bibliothèque de la base de données
PATH : Le chemin du fichier dbml qui sera généré
Exemple :
ps : Vous pouvez faire une action de type « fichier » avec rafraichissement de filtre.
Lancer l’action
Visualisation du diagramme
Ouvrir le fichier et cliquer sur l’icone « show diagram » en haut à droite.
A vous de jouer !
Il est intéressant de constater que la richesse du rendu semble proportionnelle à la densité des relations dans la base… une coïncidence, sans doute 🙂
/wp-content/uploads/2017/05/logogaia.png00Florian Gradot/wp-content/uploads/2017/05/logogaia.pngFlorian Gradot2025-09-18 09:35:242025-09-29 10:22:24Schéma de base données dans VSCode
Nous sommes de plus en plus nombreux à utiliser Code for IBM i !
Nous avons de nombreuses questions sur cet outil, en constante évolution.
Cette semaine, nous avons choisi de parler des profils, et de la confusion entre le profiles Visual Studio Code et les profils Code for IBM i.
Et les profils IBM i ?
Nous n’en parlerons pas ici !
Un profil IBM vous permet de vous connecter à la machine et n’existe que côté serveur.
La notion de profils dans Visual Studio Code (noté VSCode pour la suite) concerne la configuration des environnements de travail dans l’IDE.
Profil Code for IBM i
A la connexion à votre IBM i, VSCode établi une communication via un job SSH. Ensuite, l’interface propose plusieurs éléments de configuration et de navigation :
User Library List (partie utilisateur de la liste de bibliothèque) + current library (bibliothèque en cours)
Object browser (filtres sur objets / membres)
IFS shortcuts (filtres sur répertoires / fichiers)
Une fois connecté, la liste de bibliothèque affichée est celle utilisée à votre dernière connexion.
Vous pouvez modifier la bibliothèque en cours par click droit sur current library (ouvre un prompt) ou sur click droit sur une bibliothèque à définir comme en cours :
De même pour la liste de bibliothèque : ajout / suppression / réorganisation :
Une fois votre environnement configuré, la sauvegarde sous forme de profil vous permet de mémoriser cette configuration et de pouvoir revenir dessus plus rapidement par la suite :
Donner un nom à l’enregistrement :
Une nouvelle option de gestion des profils est alors affichée :
Elle vous permet de revenir à la situation d’origine de votre profil (si vous avez ajouter/supprimer des bibliothèques par exemple) :
Mais surtout vous pouvez créer d’autres profils, correspondants à d’autres situations :
Développement projet 1
Développement projet n …
Tests projet 1
Production
…
Vous pouvez aussi créer un profil directement en indiquant une commande de mise en place de l’environnement, basiquement un CHGLIBL :
Pour plus de souplesse, surtout lors de travail en équipe, nous vous conseillons de créer une *JOBD par « projet » côté serveur, avec une commande qui met en place les bibliothèque de la *JOBD. Cela vous permet de modifier la *JOBD sans intervenir sur l’ensemble des clients :
En réalité, le profil permet de stocker l’ensemble des éléments suivants :
Le profil Visual Studio Code vous permet d’avoir plusieurs configurations de VSCode avec une installation unique : des attributs de l’environnement peuvent être modifiés via un fichier de configuration.
Depuis le menu des paramètres, aller dans les profils :
Nous pouvons alors gérer les profils, en créer/supprimer, modifier les attributs :
Il est par exemple possible de créer un profil :
Par copie d’un profil existant, ou totalement vide. Et lors de la copie, vous choisissez les éléments de paramétrages, de personnalisation de clavier etc … Une icône spécifique peut être attribuée pour identifier rapidement les profils.
Certains profils types sont également fournis :
Une fois le profil créé, vous pouvez passer de l’un à l’autre :
Ou bien ouvrir une autre fenêtre avec un profil différent :
Depuis les propriétés du profil, les différentes catégories (Settings, keyboard shortcuts etc …) correspondent à des fichiers de configuration différents. Lorsque vous double-cliquer sur « Settings » :
Vous pouvez modifier les propriétés en direct, le changement est pris en compte à l’enregistrement du fichier :
Vous remarquez que l’ensemble des informations des profils Code for IBM i sont stockés ici, dans les profils Visual Studio Code :
Vous pouvez donc facilement éditer, modifier, échanger (regarder les options d’import/export) toutes les configurations afférentes.
Avec un peu d’habitude, vous pouvez ouvrir différentes instances pour différents usage.
https://www.gaia.fr/wp-content/uploads/2017/02/team1.png600600Nathanaël Bonnet/wp-content/uploads/2017/05/logogaia.pngNathanaël Bonnet2025-06-23 22:04:512025-06-23 22:04:52Visual Studio Code et Code for IBM i : profils
Vous devez échanger un fichier avec un partenaire qui vous le demande au format JSON
Il n’existe pas de CVTJSONxx comme la commande CPYTOIMPF pour le CSV
Pas de panique vous avez des services SQL qui font ceci voici un exemple :
Création d’une table de test
SET SCHEMA = ‘votre base’; CREATE OR REPLACE TABLE CLIENTS ( ID_CLIENT INTEGER NOT NULL WITH DEFAULT, NOM_CLIENT VARCHAR ( 50) NOT NULL WITH DEFAULT, VILLE VARCHAR ( 50) NOT NULL WITH DEFAULT ) ; INSERT INTO CLIENTS VALUES(1, ‘Dupont’, ‘Paris’) ; INSERT INTO CLIENTS VALUES(2, ‘Durand’, ‘Lyon’) ;
Voici la syntaxe qu’il vous faudra utiliser pour le convertir sous forme de flux json
SELECT JSON_OBJECT(
'id_client' VALUE ID_CLIENT,
'nom_client' VALUE NOM_CLIENT,
'ville' VALUE VILLE
) AS CLIENT_JSON
FROM CLIENTS;
Maintenant il va falloir générer le fichier .JSON dans l’IFS par exemple en utilisant la procédure IFS_WRITE_UTF8
Malheureusement ce service n’existe pas sous forme de fonction on devra utiliser une des possibilités de SQL « Dynamic compound statement » qui permet de compiler un module dynamiquement
Ce qui donnera donc
BEGIN
CALL QSYS2.IFS_WRITE_UTF8(
PATH_NAME => 'PLB_CLIENTS.json',
LINE => '',
OVERWRITE => 'REPLACE',
END_OF_LINE => 'NONE'
);
FOR SELECT TRIM(CAST(JSON_OBJECT(
'id_client' VALUE ID_CLIENT,
'nom_client' VALUE NOM_CLIENT,
'ville' VALUE VILLE
) AS VARCHAR(32000))) AS Line_to_write
FROM PLB.CLIENTS
DO
CALL QSYS2.IFS_WRITE_UTF8(
PATH_NAME => 'PLB_CLIENTS.json',
LINE => Line_to_write
);
END FOR;
END;
Si vous avez beaucoup de fichiers à convertir ca peut être fastidieux pas de panique nous avons fait une commande qui va vous aider
https://github.com/Plberthoin/PLB/tree/master/GTOOLS, vous avez l’habitude un source SQLRPGLE et un source CMD à compiler , voila SME
Vous pouvez enregistrer le scripte SQL (CVTFICJSON.SQL) avec l’option Sauvegarder le scripte
Vous pourrez le customiser :
en le formatant par ACS ,
en enlevant des zones
en sélectionnant des enregistrements
etc …
Remarque :
Vous avez une option pour agréger
Vous pouvez faire beaucoup mieux , c’est juste pour vous aider à démarrer dans le domaine
https://www.gaia.fr/wp-content/uploads/2017/02/team3.png600600Pierre-Louis BERTHOIN/wp-content/uploads/2017/05/logogaia.pngPierre-Louis BERTHOIN2025-05-02 12:16:162025-05-02 12:16:17Convertissez un fichier en JSON
Retour sur une problématique récurrente et souvent mal comprise, donc mal gérée … Et qui pourrait bien s’amplifier avec l’usage plus intensif de l’Open Source.
Vous utilisez historiquement des fichiers sources (objet *FILE attribut PF-SRC) pour stocker vos sources : ces fichiers sont créés avec un CCSID, par défaut le CCSID du job dans lequel vous exécutez la commande CRTSRCPF
Usuellement vous obtiendrez des fichiers sources avec un CCSID 297 ou 1147 pour la France. Si vos machines sont « incorrectement » réglées, un CCSID 65535 (hexadécimal).
Mais également, par restauration d’autres produits, certainement des fichiers avec un CCSID 37 (US).
Pour les langages de programmation (dont le SQL), le CCSID du fichier source est important pour les constantes, qui peuvent par définition êtres des caractères nationaux quelconques. Quant aux instructions, la grammaire des langages les définis sans ambiguïtés.
Caractères spéciaux / nationaux
Pour toutes les commandes, instructions, éléments du langage, pas de soucis d’interprétation
A la compilation, les constantes sont interprétées suivant le CCSID du job, pas celui du source !
En général, les deux CCSID sont identiques.
Par contre, pour les caractères spéciaux utilisés, si l’on regarde de plus près le cas du CL, la documentation indique :
Voilà qui explique les fameuses transformations de @ en à !
En synthèse : le compilateur considère tous les éléments du langage comme étant en CCSID 37, hors les constantes alphanumériques et les quelques caractères listés ici.
Pour le CL : impossible d’utiliser les opérateurs symboliques |> (*BCAT), |< (*TCAT) et || (*CAT)
Le caractère | est mal interprété. Vous devez le remplacer par un !, ou utiliser les opérateurs non symboliques (*BCAT, *TCAT et *CAT).
Pour le SQL : impossible d’utiliser l’opérateur || (même raison).
Vous devez le remplacer par un !!, ou utiliser l’opérateur concat.
Evolution du RPG
Le principe est le même.
Toutefois le langage vous permet également de contrôler le CCSID des variables déclarées. Et depuis la 7.2, de nouvelles directives de pré-compilation permettent d’indiquer des valeurs de CCSID par défaut par bloc de source :
Et pour l’IFS ?
Sur l’IFS, chaque fichier (source ou non) dispose également d’un CCSID. Sa valeur dépend principalement de la façon de créer le fichier (par un éditeur type RDi/VSCode, partage netserver, transfert FTP …).
Premier point d’attention : l’encodage du contenu du fichier doit correspondre à son attribut *CCSID !
VSCode vous indique le CCSID de la donnée, par exemple :
Mais :
1252 = Windows occidental (proche de l’UTF-8 mais pas identique). La raison est que VSCode travaille naturellement en UTF-8.
RDi gère correctement l’encodage/décodage par rapport à la description du fichier.
Pour les autres outils, à voir au cas par cas !
Evolution des compilateurs
Les compilateurs C, CPP, CL, RPG, COBOL supportent désormais (PTF en fonction des compilateurs) un paramètre TGTCCSID :
En réalité ce paramètre a été ajouté pour permettre la compilation plus facilement depuis l’IFS, principalement depuis des fichiers IFS en UTF-8.
Cela ne règle pas nos problèmes précédents, les éléments du langage n’étant pas concernés : nous auront toujours le problème d’interprétation du |
Par contre, c’est utile pour la bonne interprétation des constantes lorsque le job de compilation a un CCSID du source. Et cela permet une meilleure intégration dans les outils d’automatisation.
Le script propose d’indiquer un CCSID pour les fichiers sources. Mais la seule solution viable est de compiler avec un job en CCSID 37 :
soit CHGJOB CCSID(37) avant de lancer le script
soit vous pouvez vous créer un profil dédié en CCSID 37 si ces opérations sont récurrentes
Tant que vous n’avez pas de caractères nationaux dans le codes !
Retrouver le CCSID de ses fichiers sources
SELECT f.SYSTEM_TABLE_NAME, f.SYSTEM_TABLE_SCHEMA, c."CCSID" FROM qsys2.systables f JOIN qsys2.syscolumns c ON (c.SYSTEM_TABLE_NAME, c.SYSTEM_TABLE_SCHEMA) = (f.SYSTEM_TABLE_NAME, f.SYSTEM_TABLE_SCHEMA) WHERE f.file_type = 'S' AND LEFT(f.system_table_name, 8) <> 'EVFTEMPF' AND c.SYSTEM_COLUMN_NAME = 'SRCDTA' ORDER BY c."CCSID", f.SYSTEM_TABLE_SCHEMA, f.SYSTEM_TABLE_NAME;