Les Allocations familiales nous ouvrent le code source de leur calculateur d’aides
AbraCADAbra
Le 13 mars 2018 à 13h56
3 min
Droit
Droit
Next INpact diffuse aujourd’hui le code source « relatif à l’intégralité du calcul des prestations légales gérées par les caisses d’Allocations familiales ». Ce document public nous a été transmis par la Caisse nationale des allocations familiales, dans le cadre d’une demande dite « CADA ».
Depuis l’entrée en vigueur de la loi Numérique, fin 2016, les codes sources détenus ou produits par les administrations sont expressément considérés comme des « documents administratifs ». Résultat : ces fichiers informatiques sont en principe communicables de plein droit au citoyen qui en fait la demande.
Fin janvier, nous avons ainsi tenté d’obtenir le code source des logiciels destinés au calcul de différentes aides versées par les CAF : prime d’activité, APL, RSA et allocations familiales.
Moins d’un mois plus tard, la Caisse nationale des allocations familiales (CNAF) répondait favorablement à notre requête, en nous envoyant un CD-Rom contenant « le code source relatif à l’intégralité du calcul des prestations légales gérées par les caisses d’Allocations familiales ».
À l’intérieur, s’y trouvaient plusieurs fichiers de type COBOL, bien connus des informaticiens de l’État. Nous rediffusons naturellement ces informations :
Des informations librement réutilisables
Toujours en application de la loi Numérique, ces informations contenues dans ces fichiers « peuvent être utilisées par toute personne qui le souhaite à d'autres fins que celles de la mission de service public pour les besoins de laquelle [elles] ont été produit[e]s ou reçu[e]s ». En clair, chacun peut les réutiliser librement – à condition toutefois que celles-ci « ne soient pas altérées, que leur sens ne soit pas dénaturé et que leurs sources et la date de leur dernière mise à jour soient mentionnées » (voir à ce sujet le billet du bibliothécaire et juriste Calimaq).
Libre maintenant à la société civile de s’emparer de ces données publiques, pour de nouvelles simulations de droits, d'éventuelles vérifications entre modalités de calcul et réglementation en vigueur, etc. N’hésitez d'ailleurs pas à revenir vers nous si vous dénichiez des éléments intéressants au milieu de ces millions de ligne de code...
Si vous voulez vous aussi solliciter un code source (ou tout autre document administratif), vous pouvez vous tourner vers notre « guide pratique ».
Le 13 mars 2018 à 13h56
Les Allocations familiales nous ouvrent le code source de leur calculateur d’aides
-
Des informations librement réutilisables
Commentaires (211)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 13/03/2018 à 14h13
Le cobol a encore de beaux jours devant lui
Le 13/03/2018 à 14h18
Normalement le cobol est assez remarquablement lisible.
Bien plus facile à reprendre que de l’objet designpaterné je dirais.
#cestdanslesvieuxpotsgnagnagna
Le 13/03/2018 à 14h19
‘tin des fichiers de 200 000 lignes de code, ça envoi du pâté " />
Le 13/03/2018 à 14h21
Alors, vous avez trouvé des bugs à NXI en lisant le code ?
Le 13/03/2018 à 14h22
@ColonelMoutarde : Plutôt sur son framagit?
En tout cas, le source est infâme à lire. j’avais encore jamais lu de cobol, mais là… on dirait qu’ils ont tout foutu en assembleur avant de l’envoyer.
Le 13/03/2018 à 14h23
Vive le cobol, vive pacbase
" />
Le 13/03/2018 à 14h26
Le 13/03/2018 à 14h28
Mais pourquoi est-ce si compliqué ?
Les fichiers sont énormes…
Le 13/03/2018 à 14h28
github ne marche pas bien sur mainframe. ;-)
L’avantage du cobol c’est que tout le monde peut lire le programme facilement. Même le métier en est capable paraît-il.
Le 13/03/2018 à 14h30
Non, j’ai un métier moi " />
Au pire même un code obfusqué en cobol sera plus facile à détricoter qu’un code objet, ce que j’indique reste vrai.
Le 13/03/2018 à 14h36
Tu as piqué ma curiosité, j’ai été voir, c’est commenté, indenté correctement.
Après c’est complexe, forcément…
Je viens de voir que la personne qui a codé le batch CGMC01 est Stéphanie de Monaco " />
Le 13/03/2018 à 14h37
Je ne connais pas du tout le Cobol. Bon, à première vue, 95% des fichiers semblent être composés de déclaration de constantes.
Et le langage… ça me rappelle pourquoi j’ai eu horreur d’utiliser de l’assembleur.
Mais sinon, ça semble être fait avant tout système de versionnage, les note de mise à jours sont indiquées dans les fichiers.
Le 13/03/2018 à 14h37
“Parait-il”
C’ est assez bien résumé " />
Les subtilités … comment dire ….
" />
Le 13/03/2018 à 14h48
Le 13/03/2018 à 14h50
Le temps de remonter une machine qui va bien (z/os, os/400 ?), de compiler le code et de tester mes gamins seront majeurs…" />
Le 13/03/2018 à 14h51
Le 13/03/2018 à 14h53
Leur autorisation d’usage se rapproche de quelle licence connue ?
Le 13/03/2018 à 14h57
Le 13/03/2018 à 14h58
Mouiiii… 500Mo de code dans un language pas très user-friendly. Autant lire de l’assembleur.
Je préférais le code SQL pour Admission-post-bac…
Le 13/03/2018 à 15h01
C’est une blague ce code source.
Le 13/03/2018 à 15h02
Le 13/03/2018 à 15h02
L’urssaf c’est du fortran… " />
Le 13/03/2018 à 15h02
Mouais. J’ai ouvert le CGS101, première fois que je vois du Cobol, j’vois le nombre de lignes, je lis un peu au pif, je referme. Merci Madame. Bonne soirée. J’ai rien pigé.
#SeSentCon
EDIT : Même sensation que lorsque je tente de lire un article de loi… J’ai l’impression de m’auto-entuber par le simple fait de lire un truc qui a été écrit dans le but de ne pas être compréhensible. Et encore je comprends mieux le droit que ce machin… pourtant j’suis dev. (web, certes, mais j’ai touché à presque tous les langages de haut niveau des quelques dernières années et j’me sens con)
Le 13/03/2018 à 15h05
j’ai pas fait mieux " />
Le 13/03/2018 à 15h05
“Ce document public nous a été transmis par la Caisse nationale des allocations familiales, dans le cadre d’une demande dite « CADA ».” “Moins d’un mois plus tard, la Caisse nationale des allocations familiales (CNAF) répondait favorablement à notre requête”
Du coup vous avez pas eu besoin de la CADA …?
Le 13/03/2018 à 15h05
Quand je lis le mot “Cobol”, je pense au “bug de l’An 2000” et aux innombrables annonces ANPE que je lisais sur les tableaux d’affichage en compagnie de mes nombreux collègues chômeurs.
Le 13/03/2018 à 15h07
La CAF… toujours là pour nous apporter un dose d’humilité :p
Le 13/03/2018 à 15h09
@NXi : Au lieu de demander le code source, ça serait plus intéressant de demander le dossier de spécifications techniques détaillées et le dossier de spécifications fonctionnelles.
Là, y’aurait de l’info super intéressante. Ce tas de code ne vaut pas grand chose…
Le 13/03/2018 à 15h13
Non :)
On m’interpelle souvent sur ces appellations, mais je distingue deux choses :
-La “demande CADA” : en fait une demande d’accès à des documents administratifs, sur la base de la loi dite CADA
-La saisine de la CADA (l’autorité administrative). C’est elle, la Commission d’accès aux documents administratifs, qui rend des avis pour faire office de juge de paix entre administration et citoyens. On ne saisit la CADA que si la demande CADA a échoué
Le 13/03/2018 à 15h15
Excellent travail ! J’admire votre pugnacité sur ce genre de sujets qui réclame du temps…. beaucoup de temps et de patience…
Le 13/03/2018 à 15h16
Je crois que la partie en gras est censée résumer l’article.
Le 13/03/2018 à 15h17
" />" />
Le 13/03/2018 à 17h06
qui sait ? Peut-être qu’elle compilait le C aussi. (attention, contrepèterie ! " />)
Le 13/03/2018 à 17h09
Le 13/03/2018 à 17h14
Le 13/03/2018 à 17h17
Le 13/03/2018 à 17h27
C’est cool ça avance là dessus, par contre si les règles d’attribution changent d’une année sur l’autre, ou bien de nouvelles aides sont définies : j’imagine que faut redemander le code source non ?
Par contre sans les spec techniques, chaud le reverse engineering " />
Le 13/03/2018 à 17h32
Les sources sont gros parce que les COPY sont expansés.
(un peu comme des sources C / C++ pré-processés)
La PROC-DIV est en général bien plus petite
Le 13/03/2018 à 17h37
Le 13/03/2018 à 17h37
Ben oui au debut il y a la déclaration des fichiers et des structures qui est séparée de la “procedure division” qui contient le code. Et il ne faut tenir compte ni des colonnes 1 à 6 ni celles de 73 à 80 qui contiennent des ‘commentaires’ ou des références.
On est bien d’accord que cela n’apporte pas grand chose.
Le 13/03/2018 à 17h37
" />
des gens qui n’ont jamais fait d’assembleur ?
Le 13/03/2018 à 17h38
Le 13/03/2018 à 17h44
Questions à NXI :
Vous allez en faire quoi de ce code ? Et ne répondez pas que vous allez le mettre à disposition de la communauté. Il n’y a manifestement pas de personnes intéressées et capable de le lire à la vue des commentaires.
J’attends donc que vous (NXI) étudiez ce code et que vous en fassiez un résumé, en indiquant par exemple les bugs que vous avez détectés.
Parce que balancer un .zip, c’est assez facile, en faire quelque chose d’utile, c’est plus difficile.
Déjà, j’attends de votre part une explication sur les 2 répertoires existants (Batch et Tp : les fichiers y ont les même noms et ont des parties de code en commun) et le rôle de chacun des fichiers.
J’ai bien une idée de ce que veut dire Tp, mais je vous laisse donner la votre.
Le 13/03/2018 à 17h52
le batch c’est du batch , le TP c’est du transactionnel
Le 13/03/2018 à 17h56
Vraiement sympa de “voir” la complexité du projet dans le calcul des différentes règles celles nouvelles, modifiées ou supprimer.
Heureusement qu’il y a un peu d’humour caché la dedans !
A998.CCR1308B : Zone devant disparaitre mais impossible CGLKPIMO
* IMPOSSIBLE n’est pas français, madame. CGLKPIMO
* Breton, peut-etre, mais pas français, c’est sûr. CGLKPIMO
* (le 25/04/02) à cause de la SIMULATION
* Version : V01500 CGBCALAK
* CGBCALAK
* Chantier : AQ015 Début : 12/05/2004 Fin : 12/05/2004 CGBCALAK
* CGBCALAK
* Texte : Le jour, tous les chats gris sont gris. CGBCALAK
* Chantier : 1R150 Début : 08/07/2004 Fin : 08/07/2004 CGBCALAK
* CGBCALAK
* Texte : Après la nuit blanche, ce fut un jour noir pour tous leCGBCALAK
* bleus.
Le 13/03/2018 à 18h01
Merci d’avoir divulgué ce que je pensais. Je voulais voir le niveau de l’équipe de NXI qui demande des trucs à l’administration alors qu’ils ne leur serviront à rien.
TP pour temps partagé, comme à la grande époque où un seul ordinateur central servait plusieurs utilisateurs, par opposition aux travaux par batch où l’on récupérait le résultat à la fin du traitement.
Le 13/03/2018 à 18h31
Ta requête est stupide, franchement elle rime à quoi cette mise en demeure à part nourrir ton égo? NXI est dans son rôle de média engagé pour “l’opensource par défaut” et l’opendata de mener ce type d’initiative et de mettre le code (quelqu’il soit) à la disposition d’une communauté. Je n’attends pas de NXI qu’ils passent leurs journée à dépiler 534 Mo de Cobol, j’attends d’eux des articles et un travail de journalistes, pas celui d’une armée de geeks qui pourraient probablement en sortir des choses intéressantes (cf le hackathon #CodeImpot en avril 2016)
Le 13/03/2018 à 18h40
Le 13/03/2018 à 22h36
Chapeau pour le temps que tu as dû passer à cette analyse.
Le 13/03/2018 à 22h43
…
Le 13/03/2018 à 22h57
Le 13/03/2018 à 22h59
Le 13/03/2018 à 23h01
Le 13/03/2018 à 23h09
Le 13/03/2018 à 23h17
Merci de la correction.
Mais temps partagé est plus vieux qu’UNIX, même si la notion a bien été reprise pour ce système.
Le 13/03/2018 à 23h28
Je parlais bien sûr de Transaction Processing ( du CICS par exemple)
WikipediaLe temps partagé date des années 60 quand on ne faisait même pas encore de multiprocessing mais seulement du multitasking.
Le 13/03/2018 à 23h29
Je suppose que la raison de cet article était de donner un exemple positif de la l’application de la loi numérique suite à cet article
Car en dehors de cela, je vois moi aussi peu d’utilité au code obtenu.
Qu’un groupe de bénévoles (ou non) s’empare du code, pourquoi pas, mais pour en faire quoi ?
Un concurrent au site officiel déjà mis en ligne et qui regroupe plus d’aides que la seule CAF ?
Le 13/03/2018 à 23h32
Pourquoi mériterais ?
Sinon merci de l’info. J’irais lire un peu plus sur COBOL ca a l’air assez différent de ce que je connais avec Fortran ou plus récent.
Le 14/03/2018 à 00h42
Le 14/03/2018 à 04h44
WAT, c’est en COBOL? Mais t’es serieux? Je croyais que ca n’existait plus que dans les vieux systemes bancaires crees dans les anness 70 et difficillement remplacable aujourd’hui.
Ca en dit long sur l’efficacite de la CAF et sur leur gestion interne…
Le 14/03/2018 à 04h47
“Fin janvier, nous avons ainsi tenté d’obtenir le code source des logiciels destinés au calcul de différentes aides versées par les CAF : prime d’activité, APL, RSA et allocations familiales.”
N’aurait-il pas été plus judicieux d’exiger directement les équations et les paramètres complets (barèmes, tranche de revenus, lieux de résidence, situation familiale, enfant(s) à charge, coefficient mysterieux qui sort du chapeau) qui entrent dans le calcul de chaque type d’aide.
J’ai déjà fait cette demande à la CAF de mon département (sans succès) pour comprendre comment était calculé, notamment, le quotient familial et les différentes aides auxquelles nous sommes éligibles (PAJE, APL, prime d’activité, etc) ceci afin d’anticiper sur les éventuels changements de situation et surtout pour ne pas se retrouver à rembourser des trop-perçus. Ces situations sont très problématiques pour des milliers de personnes, le plus souvent de bonne foi. Faire des recours contentieux, c’est bien joli, mais comment développer un quelconque argumentaire face à une administration qui ne donne pas un semblant d’explication sur les méthodes de calcul. On passe pour des mendiants.
De mon côté, je ne suis jamais parvenu à obtenir une réponse. Renvoyer vers les simulateurs n’est d’aucune utilité, d’autant qu’il est bien précisé que seule une estimation est donnée. Et ça ne répond pas à la nécessité de transparence qui devrait être la norme. D’autant plus quand c’est l’argent du contribuable qui est en jeu.
Le source proposé en téléchargement permet juste de constater que c’est une belle usine à gaz, ce que tout le monde sait déjà. L’impression qui en ressort est que la CNAF vous a lâché ça, histoire de vous donner un os à ronger, pour ne surtout pas avoir à répondre aux questions essentielles, celles qui poseraient de lourdes interrogations d’équité territoriale, d’égalité de traitement, et mettre au jour des incohérences. Mais je vois le mal partout…
Le 14/03/2018 à 05h30
Le 14/03/2018 à 06h24
Argumentaire typique de mauvaise foi
Les réponses à la plupart des questions que tu poses sont fournies directement dans le site de la CAF (avec explications et barêmes à l’appui)
Les simulations permettent une réponse supplémentaire à ces questions, mais elles ne fournissent que des “estimations” car bien souvent les données entrée par les utilisateurs ne sont pas exactes (estimation) et comme il existe des effets de seuils (décrits par ailleurs dans le site) il se peut qu’il y ait des différence. Si les données que tu rentres sont exactes, les résultats en sortie sont les bons.
Mais en fait chez toi, tout est résumé dans le “coefficient mysterieux qui sort du chapeau”. Ben oui, vous comprenez ma bonne dame, à la CAF ils sont payés à faire des calculs à la main… ou plutot au doigt mouillé.
Le 14/03/2018 à 06h36
Le 14/03/2018 à 07h00
Le 14/03/2018 à 07h20
Le 14/03/2018 à 07h24
Le 14/03/2018 à 07h35
+1000
Les critiques contre le cobol ou parce qu’on ne sait pas lire un texte ou un code sont stériles
Même si un seul lecteur peut déchiffrer ce qui est écrit, je salue l’initiative.
" />
Le 14/03/2018 à 08h01
je suis en train de tester un outil pour transpiler le code en Java, c’est loin d’être gagné sachant qu’il y a différent type de Cobol et que souvent, ce genre d’outil plante.
Sinon pour la qualité de code, je la trouve plutôt bien documenté et pour la plupart de ceux qui trouve ce code imbitable, oui il l’est mais pas plus que d’autres codes COBOL que j’ai pu croiser au cours de mes missions dans les services publiques et mutuelles.
Penser que le service publique dispose des dernières techno est utopique.
Le 14/03/2018 à 08h10
Le 14/03/2018 à 08h14
Le 14/03/2018 à 08h27
Pardon pour la formulation, c’est vrai qu’à l’écrit elle ne passe pas." /> après avoir aperçu le code, il est très clair. J’ai déjà vu des trucs illisibles en cobol sans qu’on parle d’obfuscation de code.
Le 14/03/2018 à 08h28
Le fait de mettre à disposition un code à la communauté est louable.
Par contre il manque quand même une mise en perspective: je n’ai vu nul part mention des outils que l’Etat met déjà à disposition des citoyens pour répondre à un grand nombre de questions et pour notamment faire des simulations.
Parceque dire que rendre ce code open-source est une fin en soit, c’est comment dire… digne de certains barbus qui croient que tout code non public est géré par une bande de rapaces dont le seul but est de les flouer.
J’espère donc qu’un groupe de dev motivés va se saisir du code pour … en faire quelque chose.
Et donc j’espère que NXi va suivre l’évolution de tout ceci pour au moins montrer aux plus sceptiques qu’ils avaient tort de douter des vertus de tout ceci.
Le 14/03/2018 à 08h35
Tu croyais… mais tu te trompais.
Cobol est bien vivant, et si on a du mal a s’en débarasser, c’est peut-être bien parce qu’il n’est pas si facile de faire un meilleur langage dans le domaine pour lequel il a été pensé.
Alors oui, certains aspects montrent son âge (format de ligne, majuscule, syntaxe pensée pour faciliter la vie du compilateur), mais c’est secondaire. D’ailleurs question pour les cobolistes: Rien de changé de ce côté là (alors que j’ai croisé des compilateurs Fortran en format libre il y a quasiment 40 ans) ?
Le 14/03/2018 à 08h35
Le 14/03/2018 à 08h38
Dis comme ça je comprends." />
(et je constate que nos critère de perception d’un langage diffèrent fortement, vive la diversité)
Le 14/03/2018 à 08h40
Le 14/03/2018 à 09h06
Le 14/03/2018 à 09h10
Le 14/03/2018 à 11h39
Corrige ta faute de frappe : french et pas fench.
Tu peux expliquer pourquoi c’est plus agréable à regarder sur github ?
Perso, je préfère lire ça sur ma machine avec les outils qui y sont (grep et autres, vi, less, …)
Le 14/03/2018 à 11h40
Le 14/03/2018 à 11h42
Je n’ai pas la coloration syntaxique quand j”ai ouverts les fichiers vite fait. Github semble l’avoir.
Mais autrement, le but est de collaborer, et c’est pas en gardant un zip que tu décortiques ce code.
Le 14/03/2018 à 11h49
Un zip, ça se dézippe !
Tu rigoles pour la coloration syntaxique sur Github pour ces fichiers ? Il sont trop gros : “(Sorry about that, but we can’t show files that are this big right now.)”
Tu crois que juste les mettre sur github, ça permet de collaborer ? Une collaboration, ça s’organise un peu. Je sais, je suis de la vieille école.
Le 14/03/2018 à 11h54
Effectivement j’avais ouvert un petit fichier. Le reste est beaucoup trop gros.
Sur github tu peux démarrer un Wiki, ouvrir des issues, et même faire des pull requests.
Oui ça s’organise, mais faut bien commencer quelque part.
Le 14/03/2018 à 12h05
Le 14/03/2018 à 12h19
J’ai un peu de mal à conceptualiser l’état de pensée dans lequel on peut être pour se dire qu’un fichier de 22k lignes c’est une bonne idée. C’est des fichier après concaténation ?
Dans un autre ordre d’idée, j’ai du mal à comprendre comment quoi que ce soit peut nécessiter autant de lignes, y’a le code source d’Ariane 5 et la formule de synthèse de la vaseline avec ? " />
Edit : Enfin j’veux dire, comment on peut parler de code « source » si on file du compilé. C’est niveau foutage de gueule, quand même.
Le 14/03/2018 à 12h33
Le 14/03/2018 à 12h43
Ce n’est pas du compilé mais du code généré automatiquement.
Bref, c’est du code intermédiaire en partie. Je n’ai pas ouvert tous les fichiers, mais à lire les commentaires ici, il y a aussi du code écrit directement par des humains.
Le 14/03/2018 à 12h43
Pourquoi du cobol ? C’est un projet qui date des années 90, et le cobol reste très performant pour traiter des milliers/millions de transactions, sans compter le coût d’une réécriture complète aujourd’hui. Ca n’a jamais été prévu pour être lancé depuis un PC mais sur un mainframe. Mais rassures toi, les techniciens prestations travaillent avec une surcouche Java, l’IHM sur laquelle ils font leurs liquidations n’est plus de la ligne de commande et des écrans type Dos depuis plusieurs années :)
Il ne s’agit pas de code compilé mais de code source avec les sources générées d’une part (pour les données notamment) et le code rédigé dans un même fichier. Comme dit plus haut, vous auriez préféré avoir des centaines de fichiers et devoir refaire l’agrégation à la mano ?
Enfin, le calcul des prestations ce n’est pas une suite d’addition soustraction, il y a des conditions d’ouverture de droit, puis les montants à calculer. Enfin, les prestations évoluent régulièrement, d’où la nécessité d’avoir plusieurs calculs en fonction de la période (car il y a le calcul rétroactif), ce qui multiplie les cas, et donc les lignes.
Le 14/03/2018 à 12h47
Le 14/03/2018 à 12h50
On est d’accord.
Le 14/03/2018 à 12h50
Pour ma part je trouves les fichiers super bien organisé pour du COBOL. Assez facile à comprendre dans une certaine mesure.
En passant je suis dans la trentaine et du COBOL j’en ai beaucoup fait dans les années 90 (96 à 2002 ) puis un peu à Polytechnique, donc je comprends pas tout ce brouhaha. J’ai lu par intérêt mais n’étant pas français je vois pas l’utilité de pousser plus loin. Mais des experts en COBOL trouveront aisément comment naviguer dessus rien à dire.
Maintenant l’utilité du truc … je dirais c’est un bon début pour ne pas se faire avoir qui sait!?
Le 14/03/2018 à 13h14
Le 14/03/2018 à 13h15
Le 14/03/2018 à 13h28
Le 15/03/2018 à 07h29
A l’évidence c’est du CICS
Donc surement du CICS pour AS/400 (si c’est bien du as400 car à une époque ils avaient encore un OS390 sous VM si je me souviens bien )
https://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=DD&subtype=SM&am…
Le 15/03/2018 à 07h59
Pour ce que tu nommes tronc commun entre les systèmes si je schématise (en gros) :
Avant il y avait 4 plateformes hardware sur 4 architectures pour les serveurs
le z ( qui pouvait faire tourner du MVS( os390 z/OS) du VM et du DOS/vse et du Linux) qu’on apelle le mainframe
l’AS400 pour l’OS400
l’AIX ( Unix IBM)
et enfin x86 et AMD64 pour du linux et du windows
Il y a pas trop longtemps ils ont changé cela en 4 gammes ( Z,I,P,X series ) sur 2 architectures HW
le Z pour les mêmes OS et toujours du CISC mais avec plus de fonctionalités de vitesses et de taille( par exemple 96 moteurs à 5ghz !!!)
le I series architecture RISC ( les as400)
le Pseries ( architecture RISC ) les POWER series AIX
les X series ( X86/AMD64) avec des Intel ou autres
Aujourd’hui les X series ont été vendus à Lenovo donc yapu!
Les I et P series utilisent le même HW et c’est le microcode qui est différent
Les Z sont toujours la
Par contre il y a toujours eu plein de partage de software commun comme CICS , DB2 etc… ce qui fait qu’un écran CICS d’AS400 peut être exactement pareil que celui d’un MVS.
Le 15/03/2018 à 09h25
bien résumé,merci ! " />
Le 15/03/2018 à 10h13
Le 15/03/2018 à 11h10
Quelques perles dans les commentaires du code source :
“Ras le bol de ce truc qui ne fonctionne pas !!! ”
“7 (juillet) en dur - bofbof - zone lt-juillet-truc existe”
“DONC C’est le meme truc, donnee A CREER par l’equipe DATA”
“GRANDE QUESTION : QU’EST-CE QUE C’EST CE TRUC ? ”
“Comme je ne comprends pas tout à ce DATMIN je limite les risques en ne prenant ZDTDEB que si DATMIN < ZDTDEB DATMIN mis à ZDTDEB pour éviter que lecture ramène des occ antérieures à ZDTDEB (c.à.d. dd et df < zdtdeb)”
“N’IMPORTE QUOI, CE PARAGRAPHE. ”
“VOTRE MISSION, SI VOUS L’ACCEPTEZ : TROUVER UNE DEMANDE D’AJ1 POUR MONSIEUR, ANTERIEURE OU EGALE AU 31/MT.”
“LA DEMANDE EXISTE ! WHAT A WONDERFUL WORLD !”
“what is it (x 3) et (x 4) ? Devine - bofbof”
Le 15/03/2018 à 12h17
Merci, c’est plus clair vu comme ça qu’avec la vision “terrain” un peu plus éloignée " />
Le 15/03/2018 à 13h03
La gestion des variables était là pour montrer mon propos comme quoi pour arrivé à C, il a fallut réunir et théoriser les pratiques du métier. Comme tu le dit toi même, ce sont justement des pratiques en Assembleur, mais c’était fait à la main (et c’est chiant à en mourir) où sinon il fallait passer par des outils annexes. C’est une couche d’abstraction.
Parmi les autres couches d’abstractions, on à par exemple la séparation du code source en 2 fichiers, les fichiers contenant le code lui même (fichier sources .c) et les fichier servant plutôt à synthétiser les outils qu’offre ce code (headers .h).
La question n’est pas tant de dire que c’est impossible en assembleur car normalement, tout ce qui est possible à faire sur un langage exécutable sur un PC est possible à faire en assembleur. C’est à quel niveau d’abstraction ont est.
Là où Cobol laisse paraître un usage assez direct d’une machine de Von Neumann, C fait usage de concepts plus haut niveau.
Après, ça peut poser des problèmes. Il faut voir par exemple la bidouille que Carmarck à du faire pour écrire sa fameuse mise en œuvre de la fonction de racine carrée inverse rapide et tout les cast pour faire un calcule logique sur la représentation en bit d’un entier à virgule flottante (c’est crade et je ne suis même pas sûr que ce soit légal).
Le 15/03/2018 à 13h21
Mais le pire est que des fonctions identiques sont générées dans le de multiples sources : recherchez “Definit si un jour est ferie” avec NOTEPAD++ dans le dossier BATCH ou TP et vous allez voir que le même code est dupliqué dans pas mal de sources. Un sous-programme aurait été plus intelligent… Je ne sais combien coûte la maintenance de ce logiciel ,mais ça doit être très cher. C’est un sous programme.
Parfois, il vaut mieux se taire et passer pour un con plutôt que de parler et de ne laisser aucun doute sur le sujet.
P. Desproges.
Du coup, le petit commentaire sur le coût de la maintenance me semble un peu superflu.
Le 15/03/2018 à 13h52
tu cherches trop loin, c’est moins compliqué
en cobol, les variables sont globales au programme, la notion de sous programme dans un programme cobol n’existe pas comme en C ou Pascal par exemple
un sous programme est un programme indépendant appelé par un CALL augmentée si besoin d’une zone de communication
si on n’ajoute pas la directive de compilation adéquate, le programme appelé récursivement occupe le même espace mémoire, on retrouve donc la valorisation des variables telles quelles étaient lors du dernier appel
si par contre la directive est indiquée, chaque appel fera monter le programme dans un espace mémoire différent, avec une valorisation des variables différente (ou à leur valeur par défaut)
le découpage est juste différent (1 pgm pour chaque fonction en cobol, 1 seul source avec toutes les fonctions pour le C)
le cobol se veut être un langage au plus prêt de la langue parlée, limite pseudo code (MOVE this TO that, ADD number TO this, SUBSTRACT number FROM this GIVING that)
d’ailleurs on retrouve pour marquer une fin d’instruction le point, la précision du niveau d’une variable dans un ensemble, des booléens multiples (niveau 88)
Après, le cobol permet de manipuler les variables à la sauce pointeur comme par exemple le REDEFINE
exemple : tu as une chaine de caractères A de 8 de long
tu peux définir une variable B qui redéfini la variable A et étant un ensemble de trois variables :
C de 4 de long,
D de 2 de long
E de 2 de long
si tu met 20180315 dans A, B=20180315=C||D||E=2018||03||15 (B pointe sur la même adresse mémoire que
A)
C=2018
D=03
E=15
certains concepts concernant la déclaration/manipulation de variables ne se retrouvent pas ailleurs de manière aussi transparente (voire pas du tout)
le cobol est un langage objet comme les autres finalement (on pourrait parler des structures tableaux OCCURS aussi) et est très largement sous estimé et méconnu
Le 15/03/2018 à 14h00
" />
faut voir certain pgm en assembleur des années 70 … je me suis cassé les dents plusieurs fois sur du code supposé mort mais en fait, en dynamique lors de l’exécution, une instruction neutre (NOP) étaient transformée en JUMP vers ce code mort directement en mémoire programme par une autre instruction ….
Et bien sûr, pas de commentaires, pas de doc, rien
modifier le code machine directement pendant l’execution, c’est plutot plus permis ca
Des vicieux je vous dit " />
Le 15/03/2018 à 14h05
un EXPAND de COPY lors de la précompilation pour etre chieur " />
après la connerie c’est surtout de ne pas se renseigner avant ou alors faut tourner la phrase en interrogation " />
Le 15/03/2018 à 14h12
C’est pas bien de mettre un 47F0 xxxx dans du code en train de tourner pour éviter un recyclage d’espace adresse ou un IPL.
Mais bon à la guerre comme à la guerre. Hein ?
Et c’est pour ça que j’étais très bien payé " />
Le 15/03/2018 à 14h14
Yep je ne connais pas le cobol mais ce dont il parle c’est comme l’option de compile pour exploser les macro en assembleur dans le listing
Enfin c’est à ça que je pensais
Le 15/03/2018 à 14h18
oui tout à fait " />
Le 15/03/2018 à 14h20
ouais et bien ca nous a donné des sueurs froides (surtout quand on a modifié le code après le NOP et que ça se bananait aléatoirement) " />
heureusement que l’on avait EXPEDITER (outil de débogage pour les non initiés) sinon on y serait encore
Le 15/03/2018 à 14h28
J’ai récupéré des vieux bouquins pour lesquels la façon standard de faire une boucle, c’est de remplacer le saut inconditionnel de bas de boucle par un nop une fois que la condition de sortie est atteinte " />
Le 15/03/2018 à 14h36
Red, parfois orthographié RED, abréviation anglaise de «Retired and Extremely Dangerous »
Wikipedia
" />
Le 15/03/2018 à 16h25
Ce genre de techniques est encore utilisé de nos jours pour tout ce qui est protection logiciel, comme par exemple pour les DRMs.
Le 15/03/2018 à 19h49
Avec ce soft pour visual studio, on peut de ce que j’avais entendu, importer des fichier COBOL.
Pendant l’import il va scanner et trouver si il y a des programmes et des copybooks.
https://www.microfocus.com/fr-fr/products/visual-cobol/
Le 15/03/2018 à 20h39
Pour ceux qui veulent en apprendre un peu plus sur l’infrastructure mise en place pour faire tourner tout ça :
http://www.lemagit.fr/etude/La-CNAF-va-enfin-eteindre-ses-mainframes-Bull-et-IBM
Le 15/03/2018 à 20h53
Merci, super intéressant comme article.
Le 16/03/2018 à 11h14
Merci !
la double solution IBM/BULL … quand l’état français imposait Bull dans les années 70⁄80 …
mais bull n’a jamais réussi à dépasser le maitre " />
Le 16/03/2018 à 11h15
intéressant !
Merci !
Le 16/03/2018 à 15h21
Je viens de demander les éléments suivants à la CNAF, si ça pouvait améliorer la compréhension de leur “code source” :
-Les fichiers SQL fonctionnant avec ce code source
-Les spécifications fonctionnelles relatives aux APL
-Les spécifications fonctionnelles relatives au RSA
-Les spécifications fonctionnelles relatives aux allocations familiales
-Les spécifications fonctionnelles relatives à la prime d’activité
Le 17/03/2018 à 10h53
Le 17/03/2018 à 16h19
vieux dicton cynique
A computer without COBOL and Fortran is like a piece of chocolate cake without ketchup and mustard
" />
Le 17/03/2018 à 19h19
Ah cool merci pour le nom du type d’interface.
Pour connaître très bien une administration du même genre dans un autre, ils étaient aussi en cobol pour leur programme avec une interface de ce genre.
Le programme avait 33 ans.
Ils ont tout recodé en java (pas que l’IHM) la totalité du programme. Chantier énorme mais c’était un paris sur l’avenir vu la difficulté qu’ils avaient a recruter des mecs connaissant le cobol
Le 19/03/2018 à 06h16
Remarque : La taille du ZIP à télécharger n’est pas indiquée.
Le 19/03/2018 à 09h13
Et pourquoi pas le mettre sur github ou framagit ? Pas forcement par NextInpact mais directement par les services d’états concernés…
Le 19/03/2018 à 09h32
Très intéressant, merci " />
Le 13/03/2018 à 14h01
Nxi chieur de l’administration publique pour le droit citoyen " /> bientôt un cabinet d’avocats NXI ?
Attention à ne pas perdre le CD, pensez à faire une copie sur DVD assujetti par la copie privée
Le 13/03/2018 à 14h03
C’est une bonne chose, mais ça risque d’être difficilement exploitable en l’état. Sur github, ça ferait venir les cobolistes de service, vous pensez ? J’ai cru comprendre qu’ils se faisaient rares ce siècle-ci…
Le 13/03/2018 à 14h04
hé bé… bon courage pour en sortir qqch d’exploitable…
Sans les docs de conception, les dictionnaires de données et les modèles de données, ça va être chaud d’en tirer quoi que ce soit.
Le 13/03/2018 à 14h05
Il aurait fallu en graver quelques uns aussi pour la postérité…
Le 13/03/2018 à 14h10
Next impact devrai le diffuser sur son github !
Le 13/03/2018 à 14h11
Le 13/03/2018 à 15h33
Le 13/03/2018 à 15h42
Hum, en rendant public le code source avec le nom des dev en clair, ce n’est pas une entorse à la future GDPR?
Le 13/03/2018 à 15h46
ha ok, merci de la précision.
Le 13/03/2018 à 15h53
Le 13/03/2018 à 15h57
Ah, voilà une opération particulièrement utile et salvatrice.
Merci NXI d’avoir sur occuper les services informatiques de l’état à une tache aussi constructive !
Y’a pas à dire, les citoyens sont ravis d’avoir ces magnifiques fichiers source Cobol (générés) dont on sent qu’il vont souvent servir. Des impôts bien dépensés.
Le 13/03/2018 à 15h58
Et en plus on apprend que Stéphanie de Monaco a des talents cachés ! " />
Le 13/03/2018 à 16h03
Le 13/03/2018 à 16h04
ça va, elle n’a touché que 2 fichiers, elle a du coder pendant un gala un peu trop ennuyeux :)
Le 13/03/2018 à 16h05
Le 13/03/2018 à 16h08
Les specs sont publiques…
Le 13/03/2018 à 16h09
Je vais continuer dans la taquinerie : les cas de test d’homologation métier suffiront. Ils sont bien renseignés dans un outil facilement lisible ?
Le 13/03/2018 à 16h11
Le 13/03/2018 à 16h15
roooh c’est méchant ça. " />
Le 13/03/2018 à 16h26
Coup de bol il a été fourni sur un CD, et non pas en feuillets A4.
sinon il est arrivé la même chose à notre secrétaire d’état
Le 13/03/2018 à 16h54
Je suis assez surpris par les réactions.
parce que vous ne comprenez pas un langage c’est de la merde ?
Bon je sais que vous allez flinguer
Si vous demandez le source du calcul de la retraite complémentaire et des cadres à l’Agirc et à l’arcco vous attendez à ce que ceux qui vous envoient le source oublient qu’il est écrit en cobol et vous le réécrivent en C ou en perl pour que vous puissiez le lire ?
" />
Le 13/03/2018 à 17h01
Je ne comprends pas comment le cobol peut faire penser à l’assembleur.
Si quelqu’un pouvait m’expliquer
Le 13/03/2018 à 18h49
Le 13/03/2018 à 19h01
Merci pour ton jugement mesuré.
Ce n’est pas une mise en demeure, je les fais généralement par lettre recommandée avec avis de réception.
Je maintiens que cette demande de code source ne servira à rien. Ce n’est pas parce qu’on a le droit de faire quelque chose que l’on est obligé de le faire.
Je sais que ce genre de demandes et d’articles font la joie de nombreux lecteurs de NXI, mais laisse moi le droit à la différence et le droit de m’exprimer sans être jugé par un fan qui a perdu son esprit critique.
J’aimais bien Xavier et ses articles quand il est arrivé, mais je trouve qu’il use maintenant trop souvent d’artifices du genre CADA pour faire plaisir aux lecteurs sans que ça apporte grand chose au niveau de l’Information avec un grand I qu’il apporte.
Je n’ai rien lu dans cet article sur ce qu’il compte faire de ces sources, j’essaie donc de savoir. Au moins, l’article de Marc sur la réforme de la justice disponible en téléchargement nous indique qu’il reviendra sur son contenu pour ce qui concerne le numérique, mais ici, rien, le vide le plus complet.
Le 13/03/2018 à 19h10
Ne pas oublier l’âge du COBOL créé pour les cartes perforées, donc, oui, il y a un un aspect vieillot avec un formatage des lignes de 80 caractères très codifié avec un rôle pour les colonnes bien défini.
Le 13/03/2018 à 19h57
Le 13/03/2018 à 20h24
Le 13/03/2018 à 20h24
personne n’a fait de dépôt github pour qu’on puisse naviguer dans le code plus facilement qu’en téléchargeant une archive de 500Mo a 30ko/s? (oui, le CDN à l’air sur les genoux au moment ou j’écrit ce comm " />)
Le 13/03/2018 à 20h25
Le 13/03/2018 à 20h30
Bossant à la DSI de la cnaf, vous me faites beaucoup rire dans les commentaires, merci " />
Le 13/03/2018 à 20h37
Et je confirme, c’est bien le code en production. Il ya effectivement du code généré à partir de l’outil install /1 (pour la description des données) , des instructions liées au passage à une filière unique sous machines Linux avec un compilateur visual cobol et un moteur d’exécution libertp/liberbatch… Et le code est ancien, le projet cristal a débuté dans les années 90, mais il évolue tous les jours et il a encore de beaux jours devant lui.
Le 13/03/2018 à 20h49
Rhoo le niveau de certainsc ommentaires, je suis déçu. " />
Le 13/03/2018 à 20h56
Le 13/03/2018 à 21h04
Le 13/03/2018 à 21h12
Tu peux expliquer pourquoi ?
Que l’on puisse rire aussi !
Le 13/03/2018 à 21h55
Le 13/03/2018 à 22h02
Je ne comprends toujours pas la position et le questionnement. Vas-tu poster ces remarques sur chacune des news qui ne t’intéressent pas ?
Tu peux les éviter et ne pas aller dessus.
Le 13/03/2018 à 22h19
Si le code obtenu n’est pas le code de travail, pourquoi n’a-t-il pas été transmis par exemple. Si l’auteur n’a eu que ca, devait-il le garder pour lui-même menant cette procédure à rien ? Il n’y a aucune raison à la rétention d’information de sa part.
Ils peuvent bien évidemment te répondre ou non, mais l’absence de la preuve n’est pas la preuve de l’absence.
Le 14/03/2018 à 09h21
On en trouve des rigolotes dans les commentaires de “CGS101” :
LK100-DPTREF contient la plus récente des deux dates :
DD validité prestation ou DD validité règle (CNVB ou CNVD)
LK100-DPERRF contient la plus ancienne des deux dates :
DF validité prestation ou DF validité règle (CNVB ou CNVD)
10)Si la DD de validité de la prestation est postérieure au MT
soustraction d’un mois à DD canevas D (validité règle)
… à quoi ça sert ?
20)Modification pour éviter appel à CMM010 pour calculer
le mois précédant une date très grande (9999/12/31), le
calcul n’ayant pas d’intéret, et de plus provoque un rejet
dans la nouvelle version de CMM010.
-ACx-
*
Ce paragraphe est appelé pour calculer deux dates LK100-DPERRF
& LK100-DPERRF, qui ne semblent pas utilisées par la suite :
aucune utilisation dans les services appelés par le CGM101.
analyse sur les niveaux de définition inférieurs/supérieurs
les REEFINES,… A creuser !!!???
*
Le 14/03/2018 à 09h43
Faith & fred42 sont des trolls qu’il est préférable d’ignorer.
Le 14/03/2018 à 09h51
Eh ben ça se bastonne sec pour pas grand-chose ici …
On résume : on a un article succinct qui ne ment pas sur son contenu ni son but “on a demandé le code source à la CNAF, ils nous les ont donnés, les voilà”.
De l’autre côté, un paquet de monde qui fusille l’auteur parce qu’il n’explique pas précisément à quoi sert chaque ligne du fichier …
C’est écrit en toutes lettres dans l’article
Libre maintenant à la société civile de s’emparer de ces données publiques, pour de nouvelles simulations de droits, d’éventuelles vérifications entre modalités de calcul et réglementation en vigueur, etc. N’hésitez d’ailleurs pas à revenir vers nous si vous dénichiez des éléments intéressants au milieu de ces millions de ligne de code…
Du coup je comprend vraiment pas les arguments de certains, mise à part peut-être l’envie de se la raconter “moi je programmais déjà en 1960” ou de faire chier gratuitement …
Le 14/03/2018 à 10h09
Comme certain ici, la seule mise à disposition du code me laisse un peu sur ma faim. Ma réaction était plutôt “soit… et du coup ?”. Ici, le boulot s’arrête à la mise à disposition du code. Il n’y a pas de création de groupe de travail dessus. Un audit du code aurait été intéressant.
Le 14/03/2018 à 10h19
" />
excellent résumé
Le 14/03/2018 à 10h20
Le 14/03/2018 à 10h29
Le 14/03/2018 à 10h32
Si je voulais pinailler, je pourrais dire qu’il existe des assembleurs sans instructions CALL.
Mais en fait il ne faut pas s’arrêter sur la syntaxe.
Pour la récursion par contre je ne sais pas, mais je ne serais pas étonné qu’elle ne soit pas possible
(et même interdite explicitement, comme en Fortran).
Le 14/03/2018 à 10h43
Le 14/03/2018 à 10h44
Sur le principe : qui peut le plus peut le moins … Avoir
le code source c’est donc bien, merci NextInpact !
(Maintenant, il manque quand même les JCL)
Techniquement, le code est propre (pour du cobol), lisible, assez documenté …
Assez standard en somme.
Je préfère avoir les copy intégrées plutôt que d’avoir les xxx fichiers à
part, c’est plus simple pour l’analyse.
les noms de variables sont lisibles (faut avoir l’habitude des abréviations)
Pour ceux qui critique la technologie employée, le coté abscons etc ..
simplement, le cobol était (et reste) ce qu’il y avait de mieux pour ce genre
de traitement de masse à l’époque de l’informatisation de la CAF/CPAM/CNAV
etc…
C’est aussi le langage qui se rapproche le plus du langage naturel Anglo-saxon
(l’anglais quoi)
On est ici sur des traitements sensibles et complexes, avec des couts de mise
en place énormes.
le changement de technologie tous les quatre matins n’est pas envisageable.
J’ai travaillé sur du cobol (sur mainframe ou sur unix/linux, sous pacbase ou
“à la main”), de l’assembleur IBM pour les banques, mutuelles et la
cnav entre autre et je fais aussi du java et du sql (oracle, postgres) et de loin
le cobol reste le plus accessible/simple (vis à vis du java entre autre …. J’exècre
le java )
(j’ai souvenir sur un projet de migration d’avoir saturé le compilateur IBM
tellement que les programmes étaient énormes … et on était que 4 à travailler
dessus sans problèmes particuliers)
Bref en une journée, on pourrait en tirer pas mal d’informations
(Sauf que mon temps coute (très) cher " /> … et oui les cobolistes se font
rares ! )
Le 14/03/2018 à 10h54
Le 14/03/2018 à 10h58
la force du cobol c’est que tu peux tout mettre dans des copy (une sorte d’include du C)
du coups la fonction/procédure “Calcul si jour férie” est certainement dans une copy
la copy est utilisée XX fois et à la prégénération du source final, la référence à la copy dans le programme est remplacé par le contenu de la copy
regarde bien les commentaires avant ce bout de code, et tu trouveras certainement ce genre de lignes à chaque fois :
* COPY CGBCALAK.
*COPY”/distrib/appli/cristal/05200/ref/cobol/copy/CGBCALAK.CPY”
tu peux faire du vicieux : des copy utilisant des copy utilisant des copy qui s’appuient sur des variables des programmes
Le 14/03/2018 à 11h06
Désolé mais c’est le code source quand même
la pré-génération est passée par là mais comme elle se limite au remplacement des copy, fonctions internes etc
il n’y a pas de bidouillages du fonctionnel
Juste du technique
Avoir le design des bases derrières, oui c’est mieux mais pas bloquant
déchiffrer les nom de variables, examiner les commentaires et le contexte peut contourner le problème d’absence de base (c’est sûr, ca demande du temps et de se plonger dans la philosophie des vieux cobolistes " /> )
Le 14/03/2018 à 11h15
Hello,
J’ai pushé sur un repo Github, c’est quand même plus agréable à regarder, même si ça reste horrible.
GitHubBisous.
Le 14/03/2018 à 11h20
Le cobol est beaucoup plus évolué que tu ne le pense … ce n’est pas de l’assembleur
(regarde les variables occursées (OCCURS) avec index par exemple ou la notion de REDEFINES)
le CALL permet d’appeler des sous programmes (écrit en cobol ou assembleur ou C etc)
une section (ou paragraphe) dans un pgm cobol ne peut pas s’appeler elle même
un pgm cobol peut être récursif (s’appeler lui même) si les directive de compilation en début de source sont bien positionnées
faut juste faire attention aux zones de communications entre les call
Le 14/03/2018 à 11h22
Merci !
pas plus horrible que du java …
ouvre sous notepad++, la coloration syntaxique facilitera la lecture ;)
Le 14/03/2018 à 13h42
Le 14/03/2018 à 14h19
Le code indique que c’est exécuté sur du linux hein…
Le 14/03/2018 à 14h21
l’IHM avec des écrans type CICS a existé en effet, mais elle a été abandonnée il y a plusieurs années, aujourd’hui il y a un front Java EE. Il n’y a plus d’IHM générée.
Le 14/03/2018 à 14h30
Le 14/03/2018 à 14h33
Le 14/03/2018 à 14h38
Le 14/03/2018 à 14h38
pour le batch, pas possible en effet, on a pas les JCL ni la base de données derrière
pour le TP, ca serait possible de se passer de l’ihm bidouillant un programme appelant
mais pareil que pour le batch, on a pas la base de données
Le 14/03/2018 à 14h42
Le 14/03/2018 à 14h45
bah, on va dire que j’essaye de motiver les troupes pour basculer vers cette charmante techno " />
c’est une sorte de récompense)
je suis pas expert car il y a quelque aspect que je ne maitrise pas parfaitement (coté CICS)
mais c’est clair que le cobol n’a pas la cote … (limite c’est une punition) mais sur le lot, on en trouve toujours qui finalement ne trouve pas ca si désagréable que ca
Et je parle même pas pour en trouver qui veulent toucher à de l’assembleur " />
Le 14/03/2018 à 15h18
J’ai trouvé sa en cherchant dans le fichier “Code source CNAF/Batch/CGM110.COB” :
pmonboussin 26 10 2005 CGLKPIMO
Le 14/03/2018 à 15h21
Globalement le code est commentée on a juste l’impression qu’il ont rassemblée plusieurs fichier dans un seul fichier.
Le 14/03/2018 à 16h15
ça fait 20 ans qu’on fait tourner de l’Unix et du Linux sur Z
" />
Le 14/03/2018 à 16h17
Le JCL pour les batchs … pas pour le transactionnel ( on a les 2 ici)
Le 14/03/2018 à 16h49
Le 14/03/2018 à 17h06
Quand on traine chez Darty ou à la Fnac …. les écrans des vendeurs qui recherchent un article …
ça ressemble étrangement non ?
" />
Le 14/03/2018 à 17h12
Le 14/03/2018 à 17h38
L’AS400 a la peau dure…
Les projets sur lesquels je travaille consistent majoritairement à supprimer les AS400 au profit de progiciels du marché plus jolis et faciles à maintenir, souvent sur de l’interface Web. Alors oui, l’utilisateur est content d’avoir pas mal de nouvelles fonctionnalités et tout et tout… Mais souvent il regrette la réactivité de l’interface.
Quand le vendeur a l’habitude de taper 5 champs à l’avance et que l’engin absorbe tout en quelques secondes et qu’on lui donne ensuite une IHM Web où il faut cliquer des trucs, attendre que la roulette mouline, etc, forcément y’a un petit pincement au coeur.
Bref, pendant que t’as un AS400 en prod depuis 20 ans, il y aura eu 15 technos qui sont nées et ont sombré dans l’oubli entre deux. Ce truc nous enterrera tous. " />
M’enfin encore dans le retail c’est moins compliqué à remplacer. Par contre dans le financier avec des règles du jeu qui changent tous les 4 matins (contextes législatifs) et recettes métiers qui interdisent l’erreur… C’est pas pareil.
Migrer un magasin et corriger deux/trois conneries (recadrer des mouvements de stock, rattraper un CA, etc) pendant une semaine y’a pas mort d’homme… Jouer avec des comptes en banque ou des prestations sociales, c’est pas vraiment le même impact.
Le 14/03/2018 à 17h51
Je n’ai jamais travaillé avec de l’AS400, uniquement du Mainframe ( du Z )
Mais comme je paramétrais mes mainframe pour que 80% des transactions se fassent en moins d’une seconde avec quelques milliers d’écrans en ligne ,et les 20% restant en moins de 2 secondes
j’avoue que parfois il y a lieu de se poser des questions sur le “progrès”
Mais bon il faut vivre avec son temps
" />
Le 14/03/2018 à 18h52
A peu près aussi lisible qu’un automate de trading
Le 14/03/2018 à 18h58
Personnellement si j’ai le choix je choisit l’assembleur y a pas photo.
Le 14/03/2018 à 19h12
Ça pourrait être du contenu d’une table “packée”. Mais là je suis beaucoup moins sûr de moi.
Le 14/03/2018 à 19h29
Le 14/03/2018 à 20h52
Alors ce code il est optimisé ou c’est dégueulasse ?
Le 14/03/2018 à 21h26
Je travaille sur ce logiciel depuis 15 ans, même si je suis pas si vieux, j’ai que la trentaine et j’ai écrit plus de 250k lignes de codes…
Et je lis pas mal de conneries, mais c’est normal, c’est un monde à part et que si on connait pas il est très difficile d’en tirer qqchose.
Ici on a qu’une partie très infime du code. On a que la partie qui fait le calcul final des prestations. Il manque toute la partie en amont, riche de plusieurs millions de lignes supplémentaires écrites manuellement. Cette partie permet de préparer les données, en générant des données intermédiaires, pour quelles puissent être consommée par la partie calcul de droit qui est exposée ici. Globalement on a une grosse vingtaine de service cobol fournies sur plus d’un millier existant sur le projet.
De plus, pour faire tourner tout ça il manque la base de donnée de plus de 500 tables, la couche d’accès au données, car oui même en cobol, la couche de donnée (ou se trouve les ordres SQL) est séparée de la couche de traitement exposée ici, elle même séparée de la couche de présentation en JEE.
Donc déjà à ceux qui trouvent qu’il y a beaucoup de lignes de codes dans les programmes, il faut voir que les programmes ici sont une sorte d’enveloppe composée de différentes copys, en vue de la compilation.
Les programmes contiennent des copies qui sont d’un coté des déclarations de variables qui permettent d’échanger des données avec des sous-procédures ou des programmes externes et peuvent être générées par l’AGL Design 1 décrit par bibiwan14, ou être décrites à la main. Et de l’autre coté des sous-procédures qui sont des sortes de librairies inclues dans le programme en vue d’être compilée et la partie applicative en elle même.
Pour un programme CGMM01.COB, tu as sa déclaration propre de variable faite dans la copy CGMM01W et sa partie applicative décrite dans le CGMM01A.
Par exemple dans les copy embarquées, il y a une sous-procédure qui permet de faire des calculs sur les dates qui se retrouvent dans beaucoup de programmes, un peu comme une classe date qui est inclus à la compile dans le package d’un projet objet.
Sinon pour le coup du D et Display, comme ça a été dis, le D, indique que l’instruction est exécutée en mode debug et le display indique juste que l’on va écrire dans la log ou rapport d’exécution selon si c’est du batch ou TP. Dans l’exemple cité, on restitue une valeur d’un des champs d’un fichier paramètre qui n’est pas à disposition…
Après, même si c’est récent, en interne le code tourne sur du linux, le code est sous git et le dév se fait sous éclipse. Donc pas si vieillot que ça. Et ces mêmes services COBOL arrivent à être exposée sous forme d’API REST/JSON au travers une couche JEE.
Maintenant pour toutes les personnes qui espèrent en faire qqchose, je vous souhaites beaucoup de courage, car vu la très faible portion de source, l’absence des spécification et la grande spécificité et difficulté fonctionnelle….
Déjà qu’on considère qu’il faut au moins 6 mois pour une personne arrivant sur ce projet pour commencer à comprendre ce qu’elle fait, sur son périmètre restreint….
Le 14/03/2018 à 21h37
Le 14/03/2018 à 22h05
Vivant c’est un bien grand mot. Je dirais plutot qu’il vivote aux endroits ou on arrive pas a s’en debarasser (par manque de moyens ou de volonte). Rien que niveau maintenance, c’est le caca. Va trouver un dev qui veut encore faire du Cobol aujourd’hui ^^
Le 14/03/2018 à 23h20
ça fait 25 ans qu’on entend ce genre de commentaire sur le cobol !
et pourtant certains projets pas encore complètement terminés représentent des centaines de milliers de jours homme et ont utilisé des centaines de dev cobol.
Quant au niveau maintenance ça tient la route depuis plusieurs dizaines d’années, car des projets de cette envergure ne sont pas lancé par des amateurs qui ne se seraient pas souciés de ce genre de problématique .
Le 15/03/2018 à 05h20
Le 15/03/2018 à 06h24
Dans l’exemple que tu citais avec Fnac et Darty ce sont des AS400 sauf si je me trompe, mais ça a vraiment la même gueule que ceux que j’ai vu chez d’autres enseignes en prestation " /> . Ayant eu l’occasion de voir aussi du MVS lors d’une mission, c’est assez ressemblant au niveau des interfaces. Après je n’ai que très peu mis les pattes en le cambouis sur ces engins-là, me contentant de quelques lignes de commande bien encadrées et écrites dans une proc pour éviter de faire des conneries " />
D’ailleurs, il me semble que l’AS400 partage une origine commune avec les Z ou hérite de plusieurs choses, tout en ayant de nos jours aussi un gros héritage Unix. J’ai souvenir d’un dev AS400 qui me disait qu’ils partagent un tronc commun avec AIX depuis quelques années.
Le 15/03/2018 à 06h26
Merci pour ces éclaircissements " />
Le 15/03/2018 à 07h24
Oui je pense honnêtement qu’ils ont ce qu’ils ont demandé, à savoir les sources des programmes calculant des montants de prestation.
Le 19/03/2018 à 10h48
Pour quoi faire ?