Think you missed the point of Barbara's message...

As I read it, she's suggesting you split the code into two modules...
- One with ALWNUL(*USRCTL) that handles the PF I/O
- One with ALWNULL(*NO) that handles the UDDS display file I/O

HTH,
Charles


On Tue, Jan 15, 2019 at 2:58 AM Frank Kolmann <frank.kolmann@xxxxxxxxx>
wrote:

Thank you Barbara for your reply. UDDS is very much like Dynamic Screen
Manager but program described.
Please excuse the size of this post.

What I am showing is that the compiler has set
Allow null values . . . . . . . : *NO

Even though I have specified
Allow null values . . . . . . . : *USRCTL

And the reason I reckon is because I have a program described WORKSTN file.

I would be grateful to understand what Im doing wrong.

Thanks
Frank



*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+...
5770WDS V7R3M0 160422 RN IBM ILE RPG KOLMANN/DISP_UPD
S0674
Command . . . . . . . . . . . . : CRTBNDRPG
Issued by . . . . . . . . . . : KOLMANN
Program . . . . . . . . . . . . : DISP_UPD
Library . . . . . . . . . . . : KOLMANN
Text 'description' . . . . . . . : *SRCMBRTXT
Source Member . . . . . . . . . : DISP_UPD
Source File . . . . . . . . . . : XDDSSRC
Library . . . . . . . . . . . : KOLMANN
CCSID . . . . . . . . . . . . : 37
Text 'description' . . . . . . . : Display/Update a file
Last Change . . . . . . . . . . : 01/13/19 06:57:53
Generation severity level . . . : 10
Default activation group . . . . : *YES
Compiler options . . . . . . . . : *XREF *GEN *NOSECLVL *SHOWCPY
*EXPDDS *EXT *NOSHOWSKP
*NOSRCSTMT
*DEBUGIO *UNREF *NOEVENTF
Debugging views . . . . . . . . : *ALL
Debug encryption key . . . . . . : *NONE
Output . . . . . . . . . . . . . : *PRINT
Optimization level . . . . . . . : *NONE
Source listing indentation . . . : *NONE
Type conversion options . . . . : *NONE
Sort sequence . . . . . . . . . : *HEX
Language identifier . . . . . . : *JOBRUN
Replace program . . . . . . . . : *YES
User profile . . . . . . . . . . : *USER
Authority . . . . . . . . . . . : *LIBCRTAUT
Truncate numeric . . . . . . . . : *YES
Fix numeric . . . . . . . . . . : *NONE
Target release . . . . . . . . . : *CURRENT
Allow null values . . . . . . . : *NO
Define condition names . . . . . : *NONE
Enable performance collection . : *PEP
Profiling data . . . . . . . . . : *NOCOL
Licensed Internal Code options . :
Generate program interface . . . : *NO
Include directory . . . . . . . :

*...+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....+.
Preprocessor options . . . . . . : *NONE
5770WDS V7R3M0 160422 RN IBM ILE RPG KOLMANN/DISP_UPD S06
Line <---------------------- Source Specifications
----------------------------><---
Number

....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8....
S o u r c e L i s t i n g
1
H*eywords++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 H OPTION(*NODEBUGIO) ALWNULL(*USRCTL)
3 H DFTACTGRP(*NO) ACTGRP(*CALLER) DFTNAME(DISP_UPD)
4 F*
5 F* REQUIRES FILE QTEMP/FFD TO COMPILE
6 F* use cmd DSPFFD FILE(&LIB/&FILE) OUTPUT(*OUTFILE)
OUTFILE(QTEMP/FFD)
7
*--------------------------------------------------------------------*
* Compiler Options in
Effect: *
*--------------------------------------------------------------------*
* Text 'description' . . . . . . . : Display/Update a
file *
* Generation severity level . . . :
10 *
* Default activation group . . . . :
*NO *
* Compiler options . . . . . . . . : *XREF *GEN *
* *NOSECLVL
*SHOWCPY *
* *EXPDDS
*EXT *
* *NOSHOWSKP
*NOSRCSTMT *
* *NODEBUGIO
*UNREF *
* *NOEVENTF *
* Optimization level . . . . . . . :
*NONE *
* Source listing indentation . . . :
*NONE *
* Type conversion options . . . . :
*NONE *
* Sort sequence . . . . . . . . . :
*HEX *
* Language identifier . . . . . . :
*JOBRUN *
* User profile . . . . . . . . . . :
*USER *
* Authority . . . . . . . . . . . :
*LIBCRTAUT *
* Truncate numeric . . . . . . . . :
*YES *
* Fix numeric . . . . . . . . . . :
*NONE *
* Allow null values . . . . . . . :
*USRCTL *
* Storage model . . . . . . . . . :
*SNGLVL *
* Binding directory from Command . :
*NONE *
* Binding directory from Source . :
*NONE *
* Activation group . . . . . . . . :
*CALLER *
* Enable performance collection . :
*PEP *
* Profiling data . . . . . . . . . :
*NOCOL *
* Generate program interface . . . :
*NO *
*--------------------------------------------------------------------*
8 FFFD IF E DISK

*------------------------------------------------------------------------------
* RPG name External name
* File name. . . . . . . . . : FFD QTEMP/FFD
* Record format(s) . . . . . : QWHDRFFD QWHDRFFD

*------------------------------------------------------------------------------
9 FDSPUDDS CF F 803 WORKSTN
10 F INFDS(INFDS)
11




On 15/01/2019 12:53 AM, Barbara Morris wrote:
On 2019-01-14 3:05 AM, Frank Kolmann wrote:

After some attempts to cater for NULL values I have figured out that
UDDS is fundamentally in conflict with NULL values.
UDDS requires a program described Display file, and ANY program
described file makes the RPG compiler create the program with
ALWNULL(*NO).
Further, Full Free Form RPG does not allow Program described files so
UDDS has effectively gone the way of the Dodo.
...

Possibly separate modules some with ALWNULL(*USRCTL) some with
ALWNULL(*NO) but I suspect this will cause the CRTPGM to fail,

I haven't been following this thread in detail since I'm not familiar
with UDDS.

So I'm not sure whether what I'm going to say will make any real
effect difference here...

But RPG does allow program-described files in full free form. You'd
code something like WORKSTN(1000) for the device keyword for a
program-described display file.

Also, RPG allows null-value support in general in a module if it has a
program-described file. With ALWNULL(*USRCTL), it will handle the
null-indicators for any other externally-described files in the module.

You can CRTPGM where RPG modules had different ALWNULL settings The
ALWNULL setting is internal to the module, so it isn't something that
CRTPGM knows about.


--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/rpg400-l.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.

Help support midrange.com by shopping at amazon.com with our affiliate
link: https://amazon.midrange.com


This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2019 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].