Domanda

Ho un'applicazione SAS che sto testando con il recente rilasciato SAS 9.2. Ho una chiamata alla funzione metadat_newobj per creare un nuovo oggetto Libreria nella repository di metadati SAS:

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

In 9.1.3, quando la funzione eseguita con successo (rc = 0), la variabile URI è stato popolato con l'URI dell'oggetto libreria appena creato.

In SAS 9.2, anche se il valore di ritorno è 0 (successo) e l'oggetto Biblioteca venga creato (ho controllato manualmente utilizzando la console di gestione), la variabile URI rimane vuoto in modo le successive operazioni per impostare gli attributi ecc fallire.

La documentazione per entrambe le versioni sono elencate URI come parametro di output di questa funzione.

Qualcuno ha qualche conoscenza di questo?

Modifica Il codice che usavo è la seguente:

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

e l'output:

libraryName=HRLIB10
libraryUri=

Sto cercando di ovviare a questo utilizzando PROC METADATA invece, che sembra funzionare. : \

Modifica # 2:. Ho appena realizzato che non ho detto che questo è nel codice SCL

È stato utile?

Soluzione 2

non ho trovato nulla che suggerisce metadata_newobj era cambiato nella nuova versione. Tuttavia, appena rifiutato di lavorare per me. Così mi sono convertito le mie funzioni da utilizzare PROC METADATA e ora lavora in SAS 9.1.3 e SAS 9.2

Grazie a tutti.

Altri suggerimenti

Ha funzionato per me. Sulla base l'esempio che ha dato io suggerirei di mettere le virgolette intorno al nome. Anche magari utilizzare una dichiarazione di lunghezza per impostare uri prima di eseguire metadata_newobj. In caso contrario, nell'interesse di condivisione, di farci sapere se si ottiene risolto con qualche altra tecnica.

Ecco quello che ho fatto funzionare:

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

Ecco il mio 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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top