Jump to content

Leo Lui

Members
  • Content Count

    7
  • Joined

  • Last visited

Everything posted by Leo Lui

  1. I am writing a SOAP web service client to call a SOAP API in another server. That API needs to pass a 'array of string' type variable into it as a parameter. The code I wrote like this: objectA := mySOAPService.Create; //array of string Items[0] := 'BR1 X' //<- product code Items[1] := 'BR2 X' objectA.ItemIds := Items; //<- assign the array to a property of the object. The product code list. result := mySOAP.GetItems(ObjectA) //<- call the SOAP API function by passing the object to it. But the server always feedback no product code received. I review the SOAPRequest parameter of the THTTPRIO OnBeforeExecute event. The SOAPrequest parameter shows <?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <GetItems xmlns="http://www.cegid.fr/Retail/1.0"> <Request> <ItemIds> <string>BR1 X</string> </ItemIds><StoreId>101</StoreId> </Request><Context><DatabaseId>Y2_C3</DatabaseId> </Context></GetItems> </SOAP-ENV:Body> </SOAP-ENV:Envelope> There is no array under the node <ItemIds>. Just a single line, <string>BR1 X</string>. I copy it to the SOAPUI and run it, it shows the same error message, no product code sending to it. After doing comparison between a workable XML generated by SOAPUI with the one generated by Delphi, I put a 'xmlns' serialization description to the <GetItems> node. It runs normally in SOAPUI and return correct result. <?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <GetItems xmlns="http://www.cegid.fr/Retail/1.0" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">. //<-- description I added <Request> <ItemIds> <arr:string>BR1 X</arr:string> //<- add arr: <arr:string>BR2 X</arr:string> </ItemIds><StoreId>101</StoreId> </Request><Context><DatabaseId>Y2_C3</DatabaseId> </Context></GetItems> </SOAP-ENV:Body> </SOAP-ENV:Envelope> I believe that Delphi SOAP library may missing the array serialization description for the 'array of string' type object. However, I see there is a remark describe it is an array in the pas generated by WSDL, but this description does not exist in the XML generated by SOAP client finally. //WSDL ArrayOfstring = array of string; { "http://schemas.microsoft.com/2003/10/Serialization/Arrays"[GblCplx] } How to pass an array to SOAP API? It seems Delphi do not know the variable is an array, it just take the first row. How to add back the description "xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays" to header node? Do I miss something in the client side? Thanks for your help.
  2. I submitted my iOS app to App store but rejected. The reason is my app prompts error when user refuse allow the location service. I test this scenario and found that if user not authorise the location service when first installing the app, it would have a dead loop prompting error “ Unauthorized to user location services”. My app stuck there and cannot proceed further. I discovered the reason for the dead looping. I start the location sensor (LocationSensor.Active := True) when the application started. Due to unknown reason, may be network problem, it cannot send back any location data some time. I followed suggestion on the Stack Overflow to put the LocationSensor.Active := True in a timer event, keep looping until location data coming out. This method works quite good. However, this method is not really detecting the location service is on/off, it just working when the sensor has some delay in reading location data. Is there a function to detect the iOS location service is on or off ? B.R. Leo
  3. My app pop up "Access violation at address 000000001BB022128, accessing address 000030312E353820" error in iPhone. Android works perfectly without this error. This error pops up when 1. Run the app 2. Press the home button (my app still running in background) 3. Run other apps 4. Go back to my app 5. Error popup. It is quite strange that my development device iPhone 6S never shows this error. All my other testing devices, from iPhone 7 ~ iPhone X, pop this error! This error exists since XCode 11. I updated it to XCode 12.4 hope that this error can be solved, but no luck! My development environment is 1. Delphi 10.4.1 2. iOS 13.7 3. XCode 12.4 4. macOS Big Sur 5. My app uses a location sensor component and timer components to activate the location sensor when loading up the App. (I want to try it in iOS 14.4 but cannot successfully get the iOS 14 SDK add to the SDK manager. Files in Z:\Documents\Embarcadero\Studio\SDKs\iPhoneOS14.4.sdk\usr\lib are in 0 byte. I tried it from XCode 12.0 to 12.3. All failed. I think it should be a bug in Delphi IDE. Only my old iOS 13.7 SDK is still working.) Does anyone know what causes this access violation error? Please help! BR. Leo
  4. I updated my Delphi 10.4.1 to patch 1 (Dec version) today and try to publish my app by Transporter but received an error message “ERROR ITMS-90704 Missing App Icon. .....”. I wonder this problem have been fixed in 10.4.1 or not? Do I still need to follow the workaround by Horácio or Dave (RAD Studio RSP-29692) to solve this problem? This is my first time publish my app to App store. I am stuck there and do not know what to do. Do anybody have the experience to solve it? Regards, Leo
  5. Leo Lui

    Miss App Icon when publish to App store

    I finally figure out the problem. I am using same 1024 size png file for the application icon and 2x scale icon. Only the latter one appear in the deployment option page. The application icon setting was disappear! After I assign different file name for them, it pass the application icon checking but give me another error, "can't be transparent nor contain an alpha channel". I am finding a way to remove alpha channel. Thanks for your reply! Regards Leo
  6. Hello, I tried to install the latest Midware version for Rio 10.3 by the OverbyteMwD103Design.dproj, it prompted an error 'OverbyteMwD103Run' not found. Are you missing include this object in the zip file? Best Regard, Leo
  7. Hi Piette, I tried to build OverbyteMwD103Run. It prompted IcsSslDefs.inc, IcsSslEAY.pas and IcsLIBEAY.pas files are missing. I found them from the ICS component source folder and copied them to this server component source folder and build it again. It prompted ICSDEFS.INC is missing. However, I find it nowhere. Where can I get this file. The required file OverbyteMwD103Run.bcp cannot being built in this case. Am I doing correctly?
×