SAP ABAP

SAP ABAP programming language and development skills, supporting custom function development to enhance the flexibility and adaptability of SAP systems. SAP ABAP Tutorial, ABAP Programming Guide, ABAP Performance Optimization SAP各种技术.SAP ABAP编程语言与开发技巧,支持自定义功能开发,提升SAP系统的灵活性和适应性。

如何使用PHP调用SAP RFC的WSDL文件做WEB SERVICE接口

这两天,看到上海的情况,心里有些难受。国际化都市的人们,在21世纪20年代,还会饥肠辘辘。 今天我们学习一下PHP如何调用SAP系统发布的WEB SERVICE服务。 SAP作为服务提供者PROVIDER,PHP作为服务消费者CONSUMER。 详细情况为: SAP端设计 输入参数:ZINPUT ,类型STRING 输入参数:ZTYPE ,类型STRING 内表参数:RET_DATA ,参照类型为ZMSG,类型ZMSG的字段为MSG,CHAR,长度255. SAP接口函数代码为: FUNCTION YFM_CHECK. *”———————————————————————- *”*”Local Interface: *”  IMPORTING *”     VALUE(ZINPUT) TYPE  STRING OPTIONAL *”     VALUE(ZTYPE) TYPE  STRING OPTIONAL *”  TABLES *”      RET_DATA STRUCTURE  ZMSG OPTIONAL *”———————————————————————- * MESSAGE x398(00). * & & & & CONCATENATE ‘第1行您输入了:ZINPUT=’ ZINPUT  ‘,ZTYPE=’ ZTYPE INTO RET_DATA RESPECTING BLANKS. APPEND RET_DATA. CONCATENATE ‘第2行today:’ sy–datum  ‘日-Time:’ sy–uzeit  ‘秒’ INTO RET_DATA RESPECTING BLANKS. APPEND RET_DATA. ENDFUNCTION. 将RFC函数YFM_CHECK发布成WEB SERVICE服务后,名字都用YFM_CHECK。在此不做过多概述。生成了WSDL文件。 将<wsp:UsingPolicy wsdl:required=”true“/>修改成<wsp:UsingPolicy wsdl:required=”false“/> PHP端代码 写入PHP代码如下: <?php echo “<pre>”; header(“content-type:text/html;charset=utf-8”); try { $client = new SoapClient(“http://www.destinationcom/PHP2SAP.wsdl“, array( “stream_context” => stream_context_create( array( ‘ssl’ => array( ‘verify_peer’

SAP ABAP BAPI函数50之13:BAPI_MATERIAL_BOM_GROUP_CREATE

我们学过了物料主数据的创建/编辑修改,今天我们学习物料BOM组的创建, BAPI函数为BAPI_MATERIAL_BOM_GROUP_CREATE, 如果不想创建BOM组,而是简单的只创建BOM,那么可以使用函数 CSAP_MAT_BOM_CREATE 哦。   表参数: 参数名称 关联类型 可选的 说明 BOMGROUP BAPI1080_BGR_C 必选 物料 BOM组 VARIANTS BAPI1080_BOM_C 必选 BOM抬头 ITEMS BAPI1080_ITM_C 可选 BOM组件物料 SUBITEMS BAPI1080_SUI_C 可选 BOM子项目 MATERIALRELATIONS BAPI1080_MBM_C 必选 BOM抬头数据,物料分配 ITEMASSIGNMENTS BAPI1080_REL_ITM_BOM_C 可选 用来确定组件物料与物料的链接关系 SUBITEMASSIGNMENTS BAPI1080_REL_SUI_ITM_C 可选 用来确定子项目与BOM组件行项目的对应关系 TEXTS BAPI1080_TXT_C 可选 长文本行 RETURN BAPIRET2 必选 返回参数   备注:下列没有的字段,根据需求,去参数的关联类型对应的结构或表中查找   BOMGROUP常用输入字段: 字段名 类型 简短描述

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           * *———————————————————————————*