当前位置:软件学习 > 其它软件 >>

在程序中調用RFC的Read_Text 取長文本 出錯!

 

procedure TfrmRFCB.btnReadTextClick(Sender: TObject);
begin
  (* parameter "true" : SilentLogOn *)
  if Connection.LogOn(0,true) <> true then
    raise Exception.Create('Error logon!');

  try
    try 
      Animate1.Active := true;
      (* assign the existing connection to the *)
      (* component SAPFunctions1                *)
      SAPFunctions2.Connection := Connection;
      //調用Read_Text函數
      Funct := SAPFunctions2.add('Read_Text');
      Funct.exports('LANGUAGE').value := '1'; //文本語言:ZH,ZF
      Funct.exports('ID').value := 'F01'; //標識: 項目文本F01
      Funct.exports('OBJECT').value := 'EKKO';//文本對象:EKPO項目文本
      //Funct.exports('CLIENT').value := '208';//
      //關鍵標識號,表頭則為憑証號, 行項目文本則為(單號+項目碼)
      Funct.exports('NAME').value := Trim(edtCode.Text); //+POItems.Value(1,'PO_ITEM');
      if not Funct.call then
        showMessage(Funct.exception)
      else
      begin
        POTEXTITEM := funct.tables.item('LINES');
        Memo2.Lines.Add(POTEXTITEM.Value(1,'TDLINE'));
      end;
    except on E: Exception do
      raise Exception.Create(E.Message);
    end;

  finally
    Animate1.Active := false;
  end;
end;


程序調用,運行到這一行就報錯,
     Funct.exports('LANGUAGE').value := '1'; //文本語言:ZH,ZF 

提示地址錯誤:Read of Address: 0000000 。  :(((((

請問如何在其它程序中中RFC方式調用,獲取PO的表頭文本,項目文本?


--------------------编程问答-------------------- 是在Funct := SAPFunctions2.add('Read_Text'); 就出地址錯 FUNCT地址為0000000
怎麼在RFC中取不到Read_Text啊
--------------------编程问答-------------------- Read_Text函數必須是RFC類型才能調用,如果不是,則要封裝一個RFC函數。
--------------------编程问答--------------------
引用 2 楼 skm 的回复:
Read_Text函數必須是RFC類型才能調用,如果不是,則要封裝一個RFC函數。



这个是SAP的标准函数,外部不能直接调用的。先用se37去创建个RFC,在这里面再调用read_text
补充:企业软件 ,  ERP/CRM
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,