Skip to Content
0
Former Member
Apr 29, 2009 at 05:27 AM

Call RFC in Delphi

876 Views

Hi,all

I am a SAP newbie .I have a strange question. My Delphi Development Environment is Delphi 7. SAP ECC 6 , Delphi Call RFC through COM.


procedure TFrm_SAP.Button3Click(Sender: TObject);
var
  myIFunction:IFunction;

  myIStructure_EDRAT:IStructure;
  myIStructure_ORDER:IStructure;

  myIParam_AUFNR  :IParameter;
  myIParam_AUTYP10:IParameter;
  myIParam_WERKS  :IParameter;

begin
  if not Logon_bool then
  begin
    Showmessage('Logon SAP/R3 Failure');
    Exit;
  end;

  SAPFunctions1.Connection:=Connection;

  myIFunction:=SAPFunctions1.Add('Z_XX_GET_PRODORDER_HEADER') AS IFunction;


  myIParam_AUFNR:=myIFunction.Exports_['I_AUFNR'] AS IParameter;
  myIParam_AUFNR.value:='000001002864';

  myIParam_AUTYP10:=myIFunction.Exports_['I_AUTYP10'] AS IParameter;
  myIParam_AUTYP10.Value:='X';

  myIParam_WERKS:=myIFunction.Exports_['I_WERKS'] AS IParameter;
  myIParam_WERKS.Value:='2010';


  myIStructure_EDRAT:=myIFunction.Exports_['IT_ERDAT'] AS IStructure;
  myIStructure_EDRAT.Value['SIGN']  :='I';
  myIStructure_EDRAT.Value['OPTION']:='BT';
  myIStructure_EDRAT.Value['LOW']   :='20090101';
  myIStructure_EDRAT.Value['HIGH']  :='20090330';


  if  not myIFunction.Call then
  begin
    ShowMessage(myIFunction.Exception);   
  end
  else
  begin
     myIStructure_ORDER:=myIFunction.Imports['ET_ORDER'] AS IStructure;
     ...
  end;
end;

************************************************************************

after execute myIFunction.Call method ,Show

I trace Log file , as following Show

T:764 Error in program '': ======> Data error (invalid data type 17) in a Remote Function Call

T:764 Error in program '': <* RfcReceive [1] : returns 3:RFC_SYS_EXCEPTION

T:764 Error in program '': <* RfcCallReceive [1] : returns 3:RFC_SYS_EXCEPTION

Could anybody have helped me to resolve this problem?