Partner TechTip: Building Runtime-Prompted Views with SEQUEL

System Administration
Typography
  • Smaller Small Medium Big Bigger
  • Default Helvetica Segoe Georgia Times

Data access and analysis tools that utilize runtime prompts allow you to retrieve information faster and easier.

Written by Heath Kath

Do you struggle to keep track of countless, nearly identical queries that differ only in selection criteria like region, department, and date range? Runtime prompts help you stay organized by allowing different users and departments to run the same views but return unique, tailored results.

 

SEQUEL lets you create prompted views quickly. For example, when selecting default values, you can choose expressions from a SQL statement or view, or you can use fields from a database file. This makes it easy for end users to run requests for commonly selected variables and to set variable values for batch and scheduled jobs dynamically.

 

How to Create a Default Value Using an Expression or System Value

Suppose you're creating a SEQUEL view or report that automatically includes data from the last year of activity. You can use an expression in the default value to determine the date one year ago and use it as your start value. The following view was created using the CUSTMAST file in the SEQUELEX library:

 

SELECT   cname,amtdu,pdate

FROM    SEQUELEX/CUSTMAST

WHERE  pdate between "&&pdate1" and "&&pdate2"

 

In this example, the view will select records whose dates fall between the dates specified by your runtime variables (&&pdate1, &&pdate2). If you don't specify a default value, both date values will be defined as the current date, which will force end users to choose dates from a calendar or enter values manually. By adding the expression SQL(current date – 1 year) as your default, the view automatically uses the date from one year ago for its start date.

 

 120712KathImg 1                      

Figure 1: This images shows the variable definition.

 

When end users run the view, a runtime prompt window appears. The user can accept the default value, enter a date, or select a different start date from the drop-down calendar. The expression or field should return a character, zoned, or date field.

 

120712KathImg 2

Figure 2: Here's what the runtime prompt window looks like.

 

Other expression examples:

  • 1 week ago: SQL(current date - 7 days)
  • Current year: SQL(ZONED(year(Current date),4,0))
  • 1st of the month: SQL(cvtdate(year(current date),month(current date),01))
  • 1st of last month: SQL(cvtdate(year(current date-1 month), month(current date-1 month), 01))
  • End of last month: SQL(cvtdate(year(current date), month(current date), 01)- 1 day)

 

How to Use a System Value as a Default Value

The default value can use keywords to retrieve systems values as follows:

 

Keyword

Usage

Length

*JOBNBR

Retrieve   current job number

6

*JOB

Retrieve   current job name

10

*USER

Retrieve   current user name

10

*JOBDATE

Retrieve   current job date

6

*SYSDATE

Retrieve   current system date

6

*SYSTIME

Retrieve   current system time

6

*SYSTEM

Retrieve   current system name

8

Figure 3: These are the system keywords in SEQUEL.

 

How to Create Default Values Using a View

You can also harvest default values from SEQUEL views. This is especially useful when selection criteria is specific or when the expression for the default value is complex. For example, you might want to describe a code field from your file conditionally, so the default value appears as "Backorder" instead of "B."

1. Create a view with the CASE statement (DFTOTYPE):

 

SELECT CASE WHEN otype="B" THEN "Backorder" WHEN otype="O" THEN "Blanket" when otype="R" then "Regular" ELSE "Invalid Type" END NAME(DESC) LEN(20)

FROM sequelex/ordhead

 

The new field value of DESC can now become a default value in another view.

  

2. Create a prompted view called DFTORDEX1:

 

SELECT      cusno.custmast, cname.custmast, CASE WHEN otype="B" THEN "Backorder" WHEN otype="O" THEN "Blanket" when otype="R" then "Regular" ELSE "Invalid Type" end NAME(otype2),       invno.ordhead

FROM       sequelex/custmast,sequelex/ordhead

INNER JOIN      cusno.custmast=cusno.ordhead

WHERE     otype2=&otype2

 

Note: When you define the variable &OTYPE2, refer to the DFTOTYPE view you created earlier for the default value.

 

120712KathImg 4

Figure 4: Note the variable definition.

 

When you run the DFTORDEX1 view, the runtime prompt allows you to enter an order type or accept the default value from the DFTOTYPE view.

 

120712KathImg 5

Figure 5: And here's the runtime prompt window.

 

How to Set Up a *NOPROMPT with Runtime Variables

When you use a *NOPROMPT variable, users do not have to designate a value at runtime. This prompted view can then run in a batch job or from a scheduled job.

 

You can add the Prompt Text value *NOPROMPT to the variable definition in order to suppress the variable entry box in the prompt window as shown below. The values *NP and *NOPMT also work.

 

120712KathImg 6

Figure 6: With *NOPROMPT, the job number default is hidden.

 

Note: Be careful not to overuse *NOPROMPT. Use it only when you are able to use a default value and when users should not be prompted.

Command Examples Running from a Batch Job (All Variables Defined as *NOPROMPT)

  • EXECUTE VIEW(userlib/userview) PCFMT(*PDF) TOSTMF('/home/sqclass/custf.xls')
  • REPLACE(*YES)REPORT REPORT(userlib/userrpt) PCFMT(*PDF) TOSTMF('/home/salesfldr/&&FILENM')

RECIPIENT(This email address is being protected from spambots. You need JavaScript enabled to view it.')

 

The examples above have variables defined within the views as *NOPROMPT. The second example also uses a no-prompt variable to build a PDF filename based on the date.

 

Variable Default: SQL("File_" CAT char(current date, ISO) CAT ".pdf")

 

For more on SEQUEL Software, provider of the leading data access solution for Power Systems running IBM i, visit www.sequel-software.com/products.

 

BLOG COMMENTS POWERED BY DISQUS

LATEST COMMENTS

Support MC Press Online

$0.00 Raised:
$