Skip to Main Content
IBM Power Ideas Portal


This portal is to open public enhancement requests against IBM Power Systems products, including IBM i. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Not under consideration
Workspace IBM i
Created by Guest
Created on May 28, 2015

Allow CHGPF and ALTER TABLE to drop columns

When CHGPF is issues as a 5250 green screen command, and the effect is to drop or shorten a column, an inquiry message requesting to proceed is sent to the workstation so the user can allow the CHGPF to proceed. In RDi, this does not work since the CHGPF command operates in batch mode. Unfortunately this forces developers out of RDi and into Green Screen. This request is for a way to allow RDi to prompt for CHGPF conditions that cause an inquiry message on the Green Screen. This may involve coordination with the IBM i operating system group.


Use Case:

When compiling a PF using the CHGPF option, if the command would normally (in interactive mode) send an inquiry message, such as CPA32B2, display a prompt in RDi rather than taking the default 'C' response.


Idea priority Medium
  • Guest
    Reply
    |
    Sep 14, 2015

    Due to processing by IBM, this request was reassigned to have the following updated attributes:
    Brand - Servers and Systems Software
    Product family - Programming Languages
    Product - Developer for Power Systems

    For recording keeping, the previous attributes were:
    Brand - Rational
    Product family - Design & development
    Product - Developer for Power Systems

  • Guest
    Reply
    |
    Jun 4, 2015

    After investigation, it has been determined that there is no safe way for RDi to support this because changes to things like *SYSRPYL are not local to the current job. The right way to address this is to have CHGPF/ALTERPF add a parameter to suppress this message. Please continue to pursue a requirement on the operating system.

  • Guest
    Reply
    |
    May 30, 2015

    On 29-May-2015 19:46 -0500, CRPence wrote:
    > On 28-May-2015 10:57 -0500, Buck Calabro wrote:
    >> IBM i insists on issuing a message to warn you if your CHGPF is
    >> about to drop a column - but only if issued interactively. Issue a
    >> CHGPF in a batch job and IBM i behaves differently - IBM i does not
    >> issue CPA32B2 at all in batch. Instead, it issues a CPD32CC *DIAG,
    >> CPD32CE *DIAG (which falsely claims an inquiry message was replied
    >> to!), and a CPF7304 *ESCAPE which terminates the CHGPF. The upshot
    >> of that is that not even changing the reply list will help!
    >>
    >> In a last ditch effort to try a workaround, I did a CHGJOB
    >> INQMSGRPY(*RQD) and tried it. No dice. IBM i says 'Hey, you're in
    >> batch so you get auto-killed'.
    >>
    >> This is a situation with IBM i itself, not RDi. It'll probably
    >> take a DCR or a COMMON requirement to change CHGPF to allow a
    >> batch process to issue CPA32B2.
    >
    > Hmm. Odd. I did not recall that behavior. I just tested on v5r3 and
    > saw exactly that. I thought the effect had always been the inquiry
    > msg CPA32B2, and that an auto-reply [with the message default] was
    > the effect for batch with Inquiry Message Reply Handling (INQMSGRPY)
    > of required (*RQD); and that the System Reply List (*SYSRPYL) option
    > was also available in batch. Given the clearly incorrect implication
    > of msg CPD32CE, per the conspicuous contradiction of the claim of the
    > prior inquiry that is not visible and only the msg CPD32CC being
    > logged prior, [if it were me affected, then] I would choose to report
    > the issue as defect.
    >

    I can not use trace nor the reply list entry feature, plus I have
    only v5r3, so I can only speculate; I really do not recall any specifics
    of this or similar inquiry message coding in the DB feature of the OS.

    The situation may be that the QDBCHGFI program, procedure VFYALTER
    codes an inquiry messaging processing that is not a common System
    Program Interface (SPI) supplied by the Message Handling (MH) component
    whereby an inquiry is sent to *EXT for the interactive job, but
    redirected to *SYSOPR (QSYSOPR) message queue for jobs that do not have
    the 5250 workstation at which to provide a reply. Effectively that
    would be an OS interface to the Send User Message (SNDUSRMSG), with the
    asterisk as special\single value for the To Message Queue (TOMSGQ)
    parameter specification, for which the meaning is "In an interactive
    job, the message is to be sent to the external message queue (*EXT). In
    a batch job, the message is to be sent to the system operator (message
    queue QSYSOPR in library QSYS)."

    Possibly the issue is that the effective specification by VFYALTER of
    TOPGMQ(*EXT) via whatever is the chosen MH interface to send the inquiry
    does not log the Sender Copy of the inquiry nor the Reply despite the
    effect is legitimately that the /default reply/ was sent by the MH due
    to no WS available in a batch job. Or the VFYALTER is removing the
    message(s), and the removals effect the loss of both the Sender Copy and
    the Reply as well as the Inquiry message from the joblog.

    Whatever...

    I do recall there was some /strange/ System Reply List Entry
    (SYSRPYLE) added long ago as part of the default system-supplied for
    CPA32B2; odd, because the comparison data made no sense, CMPDTA('iSeries
    Navigator'). I believe the MH feature must actually have a special-case
    for that specific message for work running within the iNav interface;
    i.e. as a server job for that interface. Perhaps the same effect can be
    extended to an RDi server job [if someone were to pursue]? That might
    actually be easier than getting DB to _change_ the inquiry processing to
    act in the more conventional manner [implicitly; either via alternate
    specifications on the current SNDPgmMSG-like invocation, or changing to
    use a different SNDUSRMSG-like interface] whereby the inquiry sent to
    *EXT is implicitly redirected to *SYSOPR for /batch/ jobs. I would have
    expected however, that anyone making the change to the MH to effect such
    a special-case would have recognized the /flaw/ in the DB code and just
    said... "Code this instead of that to be consistent with other code
    whereby the inquiry redirects to *SYSOPR in non-interactive."

    --
    Regards, Chuck

  • Guest
    Reply
    |
    May 30, 2015

    On 30-May-2015 00:35 -0500, CRPence wrote:
    > <>
    > FWiW there is also an inquiry message Exit feature that could be
    > used to supply the reply.

    Searching on the procedure name VFYALTER that sends the inquiry
    [apparently to Program Message Queue *EXT; the external program message
    queue], I found the following article Carsten wrote about using an
    Environment Variable (ENVVAR) to establish the preference to effect
    'I'=Ignore for the msg CPA32B2 inquiry:


    APIs by Example: Exit Points, APIs, and Environment Variables
    Control inquiry and reply messages in an interactive job—here's how!
    Jul 18, 2013 Carsten Flensburg
    "...
    the environment variable SQL_VFY_ALTER_IGNORE. If this variable is
    present and has the value Y, both exit programs will override and change
    the reply value of the CPA32B2 inquiry message to I so that the ALTER
    TABLE DROP COLUMN SQL statement can process and complete successfully.
    ..."


    July 2013 Source Code Files
    "Issue's Articles and Programs Type Page Figure
    Exit Points, APIs, and Environment Variables, pg.19
    CBX2611 RPGLE 19
    CBX2612 RPGLE 19
    CBX261M CLP 19
    ..."

  • Guest
    Reply
    |
    May 30, 2015

    On 30-May-2015 00:35 -0500, CRPence wrote:
    > <>
    > FWiW there is also an inquiry message Exit feature that could be
    > used to supply the reply.

    Searching on the procedure name VFYALTER that sends the inquiry
    [apparently to Program Message Queue *EXT; the external program message
    queue], I found the following article Carsten wrote about using an
    Environment Variable (ENVVAR) to establish the preference to effect
    'I'=Ignore for the msg CPA32B2 inquiry:


    APIs by Example: Exit Points, APIs, and Environment Variables
    Control inquiry and reply messages in an interactive job—here's how!
    Jul 18, 2013 Carsten Flensburg
    "...
    the environment variable SQL_VFY_ALTER_IGNORE. If this variable is
    present and has the value Y, both exit programs will override and change
    the reply value of the CPA32B2 inquiry message to I so that the ALTER
    TABLE DROP COLUMN SQL statement can process and complete successfully.
    ..."


    July 2013 Source Code Files
    "Issue's Articles and Programs Type Page Figure
    Exit Points, APIs, and Environment Variables, pg.19
    CBX2611 RPGLE 19
    CBX2612 RPGLE 19
    CBX261M CLP 19
    ..."

  • Guest
    Reply
    |
    May 30, 2015

    Re: [WDSCI-L] CHGPF - Cannot drop fields

    CRPence
    to:
    wdsci-l
    05/30/2015 01:39 AM


    Sent by:
    "WDSCI-L"




    From: CRPence

    To: wdsci-l@midrange.com

    Sent by: "WDSCI-L"

    Please respond to Rational Developer for IBM i / Websphere Development Studio Client for System i & iSeries



    On 27-May-2015 10:55 -0500, Mark Murphy/STAR BASE Consulting Inc. wrote:
    > I am having issues dropping fields with CHGPF and RDi 9.1.1. It
    > tells me it worked, but the file does not change and the log includes
    > a CPD32CE indicating that a C was used to reply to CPA32B2.

    If "It tells me it worked" means to imply that the RDi interface to
    the command entry reported that the request was successful rather than
    reporting that the request had failed with an escape msg CPF7304, and
    that in fact the joblog shows that error CPF7304 logged as sev-40
    Escape, then that would seem to suggest a defect with the RDi for
    failing to notify that the command request had failed.

    > If I use CHGPF directly from a 5250 interactive command line, I get
    > the option to ignore the error. Is there a way to do that in RDi? Not
    > sure how you would redirect the inquiry message to the RDi job as it
    > is a batch, and takes the default reply which is C. Just wondering
    > if anyone had solved this without changing the system reply list.
    >

    Should be able to Add [System] Reply List Entry (ADDRPYLE) that is
    specific to that file, so as not to worry about a conflict; include
    Compare Data (CMPDTA) for that file and library name, and ensure the
    server job runs with Inquiry Message Reply [Handling] (INQMSGRPY) set to
    use the System Reply List (*SYSRPL). The following scripted requests,
    assuming the issue for /batch job/ noted by Buck does not also persist
    for the RDi server job, for example:

    ADDRPYLE SEQNBR(32) MSGID(CPA32B2) CMPDTA('THE_FILE THE_LIBR ')
    RPY('I') DUMP(*NO) /* ....+....1....+....2 */

    CHGJOB JOB( qualified_RDiJob ) INQMSGRPY(*SYSRPYL)

    Too bad that there is [still] no User Reply List object support :-(

    As BKBratager mentions there is also the option to effect the default
    reply from an alternate message file; the following scripted actions,
    for example:

    CRTMSGF MSGF(QTEMP/MYCPFMSGF) TEXT('Ovr CPA32B2 default reply')

    MRGMSGF FROMMSGF(*LIBL/QCPFMSG) TOMSGF(QTEMP/MYCPFMSGF)
    RPLMSGF(*NONE) SELECT(CPA32B2) OMIT(*N)

    CHGMSGD MSGID(CPA32B2) MSGF(QTEMP/MYCPFMSGF) DFT('I')

    OVRMSGF QCPFMSG QTEMP/MYCPFMSGF

    CHGJOB JOB( qualified_RDiJob ) INQMSGRPY(*DFT)


    FWiW there is also an inquiry message Exit feature that could be used
    to supply the reply.

    --
    Regards, Chuck