Есть SOAP сервер на Java
Затянул WSDL файл через WSDL Importer
property articleId: WideString read FarticleId write FarticleId;
property branchCode: Integer read FbranchCode write FbranchCode;
property commission: TXSDecimal read Fcommission write Fcommission;
property competitionIds: ArrayOfString read FcompetitionIds write FcompetitionIds;
property competitionPrices: ArrayOfDecimal read FcompetitionPrices write FcompetitionPrices;
property extraCharge: TXSDecimal read FextraCharge write FextraCharge;
property price: TXSDecimal read Fprice write Fprice;
property priceDate: TXSDateTime read FpriceDate write FpriceDate;
property primeCost: TXSDecimal read FprimeCost write FprimeCost;
property primeCostTotal: TXSDecimal read FprimeCostTotal write FprimeCostTotal;
property remainder: TXSDecimal read Fremainder write Fremainder;
property reserve: TXSDecimal read Freserve write Freserve;
property sales: TXSDecimal read Fsales write Fsales;
property tonnage: TXSDecimal read Ftonnage write Ftonnage;
property turnover: TXSDecimal read Fturnover write Fturnover;
Есть два динамических массива competitionIds,competitionPrices
В Тексте инициализирую и заполняю свойства
var
wsd :PriceRpcPortType;
data :PriceStruct;
dec :TXSDecimal;
datdec :TXSDateTime;
arof :ArrayOfString;
ardec :ArrayOfDecimal;
i :integer;
begin
data := PriceStruct.Create;
data.articleId := 'F7070921-7A56-4F5B-BE98-1B1AA72A1F02';
data.branchCode:= 1;
dec := TXSDecimal.Create;
dec.XSToNative('0');
data.commission := dec;
dec.Free;
SetLength(arof,3);
arof[0]:='6665F08F-BA2D-4BA6-BE8E-67209672FB6E';
arof[1]:='488BE5E4-148E-4A58-BD9B-2EBE14C014DC';
data.competitionIds:=arof;
SetLength(ardec,3);
dec := TXSDecimal.Create;
dec.XSToNative('5000');
ardec[0]:= dec;
dec.Free;
dec := TXSDecimal.Create;
dec.XSToNative('5100');
ardec[1]:= dec;
dec.Free;
data.competitionPrices:= ardec;
dec := TXSDecimal.Create;
dec.XSToNative('0');
data.extraCharge := dec;
dec.Free;
dec := TXSDecimal.Create;
dec.XSToNative('5100');
data.price := dec;
dec.Free;
datdec := TXSDateTime.Create;
datdec.XSToNative('2009.12.02');
data.priceDate := datdec;
datdec.Free;
dec := TXSDecimal.Create;
dec.XSToNative('0');
data.primeCost := dec;
dec.Free;
dec := TXSDecimal.Create;
dec.XSToNative('0');
data.primeCostTotal := dec;
dec.Free;
dec := TXSDecimal.Create;
dec.XSToNative('0');
data.remainder := dec;
dec.Free;
dec := TXSDecimal.Create;
dec.XSToNative('0');
data.reserve := dec;
dec.Free;
dec := TXSDecimal.Create;
dec.XSToNative('0');
data.sales := dec;
dec.Free;
dec := TXSDecimal.Create;
dec.XSToNative('10.543');
data.tonnage := dec;
dec.Free;
dec := TXSDecimal.Create;
dec.XSToNative('0');
data.turnover := dec;
dec.Free;
wsd :=GetPriceRpcPortType();
wsd.savePrice(data);
при попытки выполнить функцию отправлющую данные программа вылетает с криком Acsses Violation at adress
wsd :=GetPriceRpcPortType();
wsd.savePrice(data);
Немогу разобраться почему