#BEGINBUCKET SASREGISTRYIMPORTSTG
#/ ----------------------------------------------------------------------
#/ This template provides a single SAS execution to import registry data.
#/ It resolves for any .XRG content in the payload for any delivered altsku's.
#/ ----------------------------------------------------------------------
#BEGININSTANCEQUALIFIERS
#IFEQ {ARTIFACTTYPE} XRG #CREATEINSTANCEFROMENTRY
#ENDQUALIFIERS
#/ -------------------------------------------------------------------
#BEGINPREFIX
#/ -------------------------------------------------------------------
#/        Prefix invokes SAS from targeted SAS installation.
//SASXREG EXEC PGM=[ENTRY],
//  PARM=('SETINIT MSGCASE ERRORABEND NOWORKTERM',  
#IFEQ [ORDERENCODING] WU #://        'CAPSOUT',
//        'MACRO ERRORCHECK=STRICT SASUSER=WORK')
#IFEQ [HOST] z64 #THEN USEZE
#TABLEFIX LD  #/ Load Library
#THEN STEPLIB
#USEZE
#TABLEFIX ZE  #/ 64-bit load library
#STEPLIB
//STEPLIB  DD DISP=SHR,
//  DSN=[CUSTPRODQUAL].[LOQUAL]
#TABLEFIX SH  #/ Sashelp
#IFNOT [INSTALL-TO-STAGE] #THEN NOTSTAGEDINSTALL
//SASHELP DD DISP=OLD,
//  DSN=[CUSTPRODQUAL][STAGEQUAL].[LOQUAL]
#THEN NEXT
#NOTSTAGEDINSTALL
//SASHELP DD DISP=OLD,
//  DSN=[CUSTPRODQUAL].[LOQUAL]
#NEXT
#TABLEFIX AU  #/ Autocalls
//[DFLTDDN] DD DISP=SHR,
//  DSN=[CUSTPRODQUAL].[LOQUAL]
#IFEQ [HOST] z64 #THEN SKIPSM
#TABLEFIX SM  #/ SAS messages
//[DFLTDDN] DD DISP=SHR,
//  DSN=[CUSTPRODQUAL].[LOQUAL]
#SKIPSM
//TKMVSENV DD DATA,DLM='!1'
#SNIPPETINSERT SASDefaultTkmvsenv.txt
!1
//WORK     DD UNIT=[TMPUNI],SPACE=(6144,([WORKSPC])),
//         DCB=(RECFM=FS,LRECL=6144,BLKSIZE=6144)
//SASLOG   DD SYSOUT=[SYSOUT]
//SASCLOG  DD SYSOUT=[SYSOUT]
//CONFIG   DD DATA,DLM='!^'
#SNIPPETINSERT SASDefaultConfig.txt
#/IF [INSTALL-TO-STAGE] #:SASHELP=(STGSHELP + PRDSHELP)
!^
//SASLIST  DD SYSOUT=[SYSOUT]
//SASPARM  DD UNIT=[TMPUNI],SPACE=(400,(100,300)),
//         DCB=(RECFM=FB,LRECL=80,BLKSIZE=400,BUFNO=1)
//SYSIN  DD DATA,DLM='!^'  #/ Begin source code stream for SAS session. Delimiter is !^ in column 1 of line
%macro imprtxrg;               #/ Invoke SAS macro compiler.
#/ -------------------------------------------------------------------
#BEGININSTANCE              
#/ -------------------------------------------------------------------
#/ Load English content
#IFNOTEQ {LANG} en #THEN LANG
data _null_;
  %let ssddir1 =
[SSDDIR1];                    #/ part 1 of path
  %let ssddir2 =
[SSDDIR2];                    #/ part 2 of path
  %let ssddir3 =
[SSDDIR3];                    #/ part 3 of path
  %let ssddir4 =
[SSDDIR4];                    #/ altsku portion of path
  %let ssdxrg = /{LANG}/{ARTIFACTNAME};  #/ artifact name
  filename inxrg pipe "cat &ssddir1&ssddir2&ssddir3&ssddir4&ssdxrg/*";
  proc registry usesashelp mark import=inxrg;
  run;
  filename inxrg clear;
#THEN SKIPLANG
#LANG
%mend imprtxrg;   #/ close macro
%imprtxrg   #/ execute macro
%macro imprtxrg;               #/ Invoke SAS macro compiler. 
#/ -------------------------------------------------------------------
#/ Load English first to translated SASHELP 
#SET [LANG] EN     #/ Force the EN content to install to the translations
#SET [DSLANGCODE] {LANG2BCODE}    
#TABLEFIX TH  #/ translated SASHELP
data _null_;
  libname trreg
    "[CUSTPRODQUAL][STAGEQUAL].[LOQUAL]"
    disp=old;
  proc registry setsasuser="TRREG.REGSTRY";
  %let ssddir1 = 
[SSDDIR1];                    #/ part 1 of path
  %let ssddir2 =
[SSDDIR2];                    #/ part 2 of path
  %let ssddir3 =
[SSDDIR3];                    #/ part 3 of path
  %let ssddir4 =
[SSDDIR4];                     #/ altsku portion of path
  %let ssdxrg = /en/{ARTIFACTNAME};  #/ artifact name
  filename inxrg pipe "cat &ssddir1&ssddir2&ssddir3&ssddir4&ssdxrg/*";
  proc registry mark import=inxrg;
  run;
  filename inxrg clear;
  proc registry setsasuser="SASUSER.REGSTRY";
  run;
#/ -------------------------------------------------------------------
#/ This piece processes the translations 
#SET [DSLANGCODE] {LANG2BCODE}     #/ set language code
#TABLEFIX TH  #/ translated SASHELP
data _null_;
  libname trreg
    "[CUSTPRODQUAL][STAGEQUAL].[LOQUAL]"
    disp=old;
  proc registry setsasuser="TRREG.REGSTRY";
  %let ssddir1 = 
[SSDDIR1];                    #/ part 1 of path
  %let ssddir2 =
[SSDDIR2];                    #/ part 2 of path
  %let ssddir3 =
[SSDDIR3];                    #/ part 3 of path
  %let ssddir4 =
[SSDDIR4];                     #/ altsku portion of path
  %let ssdxrg = /{LANG}/{ARTIFACTNAME};  #/ artifact name
  filename inxrg pipe "cat &ssddir1&ssddir2&ssddir3&ssddir4&ssdxrg/*";
  proc registry mark import=inxrg;
  run;
  filename inxrg clear;
  proc registry setsasuser="SASUSER.REGSTRY";
  run;
#SKIPLANG
#/ -------------------------------------------------------------------
#BEGINSUFFIX                 #/ This suffix is intentionally null
#/ -------------------------------------------------------------------
%mend imprtxrg;    #/ close macro
%imprtxrg    #/ execute macro
!^
//*
#ENDBUCKET SASREGISTRYIMPORTSTG
