微信公众号 hot583

SAP Technical Consultant More than 20 year, Love riding and swiming,coding.SAP ABAP Training Expert, SAP ABAP Performance Optimization Master, ABAP Programming Technology Guide

SAP ABAP BAPI函数50之12:BAPI_MATERIAL_SAVEDATA

今天上海的新冠疫情还是没有解封。共同祈祷明天会更好。 不知不觉中,SAP ABAP BAPI函数50系列已经写完了11个了。 今天我们来学习巩固一下SAP BAPI函数BAPI_MATERIAL_SAVEDATA, 对应的前台事务代码是MM01/MM02,进行物料主数据维护的。 需要了解之前的函数使用方法的,可以参加如下链接: bapi_acc_document_post/ bapi_acc_document_rev_post/ vf11-bapi_billingdoc_cancel1/ bapi_goodsmvt_create/ bapi_billingdoc_createmultiple/ bapi_bus2001_create/ bapi-create-wbs/ bapi_currency_conv_to_external/ bapi_currency_conv_to_internal/ bapi_goodsmvt_cancel/ 物料主数据批量创建修改隶属于MM模块。 HEADDATA常用字段 字段名 类型 简短描述 MATERIAL MATNR18 物料编号(18个字符) IND_SECTOR MBRSH 行业领域 MATL_TYPE MTART 物料类型 BASIC_VIEW SICHT_K 基本数据视图 SALES_VIEW SICHT_V 销售视图 MATERIAL_LONG MATNR40 物料编号 CLIENTDATA常用字段:CLIENTDATAX与之对应,但类型可能不同,下列字段没有列出的,具体根据需求,去bapi参数对应的关联类型结构中查找 字段名 类型 简短描述 DEL_FLAG LVOMA 在客户级标记要删除的物料 MATL_GROUP MATKL 物料组 BASE_UOM MEINS 基本计量单位 BASE_UOM_ISO

SAP ABAP BAPI函数50之11-bapi_mat_bom_existence_check

SAP ABAP BAPI函数50系列我们已经完成了10个,达到了20%的进度。 今晚吃个鸡腿奖励一下自己~ 现在,我们来学习函数模块 PP模块的BAPI函数bapi_mat_bom_existence_check, 函数作用是:检查是否存在物料的物料单组 2.应用场景 3.参数说明 3.1.导入 参数名称 关联类型 可选的 说明 MATERIAL BAPI1080_MBM_C-MATERIAL 可选 物料编号(18个字符) PLANT BAPI1080_MBM_C-PLANT 可选 工厂 BOMUSAGE BAPI1080_BGR_C-BOM_USAGE 必选 BOM 用途   对于这个函数,如果您发现S4HANA系统的新语法和ECC系统或者R3系统有点差异,可以留言告诉我。 对于初级SAP ABAP顾问来说,是不容易的。 作者曾经也是SAP ABAP beginners ,到处去找Tutorial for Constant。 需要自学很久,没人给咱免费培训。 写个测试代码DEMO举例子。下面是代码。 代码示例 *定义bapi相关参数 DATA: ls_bom             TYPE ty_s_bom, ls_bom2            TYPE ty_s_bom, lt_bom2            TYPE tt_bom, lv_material        TYPE csap_mbom-matnr, lv_plant           TYPE csap_mbom-werks, lv_bom_usage       TYPE csap_mbom-stlan, lv_valid_from      TYPE csap_mbom-datuv, lv_change_no       TYPE csap_mbom-aennr, lv_revision_level  TYPE csap_mbom-revlv, ls_stko            TYPE stko_api01, lt_stpo            TYPE TABLE OF stpo_api01, lt_dep_data        TYPE TABLE OF csdep_dat, lt_dep_descr       TYPE TABLE OF csdep_desc, lt_dep_order       TYPE TABLE OF csdep_ord,

SAP ABAP常用BAPI函数50之10-[BAPI_GOODSMVT_CREATE]

人生短短几个秋,啊~不醉不罢休。 青春才5年,新冠疫情就近4年了。几十年后再回头来看今年,也许会嘲笑吧~ 函数BAPI_GOODSMVT_CREATE是前台事务代码根据采购订单或者生产订单创建物料凭证。(货物移动)操作的时候用你的。 对应的在ECC里的类型分别有:MB01采购订单收货、MB31生产订单收货、MB1A货物发出、MB1B转移过帐、MB1C其他货物收据、MB11货物流动逆转、 MB04分包订单的后续调整。 导入参数: 参数名称 关联类型   缺省值 可选的 值传递 说明 GOODSMVT_HEADER BAPI2017_GM_HEAD_01 必选 是 抬头数据 GOODSMVT_CODE BAPI2017_GM_CODE 必选 是 为货物移动分配事务码 TESTRUN BAPI2017_GM_GEN-TESTRUN SPACE 可选 是 GOODSMVT_PRINT_CTRL BAPI2017_GM_PRINT 可选 是   GOODSMVT_HEADER常用输入参数字段:过账日期,凭证日期 组件 类型 简短描述 PSTNG_DATE BUDAT 过账日期 DOC_DATE BLDAT 凭证日期 GOODSMVT_CODE-GM_CODE的值 值 事务码 简短描述 01 MB01 采购订单收货 02 MB31 生产订单收货 03 MB1A

SAP ABAP常用BAPI函数50个之9-[BAPI_GOODSMVT_CANCEL]MBST

昨天愚人节,明天即将开始新冠疫情下的清明节~ 隔离加每天喉咙一插,爽飞。 不知不觉之中,已经写了8个BAPI函数系列了。 写ABAP代码的时候分分钟,要转换成BLOG技术博客的形式,还真是难。   BAPI函数BAPI_GOODSMVT_CANCEL, SAP前台事务代码TCODE为MBST。作用是冲销物料凭证。   导入参数为: 参数名称 关联类型 可选的 说明 MATERIALDOCUMENT BAPI2017_GM_HEAD_02-MAT_DOC 必选 物料文件编号 MATDOCUMENTYEAR BAPI2017_GM_HEAD_02-DOC_YEAR 必选 物料文件年份 GOODSMVT_PSTNG_DATE BAPI2017_GM_HEAD_02-PSTNG_DATE 可选 过账日期 GOODSMVT_PR_UNAME BAPI2017_GM_HEAD_01-PR_UNAME 可选 打印出入库单的用户名 DOCUMENTHEADER_TEXT BAPI2017_GM_HEAD_02-HEADER_TXT 可选 文件抬头   到处参数: 参数名称 关联类型 说明 GOODSMVT_HEADRET BAPI2017_GM_HEAD_RET 物料编号或年份 字段名 类型 简短描述 MAT_DOC MBLNR 物料凭证编号 DOC_YEAR MJAHR 物料凭证的年   在实际的SAP实施项目或者SAP运维项目重,S4HANA系统的新语法和ECC系统或者R3系统有点不一样。 一些差异,对于初级SAP ABAP顾问来说,是不容易的。 作者曾经也是SAP

SAP ABAP常用BAPI函数50之8-BAPI_CURRENCY_CONV_TO_INTERNAL

看情况,疫情好像越来越严重啊。上海和吉林省这种强者地位都搞得人心惶惶的。祈祷早日恢复正常~   上篇文章讲到了SAP abap中货币的内外部转换的内部转外部。 是开发项目中常见的BUG问题。需要重点关注。 今天,我们讲讲反过来的。外部转内部。 BAPI函数为:BAPI_CURRENCY_CONV_TO_INTERNAL 细心的您可能已经发现了。他和BAPI_CURRENCY_CONV_TO_EXTERNAL非常相像。 除了这个小尾巴有点不一样。   需要注意的是:S4HANA系统的新语法和ECC系统或者R3系统有点不一样。 对于初级SAP ABAP顾问来说,是不容易的。 作者曾经也是SAP ABAP beginners ,到处去找Tutorial for Constant。需要自学很久,没人给咱免费培训。 写个测试代码DEMO举例子。直接在事务代码SE38里面运行测试就能成功,看看他的差异吧~   *声明bapi相关的全局变量 DATA:  gs_amount_external      TYPE bapicurr-bapicurr. “货币金额 *选择屏幕 PARAMETERS:p_curr  TYPE tcurc-waers, p_exter TYPE bapicurr-bapicurr. *调用BAPI PERFORM frm_usebapi. *——————————————————————————–* *  Form frm_setdata           * *———————————————————————————* *   调用bapi * *   导入:货币码,货币金额 *   正在修改:返回参数信息 *————————————————————————- FORM frm_usebapi. *调用bapi CALL FUNCTION ‘BAPI_CURRENCY_CONV_TO_INTERNAL’ EXPORTING currency             = p_curr amount_external      = p_exter max_number_of_digits = 8 IMPORTING amount_internal      = gs_amount_external *     RETURN               = ret. . WRITE:  gs_amount_external. ENDFORM. 本文链接 :http://www.hot583.com/2022/03/31/bapi_currency_conv_to_internal/ 本文为作者原创,如果这篇文章对您有用,欢迎转载, 转载请务必注明来源《今日热点在看》http://www.hot583.com/ 我的微信公众号【 hot583

SAP ABAP常用BAPI函数50之7-BAPI_CURRENCY_CONV_TO_EXTERNAL

在过去的SAP实施项目中,不少是GLOBAL的企业,会有日元,卢布等外币。 之前傻傻的以为所有钱钱2位小数就万能搞定。后来才知道自己是井底之蛙啊! 比如日元,是没有小数的,估计著名的津巴布韦也没有。 货币价值低,那么如何利用有限的数据库空间完美存储金额数据呢? 聪明的SAP想到了转换因子的概念。不得不感慨,神奇的SAP专家!   本文是SAP ABAP常用BAPI函数50之XX的系列文章之一,欢迎关注指教~共同提高。 今天,我们一起来学习领会一下强大的系统金额由内转外功能。 BAPI函数:BAPI_CURRENCY_CONV_TO_EXTERNAL   应用场景: 般而言,币种的小数位为2,所以系统默认的位数也是2,但是有一些特殊币种如日元JPY,没有小数位。只要小数位不等于2,需要在系统中特殊处理(通过转换因子进行转换)。 如果某货币的小数位不是2位,则需要通过OY04设置其小数位数,即需在TCURX表中进行维护 系统中的数据表存放的日元JPY、俄卢布RUR等货币比前台输入的金额小100倍,因为它们没有小数位,所以转换因子为100,存入表之前SAP会先将金额除以这个因子后再存入   原理搞清楚了。我们来看看导入参数:比较简单,但是非常实用 参数名称 关联类型 可选的 说明 CURRENCY TCURC-WAERS 必选 转换前的货币码 AMOUNT_INTERNAL 必选 转换前内部的货币金额   备注:S4HANA的新语法和ECC或者R3不一样。 自己注意一下吧。 对于初级SAP ABAP顾问来说,是不容易的。 作者曾经也是SAP ABAP beginners ,到处去找Tutorial for Constant。 需要自学很久,没人给咱免费培训。 写个测试代码DEMO举例子。可以直接运行的哦~   **声明bapi相关的全局变量 DATA: gs_AMOUNT_EXTERNAL         TYPE  BAPICURR-BAPICURR. “转换后外部的货币金额 *选择屏幕 PARAMETERS:p_CURR          TYPE    TCURC-WAERS, p_AMOUNT        TYPE    ekko-WAERS. *抓取处理数据 START-OF-SELECTION. *调用bapi PERFORM FRM_USEBAPI. *——————————————————————————–* *  Form frm_setdata           * *———————————————————————————*

SAP ABAP开发常用BAPI函数50个之6-[BAPI_BUS2054_CREATE_MULTI]

今天,春雨绵绵,公司临时通知因为疫情全部远程办公。新的项目还没启动。 自我学习为主。每天提交学习内容。昨天我们讲到了PS模块的项目创建。 今天我们就学习温故一下PS模块的WBS创建BAPI函数。 前台我们可以使用事务代码TCODE CJ01创建WBS CJ02更改WBS CJ03显示WBS. 批量创建的BAPI函数是BAPI_BUS2054_CREATE_MULTI。   首先,我们看这个函数的使用的时候,需要注意她的导入参数: 参数名称 关联类型 可选的 说明 I_PROJECT_DEFINITION BAPI_BUS2001_NEW-PROJECT_DEFINITION 必选 项目定义     还有表参数: 参数名称 关联类型 可选的 说明 IT_WBS_ELEMENT BAPI_BUS2054_NEW 可选 创建WBS元素 ET_RETURN BAPIRET2 可选 返回参数 EXTENSIONIN BAPIPAREX 可选 增强,扩展字段   然后,我们在使用的时候,一定要注意代码的大小写规范化。 注意容错和捕捉成功/失败的消息。有的S4HANA的新语法和ECC或者R3不一样。 自己注意一下哦~   对于初级SAP ABAP顾问来说,是不容易的。 作者曾经也是SAP ABAP beginners ,到处去找Tutorial for Constant。 需要自学很久,没人给咱免费培训。   能够直接使用的示例demo代码如下:   DATA:

SAP ABAP开发-常用BAPI函数50个之5-[BAPI_BUS2001_CREATE创建项目定义

前面我们讲了FB01/F/02 会计凭证的创建和FB08会计凭证的冲销bapi。以及事务代码TCODE:VF11发票冲销的BAPI 以及发票创建SAP ABAP开发常用BAPI函数50个之4-[BAPI_BILLINGDOC_CREATEMULTIPLE] 今天,我们要学习一个比较小众模块的BAPI函数【BAPI_BUS2001_CREATE】,是PS模块用来创建项目定义的。 SAP PS全称是项目管理模块,一般常用于建筑、制造、模具等行业。 对于这个模块,如果您是开发人员,还得加倍小心,随时注意要去清空BUFFER缓存。 否则,可能会出现各种意想不到的现象。   原因是SAP在函数组中定义了相当多的GLOBAL全局变量。内表工作区都有。 一不小心就没清空被下一次调用的时候进行了引用。切记切记~   这个BAPI的参数为 参数名称 关联类型 可选的 说明 I_PROJECT_DEFINITION BAPI_BUS2001_NEW 必选 创建项目定义 对应的表类型如下: 参数名称 关联类型 可选的 说明 ET_RETURN BAPIRET2 可选 返回参数信息 ET_RETURN BAPIPAREX 可选 增强,扩展字段 EXTENSIONOUT BAPIPAREX 可选 增强,扩展字段   这个函数使用一定要注意的地方是,需要按顺序调用函数BAPI_PS_INITIALIZATION、BAPI_BUS2001_CREATE、BAPI_PS_PRECOMMIT 创建项目。 详细代码由于系统没有配置不好演示,大概如下,更详细的,敬请关注hot583微信公众号: DATA: it_et_return  TYPE STANDARD TABLE OF BAPIRET2,”TABLES PARAM wa_et_return  LIKE LINE OF it_et_return