for example if fld3 value from CL is passed as '300' then in RPG it's
received as '?3?'

and for fld4 value from CL is passed as '18012021' then in RPG it's
received as '1?8?0?1?'.


Using the same data types and length giving this error for this statement
in CL program:-


CHGVAR VAR(&SELT1) VALUE('L@CTCD *EQ "' || &CTCD || +
' " *AND L@GMAB * EQ "' || &GMAB || '" *AND +
L@BRNO *EQ "' || &L@BRNO || '" *AND +
L@XMDT * EQ "' || &W1DATE || '"')

CPD0712 30 Operand does not have valid type of operator.
CPD0711 30 Operands in expression not same type.


&CTCD,&GMAB are fixed vales defined in CL program &L@BRNO is being read
from a file which has brno defined as length 3 is decimal position as 0.
and field L@XMDT is having date field which below RPG program is sending to
CL program:-

dToday s d
dPrevday s d
C eval today = %date()
c eval Prevday = Today -
%Days(1)
c call 'DT6BK'
C PARM Prevday
c seton
lr

**************
CL:-

PGM PARM(&PREVDAY)

DCL VAR (&PREVDAY) TYPE (*CHAR) LEN(10)
DCL VAR (&CTCD) TYPE *CHAR LEN(2) VALUE ('AB')
DCL VAR (&GMAB) TYPE (*CHAR) LEN(4) VALUE ('HJKL')
DCL VAR (&L@BRNO) TYPE (*CHAR) LEN(3)
DCL VAR (&L@XMDT) TYPE (*CHAR) LEN(8)
DCL VAR(&SELT1) TYPE(*CHAR) LEN(175)
DCL VAR (&W1DATE) TYPE(*CHAR) LEN(8)
DCL VAR(&P0QRY1 TYPE(*CHAR) LEN(2) VALUE('Q1')
DCL VAR(&P0QRY2) TYPE(*CHAR) LEN(2) VALUE(''Q2')
DCL VAR(&P0QRY3) TYPE (*CHAR) LEN(2) VALUE('Q3')

DCLF FILE(SSBRCPL)
READ: RCVF
MONMSG MSGID(CPF0864) EXEC(GOTO CMDLBL(END))
CHGVAR VAR(&L@CTCD) VALUE(&CTCD)
CHGVAR VAR(&L@GMAB) VALUE (&GMAB)
CHGVAR VAR(&L@XMDT) VALUE(&W1DATE)

CVTDAT DATE(&PREVDAY) TOVAR(&W1DATE) FROMFMT(*ISO) +
TOFMT(*DMYY) TOSEP(*NONE)

CHGVAR VAR(&L@XMDT) VALUE (&W1DATE)

IF COND (&L@BRNO *EQ ' ') THEN(DO)
GOTO CMDLBL(READ)
ENDDO

CHGVAR VAR(&SELT1) VALUE('L@CTCD *EQ "' || &CTCD || +
' " *AND L@GMAB *EQ "' || &GMAB || ' " *AND +
L@XMDT *EQ "' || &W1DATE | ' "')

CHKOBJ OBJ(QTEMP/BA@IMTP) OBJTYPE(*FILE)
MONMSG MSGID(CPF9801) EXEC(DO)
CRTDUPOBJ OBJ (BA@IMTP) FROMLIB(*LIB) OBJTYPE(*FILE) +
TOLIB(QTEMP) NEWOBJ(BA@IMTP) CST(*NO) +
TRG(*NO) ACCTL(*NONE)

ENDDO

CALL PGM(INBA071M) PARM(&W1DATE &P0QRY1)

OVRDBF FILE(BA@IMTP) TOFILE(QTEMP/BA@IMTP) +
OVRSCOPE(*JOB) SHARE(*YES)
OPNQRYF FILE ((QTEMP/BA@IMTP)) OPTION(*ALL) +
QRYSLT(&SELT1) KEYFLD((L@CTCD) (L@GMAB) +
(L@BRNO))
CALL PGM(BN91) PARM(&L@CTCD &L@GMAB +
&L@BRNO &L@XMDT)
CLOF OPNID(BA@IMTP)
DLTOVR FILE(*ALL) LVL (*JOB)
RCLRSC
CLRPFM FILE(QTEMP/BA@IMTP)

CALL PGM(INBA071M) PARM(&W1DATE &P0QRY2)
CALL PGM (INBA071M) PARM(&W1DATE &P0QRY3)

GOTO CMDLBL(READ)
END: ENDPGM



Thanks...

On Tue, Jan 19, 2021 at 7:12 PM Alan Shore via RPG400-L <
rpg400-l@xxxxxxxxxxxxxxxxxx> wrote:

Hi
When you say that field2 is a date field, are you saying that it is a
field that represents a date (CHAR(6) or CHAR(8) depending on how the date
is defined - MMDDYY or MMDDCCYY
Or is it a TRUE date field (type L) - but you are passing it as character
(char(10))


Alan Shore
E-mail : ASHORE@xxxxxxxx
Phone [O] : (631) 200-5019
Phone [C] : (631) 880-8640
'If you're going through hell, keep going.'
Winston Churchill

-----Original Message-----
From: RPG400-L [mailto:rpg400-l-bounces@xxxxxxxxxxxxxxxxxx] On Behalf Of
techie21 IT
Sent: Monday, January 18, 2021 8:32 AM
To: RPG programming on IBM i <rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: [EXTERNAL] Fwd: passing different data types field values from CL
to RPG

Hi,

I have two fields let's say fld1,fld2(date field) and having their data
types in CL program as Character but in RPG program they are as numeric so
the problem is happening when we are passing these parameters from CL to
RPG program for example if we pass fld2(having date value in it) to a RPG
program then up on debug it's known that it captures some junk value and
same happens for fld1( which is character in CL program) and when same is
passed in RPG then it gets some junk value in it i have seen these junk
values while debugging both the programs they are passed well from CL but
the moment they come in RPG becomes junk values.how can we prevent this
from happening?

Any suggestions please?


Thanks..
--
This is the RPG programming on IBM i (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@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.

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

--
This is the RPG programming on IBM i (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@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.

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


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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

This mailing list archive is Copyright 1997-2024 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].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.