10-12-2017
David_Luttrell
Obsidian | Level 7
Member since
07-25-2016
- 22 Posts
- 3 Likes Given
- 1 Solutions
- 2 Likes Received
-
Latest posts by David_Luttrell
Subject Views Posted 2936 04-10-2017 04:50 AM 1664 01-03-2017 04:35 AM 1730 12-14-2016 07:38 AM 1740 12-14-2016 06:30 AM 2079 12-02-2016 11:56 AM 10443 12-02-2016 11:53 AM 1033 12-02-2016 10:16 AM 3742 12-02-2016 09:28 AM 1767 12-02-2016 07:48 AM 3756 12-02-2016 07:32 AM -
Activity Feed for David_Luttrell
- Posted SAS Code Syntax Highlighting in Confluence on Administration and Deployment. 04-10-2017 04:50 AM
- Posted Re: Accessing Files previously Accessible via Local on a SAS Windows Server - Files/Directories Prom on SAS Enterprise Guide. 01-03-2017 04:35 AM
- Posted Re: Accessing Files previously Accessible via Local on a SAS Windows Server - Files/Directories Prom on SAS Enterprise Guide. 12-14-2016 07:38 AM
- Posted Accessing Files previously Accessible via Local on a SAS Windows Server - Files/Directories Prompt on SAS Enterprise Guide. 12-14-2016 06:30 AM
- Liked Re: DI Job runtime statistics while running flow through LSF for Patrick. 12-06-2016 05:11 AM
- Got a Like for Re: subsetting. 12-02-2016 03:01 PM
- Posted Re: subsetting on SAS Data Management. 12-02-2016 11:56 AM
- Posted Re: Set numeric missing value as 'NA' on SAS Data Management. 12-02-2016 11:53 AM
- Posted DI Job runtime statistics while running flow through LSF on SAS Data Management. 12-02-2016 10:16 AM
- Posted Re: Schedule flow by file event and file name on SAS Data Management. 12-02-2016 09:28 AM
- Posted Re: DI Studio 4.901 - Specify NOIPASSTHRU on Extract Transformation? on SAS Data Management. 12-02-2016 07:48 AM
- Posted Re: Schedule flow by file event and file name on SAS Data Management. 12-02-2016 07:32 AM
- Posted Re: SAS Data Integration Studio Application(.exe) Not Runnning - Could be Related to Licencing on SAS Data Management. 12-02-2016 07:21 AM
- Posted Re: SAS Data Integration Studio Application(.exe) Not Runnning - Could be Related to Licencing on SAS Data Management. 11-02-2016 04:39 AM
- Posted SAS Data Integration Studio Application(.exe) Not Runnning on SAS Data Management. 11-01-2016 01:03 PM
- Posted Unable to Find Template Table to Update Column Length in Data Integration Studio on SAS Data Management. 08-08-2016 06:08 AM
- Posted Re: Help with advanced filters on SAS Visual Analytics. 07-26-2016 11:46 AM
- Posted Re: Help with advanced filters on SAS Visual Analytics. 07-26-2016 11:34 AM
- Got a Like for Re: SAS Program for Reporting Groups and Roles at the Same Time. 07-26-2016 07:48 AM
- Posted Re: SAS Program for Reporting Groups and Roles at the Same Time on Administration and Deployment. 07-26-2016 07:34 AM
-
Posts I Liked
Subject Likes Author Latest Post 2 1 2 -
My Liked Posts
Subject Likes Posted 1 12-02-2016 11:56 AM 1 07-26-2016 07:34 AM
04-10-2017
04:50 AM
Hi, I'm just adding code to Confluence in my organisation and was just wondering about syntax highlighting. It is possible to add a language file to highlight the syntax in code blocks, and i would like to enable this for SAS. I appreciate the problem is not on the SAS side. However am having trouble locating such a file. Anybody else have any pointers or a push in the right direction for this? Kind Regards, David
... View more
01-03-2017
04:35 AM
Thanks Chris & a happy new year, We are currently using a windows based process to copy in files as a workaround, will take a look at that process. I think it is important to note due to the volume of data we are dealing with, they are scenario based simulations. That we do not intend on filling up our sas server with a significant volume of data. Kind Regards, David
... View more
12-14-2016
07:38 AM
Thanks for your reply Juan, I can see/access the Shares for these drives on the server, although, i do have a different network account to access servers vs. local so windows permissions are not the same. I think you have a good grasp of the problem, that these shares are not visible when we run using the SAS app server. Would mapping a virtual drive on the server remedy the issue in anyway. Kind Regards, David
... View more
12-14-2016
06:30 AM
Hi, Were currently looking at migrating a couple of enterprise guide projects to run on a SAS app server, which were previous run using a local server. (This is in order to ensure that we are not dealing with an underlying local project ecosystem which our team will have to support) At the moment the projects are ran locally, and files for the project (.xls/.txt) are input from a network drive. These can be accessed locally but cannot be ran on the server. When running the project users have a prompt where they enter the location of the files to be input. I tried emulating this on the server by using UNC paths to no avail, which I thought should have worked as it is a hop server from an infrastructure point of view. Does anybody have any ideas here as to the best way to access the required file? Data Migration from the drive to the server is not an option due to the volume. Kind Regards, David
... View more
12-02-2016
11:56 AM
1 Like
Write a PROC SQL and WHERE using a subquery on the dataset doing a count(*) as count on each scenario, where count >=10
... View more
12-02-2016
11:53 AM
Change the variable(s) to a characters Use a case statement to apply the NA values in the transformation otherwise that value. It may be more appropriate to transpose the dataset before applying as this will mean less cols to change.
... View more
12-02-2016
10:16 AM
Hi, Just wondering if anybody knows the answer to this, if its possible, i'm looking to analyze the runtime statistics for DI Jobs which we have in a scheduled flow. These would be the ones that you enable in a Job's properties in DI. This would be probably the quickest way to do this, as opposed to looking at each job individually in DI. Kind Regards, David
... View more
12-02-2016
09:28 AM
You could have an initial job which runs a System command to pick up the filenames and insert them into a sas array or sas variables. This would be essentially be polling any of the files. This job would then also generate the triggers required to run the specific flows. Then dependant on the inputs, triggers for each of the flows are generated and using a system command it will output them into the required directory(s). And each flow could be triggered based on what's present in a folder at a given time. That seems the most logical for what you require at the moment.
... View more
12-02-2016
07:48 AM
By default all commands are carried out in the SAS engine so you should be okay. As part of a PROC SQL statement you need to stipulate that the SQL is being passed through to the database server. e.g. below: proc sql outobs=15; connect to oracle as ora2 (user=user-id password=password); select * from connection to ora2 (select lname, fname, state from staff); disconnect from ora2; quit; You could try and lock this down even further by tightening how your Library connects to the DB http://support.sas.com/documentation/cdl/en/acreldb/63647/HTML/default/viewer.htm#a001342247.htm
... View more
12-02-2016
07:32 AM
Hi Luke, Dependencies/Sequencing Issues Between Files You could create multiple clones of the jobs in DI if they are different files and if their is a dependency between the files. And then run them as seperate flows. All Files Being Ran Through The Same Process Otherwise you can stipulate the flow to start by saying "run when any of the conditions occur while scheduling in management console." This should pick up any files in the folder at that current time. i.e. if you have multiple files that can trigger it will be set off by any one of the conditions being met. Note: Would not hard code the file names in Jobs in DI, I would create a macro variable as the file name and loop through this as precode in the job to check if they exist. Then as Linas said loop the job in DI. This would be the most concrete solution.
... View more
12-02-2016
07:21 AM
Just updating this, the licences here were a red herring. Our infrastructure adminstrators had applied a JVM patch to our machines unknowingly on the Friday prior to the issue occuring. As DI is a Java based application this had an impact. What we did to resolve is to use the workaround supplied by SAS to make DI compatable with the JVM version. List of compatable Java versions for SAS 9.3: https://support.sas.com/resources/thirdpartysupport/v93/jres.html As we were running a version above what was stipulated, we applied a SAS hotfix which enabled JAVA_TOOL_OPTIONS=-Djdk.lang.Process.allowAmbigousCommands=true in the JVM, there is a .exe for this I can't find it currently, however it worked perfectly. If you're running 9.4 this may not affect you as it apparently ships with its own JVM.
... View more
11-02-2016
04:39 AM
Thanks Linas, We have the files here, were waiting for our infrastructure admins to apply them. I assumed that DI would run through some of the warning period obviously not.
... View more
11-01-2016
01:03 PM
Hi, Tried running DI Studio and it does not appear to be running. Anybody else experience this and have any steps to resolve? Kind Regards, David
... View more
08-08-2016
06:08 AM
Hi, I'm currently updating a Data Integration Studio Job Built by Consultants, this job uses a custom transform in order to create multiple tables and sheet for ingest. This is definitely the source of the problem as I have aligned all other tables in the job and their column lengths. This transformation uses a template table in order to create the tables used in the job on the fly. I would be able to update them if they were physically there, however I cannot find the table in which the columns and their parameters are stored. I really need a second eye to look at this, if anybody could kindly do this for me? ** I know they appear to be in the vtable and vcolumn tables but when I check there they are not present in the tables themselves. This could be something to do with the fact that they're in the work directory. Any suggestions on how to approach this, (breakpointing etc)? /*==========================================================================*
* Step: 99.1.4.008 Import Excel Tab A5FK4TCA.BN0002G5 *
* Transform: 99.1.4.008 Import Excel Tab *
* Description: *
* *
* Source Tables: PERIOD_TAB - A5FK4TCA.BB00007X *
* CAP.&src._PERIOD_&rpt_basis. *
* MISCELLANEOUS_INPUTS_DWH_MAPPING - A5FK4TCA.BB00008L *
* ctl.MISCELLANEOUS_INPUTS_DWH_MAPPING *
* Target Table: MULTI_EXPENSE_RESERVE - A5FK4TCA.BB00007B *
* CAP.EXPENSE_RESERVE_&rpt_basis *
*==========================================================================*/
%let transformID = %quote(A5FK4TCA.BN0002G5);
%let trans_rc = 0;
%let etls_stepStartTime = %sysfunc(datetime(), datetime20.);
/* Access the data for CAPTURE */
LIBNAME CAP BASE "F:\SAS_Staging\Lev2\capture";
%rcSet(&syslibrc);
/* Access the data for CONTROL */
LIBNAME ctl BASE "F:\SAS_Utilities\Lev2\control";
%rcSet(&syslibrc);
%let _INPUT_count = 2;
%let _INPUT = CAP.&src._PERIOD_&rpt_basis.;
%let _INPUT_connect = ;
%let _INPUT_engine = BASE;
%let _INPUT_memtype = DATA;
%let _INPUT_options = %nrquote();
%let _INPUT_alter = %nrquote();
%let _INPUT_path = %nrquote(/ROOTFOLDER/2. Staging Layer/2.1 Capture/2.1.1 Tables/PERIOD_TAB%(Table%));
%let _INPUT_type = 1;
%let _INPUT_label = %nrquote();
%let _INPUT0 = CAP.&src._PERIOD_&rpt_basis.;
%let _INPUT0_connect = ;
%let _INPUT0_engine = BASE;
%let _INPUT0_memtype = DATA;
%let _INPUT0_options = %nrquote();
%let _INPUT0_alter = %nrquote();
%let _INPUT0_path = %nrquote(/ROOTFOLDER/2. Staging Layer/2.1 Capture/2.1.1 Tables/PERIOD_TAB%(Table%));
%let _INPUT0_type = 1;
%let _INPUT0_label = %nrquote();
%let _INPUT1 = ctl.MISCELLANEOUS_INPUTS_DWH_MAPPING;
%let _INPUT1_connect = ;
%let _INPUT1_engine = BASE;
%let _INPUT1_memtype = DATA;
%let _INPUT1_options = %nrquote();
%let _INPUT1_alter = %nrquote();
%let _INPUT1_path = %nrquote(/ROOTFOLDER/99. Utilities/99.2 Tables/MISCELLANEOUS_INPUTS_DWH_MAPPING%(Table%));
%let _INPUT1_type = 1;
%let _INPUT1_label = %nrquote(This table describes the mapping relationship between tabs from the miscellaneous inputs for all reporting basis, staging tables and data warehouse tables);
%let _OUTPUT_count = 1;
%let _OUTPUT = CAP.EXPENSE_RESERVE_&rpt_basis;
%let _OUTPUT_connect = ;
%let _OUTPUT_engine = BASE;
%let _OUTPUT_memtype = DATA;
%let _OUTPUT_options = %nrquote();
%let _OUTPUT_alter = %nrquote();
%let _OUTPUT_path = %nrquote(/ROOTFOLDER/2. Staging Layer/2.1 Capture/2.1.1 Tables/MULTI_EXPENSE_RESERVE%(Table%));
%let _OUTPUT_type = 1;
%let _OUTPUT_label = %nrquote();
/* List of target columns to keep */
%let _OUTPUT_keep = Shock Label Label2 ProductGroup Currency Bal_Sheet_tag Number PERIOD;
%let _OUTPUT0 = CAP.EXPENSE_RESERVE_&rpt_basis;
%let _OUTPUT0_connect = ;
%let _OUTPUT0_engine = BASE;
%let _OUTPUT0_memtype = DATA;
%let _OUTPUT0_options = %nrquote();
%let _OUTPUT0_alter = %nrquote();
%let _OUTPUT0_path = %nrquote(/ROOTFOLDER/2. Staging Layer/2.1 Capture/2.1.1 Tables/MULTI_EXPENSE_RESERVE%(Table%));
%let _OUTPUT0_type = 1;
%let _OUTPUT0_label = %nrquote();
/* List of target columns to keep */
%let _OUTPUT0_keep = Shock Label Label2 ProductGroup Currency Bal_Sheet_tag Number PERIOD;
%let src_file = %nrquote(&landing_act.\&env.\miscellaneous_inputs\Miscellaneous_inputs_&rpt_basis..xlsx);
%let template_table = %nrquote(&_OUTPUT0.);
%let misc_tabs_dwh_mapping = %nrquote(&_INPUT1.);
%let period_tab = %nrquote(&_INPUT0.);
%let exception_cols = ;
/* List of target columns to keep */
%let _keep = Shock Label Label2 ProductGroup Currency Bal_Sheet_tag Number PERIOD;
/* List of target columns to keep */
%let keep = Shock Label Label2 ProductGroup Currency Bal_Sheet_tag Number PERIOD;
%let rpt_basis=%upcase(&rpt_basis.);
/* Get PERIOD value for current Excel file */
data _null_;
set &period_tab.;
call symputx('capture_period',period);
run;
/* Get name of the tab for current reporting basis mapped to target DWH table */
proc sql noprint;
select &rpt_basis.
into :tab_name trimmed
from &misc_tabs_dwh_mapping.
where upcase(staging_table)=tranwrd(upcase(scan("&template_table.", 2, '.')), "&rpt_basis.", '&RPT_BASIS.');
;
quit;
%put capture_period=&capture_period.;
%put tab_name=&tab_name.;
/* Get names of columns from specified template(capture) table */
proc sql noprint;
create table work.col_names as
select name
from sashelp.vcolumn
where upcase(libname) = upcase(scan("&template_table.", 1, '.'))
and upcase(memname) = upcase(scan("&template_table.", 2, '.'));
quit;
/* Build text string for KEEP= data set option and assign it to a macro var */
data work.keep_cols;
set work.col_names;
length keep_cols $1000;
retain keep_cols '';
keep_cols = catx(' ', keep_cols, name);
call symputx('keep_cols', keep_cols);
run;
%put keep_cols=&keep_cols.;
/* Import specified tab in specified Excel file to a work table */
%import_excel_to_sas(src_table=&template_table.,
tgt_table=work.result_table,
src_file=&src_file.,
sheet_name=&tab_name.,
exception_cols=&exception_cols.);
/* Get number of variables in the imported work table */
proc sql noprint;
select nvar into :nvar
from sashelp.vTABLE
where upcase(libname) = "WORK" and upcase(memname)="RESULT_TABLE";
quit;
%put nvar=&nvar.;
data &template_table. (keep=&keep_cols. PERIOD);
set work.result_table;
length PERIOD $7;
/* Remove obs that contains null values for all variables */
if cmiss(of _all_) ^= sum(&nvar., 1);
PERIOD = upcase("&capture_period.");
run;
%rcSet(&syserr);
%rcSet(&sysrc);
%rcSet(&sqlrc);
/** Step end 99.1.4.008 Import Excel Tab **/ Kind Regards, David
... View more