× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Beppe,

In the CDD documentation it says "The DDAT for operand 1 must be valid for a date duration."

In the list of format codes it lists "Date duration" (x14) as separate from the "Labeled durations" (x0D - x13).

Maybe that means that the only valid format code for operand 1 is x14.

In any case, I don't know exactly what a "labeled duration" is.

--Dave

Beppe Costa wrote:
I've tried to call CDD from RPG as ExtProc('_CDD')  and from MI.

When the DDAT 1 is of type x'0014' I pass a pointer to a packed 8,0 and CDD
returns correct data (number of years+number of month+number of days).

When the DDAT 1 is of type x'000F' I pass a pointer to a packed 15,0 and it
fails. The message says "exactly" that the error is at offset x'0004' where
DDAT 1 starts.

A similar error occurs when I use a format other than ISO or a char(6) date
for DDAT 2  and DDAT 3.

For example If I use a YYMMDD date it works fine. If I try to use a CYYMMDD
or another format it crashes and the MCH5601 signals the offset od DDAT 2.

Btw in the meanwhile I solved the problem and I compute the duration in
another way but it would be interesting to see if there is someone that
tried to use this instruction.

Giuseppe.

----- Original Message ----- From: "Postmaster" <fbns@xxxxxxxxxxxxxxxxx>
To: "MI Programming on the AS400 / iSeries" <mi400@xxxxxxxxxxxx>
Sent: Tuesday, October 11, 2005 1:24 PM
Subject: Re: [MI400] Compute Date Duration


On 11/10/2005, at 6:48 PM, Beppe Costa wrote:

Simon,
I don't think that there is a validation on the output parameter
because
it's only a pointer.
Are you trying to run CDD from C or MI? If from C then you pass a
pointer to a packed decimal variable. If from MI then you pass the
scalar itself.

The error you reported is caused by validating the 4th input parameter.
All MI instructions that accept a template validate the content of the
template. When the template contains an invalid value the MCH5601
message is sent. This message tells you exactly what part of the
template is invalid.

Btw I'm missing something because the DDAT1 duration in x0014 is
returned
correctly with ISO and YMD date but I can't get it with other date
format.
And in any case I can never get a Labeled Duration. Unfortunately the
only
documentation is from a single page in the MI functional reference and
an
example in C that uses ISO dates. I've found nothing else.
http://publib/boulder.ibm.com/infocenter/iseries/v5r3/topic/rzatk/
topics.htm

Click Date/Time/Timestamp

Click Date/Time Concepts

Read carefully.

Thanks in any
case for your  response.
Giuseppe.


----- Original Message -----
From: "Simon Coulter" <shc@xxxxxxxxxxxxxxxxx>
To: "MI Programming on the AS400 / iSeries" <mi400@xxxxxxxxxxxx>
Sent: Monday, October 10, 2005 11:41 PM
Subject: Re: [MI400] Compute Date Duration


On 10/10/2005, at 10:53 PM, Beppe Costa wrote:

I'm trying to use the the MI CDD.

When Operand1 is a DDAT x'0014' (Date Duration) I get the right value
expressed in Years, Month and Days but when Operand1 is x'000F'
(Labeled Duration DAY) I always get a "template value invalid".
Show the complete message text of the MCH5601 message. The
substitution
text will usually tell you what part of the template is wrong.

My guess is that the variable containing the duration value is of the
wrong type. For x'0014' it must be PKD(8,0) but for x'000F' it must be
PKD(15,0)

Regards,
Simon Coulter.
--------------------------------------------------------------------
   FlyByNight Software         AS/400 Technical Specialists

   http://www.flybynight.com.au/
   Phone: +61 3 9419 0175   Mobile: +61 0411 091 400        /"\
   Fax:   +61 3 9419 0175                                   \ /
                                                             X
                 ASCII Ribbon campaign against HTML E-Mail  / \
--------------------------------------------------------------------


As an Amazon Associate we earn from qualifying purchases.

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-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.