• Non ci sono risultati.

Guida alla migrazione a WPS

N/A
N/A
Protected

Academic year: 2022

Condividi "Guida alla migrazione a WPS"

Copied!
34
0
0

Testo completo

(1)

Guida alla migrazione a WPS

per z/OS

Versione: 4.3.1 (c) 2021 World Programming

(2)

Indice

Introduzione...4

Migrazione a JCL...5

WPSHOST... 5

WPSPROC... 5

DDNAME necessari...5

Migrazione dei programmi... 7

Ispezione manuale...7

Analisi statica automatizzata... 7

Analisi dinamica...8

Migrazione dei dati... 9

Migrazione di dati da raccolte di dati DASD di SAS System...9

Migrazione di raccolte di macro archiviate...11

Migrazione dei cataloghi di formati...12

Considerazioni sulla migrazione a MXG... 13

Versione di WPS Analytics...13

Versione di MXG... 13

Raccolta di FORMAT MXG... 14

Uscita CICSIFUE... 14

MXG SOURCLIB e USERID SOURCLIB...15

Procedura MXGWPSV2... 16

Raccolte di dati di MXG... 19

Processo di migrazione a MXG... 20

Creazione di rapporti di MXG...22

Appendice A - esempi... 23

Esempio – JCL per la migrazione semplice a WPS Analytics... 23

Esempio – JCL per la migrazione a WPS Analytics mediante nastro... 24

2

(3)

Esempio – Macro per la migrazione in WPS Analytics... 27

Esempio – JCL per il confronto di output di migrazione...30

Esempio – Build delle raccolte di FORMAT di MXG...31

Esempio – JCL per un esempio di MXG BUILDPDB...32

Avvisi legali...34

(4)

Introduzione

La presente guida assiste l'utente durante l'installazione di WPS Analytics sulla piattaforma z/OS.

Contiene anche sezioni che descrivono:

• Modalità d'uso di WPS Analytics

• Cosa fare se si dispone di programmi preesistenti in linguaggio SAS e di eventuali dati associati ad essi.

Panoramica

Per migrare a WPS Analytics su z/OS, è necessario considerare come migrare:

• JCL

• Dati

• Programmi in linguaggio SAS

• MXG

• Raccolte di macro archiviate e cataloghi di formati

• Cataloghi di formati

È necessario anche prendere in considerazione i problemi di prestazioni.

4

(5)

Migrazione a JCL

È necessario apportare una piccola quantità di modifiche al JCL quando si esegue la migrazione al software WPS Analytics.

WPSHOST

Il nome del programma eseguibile nella raccolta di caricamento di WPS Analytics è WPSHOST. In generale, viene richiamato da WPSPROC, ma se è necessario richiamare direttamente WPS Analytics, è necessario utilizzare un'istruzione simile a:

//<STEPNAME> EXEC PGM=WPSHOST

WPSPROC

La raccolta CNTL di WPS Analytics fornita con l'installazione contiene un membro denominato WPSPROC.

Questo membro contiene una procedura JCL denominata WPSPROC che imposta le istruzioni DD necessarie per una configurazione predefinita. Se la propria azienda utilizza una procedura JCL SASPROC comune, modificare i processi in modo che utilizzino WPS Analytics modificando:

• L'istruzione JCLLIB di PROCLIB (se utilizzata) in modo che punti al percorso in cui è contenuto il JCL WPSPROC e

• da //<STEPNAME> EXEC SASPROC a //<STEPNAME> EXEC WPSPROC

DDNAME necessari

Se la propria azienda non utilizza una procedura JCL comune, è necessario apportare modifiche di più ampia portata, poiché si deve modificare ciascun processo JCL. È necessario modificare, aggiungere o rimuovere le istruzioni DD in modo da adattarsi a WPS Analytics. Queste modifiche variano da azienda ad azienda a seconda dell'utilizzo.

Le istruzioni DD per i seguenti DDNAME sono essenziali per l'inizializzazione di WPS Analytics:

CEEDUMP Output di file di dump di terminazione anomala dell'ambiente del linguaggio Opzioni di esclusione del linguaggio (LE) opzionali.

(6)

CONFIG La posizione in cui sono specificate le opzioni di runtime predefinite.

DFSPARMS Parametri di ordinamento host di base.

DSNAOINI Configurazione della connessione DB2 predefinita.

DSNTRACE Per l'output di traccia DB2 (può essere molto grande)

NEWS Messaggio predefinito di 'benvenuto' per l'inserimento nella parte superiore dell'output SASLOG, ma solo se è specificato nel file CONFIG.

SASHELP Una raccolta di dati in formato WPS creata dall'installazione di WPS Analytics. Contiene file di supporto come le tabelle di traduzione per la codifica del linguaggio.

SASLOG Elenco di origine del programma, note sullo stato, diagnostica.

SASLIST Elenco di output di varie procedure, come viene usato nel programma SAS.

SETINIT Il nome del file contenente la licenza applicata, una volta installato e concesso in licenza WPS Analytics.

SORTMSGS Output generato dalla chiamata all'utilità dell'host SORT, in base ai parametri specificati nel file DFSPARMS

STEPLIB Fornisce il nome della raccolta di caricamento in cui è contenuto il

programma WPSHOST, a meno che la raccolta non sia specificata in LNKLST.

SYSOUT Per il flusso di output dell'errore di output dell'ambiente del linguaggio.

Sono necessari vari file SYSOUT. Si possono omettere, reindirizzare a file su disco o ignorare con il parametro DUMMY.

SYSPRINT Per il flusso di output standard dell'ambiente del linguaggio

WORK Un set di dati sequenziale temporaneo utilizzato da WPS Analytics per contenere la raccolta WORK e tutti gli altri dati transitori durante l'esecuzione di un programma in linguaggio SAS.

WPSAOINI Configurazione DB2 specifica per WPS. Si accede solo se necessario.

WPSFONTS Percorso di TrueType predefinito distribuito con WPS Analytics.

WPSTRACE Generazione dell'output del servizio di traccia di WPS Analytics

6

(7)

Migrazione dei programmi

Qualche sintassi del linguaggio SAS non è supportata da WPS. È possibile scoprire quali programmi contengono sintassi del linguaggio SAS non supportate in uno dei modi seguenti:

• Ispezione manuale

• Analisi statica automatizzata

• Analisi dinamica

Ispezione manuale

È possibile controllare manualmente gli elementi di sintassi del linguaggio utilizzati nei programmi rispetto a quelli elencati nel Riferimento per gli elementi del linguaggio di WPS fornito con WPS Analytics. Sebbene questo documento venga aggiornato ogni volta che viene rilasciata una nuova versione di WPS Analytics, non possiamo garantire che l'elenco degli elementi di sintassi del linguaggio sia esaustivo.

Analisi statica automatizzata

WPS Analytics fornisce uno strumento in grado di analizzare programmi e generare rapporti del linguaggio SAS utilizzato dai programmi. Vengono prodotti due rapporti:

• Un rapporto sull'utilizzo, che mostra tutti gli usi della sintassi fornita dal linguaggio SAS.

• Un rapporto di compatibilità, che mostra quegli elementi della sintassi del linguaggio SAS che non sono supportati da WPS Analytics.

L'analizzatore può elaborare un singolo file o una directory completa di file inclusi i file nelle sottodirectory.

Lo strumento funziona su Workbench nel PC. Non esiste un equivalente basato su z/OS. Per utilizzarlo con i file prodotti per l'ambiente z/OS, è necessario innanzitutto scaricare i file nell'ambiente della workstation. È necessario scaricare i file in formato di testo ASCII.

È possibile eseguire la preparazione e il download dei file in diversi modi. Per esempio:

• Convertire i file mainframe in formato XMIT e trasferirli al PC in modalità binaria utilizzando, ad esempio, FTP o l'utilità di trasferimento file TN3270. I file XMIT possono quindi essere decompressi utilizzando uno strumento basato su PC come XMIT Manager. Poiché XMIT Manager non può gestire

(8)

• Scaricare i file mainframe tramite FTP in modalità testo, ovvero convertire i file in ASCII da EBCDIC durante il processo di download.

• Copiare i file di origine in una directory nello spazio USS HFS/ZFS. Usare pax per transcodificare questi file in ASCII e combinarli in una singola entità per il trasferimento alla workstation, dove possono essere decompressi e analizzati.

Una considerazione in più con una qualsiasi di queste soluzioni è con le istruzioni del linguaggio SAS contenute in file di immagini di schede da 80 byte. È frequente che tali record abbiano numeri di sequenza nelle posizioni dei caratteri 73-80. L'analizzatore di codice non può gestire tali numeri di sequenza con certezza, quindi devono essere rimossi prima di trasferire i dati a un PC.

Per realizzarlo, è possibile utilizzare l’istruzione del linguaggio SAS PROC PDSCOPY

INDD=<inddname> OUTDD=<outddname>;. Il valore specificato nell’opzione OUTDD deve puntare a un file o PDS con la definizione LRECL=72. In questo modo, ogni istruzione del linguaggio viene troncata a 72 caratteri di lunghezza e così viene rimosso qualsiasi potenziale numero di sequenza.

Contattare World Programming per dettagli su come ottenere la versione workstation di WPS Analytics adatta per l'esecuzione dell’analisi statica del codice e per consigli sul trasferimento dei file.

Analisi dinamica

World Programming può analizzare un sistema z/OS di produzione in tempo reale per scoprire come usa la sintassi dal linguaggio SAS. World Programming utilizza strumenti e servizi specializzati per farlo.

L'analisi può fornire informazioni approfondite preziose per aziende più grandi prima e durante qualsiasi progetto di migrazione a WPS Analytics.

8

(9)

Migrazione dei dati

Il contenuto delle raccolte di dati preesistenti prodotte utilizzando SAS System sulla piattaforma z/OS e archiviato su varie origini, tra cui DASD e supporti su nastro, può essere migrato su WPS. È possibile utilizzare vari metodi per raggiungere questo obiettivo.

WPS Analytics può leggere ed elaborare raccolte di dati di SAS System basate su dischi (SAS V6 e versioni successive) direttamente con il motore per raccolte SASDASD, ma non può scrivere in tali raccolte. Qualsiasi raccolta di dati di SAS System che bisogna scrivere o aggiornare in altro modo, deve essere migrata prima di essere elaborata da WPS. È possibile farlo usando la procedura COPY. WPS Analytics include un supporto completo per le raccolte di dati sequenziali fisici multi-volume standard.

WPS Analytics non può leggere i cataloghi contenuti in una raccolta di dati di SAS System. Tali entità si devono rigenerare dalla sorgente originale in WPS Analytics.

Se si sta eseguendo la migrazione di formati personalizzati e la sorgente della procedura FORMAT originale non è disponibile, è possibile eseguire la migrazione dei dati con l'istruzione PROC FORMAT CNTLOUT=xxx; in SAS System per produrre un file che può essere inserito da WPS Analytics con l'istruzione PROC FORMAT CNTLIN=xxx;.

Il motore per SASSEQ di WPS Analytics si può utilizzare per leggere le raccolte di dati di SAS System standard basate su nastri creati con i motori per raccolte di dati V7TAPE, V8TAPE e V9TAPE. WPS scrive anche i dati in tali raccolte, con il motore per SASTAPE. I cataloghi contenuti in tali raccolte verranno ignorati, a meno che non vengano rigenerati intenzionalmente con WPS Analytics

Migrazione di dati da raccolte di dati DASD di SAS System

Il contenuto di una raccolta di dati DASD di SAS System si può migrare a WPS Analytics in un unico step, tramite il motore per SASDASD di WPS Analytics per copiare i dati in formato di raccolta di dati DASD di WPS Analytics.

Esempi di processi di migrazione

Esempio di processo batch JCL e macro in linguaggio SAS sono fornite in tre membri nella raccolta di

<WPSPFX>.CNT fornita che è stata creata dalla procedura di installazione di WPS Analytics:

• Il membro @SAS2WPS mostra un semplice metodo di migrazione da disco a disco. Il codice programma viene mantenuto come parte del membro.

(10)

• Il membro @SAS2WPX mostra un metodo più complesso, che utilizza un file basato su nastro intermedio per fornire una copia di backup della raccolta di dati di SAS System originale. Questo membro presenta anche un confronto tra i due set di dati al termine della migrazione. Il codice del programma viene mantenuto come parte del membro, ma utilizza le macro definite in

<WPSPFX>.CNTL (XMIGRATE). Si noti che XMIGRATE non è un processo batch da inviare; fornisce semplicemente il codice utilizzato nel processo @SAS2WPX.

• È possibile migrare i cataloghi di formati SAS System con una sequenza PROC FORMAT CNTLOUT e CNTLIN. Il membro @FMT2WPS fornisce un esempio di JCL per eseguire tale migrazione.

<WPSPFX>.CNTL (XMIGRATE) viene utilizzato per fornire il codice.

• Inoltre viene fornito il membro <WPSPFX>.CNTL (@COMPARE). Questo è un esempio di processo che ha lo scopo di confrontare il contenuto di due raccolte di dati prima e dopo la migrazione.

10

(11)

Migrazione di raccolte di macro archiviate

Le raccolte di macro archiviate generate da SAS System si devono migrare su WPS prima dell'uso.

Se è disponibile il programma dalla sorgente originale che ha creato le macro archiviate, eseguire il programma in WPS dopo aver apportato le opportune modifiche alle istruzioni DD appropriate. WPS Analytics non potrà scrivere in una raccolta di SAS System, quindi è necessario allocare e utilizzare nuove raccolte basate su WPS.

Se il programma dalla sorgente originale che ha creato le macro archiviate non è disponibile, le macro archiviate potrebbero essere state generate con le opzioni / STORE SOURCE specificate. In tal caso, è possibile recuperare l'origine delle macro con l'istruzione %COPY <macroname>/SOURCE;. Ciò comporta la replica del codice sorgente originale nel SASLOG. È quindi possibile utilizzare questo codice sorgente in WPS Analytics per generare una raccolta di macro archiviate.

Se il codice sorgente di origine non è disponibile, contattare World Programming per ulteriore assistenza.

(12)

Migrazione dei cataloghi di formati

WPS Analytics non elaborerà FORMAT contenuti in un catalogo creato con SAS System. È necessario ricreare l'intero catalogo inserendo il codice sorgente originale in WPS Analytics.

Se il codice sorgente originale non è disponibile, è possibile creare un catalogo di FORMAT utilizzabile da WPS Analytics:

1. Generando un file intermedio con un'istruzione PROC FORMAT CNTLOUT=xxx;:

2. Usando tale file intermedio come input in WPS Analytics usando un'istruzione PROC FORMAT CNTLIN=xxx;.

Questa coppia di operazioni è prevista nel JCL scheletro fornito in <WPSPFX>.CNTL (@FMT2WPS)

12

(13)

Considerazioni sulla migrazione a MXG

Le installazioni di MXG variano notevolmente in termini di dimensioni e complessità, pertanto è difficile consigliare una procedura adatta a tutte le migrazioni. Vi sono, tuttavia, alcune considerazioni comuni che bisogna soddisfare.

Versione di WPS Analytics

Si consiglia sempre ai clienti di utilizzare l'ultima versione di Disponibilità generale (GA) di WPS

Analytics. In determinate circostanze, la soluzione a un problema osservato potrebbe essere che il client deve eseguire l'aggiornamento all'ultima versione di manutenzione, per la quale verranno rilasciate istruzioni speciali. Di norma, le ultime versioni di GA sono sempre immediatamente disponibili sul sito di download WPL.

L'aggiornamento a una versione superiore di WPS Analytics è una procedura che richiede una reinstallazione completa ogni volta. Di conseguenza, le versioni precedenti del software si possono mantenere nel sistema, da utilizzare a fini di confronto.

Versione di MXG

Le versioni di aggiornamento di MXG sono pubblicate ogni mese (circa). La pubblicazione mensile del software è nota come versione secondaria, mentre la versione annuale è quella principale. Tutte le modifiche apportate al codice MXG sono documentate nel membro CHANGES della raccolta di origini distribuite.

WPS Analytics funzionerà con la versione 25.11 di MXG o versioni successive. Come regola generale, è necessario sempre mirare all'uso dell'ultima versione di MXG. Come con WPS Analytics, l'installazione di MXG non è complessa ed è possibile tenere le sue versioni precedenti per eventuali confronti.

(14)

Raccolta di FORMAT MXG

MXG usa un gran numero di FORMAT specifici per facilitare l'interpretazione di quei dati che elabora. È interamente possibile che i nuovi FORMAT aggiunti o quelli preesistenti cambiano ad ogni versione di MXG. Allo stesso modo, potrebbe essere che quell'elaborazione di FORMAT da parte di WPS Analytics può cambiare di volta in volta.

WPS Analytics non può elaborare i dati contenuti in una raccolta di FORMAT creata con SAS System.

Di conseguenza, è necessario rigenerare la raccolta di FORMAT con WPS Analytics prima di provare ad utilizzarla e si consiglia che la raccolta di FORMAT MXG venga rigenerata ad ogni aggiornamento alla versione superiore di WPS Analytics o MXG.

Il membro <WPSPFX>.CNTL (@MXGFMTS) viene fornito per facilitare questo processo. Il JCL è scritto in modo tale che una raccolta di FORMAT MXG possa avere un nome che presenta sia i numeri di versione di WPS Analytics sia di MXG, ma l'utilizzo di tale funzione è interamente determinato dalle convenzioni di denominazione dei file della propria azienda.

Uscita CICSIFUE

È possibile modificare entrambe le regioni CICS e DB2 in modo che i dati del monitor possano essere trasferiti al registratore di dati SMF per l'elaborazione. La quantità di dati che si può produrre con entrambe le applicazioni può essere estremamente grande, cosicché è possibile un'ulteriore parametrizzazione che fa sì che i dati vengano compressi prima di essere inviati a SMF. Una volta compressi, i dati dovranno essere decompressi prima di essere elaborati dagli script MXG e aggiunti alle raccolte di dati preesistenti.

La distribuzione di MXG fornisce un programma assembler nel membro CICSIFUE che eseguirà l'elaborazione di decompressione richiesta. Il programma può essere assemblato e il legame modificato in una raccolta di caricamento adattando il JCL contenuto nel membro fornito da MXG EXITCICS.

Per utilizzare EXITCICS con WPS Analytics, è necessario modificare la stringa di parametri specificata allo step LKED da:

//LKED EXEC PGM=IEWBLINK, // PARM='XREF,LIST', // COND=(0,NE,ASM) a:

//LKED EXEC PGM=IEWBLINK,

// PARM='XREF,LIST,LET,RMODE=ANY,AMODE=31,RENT,REUS,REFR', // COND=(0,NE,ASM)

Senza questa modifica, qualsiasi programma in linguaggio SAS che utilizza l'uscita verrà interrotto con un codice di abend U4038, anche se non ci sono dati compressi nel file di input.

14

(15)

in caso contrario, l'istruzione DD STEPLIB nel JCL MXGWPSV2 deve essere modificata per concatenare la raccolta insieme alla raccolta di caricamento.

Una volta completata, l'istruzione:

%LET SMFEXIT=CICS;

deve essere inserita come una delle prime istruzioni nel programma in linguaggio SAS utilizzato per elaborare i file di dati SMF.

Se l'uscita CICSIFUE non è pronta, MXG decomprimerà dinamicamente i dati che sono stati decompressi da CICS e/o DB2, ma solo se i dati sono stati raccolti in file MANx convenzionali. La decompressione dinamica MXG non è supportata per i dati letti direttamente dai file LOGGER. Se i dati compressi sono contenuti nei file LOGGER, è necessario estrarli in un normale file sequenziale prima di immetterli in MXG.

È necessario notare che il processo di decompressione dinamica utilizza un tempo di CPU notevolmente maggiore rispetto all'uscita assemblata.

Proprio come con la raccolta di FORMAT, si consiglia di riassemblare l'uscita CICSIFUE in caso di modifica di MXG o WPS Analytics.

MXG SOURCLIB e USERID SOURCLIB

La raccolta di origini di MXG fornita con ogni pacchetto di installazione è un PDS contenente un numero elevato di membri che vengono selettivamente introdotti per essere riprodotti in un dato script con l'uso dell'istruzione %INCLUDE. Ciascun segmento di codice di questo tipo può includere anche altri segmenti con %%INCLUDE.

È inteso che il contenuto di questo PDS distribuito non viene mai modificato. Dovrebbero essere apportate le modifiche necessarie per duplicare i membri copiati nel cosiddetto USERID SOURCLIB, che è un altro PDS che contiene il codice MXG modificato. Questa coppia di raccolte è accessibile dalla concatenazione SOURCLIB nel JCL utilizzato per eseguire WPS Analytics con MXG. Il JCL corrente sarà simile a:

//SOURCLIB DD DSN=SITE.SPECIFIC.MXG.CODE,DISP=SHR // DD DSN=MXG.V3102.SOURCLIB,DISP=SHR

Date queste istruzioni, qualsiasi istruzione %INCLUDE che si riferisce a SOURCLIB cercherà prima la raccolta SITE.SPECIFIC.MXG.CODE.

Nota:

È essenziale che i segmenti di MXG che vengono copiati in USERID SOURCLIB e ivi modificati, vengano aggiornati con la versione di MXG in uso. Potrebbe essere che parte del codice personalizzato cessi di funzionare, perché il supporto per quella parte di codice è cambiato con una versione successiva di

(16)

Un tale problema può facilmente propagarsi a catena per il resto del programma interessato e non è facile individuare la causa originale del problema, data l'enorme quantità di informazioni diagnostiche che ne potrebbero scaturire. World Programming si impegnerà a supportare un'azienda affetta da tali problemi, ma la vera responsabilità ricade sull'azienda.

Procedura MXGWPSV2

Il membro MXGWPSV2 in SOURCLIB di MXG è un set del JCL che invoca WPS Analytics e prepara quella sessione per l'uso con MXG. È essenzialmente uguale al JCL <WPSPFX>.CNTL (WPSPROC), ma con alcune altre istruzioni DD aggiunte. Si consiglia di utilizzare questa procedura per tutte le invocazioni di programmi in linguaggio SAS che utilizzano MXG. Uno studio attento di SOURCLIB di MXG rivelerà anche l'esistenza del membro MXGWPSV3, ma come nella versione 36.09 di MXG, non vi è alcuna differenza pratica tra i due membri.

Una copia del membro MXGWPSV2 viene riportata di seguito:

//* JCL PROCEDURE EXAMPLE TO EXECUTE MXG PROGRAMS UNDER WPS V2 ON Z/OS //* LAST UPDATED: OCT 9, 2009. CHANGE 27.239.

//MXGWPSV2 PROC WPSHLQ='HLQ.WPS', HLQ FOR WPS LIBRARIES // MXGHLQ='HLQ.MXG', HIGH LEVEL QUALIFIER FOR MXG LIBRARIES // WORK='500,500', WORK SPACE, CYLINDERS

// WORKVOL=5, NUMBER OF WORK VOLUMES THAT CAN BE USED // WORKMDL='HLQ.WPS.SASHELP', MODEL WORK SPACE

// SORT=500, SORT WORK SPACE, CYLINDERS

// SYSPARM='', /* PROGRAM PARAMETERS */

// OPTIONS='' /* WPS OPTIONS */

//*

//*********************************************************************

//* USES "PRODUCTION" WPS FORMATS LIBRARY (INCOMPATIBLE WITH SAS) **

//* //LIBRARY WPSHLQ.MXG.LIBRARY.WPSDATA - WPS FORMAT LIBRARY **

//* **

//* USES "PRODUCTION" MXG DATA SET NAMES OF **

//* **

//* DDNAME DSNAME CONTENTS **

//* //SOURCLIB MXG.USERID.SOURCLIB - INSTALLATION TAILORING **

//* // CONCAT MXG.MXG.SOURCLIB - MXG MASTER SOURCE LIBRARY **

//* //LIBRARY WPS.MXG.FORMATS.WPSDATA - FORMAT LIBRARY **

//* **

//* PLEASE NOTE: YOU MUST EXAMINE YOUR INSTALLATIONS "REAL" WPS **

//* PROCEDURE IN YOUR PROC LIB, AND MAKE SURE THAT ALL OF THE **

//* DATA SETS THAT ARE IN THE //STEPLIB CONCATENATION IN THE "REAL" **

//* PROC ARE ALSO LISTED IN THE SAME ORDER IN THIS "MXGWPSV8" PROC. **

//* **

//* VENDOR: MERRILL CONSULTANT'S MXG SOFTWARE 214-351-1966 **

//* **

//* THE DEFAULT SYMBOLICS DEFINED ABOVE ASSUME YOUR HIGH LEVEL **

//* QUALIFIER FOR WPS LIBRARIES IS "WPS" AND YOUR HIGH **

//* LEVEL QUALIFIER FOR MXG LIBRARIES IS "MXG". **

//* **

//* COMPARE WITH YOUR EXISTING JCL PROC FOR WPS UNDER MVS.

//* **

//* NOTE: YOU CAN TAILOR THIS JCL PROCEDURE INTO YOUR "USERID.SOURCLIB"

//* PDS, AND USE A JCLLIB STATEMENT TO ACCES THE PROCEDURE, IF

16

(17)

//* //MYJOB1 JOB ....

//* //MYJCL JCLLIB ORDER=MXG.USERID //* //STEP1 EXEC MXGWPSV2

//* **

//*********************************************************************

//*

//WPS EXEC PGM=WPSHOST,REGION=0M, // PARM=('&OPTIONS SYSPARM=''&SYSPARM''') //STEPLIB DD DISP=SHR,DSN=&WPSHLQ..LOAD

//WORK DD UNIT=(SYSDA,&WORKVOL),SPACE=(CYL,(&WORK),,,ROUND), // LIKE=&WORKMDL

//SORTWK01 DD UNIT=SYSDA,SPACE=(CYL,(&SORT)) //SORTWK02 DD UNIT=SYSDA,SPACE=(CYL,(&SORT)) //SORTWK03 DD UNIT=SYSDA,SPACE=(CYL,(&SORT)) //SASAUTOS DD DISP=SHR,DSN=&WPSHLQ..CNTL

//CONFIG DD DISP=SHR,DSN=&WPSHLQ..CNTL(CONFIG)

// DD DISP=SHR,DSN=&MXGHLQ..MXG.SOURCLIB(CONFIGW2) //SASHELP DD DISP=SHR,DSN=&WPSHLQ..SASHELP

//SETINIT DD DISP=SHR,DSN=&WPSHLQ..SETINIT //PLUGCFG DD DISP=SHR,DSN=&WPSHLQ..CNTL(PLUGCFG) //ODSCSS DD DISP=SHR,DSN=&WPSHLQ..CNTL(ODSCSS) //CEEOPTS DD DISP=SHR,DSN=&WPSHLQ..CNTL(CEEOPTS) //SASLOG DD SYSOUT=*

//SASLIST DD SYSOUT=*

//WPSFONTS DD DISP=SHR,DSN=&WPSHLQ..FONTS //SYSPRINT DD SYSOUT=*

//SYSOUT DD SYSOUT=*

//WPSTRACE DD SYSOUT=*

//CEEDUMP DD SYSOUT=*

//CEERPT DD SYSOUT=*

//DFSPARM DD DISP=SHR,DSN=&WPSHLQ..CNTL(DFSPARM) //SORTMSGS DD SYSOUT=*

//WPSAOINI DD DISP=SHR,DSN=&WPSHLQ..CNTL(WPSAOINI) //DSNAOINI DD DISP=(NEW,DELETE),DSN=&&DSNAOINI, // DSORG=PS,RECFM=FB,LRECL=80, // SPACE=(TRK,1),UNIT=SYSDA

//NEWS DD DISP=SHR,DSN=&WPSHLQ..CNTL(NEWS) //INSTREAM DD UNIT=SYSDA,SPACE=(CYL,(1,20)), // RECFM=FB,LRECL=80,BLKSIZE=0 //MXGTEMP DD UNIT=SYSDA,SPACE=(CYL,(1,20))

//LIBRARY DD DISP=SHR,DSN=&WPSHLQ..MXG.FORMATS.WPSDATA //SOURCLIB DD DISP=SHR,DSN=&MXGHLQ..USERID.SOURCLIB // DD DISP=SHR,DSN=&MXGHLQ..MXG.SOURCLIB // PEND

L'istruzione DD CONFIG punta prima all'elenco di opzioni standard contenute nel membro

<WPSPFX>.CNTL (CONFIG). Queste opzioni vengono quindi sostituite o aumentate da ulteriori opzioni contenute in <MXGHLQ>.SOURCLIB (CONFIGW2). Questo elenco di CONFIG supplementari presenta la riga:

INITSTMT='%INCLUDE SOURCLIB(VMXGINIT);%VMXGINIT;RUN;'

(18)

Il segmento di codice VMXGINIT definisce una macro che viene quindi programmata dall'istruzione

%VMXGINIT nella riga sopra. È questo codice che inizializza un ambiente per MXG da eseguire nella sessione WPS. Se il membro del codice VMXGINIT viene danneggiato o modificato in qualche modo, o se %VMXGINIT viene utilizzato per qualche motivo, il tentativo di utilizzare MXG causerà numerosi problemi.

Per rendere questa JCL utilizzabile in tutte le installazioni, è necessario eseguire i valori predefiniti per le variabili simboliche WPSHLQ e MXGHLQ. Si noti inoltre che la variabile simbolica WORKMDL contiene il valore della variabile simbolica WPSHLQ, NON la stessa variabile sostitutiva &WPSHLQ. Anche qui è necessario apportare una modifica permanente. Dopo aver completato correttamente un test delle modifiche, la procedura MXGWPSV2 modificata si può copiare in una raccolta sulla concatenazione PROCLIB a livello di sistema.

18

(19)

Raccolte di dati di MXG

A seconda del livello di personalizzazione di MXG nella propria azienda, potrebbero essere disponibili fino a quattro raccolte di dati. Sono:

• Il Database delle prestazioni o PDB. Contiene i dati generati come parte dell'elaborazione di un file di input dei soliti dati SMF di MXG.

• La raccolta SPIN. Contiene dati per attività non completate al momento del dumping dei dati per l'input in MXG.

• La raccolta CICSTRAN. Contiene dati per attività CICS. Questo file è spesso molto grande e viene spesso mantenuto su nastro.

• La raccolta DB2ACCT. Contiene i dati per le attività DB2. Questo file è spesso molto grande e si può mantenere su nastro, ma è quasi certamente elaborato e mantenuto a breve termine rispetto a quello utilizzato per il PDB.

Se MXG viene utilizzato esattamente nel modo previsto nella documentazione associata, la raccolta PDB verrà copiata nelle versioni di rollup settimanali e mensili. Questi file devono essere gestiti nello stesso modo della raccolta PDB primaria.

Le raccolte PDB e SPIN vengono normalmente archiviate su disco e quindi sono relativamente al sicuro dai danni di una migrazione gestita in modo errato a WPS Analytics. Prima della migrazione, questi file sono gestiti da SAS System e WPS Analytics non potrà scrivere in quei file. Per utilizzare WPS Analytics per aggiornare questi file, è necessario copiarli prima del loro primo utilizzo. I membri <WPSPFX>.CNTL,

@SAS2WPS e/o @SAS2WPX si possono usare per questo. La differenza tra i due è che @SAS2WPX genererà una copia di backup su nastro della raccolta di dati di input.

Se le raccolte CICSTRAN e/o DB2ACCT sono archiviate su disco, sarà necessario migrarle nello stesso modo prima del primo utilizzo. Se, tuttavia, sono su nastro, è necessario prestare la massima attenzione.

Con le raccolte di dati basate su nastro, WPS crea l'intera raccolta in un singolo step del programma, pertanto la raccolta viene ricreata completamente ogni volta che viene elaborata. A differenza dei file basati su disco, non è possibile aggiornare un file contenuto in una raccolta su nastro. Per questo motivo, il file DSName associato a una raccolta basata su nastro creata e gestita da SAS System non deve essere utilizzato da WPS Analytics se non dopo il completamento della migrazione. WPS Analytics potrà leggere, ma non scrivere in una raccolta di dati creata da SAS System. SAS System non potrà né leggere né scrivere una raccolta di dati di WPS Analytics.

(20)

Processo di migrazione a MXG

Di seguito è riportato un elenco generale dei punti da trattare. Si potrebbe usare per arrivare a un elenco di controllo di attività da eseguire, per i propri scopi di controllo delle modifiche.

Garantire che siano disponibili sufficienti risorse supplementari.

Si consiglia un periodo di esecuzioni in parallelo per trattare la migrazione da SAS System con MXG a WPS Analytics con MXG. Un cambio repentino delle morti non dovrebbe essere preso in considerazione, ma il valore dei dati sulla Pianificazione della capacità, sulla Misurazione delle prestazioni e/o sui Dati di contabilità della propria azienda qui è la vera influenza dominante. Se ci deve essere un periodo di esecuzioni in parallelo, la quantità di memoria su disco e nastro, e la quantità di tempo di CPU utilizzata da queste funzioni saranno almeno il doppio per la durata del processo di migrazione.

Aggiornarlo all'ultima versione di WPS Analytics.

Se la versione di WPS Analytics attualmente installata nella propria azienda non è l'ultima versione GA disponibile, si consiglia un aggiornamento alla versione superiore. Qualunque versione sia attualmente installata, dovrebbe essere verificata in modo da funzionare senza intoppi e prontamente disponibile.

Installare l'ultima versione di MXG.

Se la versione di MXG attualmente installata nella propria azienda non è l'ultima versione disponibile, si consiglia un aggiornamento alla versione superiore. Qualunque versione sia attualmente installata, dovrebbe essere verificata in modo da funzionare senza intoppi e prontamente disponibile.

Creare la versione locale di MXGWPSV2.

Si consiglia l'uso del JCL MXGWPSV2 fornito da MXG per invocare WPS Analytics con MXG.

Prendere una copia del JCL e modificarlo come richiesto, quindi inserirlo in una raccolta nella concatenazione PROCLIB a livello di sistema. Verificare che WPS Analytics e MXG siano disponibili e in esecuzione.

Creare una nuova raccolta di FORMAT di MXG.

Modificare e utilizzare il flusso di lavoro @MXGFMTS fornito in modo da creare una raccolta di FORMAT. Ricordarsi che il file di output sarà diverso da quello creato da SAS System. SAS System non elaborerà la versione basata su WPS della raccolta di FORMAT e viceversa.

Creare la nuova uscita CICSIFUE.

Se necessario, modificare e utilizzare una copia del flusso di lavoro EXITCICS fornito da MXG per creare una versione specifica dell'uscita CICSIFUE. Le versioni di CICSIFUE usate da SAS System e da WPS Analytics sono diverse e non possono coesistere nella stessa raccolta di caricamento. Sarà necessario creare una raccolta di caricamento separata per la durata di qualsiasi esecuzione in parallelo e sarà necessaria una modifica all'istruzione STEPLIB del JCL per coprire il nuovo nome della raccolta.

20

(21)

È possibile che parte del codice MXG personalizzato in USERID SOURCLIB sia specifico per SAS System. Solo un attento esame rivelerà tali potenziali problemi. È meglio copiare USERID SOURCLIB in un'altra raccolta da usare con WPS Analytics. Sarà necessario apportare le modifiche al JCL.

Creare copie di tutte le raccolte di dati interessate.

Le raccolte PDB e SPIN, e le raccolte CICSACCT e DB2ACCT insieme a qualsiasi altra raccolta di riepilogo di rollup a lungo termine, devono essere migrate copiandole sotto il controllo di WPS Analytics. I membri @SAS2WPS e @SAS2WPX forniti nella raccolta <WPSPFX>.CNTL possono essere adattati a questo scopo.

Tentare di eseguire in parallelo e confrontare gli output.

Avendo soddisfatto i requisiti locali relativi alle modifiche di cui sopra, ora dovrebbe essere possibile tentare un'esecuzione in parallelo sia di SAS System che WPS Analytics, quindi confrontare gli output. In termini generali, MXG viene utilizzato per elaborare i dati SMF raccolti ogni giorno. Lo stesso file SMF di input deve essere utilizzato come input e quindi le raccolte di dati aggiornati devono essere confrontate per soddisfare i criteri di accettazione locali. Il membro del JCL @COMPARE fornito si può utilizzare per eseguire tale confronto. Non ci dovrebbero essere differenze, ma se ci sono e l'origine di tali differenze non è immediatamente ovvia, allora si prega di contattare il supporto di World Programming.

(22)

Creazione di rapporti di MXG

La creazione di rapporti da MXG tende a variare da un'azienda all'altra. Di seguito, vengono fornite alcune note che potrebbero rivelarsi utili.

Creazione di rapporti standard di MXG

La maggior parte dei rapporti di MXG dovrebbe essere eseguita senza ulteriori operazioni di migrazione.

Creazione di rapporti personalizzati di MXG

Non è possibile fornire istruzioni precise per la migrazione e la convalida dei processi di creazione di rapporti scritti dall'utente in una guida generica di questo tipo. Questa operazione viene gestita al meglio individualmente, pertanto contattare World Programming per assistenza.

In alcune circostanze, il layout dell'output del rapporto stampato potrebbe sembrare leggermente diverso in WPS Analytics. In alcuni casi, ciò potrebbe richiedere lievi modifiche ai processi che consumano tale output.

22

(23)

Appendice A - esempi

Questa sezione contiene i seguenti esempi.

Esempio – JCL per la migrazione semplice a WPS Analytics ... 23

Esempio – JCL per la migrazione a WPS Analytics mediante nastro ...24

Esempio – JCL per la migrazione del formato a WPS Analytics ... 25

Esempio – Macro per la migrazione in WPS Analytics ...27

Esempio – JCL per il confronto di output di migrazione ... 30

Esempio – Build delle raccolte di FORMAT di MXG ...31

Esempio – JCL per un esempio di MXG BUILDPDB ... 32

Esempio – JCL per la migrazione semplice a WPS Analytics

L'esempio di codice viene fornito nella raccolta <wpspfx>.CNTL come membro @SAS2WPS.

// <add a jobcard here>

//PROCLIB JCLLIB ORDER=(<wpspfx>.CNTL) //*

//* SYMBOL SASDL IS THE DSNAME OF THE SAS DATA-LIBRARY ON DASD // SET SASDL=<sas-dasd-data-library>

//*

//* SYMBOL WPSDL IS THE DSNAME OF THE WPS DATA-LIBRARY ON DASD // SET WPSDL=<wps-dasd-data-library>

//*

//* NOTE : USE REGION=0M TO OBTAIN MAXIMUM AVAILABLE MEMORY //*

//*---*/

//* SAMPLE JOB TO MIGRATE A SAS DASD DATA LIBRARY TO WPS DASD */

//*---*/

//*

//* (1) ADD A SUITABLE JOBCARD

//* (2) CHANGE <wpspfx> TO THE WPS INSTALLATION DATASET PREFIX //* (3) CHANGE <sas-dasd-data-library> TO THE SOURCE SAS DATASET //* (4) CHANGE <wps-dasd-data-library> TO THE WPS TARGET DATASET //* (5) CHANGE <wps-procedure-name> TO THE WPS PROCEDURE NAME //* (6) SUBMIT THIS JOB AND THEN CHECK THE OUTPUT

(24)

//* TO MIGRATE A SAS TAPE DATA LIBRARY TO WPS DASD, */

//* REPLACE 'LIBNAME SASDL SASDASD;' WITH 'LIBNAME SASDL SASSEQ;' */

//*---*/

//*

//WPS EXEC <wps-procedure-name>

//SOURCLIB DD DISP=SHR,DSN=<wpspfx>.CNTL //SASDL DD DISP=SHR,DSN=&SASDL, // DCB=BUFNO=32

//WPSDL DD DISP=(NEW,CATLG),DSN=&WPSDL,

// UNIT=SYSDA,SPACE=(TRK,(9000,900),RLSE) //*

//SYSIN DD DATA,DLM='++'

*OPTIONS SOURCE SOURCE2 MPRINT MACROGEN MLOGIC;

LIBNAME SASDL SASDASD;

*LIBNAME SASDL SASSEQ;

PROC DATASETS LIB=WPSDL KILL; RUN;

PROC COPY IN=SASDL OUT=WPSDL MEMTYPE=DATA; RUN;

RUN;

++ END OF //SYSIN

Esempio – JCL per la migrazione a WPS Analytics mediante nastro

L'esempio di codice viene fornito nella raccolta <wpspfx>.CNTL come membro @SAS2WPX.

// <add a jobcard here>

//PROCLIB JCLLIB ORDER=(<wpspfx>.CNTL) //*

//* SYMBOL SASDL IS THE DSNAME OF THE SAS DATA-LIBRARY ON DASD // SET SASDL=<sas-dasd-data-library>

//*

//* SYMBOL SASTL IS THE DSNAME OF THE SAS DATA-LIBRARY ON TAPE // SET SASTL=<sas-tape-data-library>

//*

//* SYMBOL WPSDL IS THE DSNAME OF THE WPS DATA-LIBRARY ON DASD // SET WPSDL=<wps-dasd-data-library>

//*

//* NOTE : USE REGION=0M TO OBTAIN MAXIMUM AVAILABLE MEMORY //*

//*---*/

//* SAMPLE JOB TO MIGRATE A SAS DASD DATA LIBRARY TO WPS DASD */

//*---*/

//*

//* (1) ADD A SUITABLE JOBCARD

//* (2) CHANGE <wpspfx> TO THE WPS INSTALLATION DATASET PREFIX //* (3) CHANGE <sas-dasd-data-library> TO THE SOURCE SAS DATASET //* (4) CHANGE <sas-tape-data-library> TO THE SAS TAPE DATASET //* (5) CHANGE <wps-dasd-data-library> TO THE WPS TARGET DATASET //* (6) CHANGE <sas-procedure-name> TO THE SAS PROCEDURE NAME

24

(25)

//* (9) CHECK FOR A JOB RETURN CODE OF ZERO //*

//*---*/

//*

//*====================================================================

//* EXPORT A SAS DATA LIBRARY FROM DASD TO TAPE (NOT COMPRESSED)

//*====================================================================

//SAS EXEC <sas-procedure-name>

//SOURCLIB DD DISP=SHR,DSN=<wpspfx>.CNTL //SASDL DD DISP=SHR,DSN=&SASDL

//SASTL DD DSN=&SASTL,DISP=(,CATLG,DELETE),

// UNIT=(CART,,DEFER),VOL=(,,,10),LABEL=EXPDT=98007 //*

//SYSIN DD DATA,DLM='++'

*OPTIONS SOURCE SOURCE2 MPRINT MACROGEN MLOGIC;

%INCLUDE SOURCLIB(XMIGRATE);

%LET VERBOSE=YES;

%SD2ST(SASDL=SASDL,SASTL=SASTL);

RUN;

++ END OF //SYSIN //*

//*=====================================================================

//* IMPORT A SAS DATA LIBRARY FROM TAPE INTO A WPS DATA LIBRARY ON DASD //*=====================================================================

//*

//WPS EXEC <wps-procedure-name>

//SOURCLIB DD DISP=SHR,DSN=<wpspfx>.CNTL //SASTL DD DISP=SHR,DSN=&SASTL, // DCB=BUFNO=32

//WPSDL DD DISP=(NEW,CATLG),DSN=&WPSDL,

// UNIT=SYSDA,SPACE=(TRK,(9000,900),RLSE) //*

//SYSIN DD DATA,DLM='++'

*OPTIONS SOURCE SOURCE2 MPRINT MACROGEN MLOGIC;

%INCLUDE SOURCLIB(XMIGRATE);

%LET VERBOSE=YES;

%ST2WD(SASTL=SASTL,WPSDL=WPSDL);

RUN;

++ END OF //SYSIN

Esempio – JCL per la migrazione del formato a WPS Analytics

L'esempio di codice viene fornito nella raccolta <wpspfx>.CNTL come membro @FMT2WPS.

// <add a jobcard here>

(26)

// SET SASFL=<sas-dasd-fmt-library>

//*

//* SYMBOL WPSFL IS THE DSNAME OF THE WPS FORMAT LIBRARY // SET WPSFL=<wps-dasd-fmt-library>

//*

//* NOTE : USE REGION=0M TO OBTAIN MAXIMUM AVAILABLE MEMORY //*

//*---*/

//* SAMPLE JOB TO MIGRATE A SAS FORMAT LIBRARY TO WPS */

//*---*/

//*

//* (1) ADD A SUITABLE JOBCARD

//* (2) CHANGE <wpspfx> TO THE WPS INSTALLATION DATASET PREFIX

//* (3) CHANGE <sas-dasd-fmt-library> TO THE SAS SOURCE FORMAT LIBRARY //* (5) CHANGE <wps-dasd-fmt-library> TO THE WPS TARGET FORMAT LIBRARY //* (6) CHANGE <sas-procedure-name> TO THE SAS PROCEDURE NAME

//* (7) CHANGE <wps-procedure-name> TO THE WPS PROCEDURE NAME //* (8) SUBMIT THIS JOB AND THEN CHECK THE OUTPUT

//* (9) CHECK FOR A JOB RETURN CODE OF ZERO //*

//*---*/

//*

//*====================================================================

//* EXPORT A SAS FORMAT LIBRARY TO A TEMPORARY FILE

//*====================================================================

//SAS EXEC <sas-procedure-name>

//SOURCLIB DD DISP=SHR,DSN=<wpspfx>.CNTL //SASFL DD DISP=SHR,DSN=&SASFL

//SASDL DD DSN=&&TEMPFILE,DISP=(NEW,PASS),

// UNIT=SYSDA,SPACE=(TRK,(9000,900),RLSE) //*

//SYSIN DD DATA,DLM='++'

*OPTIONS SOURCE SOURCE2 MPRINT MACROGEN MLOGIC;

%INCLUDE SOURCLIB(XMIGRATE);

%LET VERBOSE=YES;

%SF2SD(SASFL=SASFL,SASDL=SASDL);

RUN;

++ END OF //SYSIN //*

//*=====================================================================

//* CREATE A WPS FORMAT LIBRARY FROM THE TEMPORARY FILE

//*=====================================================================

//*

//WPS EXEC <wps-procedure-name>

//SOURCLIB DD DISP=SHR,DSN=<wpspfx>.CNTL //SASDL DD DISP=SHR,DSN=&&TEMPFILE //WPSFL DD DISP=(NEW,CATLG),DSN=&WPSFL,

// UNIT=SYSDA,SPACE=(TRK,(9000,900),RLSE) //*

//SYSIN DD DATA,DLM='++'

*OPTIONS SOURCE SOURCE2 MPRINT MACROGEN MLOGIC;

%INCLUDE SOURCLIB(XMIGRATE);

%LET VERBOSE=YES;

26

(27)

RUN;

++ END OF //SYSIN

Esempio – Macro per la migrazione in WPS Analytics

L'esempio di codice viene fornito nella raccolta <wpspfx>.CNTL come membro XMIGRATE.

%********************************************************************;

%* SAS SOURCE LIBRARY CONTAINING MACROS TO SUPPORT THE SAS TO WPS *;

%* MIGRATION PROCESS. SEE SAS2WPS MEMBER OF CNTL LIBRARY FOR AN *;

%* EXAMPLE JCL JOB THAT USES THESE MACROS. *;

%********************************************************************;

%MACRO WPSORSAS();

%********************************************************************;

%* WPSORSAS *;

%* DESCRIPTION: MACRO TO CHECK WHETHER WPS OR SAS IS RUNNING *;

%* ARGUMENTS: NONE *;

%* RETURNS: WPS OR SAS *;

%********************************************************************;

%IF %SYSPROD(WPS) = 1 %THEN %DO;

WPS %END;

%ELSE %DO;

SAS %END;

%MEND WPSORSAS;

%MACRO SD2ST(SASDL=SASDL, SASTL=SASTL);

%********************************************************************;

%* SD2ST *;

%* DESCRIPTION: MACRO TO EXPORT A SAS DASD LIBRARY TO SAS TAPE *;

%* ARGUMENTS: *;

%* SASDL - THE SOURCE SAS DASD DATA LIBRARY *;

%* SASTL - THE TARGET SAS TAPE DATA LIBRARY *;

%* NOTE1: THIS MUST BE RUN FROM SAS NOT WPS *;

%********************************************************************;

OPTIONS COMPRESS=NO;

LIBNAME &SASTL TAPE;

PROC COPY IN=&SASDL OUT=&SASTL NOCLONE MEMTYPE=DATA; RUN;

%MEND SD2ST;

(28)

%* DESCRIPTION: MACRO TO IMPORT A SAS TAPE LIBRARY TO WPS DASD *;

%* ARGUMENTS: *;

%* SASTL - THE SOURCE SAS TAPE DATA LIBRARY *;

%* WPSDL - THE TARGET WPS DASD DATA LIBRARY *;

%* *;

%* NOTE1: THIS MUST BE RUN FROM WPS NOT SAS *;

%********************************************************************;

LIBNAME &SASTL SASSEQ;

PROC DATASETS LIB=&WPSDL KILL; RUN;

PROC COPY IN=&SASTL OUT=&WPSDL; RUN;

%IF "&VERBOSE" EQ "YES" %THEN %DO;

TITLE2 "CONTENTS OF &WPSDL WPS DASD DATA LIBRARY";

PROC DATASETS LIB=&WPSDL;

RUN;

%END;

%MEND ST2WD;

%MACRO S2WCOMP(SASDL=SASDL, WPSDL=WPSDL, METHOD=, CRITERION=);

%********************************************************************;

%* S2WCOMP *;

%* DESCRIPTION: COMPARE SAS TAPE LIBRARY WITH WPS DASD LIBRARY *;

%* ARGUMENTS: *;

%* SASDL - A SAS TAPE DATA LIBRARY *;

%* WPSDL - A WPS DASD DATA LIBRARY *;

%* METHOD - METHOD FOR PROC COMPARE *;

%* CRITERION - CRITERION FOR PROC COMPARE *;

%* NOTE1: THIS MUST BE RUN FROM WPS NOT SAS *;

%********************************************************************;

TITLE1 "S2WCOMP - SAS TO WPS DATA MIGRATION LIBRARY COMPARISON";

TITLE2 "CONTENTS OF &SASDL SAS TAPE DATA LIBRARY";

PROC DATASETS LIB=&SASDL;

RUN;

%IF "&VERBOSE" EQ "YES" %THEN %DO;

TITLE2 "CONTENTS OF &WPSDL WPS DASD DATA LIBRARY";

PROC DATASETS LIB=WPSDL; RUN;

%END;

PROC SQL;

CREATE TABLE MEMNAMES AS

SELECT MEMNAME FROM DICTIONARY.MEMBERS

WHERE LIBNAME LIKE "&SASDL" AND MEMTYPE = 'DATA';

DATA _NULL_;

SET MEMNAMES END=LAST;

LENGTH SASCODE £80;

SASCODE =

'%COMPRMBR(' || "SASLIB=&SASDL"

||",WPSLIB=&WPSDL"

||",MEMNAME="||TRIM(MEMNAME) ||",METHOD=&METHOD"

||",CRITERION=&CRITERION"

||")" ;

CALL EXECUTE(SASCODE);

%MEND S2WCOMP;

%MACRO COMPRMBR(SASLIB=SASDL, WPSLIB=WPSDL, MEMNAME=MEMNAME,

28

(29)

%* COMPRMBR *;

%* DESCRIPTION: COMPARE INDIVIDUAL SAS MEMBER WITH WPS MEMBER *;

%* ARGUMENTS: *;

%* SASDL - THE SAS DATA LIBRARY *;

%* WPSDL - THE WPS DATA LIBRARY *;

%* MEMNAME - THE MEMBER NAME *;

%* METHOD - METHOD FOR PROC COMPARE *;

%* CRITERION - CRITERION FOR PROC COMPARE *;

%* NOTE1: IF &MXG MACRO VARIABLE IS SET TO YES THEN ZDATE ZTIME *;

%* VARIABLES WILL BE EXCLUDED FROM THE COMPARISON *;

%* THIS IS HELPFUL WHEN COMPARING MXG PDB LIBRARIES *;

%********************************************************************;

TITLE1 "COMPRMBR - SAS TO WPS DATA MIGRATION MEMBER COMPARISON";

TITLE2 "MEMBER NAME: &MEMNAME";

%IF "&VERBOSE" EQ "YES" %THEN %DO;

TITLE3 "SAS DATA LIBRARY: &SASLIB";

PROC CONTENTS DATA=&SASLIB..&MEMNAME;

PROC PRINT DATA=&SASLIB..&MEMNAME(OBS=8) LABELANDNAME;

TITLE3 "WPS DATA LIBRARY : &WPSLIB";

PROC CONTENTS DATA=&WPSLIB..&MEMNAME;

PROC PRINT DATA=&SASLIB..&MEMNAME(OBS=8) LABELANDNAME;

%END;

TITLE2 "COMPARE RESULTS";

PROC COMPARE BASE=&WPSLIB..&MEMNAME COMP=&SASLIB..&MEMNAME

OUT=WORK.SWMCOMP_&MEMNAME OUTNOEQUAL

%IF "&METHOD" NE "" %THEN %DO;

METHOD=&METHOD %END;

%IF "&CRITERION" NE "" %THEN %DO;

CRITERION=&CRITERION %END;

NOTE;

%IF "&MXG" EQ "YES" %THEN %DO;

EXCLUDEVAR ZDATE ZTIME;

%END;

RUN;

TITLE "RESULTS OF COMPARE OF MEMBER: &MEMNAME";

PROC PRINT DATA=WORK.SWMCOMP_&MEMNAME; RUN;

%MEND COMPRMBR;

%MACRO SF2SD(SASFL=SASFL,SASDL=SASDL);

%********************************************************************;

%* SF2TM *;

%* DESCRIPTION: MACRO TO UNLOAD A SAS FORMAT LIBRARY TO A SAS DASD *;

%* LIBRARY MEMBER *;

%* ARGUMENTS: *;

%* SASFL - THE SOURCE SAS FORMAT LIBRARY *;

%* SASDL - THE TEMPORARY SAS DATA LIBRARY *;

(30)

%DO;

PROC FORMAT LIBRARY=SASFL FMTLIB;RUN;

%END;

PROC FORMAT LIBRARY=SASFL CNTLOUT=SASDL.FORMATS;RUN;

%MEND SF2SD;

%MACRO SD2WF(SASDL=SASDL,WPSFL=WPSFL);

%********************************************************************;

%* SD2WF *;

%* DESCRIPTION: MACRO TO CREATE A WPS FORMAT LIBRARY FROM A SAS *;

%* DATA LIBRARY MEMBER *;

%* ARGUMENTS: *;

%* SASDL - THE SOURCE SAS DATA LIBRARY *;

%* WPSFL - THE TARGET WPS FORMAT LIBRARY *;

%* *;

%* NOTE1: THIS MUST BE RUN FROM WPS NOT SAS *;

%********************************************************************;

PROC FORMAT LIBRARY=WPSFL CNTLIN=SASDL.FORMATS;RUN;

%IF "&VERBOSE" EQ "YES" %THEN %DO;

PROC FORMAT LIBRARY=WPSFL FMTLIB;RUN;

%END;

%MEND SD2WF;

Esempio – JCL per il confronto di output di migrazione

L'esempio di codice viene fornito nella raccolta <wpspfx>.CNTL come membro @COMPARE.

// <add a jobcard here>

//PROCLIB JCLLIB ORDER=(<wpspfx>.CNTL) //*

//* SYMBOL SASDL IS THE DSNAME OF THE SAS DATA LIBRARY ON DASD // SET SASDL=<sas-dasd-data-library>

//*

//* SYMBOL WPSDL IS THE DSNAME OF THE WPS DATA LIBRARY ON DASD // SET WPSDL=<wps-dasd-data-library>

//*

//* NOTE : USE REGION=0M TO OBTAIN MAXIMUM AVAILABLE MEMORY //*

//*---*/

//* SAMPLE JOB TO RUN SAS TO WPS COMPARISON */

//*---*/

//*

//* (1) ADD A SUITABLE JOBCARD //* (2) CHANGE <wpspfx> TO THE WPS INSTALLATION DATASET PREFIX //* (3) CHANGE <sas-dasd-data-library> TO THE SAS DASD DATA LIBRARY //* (4) CHANGE <wps-dasd-data-library> TO THE WPS DASD DATA LIBRARY //* (5) CHANGE <sas-formats-library> TO THE MXG FORMATS LIBRARY IF //* NECESSARY //* (6) CHANGE <migration-macro-library> TO THE MIGRATION MACRO //* LIBRARY //* (7) SUBMIT THIS JOB //* (8) CHECK FOR A JOB RETURN CODE OF ZERO

30

(31)

//*---*/

//* TO COMPARE A SAS TAPE DATA LIBRARY TO WPS DASD, */

//* REPLACE 'LIBNAME SASDL SASDASD;' WITH 'LIBNAME SASDL SASSEQ;' */

//*---*/

//*

//*

//@COMPARE EXEC WPSPROC //SASDL DD DISP=SHR,DSN=&SASDL //WPSDL DD DISP=SHR,DSN=&WPSDL //LIBRARY DD DISP=SHR,DSN=<sas-formats-library> <= IF NECESSARY //MTSOURCE DD DISP=SHR,DSN=<migration-macro-library>

//SYSIN DD DATA,DLM='++' OPTIONS SOURCE SOURCE2 MPRINT MLOGIC MACROGEN;

OPTIONS FMTSEARCH=(LIBRARY.FORMATS WORK.FORMATS);

%INCLUDE MTSOURCE(XMIGRATE);

%LET VERBOSE = NO;

%LET MXG = YES;

LIBNAME SASDL SASDASD;

*LIBNAME SASDL SASSEQ;

%S2WCOMP(SASDL=SASDL,WPSDL=WPSDL);

RUN;

++ END OF //SYSIN

Esempio – Build delle raccolte di FORMAT di MXG

Questo esempio di codice viene fornito nella raccolta <wpspfx.>CNTL come membro @MXGFMTS.

// <add a jobcard here>

//PROCLIB JCLLIB ORDER=(<wpspfx>.CNTL) //*

//*---*/

//* SAMPLE JOB TO RUN MXG FORMATS LIBRARY BUILDING JOB */

//*---*/

//*

//* (1) ADD A SUITABLE JOBCARD

//* (2) CHANGE <wpspfx> TO THE WPS INSTALLATION DATASET PREFIX //* (3) CHANGE <mxgpfx> TO THE MXG SOURCLIB DATASET PREFIX //* (4) CHANGE <mxgwpspfx> TO THE MXG+WPS DATASET PREFIX //* (5) SUBMIT THIS JOB AND THEN CHECK THE OUTPUT

//* (6) CHECK FOR A JOB RETURN CODE OF ZERO //*

//*---*/

//*

//*=====================================================================

(32)

// DSN=<mxgwpspfx>.LIBRARY.WPSDATA, // SPACE=(TRK,(70,20)),

// DCB=(RECFM=FS,LRECL=27648,BLKSIZE=27648), // DSORG=PS

//*

//*=====================================================================

//*

//@MXGFMTS EXEC WPSPROC,CONFIG='<mxgpfx>.SOURCLIB(CONFIGW2)' //SOURCLIB DD DISP=SHR,DSN=<mxgpfx>.USERID.SOURCLIB

// DD DISP=SHR,DSN=<mxgpfx>.SOURCLIB

//LIBRARY DD DISP=OLD,DSN=<mxgwpspfx>.LIBRARY.WPSDATA //SYSIN DD DATA,DLM='++'

*OPTIONS SOURCE SOURCE2 MPRINT MLOGIC MACROGEN;

OPTIONS FMTSEARCH=(LIBRARY);

%INCLUDE SOURCLIB(FORMATS);

RUN;

++ END OF //SYSIN

Esempio – JCL per un esempio di MXG BUILDPDB

L'esempio di codice viene fornito nella raccolta <wpspfx>.CNTL come membro @MXGPDB.

// <add a jobcard here>

//PROCLIB JCLLIB ORDER=(<wpspfx>.CNTL) //*

//*---*/

//* SAMPLE JOB TO RUN EMPTY MXG BUILDPDB JOB */

//*---*/

//*

//* (1) ADD A SUITABLE JOBCARD

//* (2) CHANGE <wpspfx> TO THE WPS INSTALLATION DATASET PREFIX //* (3) CHANGE <mxgpfx> TO THE MXG SOURCLIB DATASET PREFIX //* (3) CHANGE <mxgwpspfx> TO THE MXG+WPS DATASET PREFIX //* (4) SUBMIT THIS JOB AND THEN CHECK THE OUTPUT

//* (5) CHECK FOR A JOB RETURN CODE OF ZERO //*

//*---*/

//*

//*=====================================================================

//*

//ALLOC EXEC PGM=IEFBR14 //CICSTRAN DD DISP=(NEW,CATLG),

// DSN=<mxgwpspfx>.CICSTRAN.WPSDATA, // SPACE=(TRK,(450,450))

//DB2ACCT DD DISP=(NEW,CATLG),

// DSN=<mxgwpspfx>.DB2ACCT.WPSDATA, // SPACE=(TRK,(450,450))

//PDB DD DISP=(NEW,CATLG),

// DSN=<mxgwpspfx>.PDB.WPSDATA, // SPACE=(CYL,(600,150))

32

(33)

// SPACE=(CYL,(10,100)) //*

//*=====================================================================

//*

//@MXGPDB EXEC WPSPROC,CONFIG='<mxgpfx>.SOURCLIB(CONFIGW2)' //SOURCLIB DD DISP=SHR,DSN=<mxgpfx>.USERID.SOURCLIB

// DD DISP=SHR,DSN=<mxgpfx>.SOURCLIB

//LIBRARY DD DISP=SHR,DSN=<mxgwpspfx>.LIBRARY.WPSDATA //CICSTRAN DD DISP=OLD,DSN=*.ALLOC.CICSTRAN

//DB2ACCT DD DISP=OLD,DSN=*.ALLOC.DB2ACCT //PDB DD DISP=OLD,DSN=*.ALLOC.PDB //SPIN DD DISP=OLD,DSN=*.ALLOC.SPIN

//SORTWK01 DD UNIT=SYSDA,SPACE=(CYL,(150,150)) //SORTWK02 DD UNIT=SYSDA,SPACE=(CYL,(150,150)) //SORTWK03 DD UNIT=SYSDA,SPACE=(CYL,(150,150)) //SMF DD DUMMY

//SYSIN DD DATA,DLM='++'

*OPTIONS SOURCE SOURCE2 MPRINT MLOGIC MACROGEN;

OPTIONS FMTSEARCH=(LIBRARY);

%INCLUDE SOURCLIB(BUILDPDB);

RUN;

++ END OF //SYSIN

(34)

Avvisi legali

(c) 2021 World Programming

Le presenti informazioni sono riservate e soggette a diritto d'autore. Non è possibile riprodurre o

trasmettere nessuna parte di questa pubblicazione, in qualsiasi forma o con qualsiasi mezzo, elettronico o meccanico, inclusa la fotocopiatura, la registrazione o eventuali sistemi di archiviazione e recupero dati.

Marchi commerciali

WPS e World Programming sono marchi registrati o marchi commerciali di World Programming Limited nell'Unione europea e altri paesi. (r) o ® indica un marchio comunitario.

SAS e tutti gli altri nomi di prodotti o servizi di SAS Institute Inc. sono marchi registrati o marchi commerciali di SAS Institute Inc. negli Stati Uniti e in altri paesi. ® indica la registrazione negli USA.

Tutti gli altri marchi commerciali sono proprietà dei rispettivi titolari.

Avvisi generali

World Programming Limited non è associata in alcun modo a SAS Institute.

WPS non è SAS System.

Le frasi "SAS", "linguaggio SAS" e "linguaggio di SAS” utilizzate in questo documento si usano in riferimento al linguaggio di programmazione spesso denominato in uno dei suddetti modi.

Le frasi "programma", "programma SAS" e "programma in linguaggio SAS" utilizzate in questo

documento si riferiscono a programmi scritti in linguaggio SAS. Questi possono anche essere denominati

"script", "script SAS" o "script in linguaggio SAS".

Le frasi "IML", "linguaggio IML", "sintassi IML”, "Interactive Matrix Language" e "linguaggio di IML"

utilizzate in questo documento si usano in riferimento al linguaggio di programmazione spesso denominato in uno dei suddetti modi.

WPS include software sviluppato da terzi. È possibile trovare maggiori informazioni nel file THANKS o acknowledgments.txt inclusi nell'installazione di WPS.

34

Riferimenti

Documenti correlati

Two phylogenetic analyses were performed: the first, based on LSU sequences, to focus on the position of Neopaxillus species in the Crepidotoid clade (the clade contains

We believe that future studies in Latin popu- lations are necessary to determine the prevalence of HLA alleles, their potential association with genetic susceptibility to RRP,

Tra tutte le attività, tuttavia, quella forse più feconda di significati ed effetti, legati anche ai contenuti di questa pubblicazione, è stata la realizzazione della Mappa di

PRO: provisioning utenti automatico, migrazione completa delle Mailbox,migrazione con diversi batch CONTRO: solo per exchange 2007 e

 di essere in possesso di adeguate competenze di tipo informatico, nell’utilizzo di Internet e della posta elettronica e di conoscere i principali strumenti di

Le tec- niche descritte nell’articolo sono piuttosto ge- nerali e possono essere applicate a sistemi software scritti in linguaggi diversi e basati su tecnologie diverse, ma

L’attività didattica sarà valida per i corsi di studio di Filologia e critica letteraria, Lingue e letterature moderne euroamericane, all’interno dei percorsi di studio in

Il webinar approfondirà il dibattito sui recenti cambiamenti dei decreti sicurezza e sul nuo- vo patto su asilo e migrazioni presentato dalla Commissione europea, per capire