‎2007 Aug 21 9:46 AM
Hi all,
Here is my code of oracle....
declare
-- constant for user identification
cstrMUsrClient constant char(3) := '100';
cstrMUsrUser constant varchar2(10) := 'UPPLDEV';
cstrMUsrPassword constant varchar2(10) := 'UPPLSTAR';
cstrMUsrLanguage constant varchar2(10) := 'EN';
-- constant for system identification
cstrMSysSystem constant varchar2(10):= 'DEV';
cstrMSysMessageServer constant varchar2(10):= 'ECCDEV';
cstrMSysGroupName constant varchar2(10):= 'PUBLIC';
-- constant values for reading message texts
cstrMMsgId constant varchar2(10):= 'SX';
cstrMMsgNumber constant varchar2(10):= '101';
cstrMMsgVariable1 constant varchar2(10):= 'var1';
cstrMMsgVariable2 constant varchar2(10):= 'var2';
cstrMMsgVariable3 constant varchar2(10):= 'var3';
cstrMMsgVariable4 constant varchar2(10):= 'var4';
cstrMMsgLanguage constant varchar2(10):= 'DE';
-- other constant
cstrMPathfile constant varchar2(30):= 'D:\saptext.rtf';
-- password for login in R/3
strMUsrPassword varchar2(10);
-- define object for BAPI ActiveX control
oBAPICtrl oleobj;
-- define object for R/3 logon control
oLogonCtrl oleobj;
oConCtrl oleobj;
-- business object ZMATINFO
boZmatInfo oleobj;
-- for BAPI: BapiService.MessageGetDetail
oMsgReturn oleobj;
oMsgText oleobj;
intCounter Integer;
-- to open the file you need a file channel
intChannel Integer;
hWnd olevar;
islogin number;
oParaIm oleobj;
oParaEx oleobj;
oParaTab oleobj;
oMatItem oleobj;
--oRows oleobj;
--oAdd oleobj;
o_args OLE2.LIST_TYPE;
begin
-- create BAPI ActiveX control object
oBAPICtrl := ole2.Create_Obj('SAP.BAPI.1');
-- create R/3 logon control object
oLogonCtrl := ole2.Create_Obj('SAP.Logoncontrol.1');
oConCtrl :=SAP_CSAPLogonControl.NewConnection(oLogonCtrl);
--setting the property of new connection object
-- fill logon parameters for system to use
SAP_CSAPLogonConnection.SYSTEM(oConCtrl,cstrMSysSystem);
SAP_CSAPLogonConnection.MessageServer(oConCtrl,cstrMSysMessageServer);
SAP_CSAPLogonConnection.GroupName(oConCtrl,cstrMSysGroupName);
-- fill logon parameter for user
SAP_CSAPLogonConnection.Client(oConCtrl,cstrMUsrClient);
SAP_CSAPLogonConnection.User(oConCtrl,cstrMUsrUser);
SAP_CSAPLogonConnection.Password(oConCtrl,cstrMUsrPassword);
SAP_CSAPLogonConnection.Language(oConCtrl,cstrMUsrLanguage);
SAP_CWdoAuto.Connection(oBAPICtrl,oConCtrl);
if SAP_CSAPLogonConnection.Logon(oConCtrl,hWnd,0) = 0 then
MESSAGE('SAP Logon Fail');message('SAP Logon Fail');
else
message('SAP Logon Success');message('SAP Logon Success');
end if;
-
-- create BAPI ZmatInfo object
boZMatInfo := SAP_CWdoAuto.GetSAPObject(oBAPICtrl,'zmaterialInfo');
<b>oParaIm := SAP_CWdoAuto.DimAs (oBAPICtrl,boZMatInfo,'ZbapiMatInfo','BapiIn');</b>
oParaEx := SAP_CWdoAuto.DimAs(oBAPICtrl,boZMatInfo,'ZbapiMatInfo','Return');
oParaTab := SAP_CWdoAuto.DimAs (oBAPICtrl,boZMatInfo,'ZbapiMatInfo','BapiOut');
SAP_IStructure.Value(oParaIm,to_variant('91'),to_variant('MATNR'));
oMatItem := SAP_CSAPTaFacTable.AppendRow(oParaIm);
o_args := OLE2.CREATE_ARGLIST;
OLE2.ADD_ARG_OBJ(o_args, oParaIm);
OLE2.ADD_ARG_OBJ(o_args, oParaEx);
OLE2.ADD_ARG_OBJ(o_args, oParaTab);
OLE2.INVOKE(boZMatInfo, 'ZbapiMatInfo',o_args);
end;
i have created one BAPI in which i have one import parameter in which i am passing Material Number, one Export Parameter Return,and one table Zbapi_out
in which i am collecting all my data.
now my method name is <b>'ZbapiMatInfo'</b>
and its parameters are <b>BapiIn,BapiOut,Return.</b>
Now i am getting error at DimAs Method shown Bold in Code, and error is
<b>AN OLE Error Occured : 0x80020005</b>
can anyone please help me out...
Its bit urgent.
Thanks in advance....
‎2007 Aug 23 9:43 AM