问题描述
procedureTfrmRFCB.btnReadTextClick(Sender:TObject);begin(*parameter"true":SilentLogOn*)ifConnection.LogOn(0,true)<>truethenraiseException.Create('Errorlogon!');trytryAnimate1.Active:=true;(*assigntheexistingconnectiontothe*)(*componentSAPFunctions1*)SAPFunctions2.Connection:=Connection;//調用Read_Text函數Funct:=SAPFunctions2.add('Read_Text');Funct.exports('LANGUAGE').value:='1';//文本語言:ZH,ZFFunct.exports('ID').value:='F01';//標識:項目文本F01Funct.exports('OBJECT').value:='EKKO';//文本對象:EKPO項目文本//Funct.exports('CLIENT').value:='208';////關鍵標識號,表頭則為憑証號,行項目文本則為(單號+項目碼)Funct.exports('NAME').value:=Trim(edtCode.Text);//+POItems.Value(1,'PO_ITEM');ifnotFunct.callthenshowMessage(Funct.exception)elsebeginPOTEXTITEM:=funct.tables.item('LINES');Memo2.Lines.Add(POTEXTITEM.Value(1,'TDLINE'));end;exceptonE:ExceptiondoraiseException.Create(E.Message);end;finallyAnimate1.Active:=false;end;end;
程序調用,運行到這一行就報錯,Funct.exports('LANGUAGE').value:='1';//文本語言:ZH,ZF提示地址錯誤:ReadofAddress: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