Question

J'ai une application SAS que je teste avec le SAS 9.2 nouvelle version. J'ai un appel à la fonction de metadat_newobj pour créer un nouvel objet dans la bibliothèque du référentiel de métadonnées SAS:

rc = metadata_newobj( "SASLibrary", URI, Name );

Dans 9.1.3, lorsque la fonction exécutée avec succès (rc = 0), la variable URI a été rempli avec l'URI du nouvel objet bibliothèque.

SAS 9.2, bien que la valeur de retour est 0 (succès) et l'objet bibliothèque ne soit créé (j'ai vérifié manuellement à l'aide de la console de gestion), la variable URI reste vierge pour que toutes les opérations suivantes pour définir les attributs etc échec.

La documentation URI liste pour les deux versions en tant que paramètre de sortie de cette fonction.

Quelqu'un at-il connaissance de cette situation?

EDIT: Le code que j'utilisais est la suivante:

put libraryName=;
rc = metadata_newobj("SASLibrary", libraryUri, libraryName);
if rc ne 0 then do;
  /* Error handler */
  return;
end;
put libraryUri=;

et la sortie:

libraryName=HRLIB10
libraryUri=

Je suis en train de travailler autour de cela en utilisant PROC METADATA à la place, ce qui semble fonctionner. : \

EDIT # 2:. Je viens de réaliser que je ne l'ai pas mentionné que c'est dans le code SCL

Était-ce utile?

La solution 2

Je ne trouve rien qui suggère metadata_newobj avait changé dans la nouvelle version. Cependant, il vient de refuser de travailler pour moi. Donc, je me suis converti mes fonctions à utiliser PROC METADATA et maintenant il fonctionne dans SAS 9.1.3 et SAS 9.2

Merci à tous.

Autres conseils

Il a travaillé pour moi. Sur la base de l'exemple que vous avez donné, je vous suggère de mettre des guillemets autour de NOM. peut-être utiliser une instruction de longueur pour la configuration uri avant d'exécuter metadata_newobj. Dans le cas contraire, dans l'intérêt du partage, laissez-nous savoir si vous avez résolu avec une autre technique.

Voici ce que je courais:

data _null_;
    length uri $256;
    rc=0;
    rc=metadata_newobj("SASLibrary",
                       uri,
                       "testlib");
    put uri=;
run;

Voici mon journal:

NOTE: Variable uri is uninitialized.
uri=OMSOBJ:SASLibrary\A5M6IOB0.AZ000007
NOTE: DATA statement used (Total process time):
      real time           0.07 seconds
      cpu time            0.01 seconds
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top