WebServices Em Delphi

01/11/2016

0

Boa tarde
Não tenho muita experiencia com WebServices e preciso fazer uma integração com webservices...
Alguns problemas ja Solucionei porém estou meio perdido na hora do consumo desse webservices..
Fiz a importação da Classe do webservices atraves do WSDL importer... Meu problema no momento esta no fato de compreender bem a logica por tras desse consumo..
Por exemplo, Pela documentação a min enviada na entidade de Stock eu preciso Enviar apenas dois campos SkuID e StockType, quanto a isso me parece tranquilo, o metodo responsavel por esse envio será o SetStock..
Minha Duvida é a Seguinte...

Dentro dos metodos importados pelo WSDL tenho uma classe Stock3 que contém os meus campos que necessito atualizar e mais alguns outros campos que no momento não serão utilizados..
Então Preciso instanciar a classe Stock3 e passar os parametros para os campos que eu preciso atualizar correto?
mais como ou quem vai startar o metodo SetStock da minha classe?
Será eu após passar os parametros para a classe Stock3?
E Como Chama-la corretamento visto que o parametro que ela aceita é um tipo setStockRequest...
Segue abaixo todo o codigo da classe se puderem me dar um exemplo com essas informações qe coloquei acima seria de muita ajuda.

// ************************************************************************ //
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL     : L:\\Renato\\Jeferson\\Ecommerce - Steve Jobs\\manual-integracoes\\AcecServices\\StockServices.wsdl
//  >Import : L:\\Renato\\Jeferson\\Ecommerce - Steve Jobs\\manual-integracoes\\AcecServices\\StockServices.wsdl>0
//  >Import : L:\\Renato\\Jeferson\\Ecommerce - Steve Jobs\\manual-integracoes\\AcecServices\\schemas\\StockServices.xsd
//  >Import : L:\\Renato\\Jeferson\\Ecommerce - Steve Jobs\\manual-integracoes\\DataModel\\AcecStock.xsd
//  >Import : L:\\Renato\\Jeferson\\Ecommerce - Steve Jobs\\manual-integracoes\\AcecServices\\schemas\\ErrorLog.xsd
// Encoding : UTF-8
// Version  : 1.0
// (27/10/2016 08:04:03 - - $Rev: 76228 $)
// ************************************************************************ //

unit StockServices1;

interface

uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;

const
  IS_OPTN = $0001;
  IS_UNBD = $0002;
  IS_REF  = $0080;


type

  // ************************************************************************ //
  // The following types, referred to in the WSDL document are not being represented
  // in this file. They are either aliases[@] of other types represented or were referred
  // to but never[!] declared in the document. The types from the latter category
  // typically map to predefined/known XML or Embarcadero types; however, they could also 
  // indicate incorrect WSDL documents that failed to declare or import a schema type.
  // ************************************************************************ //
  // !:int             - "http://www.w3.org/2001/XMLSchema"[Gbl]
  // !:string          - "http://www.w3.org/2001/XMLSchema"[Gbl]
  // !:dateTime        - "http://www.w3.org/2001/XMLSchema"[Gbl]
  // !:boolean         - "http://www.w3.org/2001/XMLSchema"[Gbl]

  setStockResponse     = class;                 { "http://www.accurate.com/acec/StockServices"[Lit][GblElm] }
  error                = class;                 { "http://www.accurate.com/acec/ErrorLog"[Flt][GblElm] }
  error2               = class;                 { "http://www.accurate.com/acec/ErrorLog"[GblCplx] }
  stock3               = class;                 { "http://www.accurate.com/acec/Stock"[GblCplx] }
  stock                = class;                 { "http://www.accurate.com/acec/Stock"[GblElm] }
  stock2               = class;                 { "http://www.accurate.com/acec/StockServices"[GblElm] }
  setStockRequest      = class;                 { "http://www.accurate.com/acec/StockServices"[Lit][GblElm] }

  StockList  = array of stock3;                 { "http://www.accurate.com/acec/StockServices"[GblCplx] }


  // ************************************************************************ //
  // XML       : setStockResponse, global, <element>
  // Namespace : http://www.accurate.com/acec/StockServices
  // Serializtn: [xoLiteralParam]
  // Info      : Wrapper
  // ************************************************************************ //
  setStockResponse = class(TRemotable)
  private
    Fresult: string;
  public
    constructor Create; override;
  published
    property result: string  read Fresult write Fresult;
  end;



  // ************************************************************************ //
  // XML       : error, global, <element>
  // Namespace : http://www.accurate.com/acec/ErrorLog
  // Info      : Fault
  // Base Types: error
  // ************************************************************************ //
  error = class(ERemotableException)
  private
    Fdate: string;
    Fmessage_: string;
    Fsummary: string;
    Fsummary_Specified: boolean;
    Fdetail: string;
    Fdetail_Specified: boolean;
    Fcode: string;
    Fcode_Specified: boolean;
    procedure Setsummary(Index: Integer; const Astring: string);
    function  summary_Specified(Index: Integer): boolean;
    procedure Setdetail(Index: Integer; const Astring: string);
    function  detail_Specified(Index: Integer): boolean;
    procedure Setcode(Index: Integer; const Astring: string);
    function  code_Specified(Index: Integer): boolean;
  published
    property date:     string  read Fdate write Fdate;
    property message_: string  read Fmessage_ write Fmessage_;
    property summary:  string  Index (IS_OPTN) read Fsummary write Setsummary stored summary_Specified;
    property detail:   string  Index (IS_OPTN) read Fdetail write Setdetail stored detail_Specified;
    property code:     string  Index (IS_OPTN) read Fcode write Setcode stored code_Specified;
  end;



  // ************************************************************************ //
  // XML       : error, global, <complexType>
  // Namespace : http://www.accurate.com/acec/ErrorLog
  // ************************************************************************ //
  error2 = class(TRemotable)
  private
    Fdate: string;
    Fmessage_: string;
    Fsummary: string;
    Fsummary_Specified: boolean;
    Fdetail: string;
    Fdetail_Specified: boolean;
    Fcode: string;
    Fcode_Specified: boolean;
    procedure Setsummary(Index: Integer; const Astring: string);
    function  summary_Specified(Index: Integer): boolean;
    procedure Setdetail(Index: Integer; const Astring: string);
    function  detail_Specified(Index: Integer): boolean;
    procedure Setcode(Index: Integer; const Astring: string);
    function  code_Specified(Index: Integer): boolean;
  published
    property date:     string  read Fdate write Fdate;
    property message_: string  read Fmessage_ write Fmessage_;
    property summary:  string  Index (IS_OPTN) read Fsummary write Setsummary stored summary_Specified;
    property detail:   string  Index (IS_OPTN) read Fdetail write Setdetail stored detail_Specified;
    property code:     string  Index (IS_OPTN) read Fcode write Setcode stored code_Specified;
  end;



  // ************************************************************************ //
  // XML       : stock, global, <complexType>
  // Namespace : http://www.accurate.com/acec/Stock
  // ************************************************************************ //
  stock3 = class(TRemotable)
  private
    FskuId: string;
    FwareHouseId: Integer;
    FwareHouseId_Specified: boolean;
    FwarehouseCnpj: Integer;
    FwarehouseCnpj_Specified: boolean;
    FstockType: Integer;
    FleadTime: Integer;
    FleadTime_Specified: boolean;
    Fquantity: Integer;
    Fquantity_Specified: boolean;
    FrelativeStockFlag: Boolean;
    FrelativeStockFlag_Specified: boolean;
  
Jeferson Taboni

Jeferson Taboni

Responder

Posts

03/11/2016

Jeferson Taboni

Alguem?
Responder

03/11/2016

Jeferson Taboni

Boa tarde
Fiz algo parecido com isto, é por ai que devo fazer?

Stock.SkuID.XSToNative(''016549797789'');
Stock.StockType.XSToNative(''1'');
(HTTPRIOTeste As StockServices1.StockServices).SetStock(StockServices1.StockServicesRequest.Create);
(HTTPRIOTeste As StockServices1.StockServices).SetStock(StockServices1.StockServicesRequest(Voucher));
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar