Output File Name as Parameter with Production Job

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Output File Name as Parameter with Production Job

Brad Brazil
Greetings -

I've would like to add a parameter to the production job I've created that takes the contents of a
given production job parameter and appends it to the name of the output file name so that I can
have unique output file names each time I run the job.

Heck, I'll even take the ability to create a production job variable and have the contents of that be the
actual output file name.

The production job creates a slew of charts/graphs/etc.  I will be running this job 90+ times (one for
each Academic Department) and it would sure be nice to "parameteritize" the output file name to
correspond with the department name (which is the other parameter that is used for the job).

As always, thanks in advance!

Brad

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Reply | Threaded
Open this post in threaded view
|

Re: Output File Name as Parameter with Production Job

Jason Burke
Here is command syntax that should get you on the right path, assuming
that you are using SPSS 15 or higher:

OUTPUT NEW .
OUTPUT NAME production_job .

SELECT IF gender = 'm' .
FREQUENCIES jobcat .
OUTPUT SAVE
  OUTFILE = 'C:\Temp\' + 'm' + '.spv' .
OUTPUT CLOSE production_job .

I have split the file name into three parts consisting of destination
directory, file name and extension.

HTH


Jason


On 8/13/08, Brad Brazil <[hidden email]> wrote:

> Greetings -
>
> I've would like to add a parameter to the production job I've created that takes the contents of a
> given production job parameter and appends it to the name of the output file name so that I can
> have unique output file names each time I run the job.
>
> Heck, I'll even take the ability to create a production job variable and have the contents of that be the
> actual output file name.
>
> The production job creates a slew of charts/graphs/etc.  I will be running this job 90+ times (one for
> each Academic Department) and it would sure be nice to "parameteritize" the output file name to
> correspond with the department name (which is the other parameter that is used for the job).
>
> As always, thanks in advance!
>
> Brad
>
> =====================
> To manage your subscription to SPSSX-L, send a message to
> [hidden email] (not to SPSSX-L), with no body text except the
> command. To leave the list, send the command
> SIGNOFF SPSSX-L
> For a list of commands to manage subscriptions, send the command
> INFO REFCARD
>

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Reply | Threaded
Open this post in threaded view
|

Re: Output File Name as Parameter with Production Job

Albert-Jan Roskam
In reply to this post by Brad Brazil
Hi,

The following might work. I don't use the Production Facility that often, but I believe spp parameters (confusingly called 'macro parameters') are indicated with an @-sign. If it doesn't work, try using '@unique_name' without the quotes. I believe SAVE OUTPUT was implemented in v15 and higher.

save output = 'd:\temp\' + '@unique_name' + '_suffix.spo'.

Cheers!!
Albert-Jan


--- On Tue, 8/12/08, Brad Brazil <[hidden email]> wrote:

> From: Brad Brazil <[hidden email]>
> Subject: Output File Name as Parameter with Production Job
> To: [hidden email]
> Date: Tuesday, August 12, 2008, 7:26 PM
> Greetings -
>
> I've would like to add a parameter to the production
> job I've created that takes the contents of a
> given production job parameter and appends it to the name
> of the output file name so that I can
> have unique output file names each time I run the job.
>
> Heck, I'll even take the ability to create a production
> job variable and have the contents of that be the
> actual output file name.
>
> The production job creates a slew of charts/graphs/etc.  I
> will be running this job 90+ times (one for
> each Academic Department) and it would sure be nice to
> "parameteritize" the output file name to
> correspond with the department name (which is the other
> parameter that is used for the job).
>
> As always, thanks in advance!
>
> Brad
>
> =====================
> To manage your subscription to SPSSX-L, send a message to
> [hidden email] (not to SPSSX-L), with no body
> text except the
> command. To leave the list, send the command
> SIGNOFF SPSSX-L
> For a list of commands to manage subscriptions, send the
> command
> INFO REFCARD

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Reply | Threaded
Open this post in threaded view
|

Re: Output File Name as Parameter with Production Job

Daniel Robertson
In reply to this post by Brad Brazil
By wrapping the save command inside a Python block you can name the
outfile nearly anything you want.

Here's a block I use to append the date of the datamart extract to my
file name, where the date is contained in the variable SNAPSHOT_DATE. It
reads the value of SNAPSHOT_DATE from the first case, which is ok
because it is constant across all cases.

BEGIN PROGRAM.
import spss,spssdata
data = spssdata.Spssdata(indexes=('SNAPSHOT_DATE'),
cvtDates=('SNAPSHOT_DATE',))
mydate=str(data.fetchone()[0])[0:10]
data.close()
spss.Submit(r"""
  SAVE OUTFILE = 'X:\Data\FinAid\PS SDM
Extracts\IRP_FinAid_AwardFile_%(mydate)s.SAV' .
  """ % {'mydate':mydate})
END PROGRAM.


Dan R.


Brad Brazil wrote:

> Greetings -
>
> I've would like to add a parameter to the production job I've created that takes the contents of a
> given production job parameter and appends it to the name of the output file name so that I can
> have unique output file names each time I run the job.
>
> Heck, I'll even take the ability to create a production job variable and have the contents of that be the
> actual output file name.
>
> The production job creates a slew of charts/graphs/etc.  I will be running this job 90+ times (one for
> each Academic Department) and it would sure be nice to "parameteritize" the output file name to
> correspond with the department name (which is the other parameter that is used for the job).
>
> As always, thanks in advance!
>
> Brad
>
> =====================
> To manage your subscription to SPSSX-L, send a message to
> [hidden email] (not to SPSSX-L), with no body text except the
> command. To leave the list, send the command
> SIGNOFF SPSSX-L
> For a list of commands to manage subscriptions, send the command
> INFO REFCARD
>
>

--
Daniel Robertson
Senior Research and Planning Associate
Institutional Research and Planning
Cornell University / irp.cornell.edu

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD
Reply | Threaded
Open this post in threaded view
|

Re: Output File Name as Parameter with Production Job

Peck, Jon
Along these lines, I'd like to point out that there is a function in the spssaux2.py module downloadable from SPSS Developer Central (www.spss.com/devcentral) that can be helpful for this sort of thing.

def CreateFileNameWDate(basename=None):
    """Create a filename, including path, of the form base_datetime.ext
    where datetime is the current date and time in a file system safe format of
    YYYY-MM-DD_HH-MM.

    If the basename is not specified, the filename of the active dataset is used.
    If there is none, ValueError is raised.
    If basename already contains a datetime stamp at the end (but before the extension),
    it is removed."""

This was originally written to provide a date-stamping mechanism for data files, but it is equally useful for other types.

HTH,
Jon Peck

-----Original Message-----
From: SPSSX(r) Discussion [mailto:[hidden email]] On Behalf Of Daniel Robertson
Sent: Wednesday, August 13, 2008 7:20 AM
To: [hidden email]
Subject: Re: [SPSSX-L] Output File Name as Parameter with Production Job

By wrapping the save command inside a Python block you can name the
outfile nearly anything you want.

Here's a block I use to append the date of the datamart extract to my
file name, where the date is contained in the variable SNAPSHOT_DATE. It
reads the value of SNAPSHOT_DATE from the first case, which is ok
because it is constant across all cases.

BEGIN PROGRAM.
import spss,spssdata
data = spssdata.Spssdata(indexes=('SNAPSHOT_DATE'),
cvtDates=('SNAPSHOT_DATE',))
mydate=str(data.fetchone()[0])[0:10]
data.close()
spss.Submit(r"""
  SAVE OUTFILE = 'X:\Data\FinAid\PS SDM
Extracts\IRP_FinAid_AwardFile_%(mydate)s.SAV' .
  """ % {'mydate':mydate})
END PROGRAM.


Dan R.


Brad Brazil wrote:

> Greetings -
>
> I've would like to add a parameter to the production job I've created that takes the contents of a
> given production job parameter and appends it to the name of the output file name so that I can
> have unique output file names each time I run the job.
>
> Heck, I'll even take the ability to create a production job variable and have the contents of that be the
> actual output file name.
>
> The production job creates a slew of charts/graphs/etc.  I will be running this job 90+ times (one for
> each Academic Department) and it would sure be nice to "parameteritize" the output file name to
> correspond with the department name (which is the other parameter that is used for the job).
>
> As always, thanks in advance!
>
> Brad
>
> =====================
> To manage your subscription to SPSSX-L, send a message to
> [hidden email] (not to SPSSX-L), with no body text except the
> command. To leave the list, send the command
> SIGNOFF SPSSX-L
> For a list of commands to manage subscriptions, send the command
> INFO REFCARD
>
>

--
Daniel Robertson
Senior Research and Planning Associate
Institutional Research and Planning
Cornell University / irp.cornell.edu

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD

=====================
To manage your subscription to SPSSX-L, send a message to
[hidden email] (not to SPSSX-L), with no body text except the
command. To leave the list, send the command
SIGNOFF SPSSX-L
For a list of commands to manage subscriptions, send the command
INFO REFCARD