其他语言的课程项目

时间:2019-05-11 18:40:20

标签: delphi soap soapserver

我正在与delphi Tokyo开发服务器Soap。
我有CAPA课程和ITEM课程(1:N)。
开发delphi客户端时,我可以正确发送Capa和N个Item
但是当其他客户端使用另一种语言开发并尝试连接时,无法正确填充ITEM。
我应该如何正确开发Item(N)类?
我有以下代码。

 type 

    Pedido = Class; 
      Pedido_Response = Class; 
      Capa = Class; 
      Item = Class; 


       Array_of_Item = Array of Item; 

      Pedido = class(TRemotable) 
        private 
          fCapa : Capa; 
          fItem : Array_of_Item; 
        public 

        published 
          property capa : capa read fCapa write fCapa; 
          Property Item : Array_of_Item  read Fitem write Fitem; 
      end; 

      Capa = Class(TRemotable)
         private
            fID_Capa : String;
            fDesc_Capa : String
         public
         published
            property id_capa : String read fID_Capa write fID_Capa;
            property desc_Capa : String Read fDesc_Capa write fDesc_Capa;  
      end;

      Item = Class(TRemotable) 
        private 
          Fcd_seq_item_cliente : String;// ok 
          Ftx_acao : String;// ok 
          Fcd_produto : String;// ok 
          Ftx_produto : String;// ok 
        public 
        published 
          property cd_seq_item_cliente  : String Read Fcd_seq_item_cliente Write Fcd_seq_item_cliente; 
          property tx_acao  : String Read Ftx_acao Write Ftx_acao; 
          property cd_produto  : String Read Fcd_produto Write Fcd_produto; 
          property tx_produto  : String Read Ftx_produto Write Ftx_produto; 
      end; 

      IDM4_Pedido = interface(IAppServerSOAP) 
      ['{10251934-5ACA-4279-A8CB-8A7FBF04D33B}'] 

      Function Ping4 : String; stdcall; 

      Function Pedido_Request(pImportacao : Pedido) : Pedido_Response; stdcall; 


    end; 
        TFo_DM4_Pedido = class(TSoapDataModule, IDM4_Pedido, IAppServerSOAP, IAppServer) 
    private 
        { Private declarations } 
         Function Insere_Pedido(pImportacao : Pedido) : String; 
         Procedure Inclui_na_Tabela_Pedido(pid_Pedido : Integer; pCapa : Capa); 
         Procedure Inclui_Item_Pedido(pId_Pedido : Integer; pDados : Item); 
         Procedure Parametro_Dos_Itens(pDados : Item); 
      public 
        { Public declarations } 
        Function Ping4 : String; stdcall; 
        Function Pedido_Request(pImportacao : Pedido) : Pedido_Response; stdcall; 
      end; 

    {$R *.dfm} 

    procedure TDM4_PedidoCreateInstance(out obj: TObject); 
    begin 
     obj := TFo_DM4_Pedido.Create(nil); 
    end; 

    {-------} 
    function TFo_DM4_Pedido.Ping4: String; 
    begin 
      Result := 'DAMASTE 4 ' + DateTimeToStr(Now); 
    end; 

    {-------} 

    Others Functions and  procedures .... 

    initialization 

       InvRegistry.RegisterInvokableClass(TFo_DM4_Pedido, TDM4_PedidoCreateInstance); 
       InvRegistry.RegisterInterface(TypeInfo(IDM4_Pedido));

0 个答案:

没有答案