_tsk_c-task_list_group, l_groupcounter TYPE bapi1012_tsk_c-group_counter. lt_materialtaskallocation LIKE STANDARD TABLE OF bapi1012_mtk_c WITH HEADER LINE, lt_sequence TABLE OF bapi1012_sub_opr_c WITH HEADER LINE, lt_referenceoperation LIKE STANDARD TABLE OF bapi1012_ref_opr_c WITH HEADER LINE, lt_workcenterreference LIKE STANDARD TABLE OF bapi1012 lt_textallocation LIKE STANDARD TABLE OF bapi1012_txt_hdr_c WITH HEADER LINE, lt_text
) 2,在SE80,建Function group 3,在SE37,创建Function Module(import的参数入药是value传值) Note:一个Function Group只能包含一个BAPI 使在BAPI Browser 中可以看到。也就是外部能够调用。 三,调用 1,如在另一系统中用ABAP调用,先在SM59中建RFC联到有BAPI的R/3,(ZGOGO) 在SE38的程序中调用,Call Function “ZBAPIXXXXX” DESTINATION 2,如用JAVA调用 引入包;(不一定要用IBM的) import com.sap.rfc.*; import com.sap.rfc.exception.*; import com.ibm.sap.bapi .*; import com.ibm.sap.bapi.generated.*; 建立连接;调用。。。
生产计划的 BAPI 列表: : Routing( 工艺路线 ) BAPI_ROUTING_CREATE 创建工艺路线 BAPI – ca03 BAPI_ROUTING_EXISTENCE_CHECK BAPI_PLANNEDORDER_DELETE 删除计划订单 BAPI_PLANNEDORDER_EXIST_CHECK 检查计划订单是否存在 BAPI_PLANNEDORDER_GET_DETAIL ) BAPI_REQUIREMENTS_CHANGE 更改计划独立需求 -md61 BAPI_REQUIREMENTS_CREATE 创建计划独立需求 BAPI_REQUIREMENTS_GETDETAIL 设置删除标识 BAPI_PRODORD_SCHEDULE 进行调整 BAPI_PRODORD_REVOKEUSERSTATUS 取消用户状态 BAPI_PRODORD_RELEASE 发布 BAPI_PRODORD_GET_LIST BAPI_PRODORD_CREATE_FROM_PLORD 创建带有计划订单 BAPI_PRODORD_CREATE_CAP_REQ 产生能力需求 BAPI_PRODORD_CREATE 创建生产订单
CALL FUNCTION ‘BAPI_MATERIAL_SAVEDATA’ 2.物料信息的获取bapi : BAPI_MATERIAL_GET_DETAIL Report ZMMPL001 *& * , plantdata TYPE bapi_marc, “工厂级别数据 plantdatax TYPE bapi_marcx, forecastparameters TYPE bapi_mpop, “预测 forecastparametersx TYPE bapi_mpopx, planningdata TYPE bapi_mpgd, “计划 planningdatax TYPE bapi_mpgdx, storagelocationdata TYPE bapi_mard, “存储位置 storagelocationdatax TYPE bapi_mardx, valuationdata TYPE bapi_mbew TYPE bapi_mlgnx, salesdata TYPE bapi_mvke, “销售数据 salesdatax TYPE bapi_mvkex, storagetypedata TYPE bapi_mlgt
BAPI_REQUISITION_RELEASE_GEN 核发请购单 8、 BAPI_PO_CREATE1 创建PO 9、 BAPI_PO_CHANGE 修改PO和删除PO BAPI_PO_GETDETAIL 检查物料主档是否存在 BAPI_MATERIAL_GETLIST 显示物料主档明细 BAPI_CHARACT_CREATE 建立特性 BAPI_CHARACT_CHANGE 更改特性 BAPI_CHARACT_DELETE 删除特性 BAPI_CHARACT_RENAME 重新命名特性 BAPI_CHARACT_GETDETAIL 读取特性属性 BAPI_CHARACT_ADDLONGTEXT 设定特性或数值的长文 BAPI_CHARACT_REMOVELONGTEXT BAPI_CLASS_CHANGE 变更类别 BAPI_CLASS_DELETE 删除类别 BAPI_CLASS_GETDETAIL 读取类别资讯(取分类下特性及特性值) BAPI_CLASS_EXISTENCECHECK 、BAPI_BUS2001_CREATE、BAPI_PS_PRECOMMIT 创建项目定义 2、BAPI_PS_INITIALIZATION、BAPI_BUS2054_CREATE_MULTI、BAPI_PS_PRECOMMIT
对于会记凭证文本更改,前台Tcode:FB02,后台调用BAPI:FI_ITEMS_MASS_CHANGE 有测试过更改文本字段:SGTXT,ZLSPR DATA:WA_BSEG LIKE BSEG
1 BAPI的优点 bapi是面向对象的设计; bapi是固定的,一般不能修改; bapi可以被sap内部部件和非sap程序使用; bapi的成功和错误信息始终通过RETURN返回; bapi 程序 1.定义BAPI Structure (Structure不能在BAPI中重复使用,因为一旦BAPI被释放,其Structure被冻结) 2.创建FUNCTION MODULE 每个BAPI 但是至少也可以说大部分吧,VB里面用BAPI,就是因为这个BAPI函数具有RFC的特性) — BAPI是个SAP里一个很好的思想,把业务对象都对象化了。 (要作一些必要的数据检查保证它们是正确的,不过即使不正确也没有关系,BAPI会返回错误信息) 收集完成了,就送给BAPI作为参数,剩下的事都是BAPI给做了,你就不用管了! 2.接收BAPI返回的信息,也就是BAPI输出参数,并把它们“翻译”成恰当的形式给表达给用户。
被一箭刺伤 前几天朋友问到一个问题:在使用CSAP_MAT_BOM_MAINTAIN创建BOM的时候,如果一个组件是散装物料,它的传入的参数里,代码已经把成本核算的标记:REL_COST设置为空了,但是BAPI 然后在BAPI的参数里,有一个FL_DEFAULT_VALUES的参数,默认是X,也就是默认是取BOM用途的缺省值的,如果不要取,这里应该传空值。 但是,这里如果设置FL_DEFAULT_VALUES为空,其他非散装物料的BOM组件,就需要在BAPI的参数里,人为指定REL_COST = 'X',否则其他组件就没有成本核算相关了。
销售订单 BAPI_SALESORDER_CREATEFROMDAT2创建销售订单 BAPISDORDER_GETDETAILEDLIST销售订单明细 BAPI_SALESORDER_GETLIST销售订单列表 BAPI_SALESORDER_CHANGE修改销售订单 交货单 BAPI_OUTB_DELIVERY_READ_SLS根据销售订单创建交货单,得到交货单创建初始页面所需的数据 BAPI_OUTB_DELIVERY_GETDETAIL 根据交货单号读取单据的详细内容 BAPI_OUTB_DELIVERY_CREATE_SLS根据销售订单创建交货单 BAPI_OUTB_DELIVERY_CHANGE根据交货单号修改、删除单据的详细内容 BAPI_PO_RELEASE审批采购订单 BAPI_PO_RESET_RELEASE取消审批采购订单 BAPI_PO_CHANGE修改采购订单 BAPI_PO_CREATE1创建采购订单 BAPI_PO_GETDETAIL1 采购订单明细 BAPI_PO_GET_LIST采购订单列表 BAPI_PO_GETITEMS采购订单明细列表 报价单 BAPI_QUOTATION_GETDETAILBOS报价单明细 BAPI_CUSTOMERQUOTATION_CHANGE
先在前台创建条数据测试一下,然后把前台的一些必输数据导进bapi里面。在se37里面测试是否创建成功,这个bapi不需要调用BAPI_TRANSACTION_COMMIT。
先在前台创建条数据测试一下,然后把前台的一些必输数据导进bapi里面。在se37里面测试是否创建成功,这个bapi不需要调用BAPI_TRANSACTION_COMMIT。
1、创建销售订单:BAPI_SALESORDER_CREATEFROMDAT2 2、创建退货销售订单:BAPI_CUSTOMERRETURN_CREATE 3、根据销售订单生成交货单:BAPI_DELIVERYPROCESSING_EXEC 4、修改外向交货单:BAPI_OUTB_DELIVERY_CHANGE 5、修改内向交货单:BAPI_INB_DELIVERY_CHANGE 6、交货单发货过账:WS_DELIVERY_UPDATE 7、VF01/VF04开票:BAPI_BILLINGDOC_CREATEMULTIPLE 1、创建销售订单:BAPI_SALESORDER_CREATEFROMDAT2 2、创建退货销售订单:BAPI_CUSTOMERRETURN_CREATE 3、根据销售订单生成交货单:BAPI_DELIVERYPROCESSING_EXEC 4、修改外向交货单:BAPI_OUTB_DELIVERY_CHANGE 5、修改内向交货单:BAPI_INB_DELIVERY_CHANGE DATA: lv_message TYPE bapi_msg. REFRESH: gt_vbfa[],gt_likp[].
1、检查创建凭证所需数据是否正确BAPI_ACC_DOCUMENT_CHECK 2、创建凭证BAPI_ACC_DOCUMENT_POST 3、会计凭证冲销BAPI_ACC_DOCUMENT_REV_POST
BAPI是什么 BAPI是啥 对象是啥 类是啥 继承是啥 接口是啥 package是啥 BAPI怎么用 BAPI是啥 SAP BAPI(业务应用程序编程接口),是针对业务对象模型的标准接口。 BAPI是客户代码和第三方应用程序和SAP交互的主要方法。BAPI封装了SAP业务对象模型的内部层,以确保在访问或者更改业务对象时正确执行所有的业务逻辑,验证和授权检查。 BAPI怎么用 BAPI是以function module的形式实现,来调用SAP的内部代码。 许多BAPI具有复杂的结构,这些结构模仿底层的业务对象结构。如上图用于修改业务伙伴地址的BAPI包含多个导入结构以及大量表参数,这些参数可以向BAPI传递附加信息,也可以从BAPI传递附加信息。 通常最好在数据访问对象(DAOs)中包装BAPI调用,DAO是封装对BAPI调用的类。这样做可以使用DAO的模拟版本进行单元测试,从而允许对开发人员代码的测试与BAPI调用本身的测试分开。
lt_extensionin-structure = ‘BAPI_TE_MEPOHEADERX’. lt_extensionin-structure = ‘BAPI_TE_MEPOITEM’. BAPI的结构,BAPI里的代码可以分为这样两部分: 1、一部分是数据校核,检查传入的数据是否满足创建相关业务对象的条件,并且把错误消息反馈出来; 2、另一部分是更新数据库,即UPDATE/INSERT 1 BAPI的优点 bapi是面向对象的设计; bapi是固定的,一般不能修改; bapi可以被sap内部部件和非sap程序使用; bapi的成功和错误信息始终通过RETURN返回; bapi可以被许多开发平台使用 ; 2 何时该考虑使用BAPI设计程序 用VB/JAVA?
查询确认清单 BAPI_PRODORDCONF_GETLIST 返回 表:CONFIRMATIONS 字段 类型 长度 精度 说明 CONF_NO NUMC 10 0 操作完成的确认编号 CONF_CNT REV_CONF_CNT NUMC 8 0 被取消确认的确认计数器 CONF_TEXT CHAR 40 0 确认文本 EX_IDENT CHAR 32 0 确认的外部键值(例如 PDC 系统) 查询确认明细 BAPI_PRODORDCONF_GETDETAIL 查询订单确认的建议数据 CO15 BAPI_PRODORDCONF_GET_HDR_PROP 查询计工单确认的建议数据 CO11N BAPI_PRODORDCONF_GET_TT_PROP 参数 导入字段 创建订单确认 BAPI_PRODORDCONF_CREATE_HDR 创建确认时间事件 BAPI_PRODORDCONF_PDC_UPLOAD_TE 创建计工单确认 BAPI_PRODORDCONF_PDC_UPLOAD_TT 取消确认 BAPI_PROCORDCONF_CANCEL 查询生产订单工序 BAPI_PP_ORDER_OBJECTS 参数 导入参数:NUMBER 生产订单编号 导入参数:ORDER_OBJECTS
批量报工可以通过两种方式实现:录制BDC 或者 Call 系统标准 BAPI。 1) 录制BDC这里就不讲述了,直接在CO11N上录屏即可; 2) Call 系统标准 BAPI:BAPI_PRODORDCONF_CREATE_TT. 在报工时,当涉及到 倒冲料扣料 的操作时,则需要 Call 两个BAPI来操作: 1. BAPI_PRODORDCONF_GET_TT_PROP 获取生产订单相关属性 2. DATA: *BAPI相关定义 propose LIKE bapi_pp_conf_prop, timetickets LIKE bapi_pp_timeticket * 4.调用BAPI,获取默认属性值 CALL FUNCTION 'BAPI_PRODORDCONF_GET_TT_PROP' EXPORTING
更加的复杂和丰富,更能反映sap业务的应用,bapi方法的构造是基于rfc的,所以可以说bapi集成了rfc。 ,java里面用BAPI,就是因为这个BAPI函数具有RFC的特性)。 但是至少也可以说大部分吧,VB里面用BAPI,就是因为这个BAPI函数具有RFC的特性) BAPI是个SAP里一个很好的思想,把业务对象都对象化了。 (要作一些必要的数据检查保证它们是正确的,不过即使不正确也没有关系,BAPI会返回错误信息) 收集完成了,就送给BAPI作为参数,剩下的事都是BAPI给做了,你就不用管了! 2.接收BAPI返回的信息,也就是BAPI输出参数,并把它们“翻译”成恰当的形式给表达给用户。
01 目录 6 BAPI 6.1 基础篇 6.1.1 bapi 6.1.2 给用户上锁bapi 6.2 直接上实例 6.2.1 建输入参数结构 6.2.2 建函数组和函数 6.2.2.1 远程调用 6.2.2.2 SAP自己封装的一层 6.3.2 添加API 6.4 再看BAPI 6.4.1 释放对象类型 6.4.2 当函数名和参数不含BAPI时,会报错 02 正文 6 BAPI 6.1 基础篇 6.1.1 bapi 6.1.2 给用户上锁bapi 6.2 直接上实例 6.2.1 建输入参数结构 se11建结构1 se11建结构2,对应后台表JEST和TJ30T 查看表 6.2.2 建函数组和函数 6.4 再看BAPI 首先选择过滤,查看全部的BAPI,找到ZORDERSTAT,发现状态是未释放 6.4.1 释放对象类型 再点对象类型组件释放,提示 需要SE37先把函数释放 再点对象类型组件释放,提示OK 4.生成函数对象 再看BAPI状态 6.4.2 当函数名和参数不含BAPI时,会报错
DATA ls_bapi_te_mara TYPE bapi_te_mara. DATA ls_bapi_te_marax TYPE bapi_te_marax. ls_extensionin-structure = 'BAPI_TE_MARA'. ls_bapi_te_mara-material = lv_matnr. ls_bapi_te_mara-zzfld01 ls_extensioninx-structure = 'BAPI_TE_MARAX'. ls_bapi_te_marax-material = lv_matnr. ls_bapi_te_marax-zzfld01 = 'X'. ls_bapi_te_marax-zzfld02 = 'X'. 简单的赋值就是这样,主要是看扩展结构:BAPI_TE_MARA