I try to explain this problem of mine (even if it is not easy); my friends has developed an App for Android that exchanges data with As400 through of the calls of Web Service AS400 that send / read file Json (in practice some WSs serve for importing data on APP therefore they send data JSon to the Tablet, while other WSs receive data JSon from the Tablet). We have implemented these WSs starting from the examples furnished in the site http://www.powerext.com/2015/06/03/my-first-wp-homepage /; everything has regularly worked up to the day before yesterday, when suddenly the call to the WS, from one of the two devices, that had to read and to unload the data on As400 has begun to go to error, as the function "storeToStmf(jsonStore: '/ myjson.json':1208) " (you see link above according to example it rules 86) was recalled passing him -1 in the parameter jsonStore. From what I have understood, it seems that the value -1 have passed when the file Json is empty (I have made some verifications and the file Json Non it is empty) or it has some other problems of encoding or something similar. Premised that the other device keeps on regularly working and the version of the App is the same one on both the devices and on As400 y has not been modified anything, I don't absolutely succeed in understanding from thing can spring this problem; the only things that can come me to mind are:
1. could have been change some setings in the tablet that has influenced in the use of the coding of the characters of the file Json, that is produced by the device?
2. an updating of the version of Android could have been performed that is causing this problem? (almost surely Android has been adjourned the same day when they have begun out the problems. N.B. in the device in which I have problems I have Android 5.1.1, while in the other one I have the 4.3)
To try to understand what the problem could be, I have made a program ex new that goes to read the data Json sent by the Device (following the suggestion of Henrik Rützou owner http://powerEXT.com) and it performs how much under brought:
//?Clear powerEXT Service Program & Response Objects
clearSrvPgm();
//?get input from Apache
httpStore = getExtInputRaw();
// Process the request
// .. save what is received for testing
storeToStmf(httpStore: '/tmp//myjson.json'+ %Trim(%Char(%TimeStamp)):1208);
the content of the file coming from the device "incriminated", and saved in the IFS it is the following:
************Inizio dei dati****************
BtBb'CaC»ChCaBØ# CdCý^Ca ChCjBbBª BtBbCu;CuBµ CuC~ Bµ' BbBªBbBbBðBb'C£ ;# CuBØC¿ BØ CjCdCd
BbBðBbBµBµ;C¡C£Ct;C£ ';'Cs BbBªB°BðBbC¡C£Ct;C£ ';'Cs BbBªB°BðBb CÝ ;C¡C£Cv*
BØCt Cd Ce BbBðBbBµBµ;C¡C£Ct;C£ ';'Cs BbBªB°BðBbC¡C£Ct;C£ ';'Cs BbBªB°BðB
BbBªB°BðBb C~C¡Cu;C¿Cu BbBªB°BðBb C~C¡Cu;C¿CuBqBbBªB°BðBbCu #; BµCvBµCzCzC£ B
Cu;C¿CuBlBbBªB°BðBb C~C¡Cu;C¿CuBmBbBªB°BðBb C~C¡Cu;C¿CuBnBbBªB°BðBb C~C¡Cu;C¿C
************Fine dati**********************
While the content of the file coming from the device Ok, and saved in the Ifs, it is the following:
************Inizio dei dati****************
£ }ÁËÈÁ {?ÄÍ_Á>ÈÑ $£ { } ^ä!+ëáå+ < }ñ}í{ñ+á ñ(&!+^
ñ(&!+^ ñ(&!+^ ä!{^ä íë^( å éé îá ä!{^î <í}
ä!{^ä<ñá+}á^ã } ^ ää!+}!^ë^ë <{! ä!
!ê ^ë} (& ë^ñ+îñ }!^ {^ ë + !ê ^ñ+ëáêñ(
+!}á ä!{^( å ééñ+! !ê ^ñ+îñ!^ {^ ë ä!{
êñã^ñ+}^}â!< +í(^êñå\á^{!ä í}á+}á <ñ]í^ñî ^
<ñ]í^ñî ^ ä^ä +äá<< }! }ñ&!^ñî ^ { } ^( +í}á
}ñ&!^ñî ^ <ñ]í^ñî ^ +í(^{!ä }ñ&!^ñî ^
<ñ]í^ñî ^ }ñ&!^ñî ^ ä!{^é!+ ^ ((ñ+ ä!{^ä<ñá
}!}^ñ+ä ëë }! ^êñã^ñ+}^}â!< êñã^!ê{ñ+á !ê ^{!ä
}}!^ñ(&!+ { } ^ñ+îñ!^ {^ ë { } ^ë} (&
}ñ+! ñî ^ ñî ^ ñî ^ ñî ^ ñî ^
ñ+!^ ^î î { } ^{!ä ñ(&!+^!( ååñ { } ^êáåñ
ë^{!ä^ ä]íñëñ}! + ë^{!ä^ë} (& }! ë ++!^{!ä
!+^ ñ(&!+^ ä!{^ëä!+}! ä!{^(!{^}ê ë& ') êÑÅÇ
<ñá+}á^ë&á { } ^ä!+ëáå+ ä!{^ ê}ñä!<!
^ñî }ñ&!^{!ä ã åêí&&!^ä<ñá+}á { } ^ñ+îñ!^ {^ ë
&áê^ <ñ]í^ñî ñ(&!ê}!^+á}}!^êñå ä!{^( êä\ñ!
************Fine dati**********************
Now beyond the fact that both the documents are incomprehensible (I have to understand well thing they make these procedures that I have used in the program) the other strange thing is that if from the EDTF I perform F15 in the first file (the incriminated one) I see:
1. Copia da file flusso . . . . /tmp/myjson.json2015-11-05-15.34.45.493000
2. Copia da file database . . . . Nome
Libreria. . . . . . . . . . . Nome, *LIBL, *CURL
Membro . . . . . . . . . . . Nome, *FIRST
3. Modifica CCSID del file. . . . 00500 CCSID lav: 00280
4. Modifica CCSID della riga . . *NONE
5. Opzione EOL file di flusso . . *LF -- *CR, *LF, *CRLF, *LFCR, *USRDFN
Definito dall'utente . . . . Valore esadecimale
While in the other one I see:
1. Copia da file flusso . . . . /tmp/myjson.json2015-11-05-15.35.34.027000
2. Copia da file database . . . . Nome
Libreria. . . . . . . . . . . Nome, *LIBL, *CURL
Membro . . . . . . . . . . . Nome, *FIRST
3. Modifica CCSID del file. . . . 01208 CCSID lav: 00280
4. Modifica CCSID della riga . . *NONE
5. Opzione EOL file di flusso . . *USRDFN -- *CR, *LF, *CRLF, *LFCR, *USRDFN
Definito dall'utente . . . . Valore esadecimale
As it is possible that has taken two different CCSIDs and different EOL? if I have well understands the CCSID should take that brought in the call to the procedure "storeToStmf?.. :1208)
Don't I know thing to check to verify anymore.. there is someone that can give me some right-hand / suggestions?
Thanks in advance
1. could have been change some setings in the tablet that has influenced in the use of the coding of the characters of the file Json, that is produced by the device?
2. an updating of the version of Android could have been performed that is causing this problem? (almost surely Android has been adjourned the same day when they have begun out the problems. N.B. in the device in which I have problems I have Android 5.1.1, while in the other one I have the 4.3)
To try to understand what the problem could be, I have made a program ex new that goes to read the data Json sent by the Device (following the suggestion of Henrik Rützou owner http://powerEXT.com) and it performs how much under brought:
//?Clear powerEXT Service Program & Response Objects
clearSrvPgm();
//?get input from Apache
httpStore = getExtInputRaw();
// Process the request
// .. save what is received for testing
storeToStmf(httpStore: '/tmp//myjson.json'+ %Trim(%Char(%TimeStamp)):1208);
the content of the file coming from the device "incriminated", and saved in the IFS it is the following:
************Inizio dei dati****************
BtBb'CaC»ChCaBØ# CdCý^Ca ChCjBbBª BtBbCu;CuBµ CuC~ Bµ' BbBªBbBbBðBb'C£ ;# CuBØC¿ BØ CjCdCd
BbBðBbBµBµ;C¡C£Ct;C£ ';'Cs BbBªB°BðBbC¡C£Ct;C£ ';'Cs BbBªB°BðBb CÝ ;C¡C£Cv*
BØCt Cd Ce BbBðBbBµBµ;C¡C£Ct;C£ ';'Cs BbBªB°BðBbC¡C£Ct;C£ ';'Cs BbBªB°BðB
BbBªB°BðBb C~C¡Cu;C¿Cu BbBªB°BðBb C~C¡Cu;C¿CuBqBbBªB°BðBbCu #; BµCvBµCzCzC£ B
Cu;C¿CuBlBbBªB°BðBb C~C¡Cu;C¿CuBmBbBªB°BðBb C~C¡Cu;C¿CuBnBbBªB°BðBb C~C¡Cu;C¿C
************Fine dati**********************
While the content of the file coming from the device Ok, and saved in the Ifs, it is the following:
************Inizio dei dati****************
£ }ÁËÈÁ {?ÄÍ_Á>ÈÑ $£ { } ^ä!+ëáå+ < }ñ}í{ñ+á ñ(&!+^
ñ(&!+^ ñ(&!+^ ä!{^ä íë^( å éé îá ä!{^î <í}
ä!{^ä<ñá+}á^ã } ^ ää!+}!^ë^ë <{! ä!
!ê ^ë} (& ë^ñ+îñ }!^ {^ ë + !ê ^ñ+ëáêñ(
+!}á ä!{^( å ééñ+! !ê ^ñ+îñ!^ {^ ë ä!{
êñã^ñ+}^}â!< +í(^êñå\á^{!ä í}á+}á <ñ]í^ñî ^
<ñ]í^ñî ^ ä^ä +äá<< }! }ñ&!^ñî ^ { } ^( +í}á
}ñ&!^ñî ^ <ñ]í^ñî ^ +í(^{!ä }ñ&!^ñî ^
<ñ]í^ñî ^ }ñ&!^ñî ^ ä!{^é!+ ^ ((ñ+ ä!{^ä<ñá
}!}^ñ+ä ëë }! ^êñã^ñ+}^}â!< êñã^!ê{ñ+á !ê ^{!ä
}}!^ñ(&!+ { } ^ñ+îñ!^ {^ ë { } ^ë} (&
}ñ+! ñî ^ ñî ^ ñî ^ ñî ^ ñî ^
ñ+!^ ^î î { } ^{!ä ñ(&!+^!( ååñ { } ^êáåñ
ë^{!ä^ ä]íñëñ}! + ë^{!ä^ë} (& }! ë ++!^{!ä
!+^ ñ(&!+^ ä!{^ëä!+}! ä!{^(!{^}ê ë& ') êÑÅÇ
<ñá+}á^ë&á { } ^ä!+ëáå+ ä!{^ ê}ñä!<!
^ñî }ñ&!^{!ä ã åêí&&!^ä<ñá+}á { } ^ñ+îñ!^ {^ ë
&áê^ <ñ]í^ñî ñ(&!ê}!^+á}}!^êñå ä!{^( êä\ñ!
************Fine dati**********************
Now beyond the fact that both the documents are incomprehensible (I have to understand well thing they make these procedures that I have used in the program) the other strange thing is that if from the EDTF I perform F15 in the first file (the incriminated one) I see:
1. Copia da file flusso . . . . /tmp/myjson.json2015-11-05-15.34.45.493000
2. Copia da file database . . . . Nome
Libreria. . . . . . . . . . . Nome, *LIBL, *CURL
Membro . . . . . . . . . . . Nome, *FIRST
3. Modifica CCSID del file. . . . 00500 CCSID lav: 00280
4. Modifica CCSID della riga . . *NONE
5. Opzione EOL file di flusso . . *LF -- *CR, *LF, *CRLF, *LFCR, *USRDFN
Definito dall'utente . . . . Valore esadecimale
While in the other one I see:
1. Copia da file flusso . . . . /tmp/myjson.json2015-11-05-15.35.34.027000
2. Copia da file database . . . . Nome
Libreria. . . . . . . . . . . Nome, *LIBL, *CURL
Membro . . . . . . . . . . . Nome, *FIRST
3. Modifica CCSID del file. . . . 01208 CCSID lav: 00280
4. Modifica CCSID della riga . . *NONE
5. Opzione EOL file di flusso . . *USRDFN -- *CR, *LF, *CRLF, *LFCR, *USRDFN
Definito dall'utente . . . . Valore esadecimale
As it is possible that has taken two different CCSIDs and different EOL? if I have well understands the CCSID should take that brought in the call to the procedure "storeToStmf?.. :1208)
Don't I know thing to check to verify anymore.. there is someone that can give me some right-hand / suggestions?
Thanks in advance
Comment