|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 12 ![]() |
Bonjour,
Je souhaite lire le code de macros compilées dans un catalogue sas. J'ai lu que la macro %copy pouvait peut etre me donner acces au code mais je n'arrive pas à l'utiliser. Merci de votre aide. |
|
|
00
|
|
|
#2 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
hello,
avec %copy , le code compilé est affiché dans la LOG. sinon il faut rajouté le outfile=; Exemple: Code :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 12 ![]() |
Merci pour ta réponse,
En effet la macro copy fonctionne pour récupérer une macro que je viens de compiler. Mais en fait mon problème est que j'ai récupéré un catalogue sas comprenant différentes macros et je voudrais accéder au code de ces macros. Or dans ce cas : %copy nom_de_la_macro / store source; ne me permet pas de visualiser le code. Existe-t-il une solution ? |
|
|
00
|
|
|
#4 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
bah,
il faut poster ton code pour voir ce que t'as mis de dans. l'appel de macro compilé ce fait comme ceci. 1- libname vers le repertoire où se trouve ton catalogue macro. 2- utiliser les options suivantes: mstored ,....comme ceci; si t'as un macro déjà compilée qui s'appel TEST. Code :
|
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 12 ![]() |
Je suis désolée mais j'ai vraiment du mal à comprendre.
1-j'ai fait le libname vers le répertoire contenant le catalogue de macro. Mon problème est que je n'ai jamais compilé ces macros puisque justement je ne connais leur code. Je peux acceder aux codes de macros que je n'ai jamais compilées ? |
|
|
00
|
|
|
#6 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
non , il faut compiler la macro avant de l'enregistrer.
|
|
|
00
|
|
|
#7 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
je rajoute,
Pour savoir s'il existent des macro compilées dans un répertoire donné tu peux faire ceci : (ici je teste : C:\temps\macro) Code :
|
||
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 12 ![]() |
D'accord, étant donné que j'ai récupéré ce catalogue de macro et que je ne l'ai pas créé, ces macros n'ont pas été compilées.
Je suppose qu'il n'est pas possible de récupérer dans ce cas le code. Merci. |
|
|
00
|
|
|
#9 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
as-tu essayé le code que je t'ai donné? ( le dernier)
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 12 ![]() |
Désolée de ne pas super bien comprendre mais à quoi correspond
dictionary.catalogs dans ton code ? |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 12 ![]() |
Ca me crée une table vide : j'abandonne ces macros resteront des macros fantomes sans codes !
Merci pour ton aide. |
|
|
00
|
|
|
#12 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
Bon, pour faire simple on va dire c'est des vues (tables) cachées ( il y a que sas qui les voie, puis on ne peux les utiliser que dans la proc SQL).
il y a l'équivalent de chaque vue dictionary dans la librerie Sashelp et pour les vues catalogue , tu trouves la mêmes chose dans "sashelp.vcatalg" Code :
|
||
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 12 ![]() |
Oups je m'étais trompé ça me crée une table avec la description des macro (date de création, de modif).
|
|
|
00
|
|
|
#14 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
bah oui c'est sa; tu trouves les noms de tes macro compilées dans la colonnes objname ajoutes
pour voir les noms de colonnes. |
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 12 ![]() |
dans cette colonne je vois le noms des macros auxquelles je veux acceder ainsi que la macro test que tu m'a donnée.
Lorsque je veux visualiser le code de la macro test il n'y a aucun problème par contre lorsque je veux faire la même opération avec les autres macro j'ai les messages d'erreur suivants qui s'afichent : L'option source n'a pas été spécifiée lorsque la macro Pat a été compilée |
|
|
00
|
|
|
#16 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
c'est ce que je disais , pour pouvoir réutilisé une macro déjà enregistrer dans un catalogue, il faut utiliser :
Code :
|
||
|
|
00
|
|
|
#17 |
|
Invité de passage
![]() Inscription : juin 2011 Messages : 12 ![]() |
Voici un lien ou tu trouves un catalogue de macro :
http://www.unige.ch/ses/sococ/eda/sas/welcome.html Je n'arrive toujours pas malgré toutes tes explications (encore merci) à voir le code de ces macros. |
|
|
00
|
|
|
#18 |
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Bonjour.
Un catalogue de macros ne contient que des programmes déjà compilés. L'opération de compilation crypte partiellement le code. Si la personne qui a créé le catalogue n'a pas ajouté d'option SOURCE aux macro-programmes, et visiblement le message de %COPY va dans ce sens, c'est raté : tu ne verras jamais le source des macro-programmes. C'est d'ailleurs un des "avantages" des catalogues de macros : on peut les diffuser sans se faire pirater son code source. Tu peux toujours essayer d'exécuter les macros avec qui traceront l'exécution du code macro. Mais il faudra reconstruire le code source toi-même. Bon courage. Olivier |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com