Hi There,
Delphi, upon importing the WSDL file, converted the function calls and Type Declarations to the closest compatible Delphi Data Types (String, DateTime, Double/Float). It successfully imported the three main functions, namely:
/* DELPHI CODE START */
// ************************************************************************ //
// Namespace :
http://technet.rapaport.com/ // soapAction:
http://technet.rapaport.com/%operationName% // transport :
http://schemas.xmlsoap.org/soap/http // binding : RapaportPricesSoap
// service : RapaportPrices
// port : RapaportPricesSoap
// URL :
http://technet.rapaport.com/webservices/prices/rapaportprices.asmx // ************************************************************************ //
RapaportPricesSoap = interface(IInvokable)
['{368D9022-99D0-8862-9B60-F53D44E2F49A}']
procedure Login(const Username: WideString; const Password: WideString); stdcall;
function GetPriceSheet(const shape: Shapes): RapaportPriceSheet; stdcall;
function GetPrice(const shape: WideString; const size: Single; const color: WideString; const clarity: WideString): RapaportPrice; stdcall;
end;
/* DELPHI CODE END */
When calling the Login() function, I am only able to pass the Username and Password. The login function seems to work fine, but I get an error (not authenticated) when calling any subsequent functions. I can access the AuthenticationTickerHeader, but I get AV's when attempting to read the TICKET property... Herewith the Delphi code after translating from XML, for the AuthenticationTicketHeader within the NameSpace of http://technet.rapaport.com
/* DELPHI CODE START */
// ************************************************************************ //
// Namespace :
http://technet.rapaport.com/ // ************************************************************************ //
AuthenticationTicketHeader = class(TSOAPHeader)
private
FTicket: WideString;
published
property Ticket: WideString read FTicket write FTicket;
end;
/* DELPHI CODE END */
My problem is this: Even if I could successfully access the Ticket (WideString), how do i send it with my Login() call? OR Do I need to include this Ticket in the other functions and if so How? Neither of them [GetPrice(), GetPriceSheet()] accept a Ticket parameter/variable to go to the server. Any ideas on how I can fix this? Are there hidden functions lurking somewhere on the Rapaport server that the standard WSDL file does not expose?
******************************************************************************************************************
Then, assuming that I was eventually able to make successful calls to GetPrice() and/or GetPriceSheet(), how do i import the Sheet.Prices dataset into a SQL Server/MS Access table? What is the official structure of the Rapaport Pricelist DB Table? I cannot seem to access rows/columns in the Prices returned variable... Unless "Prices" is actually sent as a Serialized string (like CSV), which I need to programmatically parse and break up into Rows/Columns?
My apologies for the many many questions, but it is very important for me to complete my software, as it will revolutionary for the international Diamond Trading Industry.
I look forward to any assistance, thank you very very very much!
Adios - Hendrik.