函数目的:OA通过读取采购订单号获取物料号最近5次变价记录,结果如图1-1所示
1) 通过TCode:SE37,我们既可以进入RFC的开发初始界面,如图1-2所示。
2) 与Report不同的是,新建RFC程序前必须先定义一个FuncitonGroup,一个Group下可包含多个Function,创建Function Group的命令的具体操作路径为:Goto-Function groups-Create group,如图1-2所示。
3) 单击Creategroup 命令后将弹出Create Function Group对话框,要求输入自定义的Function group 名称及描述,如图1-3所示。
4) 单击保存按钮后系统进入CreateObject Directiory Enter 对话框,该界面中需要输入开发类并选择保存类型,STMP表示保存本地类,也可单击本地对象按钮选择保存在本地,如图1-4所示。
5) 选择本地对象按钮保存Functiongroup,系统返回初始界面。
输入自定义Function名称:Z_RFC_SHIZHANSTUDY,单击Create按钮,SAP将弹出Group设置属性对话框,如图1-5所示。
6) 输入本例所建Function Group及描述,单击Save按钮保存定义。
到此为止,该Function已被创建成功,系统进入初始界面。可以看到系统自动生成了预代码,但是还不具备任何功能,需要对Function的输入输出参数及数据处理逻辑程序进行设置,如图1-6所示。
7) Function编辑器共分为7个页面,在Attributes属性设置窗口,设置如图1-7所示。允许该Function被SAP及非SAP程序调用。
8) Import为数据输入接口,其接口参数可以为单个变量或者为一个结构体。本例为单个变量,如图1-8所示。
9) Tables可同时作为输入输出接口,其参数可为单个变量或Struct或内表。本例为Struct,如图1-9所示。本例创建结构步骤省略
10) 单击Source Code选项卡切换到ABAP代码编辑窗口,接口中所定义的参数都是该Function代码的私有变量,可以在Function中直接引用,由此实现与外部程序数据交换。
在Source code中加入程序代码:
- DATA: BEGIN OF POITABOCCURS 0,
- EBELN LIKE EKKO-EBELN, "采购订单号
- EBELP LIKE EKPO-EBELP, "采购订单行项目
- LIFNR LIKE EKKO-LIFNR, "供应商
- EKORG LIKE EKKO-EKORG, "采购组织
- WERKS LIKE EKPO-WERKS, "工厂
- MATNR LIKE EKPO-MATNR, "物料号
- KSCHL LIKE A017-KSCHL, "条件类型
- DATAB LIKE A017-DATAB, "有效期从
- DATBI LIKE A017-DATBI, "有效期到
- KNUMH LIKE A017-KNUMH, "条件记录号(定价记录号)
- KBETR