Pregunta

Tengo una aplicación de SAS que estoy probando con el SAS recién estrenada 9.2. Tengo una llamada a la función metadat_newobj para crear un nuevo objeto de biblioteca en el repositorio de metadatos SAS:

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

En 9.1.3, cuando la función ejecutada con éxito (rc = 0), la variable URI se rellena con el URI del objeto Biblioteca recién creado.

En SAS 9.2, aunque el valor de retorno es 0 (éxito) y el objeto Biblioteca no se crean (he comprobado manualmente utilizando la consola de administración), la variable URI se queda en blanco para que cualquier otra operación posterior para establecer los atributos etc fallar.

La documentación para ambas versiones listas de URI como un parámetro de salida de esta función.

¿Alguien tiene algún conocimiento de esto?

EDIT: El código que estaba usando es el siguiente:

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

y la salida:

libraryName=HRLIB10
libraryUri=

Estoy tratando de evitar esto usando PROC METADATA lugar, que parece estar funcionando. : \

editar # 2:. Me he dado cuenta de que no he mencionado que se trata del código SCL

¿Fue útil?

Solución 2

no he encontrado nada que sugiera metadata_newobj habían cambiado en la nueva versión. Sin embargo, sólo se negó a trabajar para mí. Así que me convertí mis funciones para utilizar PROC METADATA y ahora funciona en el SAS 9.1.3 y SAS 9.2

Gracias a todos.

Otros consejos

Se trabajó para mí. Basado en el ejemplo que diste yo sugeriría poner comillas alrededor NOMBRE. También puede que utilice una instrucción longitud para uri configuración antes de ejecutar metadata_newobj. De lo contrario, en el interés de compartir, háganos saber si usted lo consigue resolver con alguna otra técnica.

Esto es lo que encontré:

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

Aquí está mi registro:

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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top