import com.sap.mw.jco.*
public class SAP extends Object
{
public static void main (String str[])
{
SAP app=new SAP()
}
int count
JCO.Client mConnection
JCO.Repository mRepository
String[] SAPInterfaces
public SAP()
{
try {
// Logon info
mConnection = JCO.createClient("300", // SAP client
"if1", // userid
"801104", // password
null, // language
"172.16.98.20", // application server host name
"00")// system number
mConnection.connect()
mRepository = new JCO.Repository("ARAsoft", mConnection)
System.out.println("SAP连接成功")
} catch (Exception ex) {
ex.printStackTrace()
System.exit(1)
}
JCO.Function function = null
JCO.Table codes = null
JCO.Table DATA=null
try
{
function=this.createFunction("ZRFC_READ_TABLE")
if (function == null)
{
System.out.println(
"BAPI_MATERIAL_GETLIST" + " not found in SAP.")
System.exit(1)
}
codes = function.getTableParameterList().getTable("FIELDS")
DATA =function.getTableParameterList().getTable("DATA")
JCO.ParameterList input=function.getImportParameterList()
input.setValue("MSEG", "QUERY_TABLE")
input.setValue(20,"ROWCOUNT")
mConnection.execute(function)
System.out.println(Integer.toString(codes.getNumRows()))
for (int i = 0i <DATA.getNumRows()i++)
{
DATA.setRow(i)
System.out.println(DATA.getString("WA"))
}
}
catch (Exception ex)
{
ex.printStackTrace()
System.exit(1)
}
}
public JCO.Function createFunction(String name) throws Exception
{
try {
IFunctionTemplate ft =
mRepository.getFunctionTemplate(name.toUpperCase())
if (ft == null)
return null
return ft.getFunction()
} catch (Exception ex)
{
throw new Exception("Problem retrieving JCO.Function object.")
}
}
}
ABAP 中可以定义结构来包含多个基本类型,便于整理及 *** 作;
结构体不属于数据字典对象(数据字典中可以定义结构体,但不能存储数据),在程序运行时会被作为临时对象存储在内存空间;
在创建内表时,可参考直接定义的结构体作为 内表结构 。
结构体的定义,可以通过两种方式实现:
1.第一种方式
语法:
如:
比如tables: mseg.就创建了一个跟表MSEG类型一样的工作区。还可以创建一个一模一样的工作区tables: *mseg。
tables的最源大好处是取单条数据的时候,可以不加加into语句zd,如:
select single * from mseg.
select single * from *mseg.
如果没有tables语句,则不加into会报错
结构体也就是工作区,结构体是由几个字段组成的一个结构,相当于内表的一行数据。内表是内存中的表可以有多行数据。
SY-SUBRC = 0 代表成功。
其中corresponding表示将查询出来的字段装进表kna1和内表GT_KNA1 共有的字段到内表GT_KNA1
CL_DEMO_OUTPUT=>DISPLAY( GT_KNA1 ). 输出
LOOP AT 表名 INTO 结构名
CLEAR 结构名
ENDLOOP
APPEND 结构体 TO 表名. (向内表的最后一行插入一行,APPEND只能用于标准表中)
APPEND LINES OF表2 FROM 1 TO 3 TO 表1.(向内表1插入内表2中的n行)
INSERT 结构体 INTO 表名 INDEX 索引.(向内表insert数据到指定index,如果不指定插入到的index则功能和APPEND一样)
INSERT LINES OF 表 FROM 1 TO 3 INTO TABLE 表1.
READ TABLE 表名 INTO 结构体 INDEX 索引.(在结构体中读一个表)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)