[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: WSDL2RPG : Empty tag for decimal variables
Thomas,
to my best knowlegde XML dosn't support null, true and false, so what
is the problem?
a node without being a parent should be passed as
<myNode />
or�
<myNode></mynode>
On Thu, Aug 25, 2011 at 5:49 PM, Thomas Raddatz
<[1]thomas.raddatz@xxxxxxxxxxx> wrote:
You did it right. But you may also consider to do it this way:
Let us assume that you had the following reference data structure
that is
used to define your request message:
D curZualBapiacap09_A2_t...
D � � � � � � � DS � � � � � � � qualified � based(pDummy)
D �aNillableA � � � � � � 128A
D �aNillableI � � � � � � �10I 0
D curZualBapiacap09_A2...
D � � � � � � � DS � � � � � � � likeds(curZualBapiacap09_A2_t)
D � � � � � � � � � � � � � � � �inz
The code producing the request message my look similar to this:
� � � '<aNillableA>' +
� � � Marshaller_toString(
� � � � �curZualBapiacap09_A2.aNillableA
� � � � �) +
� � � '</aNillableA>' +
� � � '<aNillableI>' +
� � � Marshaller_toInteger(
� � � � �curZualBapiacap09_A2.aNillableI
� � � � �) +
� � � '</aNillableI>' +
Now you may change your code as shown below to add the null
indicators:
D curZualBapiacap09_A2_t...
D � � � � � � � DS � � � � � � � qualified
D �aNillableA � � � � � � 128A � inz
D �aNillableA_isNull
D � � � � � � � � � � � � � �N � inz(*ON)
D �aNillableI � � � � � � �10I 0 inz
D �aNillableI_isNull
D � � � � � � � � � � � � � �N � inz(*ON)
And eventually change the code to produce the request message as
shown here:
� � � '<aNillableA>';
� �if (not curZualBapiacap09_A2.aNillableA_isNull);
� � � request = request +
� � � Marshaller_toString(
� � � � �curZualBapiacap09_A2.aNillableA
� � � � �);
� �endif;
� � � request = request +
� � � '</aNillableA>' +
� � � '<aNillableI>';
� �if (not curZualBapiacap09_A2.aNillableI_isNull);
� � � Marshaller_toInteger(
� � � � �curZualBapiacap09_A2.aNillableI
� � � � �);
� �endif;
� � � request = request +
� � � '</aNillableI>' +
If a value is marked as NULL the resulting XML would look like
this:
� � � <aNillableA></aNillableA>
or
� � � <aNillableI></aNillableI>
However before setting the values of the request message you had to
reset
the data structure in order to set the NULL indicators to *ON:
� �reset curZualBapiacap09_A2;
� �curZualBapiacap09_A2aNillableA = 'Hello';
� �curZualBapiacap09_A2_isNull = *OFF;
Worth a try?
Please have in mind that I put together the sample at home. I did
not yet
try it in reality.
Thomas.
Am [2]25.08.2011 08:59, schrieb Dhanushka Manjula:
>
> � � Hi Thomas,
> � � Thank you in advance for your input.
> � � I have only 3 fields to be omitted& �those 3 variables can be
> � � permanently removed from client end and host service cannot be
changed
> � � as well.
> � � So I changed STUB with search& �replace function
> � � correct me if I'm wrong..
> � � I search '<DsctDays1>0.00</DsctDays1>' string in request
variable&
> � � replace it with '<DsctDays1/>'
> � � �'<Pmtmthsupl>' +
> � � �Marshaller_toString(
> � � � � curZualBapiacap09_A2.Pmtmthsupl
> � � � � ) +
> � � �'</Pmtmthsupl>' +
> � � �'</item>' +
> � � � � '';
>
> � � � �Search_word � = '<DsctDays1>0.00</DsctDays1>';
> � � � �replace_word �= '<DsctDays1/>' � � � � � � � ;
> � � � �request = SearchR(request:search_word:replace_word);
> � � Looks like everything is OK for me..... (temporarily of cause)
> � � btw, I think this method is much smarter than 1st one, cause
once we
> � � need to omit a variable, Just only have to turn *On the
indicator.
> � � [cid:330@goomoji.gmail]
> � � � �request.myNillableField.isNull = *ON;
> � � Thanks again.
>
> � � On Thu, Aug 25, 2011 at 1:17 AM, Thomas Raddatz
> � � <[1][3]thomas.raddatz@xxxxxxxxxxx> �wrote:
>
> � � � The problem you have is a common problem with RPG because
RPG does
> � � � not
> � � � really support NULL values.
> � � � Leaving an XML element empty is one option to specify a
NULL value
> � � � in an
> � � � XML document. But since RPG does not support NULL values,
WSDL2RPG
> � � � does not
> � � � have a chance to properly recognize NULL values. For
strings you
> � � � may say
> � � � that a string value with length=0 is equal to NULL.
Although that
> � � � is not
> � � � really true it should work in most cases. Fine.
> � � � But for all other field types it is not that easy to define
a
> � � � substitution
> � � � value for NULL. For example you may say that for numeric
fields the
> � � � substitute for NULL is 0. But is that really a good idea? I
do not
> � � � think
> � � � so. But what other value should we consider to be equal to
NULL?
> � � � *LOVAL or
> � � � *HIVAL? Bad.
> � � � I wished RPG had true NULL support. All you can do now is
to say:
> � � � "For me,
> � � � 0 is equal to NULL" and then modify the generated stub
accordingly.
> � � � I have been thinking about how to support NULL values since
the day
> � � � WSDL2RPG was born. If it wasn't that ugly I would add a
NULL
> � � � indicator
> � � � field for each nillable field. If the NULL indicator is
TRUE the
> � � � field
> � � � would be treated as NULL regardless of its actual value.
Honestly I
> � � � do not
> � � � like that solution because you always have to set two
fields for
> � � � one value,
> � � � for example:
> � � � � �request.myNillableField.value = 123;
> � � � � �request.myNillableField.isNull = *OFF;
> � � � Or in case of a NULL value:
> � � � � �request.myNillableField.isNull = *ON;
> � � � Any other ideas how to solve that problem?
> � � � Thomas.
> � � � Am [2]24.08.2011 18:41, schrieb Dhanushka Manjula:
> � � � >
> � � � > � � �Hi All,
> � � � > � � �In my RPG code, I have leave out 5 line due to I
dont have
> � � � values to
>
> � � > � � �send, I need closed/empty tag for those
> � � >
> � � > � � �//newZualBapiacap09_A2.BlineDate =;
> � � > � � �//newZualBapiacap09_A2.DsctDays1 = 0;
> � � > � � �//newZualBapiacap09_A2.DsctDays2 = 0;
> � � > � � �//newZualBapiacap09_A2.Netterms = 0;
> � � > � � � �newZualBapiacap09_A2.PymtMeth �= PYMDDL � � �;
> � � > � � �//newZualBapiacap09_A2.Pmtmthsupl = ;
> � � >
> � � > � � �Following is the part of SOAP message
> � � >
> � � > � � �<BlineDate/>
> � � > � � �<DsctDays1>0.00</DsctDays1>
> � � > � � �<DsctDays2>0.00</DsctDays2>
> � � > � � �<Netterms>0.00</Netterms>
> � � > � � �<PymtMeth> � NP</PymtMeth>
> � � > � � �<Pmtmthsupl/>
> � � >
> � � > � � �For String variables, it generates closed tag
accordingly but
> � � for the
> � � > � � �decimal variables it assigns 0.00 Which were not
expected
> � � > � � �How to have a closed/empty tag for decimal
variables?
> � � > � � �Thanks
> � � >
> � � >
> � � >
> � � >
>
> � � � >
> � � � -------------------------------------------------------------------
> � � � ----
> � � � > �This is the FTPAPI mailing list. �To unsubscribe,
please go to:
> � � � >
�[3][4]http://www.scottklement.com/mailman/listinfo/ftpapi
> � � � >
> � � � -------------------------------------------------------------------
> � � � ----
> � � � -------------------------------------------------------------------
> � � � ----
> � � � This is the FTPAPI mailing list. �To unsubscribe, please
go to:
> � � � [4][5]http://www.scottklement.com/mailman/listinfo/ftpapi
> � � � -------------------------------------------------------------------
> � � � ----
>
> References
>
> � � 1. mailto:[6]thomas.raddatz@xxxxxxxxxxx
> � � 2. tel:24.08.2011%2018
> � � 3. [7]http://www.scottklement.com/mailman/listinfo/ftpapi
> � � 4. [8]http://www.scottklement.com/mailman/listinfo/ftpapi
>
>
>
>
>
-------------------------------------------------------------------
----
> This is the FTPAPI mailing list. �To unsubscribe, please go to:
> [9]http://www.scottklement.com/mailman/listinfo/ftpapi
>
----------------------------------------------------------------------
-
----------------------------------------------------------------------
-
This is the FTPAPI mailing list. �To unsubscribe, please go to:
[10]http://www.scottklement.com/mailman/listinfo/ftpapi
----------------------------------------------------------------------
-
--
Regards,
Henrik Rützou
� [11]http://powerEXT.com
� [plogofull200.png]
References
1. mailto:thomas.raddatz@xxxxxxxxxxx
2. tel:25.08.2011%2008
3. mailto:thomas.raddatz@xxxxxxxxxxx
4. http://www.scottklement.com/mailman/listinfo/ftpapi
5. http://www.scottklement.com/mailman/listinfo/ftpapi
6. mailto:thomas.raddatz@xxxxxxxxxxx
7. http://www.scottklement.com/mailman/listinfo/ftpapi
8. http://www.scottklement.com/mailman/listinfo/ftpapi
9. http://www.scottklement.com/mailman/listinfo/ftpapi
10. http://www.scottklement.com/mailman/listinfo/ftpapi
11. http://powerext.com/
-----------------------------------------------------------------------
This is the FTPAPI mailing list. To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------