делфи сгенерировал модуль по wsdl ссылке при вызове функции интерфейса
вызывается ошибка не правильный формат данных.
часть кода импорта:
Код:
unit LogisticsData;
interface
uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;
type
RegisterTask = class(TRemotable)
private
FDeliveryTask: DeliveryTask;
FDeliveryTask_Specified: boolean;
procedure SetDeliveryTask(Index: Integer; const ADeliveryTask: DeliveryTask);
function DeliveryTask_Specified(Index: Integer): boolean;
public
destructor Destroy; override;
published
property DeliveryTask: DeliveryTask Index (IS_OPTN or IS_REF) read FDeliveryTask write SetDeliveryTask stored DeliveryTask_Specified;
end;
RegisterTaskResponse = class(TRemotable)
private
published
end;
SaveTemperatureData = class(TRemotable)
private
FTemperature: Temperature;
FTemperature_Specified: boolean;
procedure SetTemperature(Index: Integer; const ATemperature: Temperature);
function Temperature_Specified(Index: Integer): boolean;
public
destructor Destroy; override;
published
property Temperature: Temperature Index (IS_OPTN or IS_REF) read FTemperature write SetTemperature stored Temperature_Specified;
end;
SaveTemperatureDataResponse = class(TRemotable)
private
published
end;
SensorType = class(TRemotable)
private
FText: Variant;
FId: string50;
published
property Text: Variant Index (IS_TEXT) read FText write FText;
property Id: string50 Index (IS_ATTR) read FId write FId;
end;
TemperatureSensorType = class(TRemotable)
private
published
end;
HistoricalSensorDataType = class(TRemotable)
private
FTaskId: ShippingTaskIdType;
FSequenceNo: Int64;
published
property TaskId: ShippingTaskIdType Index (IS_ATTR) read FTaskId write FTaskId;
property SequenceNo: Int64 Index (IS_ATTR) read FSequenceNo write FSequenceNo;
end;
Array_Of_SensorType = array of SensorType;
SensorsDataType = class(TRemotable)
private
FTimestamp: string;
FSensor: Array_Of_SensorType;
FSensor_Specified: boolean;
procedure SetSensor(Index: Integer; const AArray_Of_SensorType: Array_Of_SensorType);
function Sensor_Specified(Index: Integer): boolean;
public
destructor Destroy; override;
published
property Timestamp: string Index (IS_ATTR) read FTimestamp write FTimestamp;
property Sensor: Array_Of_SensorType Index (IS_OPTN or IS_UNBD) read FSensor write SetSensor stored Sensor_Specified;
end;
Array_Of_TemperatureSensorType = array of TemperatureSensorType;
TemperatureSensorsDataType = class(SensorsDataType)
private
FSensor: Array_Of_TemperatureSensorType;
FSensor_Specified: boolean;
procedure SetSensor(Index: Integer; const AArray_Of_TemperatureSensorType: Array_Of_TemperatureSensorType);
function Sensor_Specified(Index: Integer): boolean;
public
destructor Destroy; override;
published
property Sensor: Array_Of_TemperatureSensorType Index (IS_OPTN or IS_UNBD) read FSensor write SetSensor stored Sensor_Specified;
end;
Array_Of_TemperatureSensorsDataType = array of TemperatureSensorsDataType;
TemperatureDataType = class(HistoricalSensorDataType)
private
FSensorsData: Array_Of_TemperatureSensorsDataType;
public
destructor Destroy; override;
published
property SensorsData: Array_Of_TemperatureSensorsDataType Index (IS_UNBD) read FSensorsData write FSensorsData;
end;
Temperature = class(TemperatureDataType)
private
published
end;
CustomBinding = interface(IInvokable)
['{1CAB0DBF-D6C5-E32E-005B-79713C30E7C9}']
function RegisterTask(const parameters: RegisterTask): RegisterTaskResponse; stdcall;
function SaveTemperatureData(const parameters: SaveTemperatureData): SaveTemperatureDataResponse; stdcall;
implementation
uses SysUtils;
end.
метод интерфейса RegisterTask вызывается без проблем
а при вызове SaveTemperatureData вылетает ошибка скорее всего из-за того что
при создании класса TemperatureSensorType не могу определить атрибуты id и Text которые по идее должны наследоваться у класса SensorType но это не так, я пытался копать в сторону свойства DataContext но не могу понять как это сделать.
Помогите начинающему