[CLOSED] Exchange fields to CLP

This Q&A forum allows users to post and respond to "How Do I Do ....." questions. Please do not use to report (suspected) errors - you must use your regional help desk for this. The information contained in this forum has not been validated by LANSA and, as such, LANSA cannot guarantee the accuracy of the information.
Post Reply
User avatar
Fabrice.geay
Posts: 21
Joined: Tue Dec 12, 2017 2:06 am
Location: FRANCE
Contact:

[CLOSED] Exchange fields to CLP

Post by Fabrice.geay »

I have a CL that calls an RMDLX function with 4 input parameters and 11 output parameters.

CALL PGM(MàEXCHL) PARM('PUT' +
'UMUTULL P0030' &MUTULL +
'UCODPARLL A0180' &CODPARLL +
'UCODLETLL P0030' &CODLETLL +
'UCODOP1LL A0100' &CODOP1LL)

LANSA REQUEST(RUN) PROCESS(MV_TEST) +
FUNCTION(MVLETA1) PARTITION(DEV)

CALL PGM(MàEXCHL) PARM('GET' +
'ULIGN1 A0780' &LIGN1LL +
'ULIGN2 A0780' &LIGN2LL +
'ULIGN3 A0780' &LIGN3LL +
'ULIGN4 A0780' &LIGN4LL +
'ULIGN5 A0780' &LIGN5LL +
'ULIGN6 A0780' &LIGN6LL +
'ULIGN7 A0780' &LIGN7LL +
'ULIGN8 A0780' &LIGN8LL +
'ULIGN9 A0780' &LIGN9LL +
'ULIGN0 A0780' &LIGN10LL +
'UCODRETLL A0010' &CODRETLL)

The RDMLX function must return:
£uLIGN1LL := '- Nous avons procédé à la radiation de votre option XXXXXX, à compter du '
£uLIGN2LL := ' CHAMP LIBRE suite à la réception de votre demande.'
£uLIGN3LL := ' Votre carte de tiers payant devenant obsolète, nous vous remercions de nous'
£uLIGN4LL := ' la faire parvenir accompagnée de la déclaration sur l''honneur ci-jointe'
£uLIGN5LL := ' dûment complétée et signée.'
£uLIGN6LL := *blanks
£uLIGN7LL := *blanks
£uLIGN8LL := *blanks
£uLIGN9LL := *blanks
£uLIGN10LL := *blanks

But when i debugg my CL, i have this
&LIGN1LL='- Nous avons procédé à la radiati CHAMP LIBRE suite à la réceptio Votre cart'
&LIGN2LL=' CHAMP LIBRE suite à la réceptio Votre carte de tiers payant dev la faire p'
&LIGN3LL=' Votre carte de tiers payant dev la faire parvenir accompagnée d dûment com'
&LIGN4LL=' la faire parvenir accompagnée d dûment complétée et signée.
&LIGN5LL=' dûment complétée et signée.
&LIGN6LL='
&LIGN7LL='
&LIGN8LL='
&LIGN9LL='
&LIGN10LL='

You can see that I have the first 34 characters of the variable concatenated with the first 34 of the following line.
Last edited by Fabrice.geay on Wed Jun 29, 2022 11:48 pm, edited 1 time in total.
Best regard

Fabrice GEAY
adale
Posts: 210
Joined: Wed Apr 08, 2020 9:18 pm
Location: Poplarville, MS

Re: Exchange fields to CLP

Post by adale »

In my work with the M@EXCHL program, I was told it would only handle a total of 10 parms (in or out, combined), but I would run into a similar problem as you have mentioned. I changed to start only using no more than a total of 8 parms (in or out, combined), and have not had any issues since.
Try breaking your exchange into to smaller groups, so you would have two CALL PGM(M@EXCHL) statements in your program, this worked for me.
Example to try:
CALL PGM(MàEXCHL) PARM('GET' +
'ULIGN1 A0780' &LIGN1LL +
'ULIGN2 A0780' &LIGN2LL +
'ULIGN3 A0780' &LIGN3LL +
'ULIGN4 A0780' &LIGN4LL +
'ULIGN5 A0780' &LIGN5LL)

CALL PGM(MàEXCHL) PARM('GET' +
'ULIGN6 A0780' &LIGN6LL +
'ULIGN7 A0780' &LIGN7LL +
'ULIGN8 A0780' &LIGN8LL +
'ULIGN9 A0780' &LIGN9LL +
'ULIGN0 A0780' &LIGN10LL +
'UCODRETLL A0010' &CODRETLL)
Arlyn Dale
Servias LLC
User avatar
Fabrice.geay
Posts: 21
Joined: Tue Dec 12, 2017 2:06 am
Location: FRANCE
Contact:

Re: Exchange fields to CLP

Post by Fabrice.geay »

Thank you,
it works for me too
Best regard

Fabrice GEAY
Post Reply