BookmarkSubscribeRSS Feed
Patrick
Opal | Level 21

I'm not sure that I understand why you believe that there is no normal SDLC possible with DIS. For me DIS is a development tool and the only place where you modify DIS jobs in in a DEV environment. I've seen this working this way in many implementations.

In the link with "user credentials outdated -> redeploy" it clearly states that this only happens if you're not using AUTHDOMAIN. With this option set the job (the deployed job so a .sas file) looks up the credentials during run time. I normally have all my libraries pre-assigned so no libname statement gets generated into the code at all.

Not sure why you believe the OP's question wouldn't work. If you have to deal with a changing file name then you need to use a macro variable (as you would when hand-coding stuff). And you can use a macro variable when defining external file metadata.

The way I normally implement is to have autocall macros with the "smart" of creating and populating the macro vars. If a macro var is used almost everywhere (eg. a "data date") then I set it in the autoexec, if it's only used in a few jobs then I define a User Transformation which calls a "set environment" macro and have such a transformation as first node in my DI job. Doing things this way then allows you to create a export package in the source environment (.spk), import it into the target environment and re-deploy the jobs without the need to change anything in the DI jobs.

The jobs will use the library definitions from the target environment as defined in metadata (and defining such libraries is a normal one off task).

jakarman
Barite | Level 11

Partick, that is with good answers, it is fun and feeding my appetite.  A lot to agree on and some comments

I did not say it completely impossible to do normal SDLC with DI. I did say you have to work around some issues.

This is not too difficult knowing those requirements and doing an technical implementation according that. However, you have to be experienced with this to understand the why's.

- I see as you DI also as a development toot for a DEV environment

  That is why I don not like any documentation in the manuals possible giving other expectations. Those kind are easily being abused.

The SDLC can be solved. even possible using the classic release management tools (Rational nolio panvalet endevor etc.) for the delivered run-time parts the sas-code.

  Using those classic tools is missing the fundamental functional concept that the SAS-metadata is the equivalent of source-code and the sas-code is the runtime executable.

  Rebuilding the executable sas-code is requiring is consistent SAS metadatabase. Checking en checkout of the associated packages is needed in that case.        

  Having done that redeploy once (UAT) and verified  I would not do that again in P as that will guarantee tested run-time code is not changed anymore.  

- Pre-assigning libraries, I fully agree on that. It is eliminating all hard coded naming conventions in source code on that.

  When a little variation is needed in some SAS code the escape can be using the pathname function (user manual coded).

  I would personal advice also having the Filenames being pre-assigned. The fileref using in a same independent physical way <fileref(member)>.

  Thinking about this one, you can solve a lot  he op'sIn the old mainframe days this kind of guidelines where already mandatory implemented.

- Using autocall macros for smart creating and populating macro-vars. Using the autoexec for that. Wow an other agreement I surely like.

  When there are different naming conventions DEV-TST/ACPT-PRD (DTAP) datas, date-intervals they can be solved here.

  Standard default values as a generic name used as template-name (eg varfilenm=template; ) is one them.

Well, I am glad to have found somebody with some kind of proposals as I do. Still the issue they are not documented as "good practice" at a implementation BI/DI.

Do you know my frustrations on experiences on how many IT specialists/architects are not getting this? Resulting in strange and/or blocking situations - realizations.

Back to the Op's question. Suppose we follow this kind of proposals. Setting a default value for a template file will allow the interactive building with DI.

Setting that default value to real value at run-time will allow the variation of the involved filenames.   I think we both have already pointed in this direction in earlier posts.

That configuration part changing the autoexec (usermods per appserver) is an platform-admin task often seen in the IT ivory-tower.

---->-- ja karman --<-----

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

How to connect to databases in SAS Viya

Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 16 replies
  • 3304 views
  • 1 like
  • 4 in conversation