In SAS Data Integration Studio External Files are read using the File Reader transformation, this will read out the necessary information and build a DATA Step from it. So usually there is no need to build your own transformation.
If you want to read out this information in your code, then there is the SAS(R) 9.4 Language Interfaces to Metadata.
The Metadata Model is described in the documentation, Information on an External file is here SAS(R) 9.4 Metadata Model: Reference
To query the Metadata Server for information about Metadata Objects, one can use Proc Metadata, or you can use DATA Step functions.
Find below a sample program, that will read out all External File definitions and some information about each column within a file. In order to be able to communicate with a Metadata Server you have to set the appropriate Metadata Server related SAS System Options such as METASERVER, METAUSER, METAPASS, ... If you run the program using SAS Enterprise Guide, you might already have a connection to the Metadata Server
data _null_;
length
file_uri $ 256
file_name $ 256
file_puri $ 256
file_pname $ 256
col_uri $ 256
col_name $ 60
col_sasname $ 32
col_sastype $ 1
;
call missing(OF file_:, OF col_:);
n = 1;
nobj=metadata_getnobj("omsobj:ExternalTable?@Id contains '.'", n, file_uri);
do i = 1 to nObj;
rc = metadata_getnobj("omsobj:ExternalTable?@Id contains '.'", i, file_uri);
rc = metadata_getattr(file_uri, "Name", file_name);
rc = metadata_getnasn(file_uri, "OwningFile", n, file_puri);
rc = metadata_getattr(file_puri, "Filename", file_pname);
putlog "INFO: Table " i= rc= file_uri= file_name= file_puri= file_pname=;
nCols = metadata_getnasn(file_uri, "Columns", n, col_uri);
do j = 1 to nCols;
rc = metadata_getnasn(file_uri, "Columns", j, col_uri);
rc = metadata_getattr(col_uri, "Name", col_name);
rc = metadata_getattr(col_uri, "SASColumnName", col_sasname);
rc = metadata_getattr(col_uri, "SASColumnType", col_sastype);
putlog "INFO: Column " j= rc= col_uri= col_name= col_sasname= col_sastype=;
end;
end;
run;