|
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 / \ > >> -------------------------------------------------------------------- > >> > >> > >> _______________________________________________ > >> This is the MI Programming on the AS400 / iSeries (MI400) mailing list > >> To post a message email: MI400@xxxxxxxxxxxx > >> To subscribe, unsubscribe, or change list options, > >> visit: http://lists.midrange.com/mailman/listinfo/mi400 > >> or email: MI400-request@xxxxxxxxxxxx > >> Before posting, please take a moment to review the archives > >> at http://archive.midrange.com/mi400. > >> > > > > _______________________________________________ > > This is the MI Programming on the AS400 / iSeries (MI400) mailing list > > To post a message email: MI400@xxxxxxxxxxxx > > To subscribe, unsubscribe, or change list options, > > visit: http://lists.midrange.com/mailman/listinfo/mi400 > > or email: MI400-request@xxxxxxxxxxxx > > Before posting, please take a moment to review the archives > > at http://archive.midrange.com/mi400. > > > > > > > _______________________________________________ > This is the MI Programming on the AS400 / iSeries (MI400) mailing list > To post a message email: MI400@xxxxxxxxxxxx > To subscribe, unsubscribe, or change list options, > visit: http://lists.midrange.com/mailman/listinfo/mi400 > or email: MI400-request@xxxxxxxxxxxx > Before posting, please take a moment to review the archives > at http://archive.midrange.com/mi400. >
As an Amazon Associate we earn from qualifying purchases.
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.