自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 收藏
  • 关注

原创 SAP LSMW (四) - IDoc (Intermediate Document)

由于本章使用的IDoc (Intermediate Document)和文章三的Business Object Method (BAPI)都是基于IDOC进行处理。由以下截图我们可以看到,文章三中提到的BAPI方法和IDoc都有一样的message type和basic type。本章中的一些步骤简略,不做详细赘述,是因为在之前的文章一,文章二和文章三都已经做了相应介绍。后续可能出一些介绍IDOC相关的文章,但是目前我没有相应的练习环境,所以看情况吧。本章我们仍然使用文章三中一样的PO修改作为例子。

2025-12-23 21:00:00 43

原创 SAP LSMW (三) - Business Object Method (BAPI)

这个实际上是IDOC的东西,在步骤一的里面我们可以看到一个basic type - PORDCH03。这里的传值和你写代码传Bapi值是一样的,不要忘记传值给itemx结构,哪个字段需要修改就要传X。本章中的一些步骤简略,不做详细赘述,是因为在之前的文章一和文章二都已经做了相应介绍。双击任意一行,点击Segment editor,你就能看到这个结构下面的字段了。本章使用我们常见的PO修改作为例子,可以帮助更好的理解。这里解释一下这个树形图是怎么来的,怎么去看。如果显示的是以下弹窗,则表示没有成功。

2025-12-22 20:00:00 509

原创 SAP LSMW (二) - Batch Input Recording

Batch Input Recording实际上就是录屏操作,记录前台的操作,然后模拟前台操作去进行批处理,实际上就是BDC。不过从我的角度来看,对于前台界面简单且没有单界面多行项目操作的批处理,我是非常推荐使用Batch Input Recording进行处理的。recording的好处在于你前台输什么,这里就输什么,不需要进行内外部码转换。如果字段比较多,但是你的导入字段的命名和BDC的命名是一样的时候,可以使用menu中的auto-field mapping, 如下图.录屏之后得到对应的BDC。

2025-12-19 21:30:00 609

原创 SAP LSMW (一) - Standard Batch/Direct Input

可以看到还可以选在ABAP Code,如果选择这个,可以写一些简单代码逻辑去处理,比如说拼接字符串,转换内外部之类的,不建议写太复杂的逻辑。你也可以用text的文件,用comma,Semi-Colon都行,但是用哪个就要选哪个。Define Field Mapping and Conversion Rules->把对应的import结构里面的字段对应到target的字段上->保存。在你的excel文件里面填入对应值,我这里测试的是采购订单抬头文本,怎么去找Object这些值可以自行网上搜索。

2025-12-18 18:30:00 538

原创 SAP 开账期

T-CODE: MMRV. See current periodT-CODE: MMPV. Open period. Fill in Company Code, Period, Fiscal year. Select radio button Check period only. Then Select radio button Check and close period.Tips: If current month is 7. Current period is 5. You need to che

2025-12-16 16:08:46 143

原创 SAP S4HANA Migration Cockpit (三) - Migration Cockpit Object增强

把“Master Record” 关联到 “Ref. structure for BAPI parameter ExtensionIn/ExtensionOut”Object对应的bapi或者fm可以在文章二的第四步Target Structures找到。Migration Cockpit 实际上也是使用BAPI或者封装的FM去导入数据到表.所以你还需要对这个BADI进行增强去传输对应的增强字段数据,这个不是本章主题,不再详述。Cost Center对应的BADI是。

2025-12-16 16:02:35 358

原创 SAP S4HANA Migration Cockpit (二) - 使用LTMOM修改Objects,添加删除或显示隐藏字段

我们建的是local的object,所以如果是在不同的client里面,是找不到你建的project的,这个时候可以点击下面的菜单转移你的project到对应的client。因为上一步https://blog.csdn.net/LuciferousYam/article/details/155981320?你可以按照以下路径给你的project添加新的object,这个方法只是在这里提一嘴,当然是在Fiori app里面添加更加方便。

2025-12-16 15:24:42 209

原创 SAP S4HANA Migration Cockpit (一) - 创建Migration Cockpit Project和添加Objects

选择你需要导入数据对应的object,点击往右箭头放到右边。可能会弹出窗口,创建这个object的数据需要先创建关联前置数据,会让你选择是否需要前置object。填写 Name(项目名称) 和 Mass Transfer ID(用默认生成的就行,点击Display Next Available生成)可能需要等待一段时间,对应的object才能使用。T-CODE: /N/UI2/FLP 打开 Fiori launch pad。点击Review,然后点击Create Project。

2025-12-16 14:50:12 94

原创 SAP Fiori Launch Pad 打开TCODE快捷输入

2025-12-16 14:22:41 130

原创 SAP TCode - MASS 批量修改供应商/客户主数据

Batch change for Vendor or Customer

2023-04-06 16:31:40 135

原创 ABAP 审批采购订单之拒绝和取消拒绝

代码对应ME29N中批准策略中的拒绝和取消拒绝的按钮拒绝按钮代码如下: DATA LC_PO TYPE REF TO CL_PO_HEADER_HANDLE_MM. DATA LS_DOCUMENT TYPE MEPO_DOCUMENT. "文本获取定义 DATA: LV_MESSAGE TYPE STRING.* prepare creation of PO instance LS_DOCUMENT-DOC_TYPE = 'F'. "默认

2022-05-01 15:59:01 1224

原创 SAP OOALV分割屏幕

同一个alv屏幕上显示上下两个屏幕,用于显示不同的数据。需要用到四个对象类:cl_gui_docking_container 屏幕容器类cl_gui_splitter_container 分割屏幕类cl_gui_container 屏幕容器类cl_gui_alv_grid 屏幕对象类显示效果如下:代码如下:TABLES: sflight."抬头数据输出TYPES: BEGIN OF ty_head. INCLUDE TYPE scarr.TYPES: slbox TY

2022-05-01 15:46:41 2740 4

原创 SAP 创建可选BOM的BAPI

三个BAPI可以用来创建BOM1、CSAP_MAT_BOM_CREATE call function 'CSAP_MAT_BOM_CREATE' exporting material = g_matnr plant = g_werks bom_usage = g_stlan valid_from = g_datuv change_no = g_aennr* REVISION_LEVEL

2022-02-25 10:18:20 3511

原创 SAP 批导程序导入Excel后,Excel自动打开

将上传的FM由:TEXT_CONVERT_XLS_TO_SAP换成FM:ALSM_EXCEL_TO_INTERNAL_TABLE就不会再出现自动打开的问题。并且使用GUI770才会出现自动打开的问题,GUI770版本以下不会出现这样的问题。

2022-02-23 10:45:43 2817

原创 SAP BILLING_SCHEDULE_SAVE

使用VF11冲销时,将对应销售订单的出具发票计划行打上冻结标记使用FM:BILLING_SCHEDULE_SAVE实现 if sy-tcode eq 'VF11'.* break hand-ccc. data: lt_vbrp type table of vbrp, ls_vbrp type vbrp. data: lt_fpla_new type table of fplavb, ls_fpla_new type fplavb.

2022-02-23 10:28:06 1509

原创 SAP VF11冲销发票BADI

VF11点击保存的时候触发BADI:SD_CIN_LV60AU02BADI下只有一个方法:EXCISE_INVOICE_CREATE

2022-02-23 10:22:34 1173

原创 ABAP 发送邮件

* 变量定义 DATA: SEND_REQUEST TYPE REF TO CL_BCS, DOCUMENT TYPE REF TO CL_DOCUMENT_BCS, FAIL TYPE REF TO CX_BCS, RECIPIENT TYPE REF TO IF_RECIPIENT_BCS. DATA: LS TYPE STRING, MAILTO TYPE AD_SMTPADR, MAIN

2022-02-17 09:27:59 965

原创 SAP 交货单抬头增强(页签)

效果图:BADI:IF_EX_LE_SHP_TAB_CUST_HEAD增强代码: method IF_EX_LE_SHP_TAB_CUST_HEAD~ACTIVATE_TAB_PAGE. case if_tcode. when 'VL01N' or 'VL02N' or 'VL03N'. ef_caption = '送货单'. ef_position = 20. ef_program = 'SAPLZFG_SD'. ef_dynpro =

2022-02-16 10:47:06 1321

原创 SAP 字符串转换为数值

批导的时候,数值类型的数据会自动变大,把批导结构中的数值字段定义为字符型,解决了这个问题。但是在做计算的时候要转换回数值类型。用到以下函数:DATA: LV_DCPFM TYPE USR01-DCPFM.DATA: LV_STR TYPE C LENGTH 18.DATA: LV_OUT TYPE P DECIMALS 2.SELECT SINGLE DCPFM INTO LV_DCPFM FROM USR01 WHERE BNAME EQ SY-UNAME. CALL FU

2021-12-29 15:58:36 2850

原创 SAP 读取凭证抬头文本或项目文本

以下以采购订单为例。双击箭头处。一共有两种方法:第一种:使用 ‘READ_TEXT’ 这个FUNCTION。CALL FUNCTION 'READ_TEXT' EXPORTING ID = 'F01' LANGUAGE = SY-LANGU NAME = '8000000004' OBJECT = 'EKKO' TABLES

2021-12-28 17:00:26 2753

原创 SAP RFC创建webservice以及测试

一个接口项目,总体采用数据直接存中间库表的方式,但是有几个接口特殊采用webservice的方式。需要创建RFC的webservice给外围系统调用。先创建一个webservice测试一下联通性:首先创建一个RFC:然后创建服务点击完成,创建成功,记得激活一下然后SOAMANAGER做web配置正常是以下的界面,如果出不来这个界面,把网址中的域名换成服务器的地址试试找到刚才创建的服务点击ZWSTEST进入进行配置点击完成,完成配置,生成WSDL点击这里可以查

2021-11-16 13:21:11 4245

原创 ABAP INNER JOIN 内表

一般来说,在大多数情况下,我们使用(FOR ALL ENTRIES IN 内表) 去取数比如说IF LT_EKPO IS NOT INITIAL . SELECT A~EBELN, A~EBELP, A~MENGE INTO TABLE @DATA(LT_EKET) FROM EKET AS A FOR ALL ENTRIES IN @LT_EKPO WHERE EBELN EQ @LT_EKPO-EBELN AND

2021-09-23 17:05:30 2692 4

原创 SAP BAPI_ACC_DOCUMENT_POST记账码问题

今天遇见一个问题:使用BAPI_ACC_DOCUMENT_POST过账(或BAPI_ACC_DOCUMENT_CHECK检查数据)时,报错"借/贷标记不一致"。刚开始以为是数据的问题,调试后发现数据的借贷平衡,金额也没有问题。联想到记账码是通过增强字段传值的,所以问题可能出现在这里。后面实践发现:当增强的结构里面有这个增强字段时,记账码必传。但是当这个之前结构里面没有这个增强字段时,BAPI应该是通过金额的正负数去赋值记账码的(可能还有配置)。OVER……...

2021-08-03 17:02:59 3874 1

原创 ABAP Function ALV根据结构获取FIELDCAT

使用FM:REUSE_ALV_GRID_DISPLAY时,使用FM:REUSE_ALV_FIELDCATALOG_MERGE获取FIELDCAT。使用FM:REUSE_ALV_GRID_DISPLAY_LVC时,使用FM:LVC_FIELDCATALOG_MERGE获取FIELDCAT。OVER……

2021-06-07 14:14:29 1573

原创 SAP BOM的类二维报表

一个简单BOM的类二维报表。代码如下:TABLES: MARA, T001W, AUFK.TYPES: BEGIN OF TY_OUTPUT, IDNRK TYPE STPOX-IDNRK, "物料编码 MAKTX TYPE MAKT-MAKTX, "物料名称 NORMT TYPE MARA-NORMT, "零件简码 ZZPURT TYPE MARC-ZZPURT, "EDMC采购类型 LIFNR TY

2021-06-02 10:05:51 1114

原创 SAP DYNP_VALUES_READ获取自建屏幕字段值

今天做了一个程序,其中有部分的功能是这样的:点击新增按钮弹出屏幕,输入数据,点击保存到自建表。这个功能不难,自建屏幕调用即可。但是这里有一个问题,在输入数据后,直接点击保存,数据到不了你的工作区里面。这是因为没有触发PAI和PBO,所以数据不会进工作区,一般操作是回车触发获得数据,但是显然不可能要求每个用户都能做到输入数据后敲回车。所以这里用到了:DYNP_VALUES_READ这个FM。具体代码如下:DATA: GT_FIELD TYPE TABLE OF DYNPREAD, GS_

2021-05-14 16:29:58 961

原创 SAP VF11取消开票:BAPI_BILLINGDOC_CANCEL1

继上篇文章VF01开票,但是VF01开票后发现发票有问题,需要取消开票。这时就要用到VF11用来取消开票。VF11前台界面如下:对应的BAPI为:BAPI_BILLINGDOC_CANCEL1这个BAPI很简单,具体代码如下:DATA: LT_RETURN TYPE TABLE OF BAPIRETURN1, LS_RETURN TYPE BAPIRETURN1.DATA: LT_SUCCESS TYPE TABLE OF BAPIVBRKSUCCESS, LS_SUCCESS TYPE B

2021-05-11 10:39:38 5045

原创 SAP VF01销售开票:BAPI_BILLINGDOC_CREATEMULTIPLE

VF01的界面是这样的:界面可以看出,需要传的主要的参数有这么几个,这里的凭证用的是交货单号。据我了解,销售开票之前的流程是这样的:生成销售单->销售单生成交货单->交货单过账->销售开票->发票过账。(以上流程如有疏漏,请大家补充)经查询:VF01对应的BAPI是:BAPI_BILLINGDOC_CREATEMULTIPLE所以只要往这个BAPI中传入必要的参数即可。具体代码如下: DATA: LT_BILLINGDATAIN TYPE TABLE OF BAP

2021-05-11 10:23:49 13162 3

原创 SAP 采购订单上含税价实现净价

需要实现的效果:要通过PBXX的含税价计算出净值。实现步骤如下:事务码:VOFM进入以下界面选择定价值然后添加行双击进入例程填写计算逻辑的代码代码写好激活后,返回把这个行激活最后添加到配置,配置目录为:SPRO-物料管理-采购-条件-定义价格确认流程-定义定价过程添加写的例程。OVER…...

2021-04-28 16:48:02 4225 9

转载 SAP VOFM例程开发实现定价增强

例程,即Fomula,是使用在销售、采购、发票、交货等单据中定价过程的一小段程序。之所以有Fomula存在,是因为在不同的业务场景下,定价过程可能千差万别,但是却可以拆分为一些关键的组成部分,如复制请求、数据传输、要求、公式,每个例程就是一小段专用程序,这些例程程序会被标准程序动态调用:如:PERFORM XXX IN XXXX IF FOUND. 我们可以在例程中编写代码片段,修改运行环境中的数据。...

2021-04-27 16:18:15 9412 1

原创 SAP BAPI_ACC_DOCUMENT_POST增强字段

使用BAPI_ACC_DOCUMENT_POST创建会计凭证时,需要在行项目传入反记账标识和记账码,但是找遍了BAPI下面的传值结构也没有找到记账码的传值,倒是找到了反记账标识的传值,但是实在抬头上的,明显不符合要求。所以只能另寻他法,看到这个BAPI下是有增强扩展的结构的,那么应该是可以通过增强字段来传入需要的值。首先创建增强结构:然后通过增强结构传入值。然后,测试发现没有效果。发现还需要一个增强。BADI: BADI_ACC_DOCUMENT代码写入:IF_EX_ACC_DOCUMENT~

2021-04-25 12:07:41 3999

原创 SAP BAPI_GOODSMVT_CREATE收货时序列号传入

用到的是MIGO对应的BAPI:BAPI_GOODSMVT_CREATE序列号是通过创建物料凭证时,BAPI下的GOODSMVT_SERIALNUMBER结构传入。对应前台的界面如下:代码如下:DATA: LS_GOODSMVT_HEADER TYPE BAPI2017_GM_HEAD_01, LS_GOODSMVT_CODE TYPE BAPI2017_GM_CODE, LV_TESTRUN TYPE BAP

2021-04-23 09:54:55 2932 1

原创 ABAP 动态指针实现动态报表

使用动态指针的方式实现动态报表优点:开发简单省时缺点:扩展性差,数据量大时效率低下面是代码:DATA: WA_LAYOUT TYPE LVC_S_LAYO.DATA: GT_FIELDCAT TYPE LVC_T_FCAT.FIELD-SYMBOLS : <FS_OUTPUT> TYPE STANDARD TABLE .TABLES : SFLIGHT.SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME.SELECT-OP

2021-02-24 17:13:45 683

原创 SAP ASSIGN COMPONENT动态获取内表值

使用分配指针的方式动态获取内表中的字段的值。例子如下:TYPES: BEGIN OF TY_OUT, HSL01 TYPE I, HSL02 TYPE I, HSL03 TYPE I, HSL04 TYPE I, HSL05 TYPE I, END OF TY_OUT.DATA: GT_OUT TYPE TABLE OF TY_OUT.DATA: GS_OUT TYPE TY_OUT.G

2021-02-24 16:28:23 1832

原创 SAP 预制发票BAPI:BAPI_INCOMINGINVOICE_PARK

创建预制发票BAPI:BAPI_INCOMINGINVOICE_PARK以下代码供参考:"bapi's struDATA: LS_HEADERDATA TYPE BAPI_INCINV_CREATE_HEADER.DATA: LV_INVOICEDOCNUMBER LIKE BAPI_INCINV_FLD-INV_DOC_NO.DATA: LV_FISCALYEAR LIKE BAPI_INCINV_FLD-FISC_YEAR.DATA: LT_ITE

2021-01-27 16:01:43 7384

原创 SAP 固定资产调拨BAPI:BAPI_FIXEDASSET_CHANGE

固定资产调拨BAPI:BAPI_FIXEDASSET_CHANGE以下代码供参考:"BAPI导入参数 DATA: LV_COMPANYCODE LIKE BAPI1022_1-COMP_CODE, "公司代码 LV_ASSET LIKE BAPI1022_1-ASSETMAINO, "主资产号 LV_SUBNUMBER LIKE BAPI1022_1-ASSETSUBNO, "资产次级编号

2021-01-27 15:33:55 5463 1

原创 SAP 创建资产卡片BAPI:BAPI_FIXEDASSET_CREATE1

创建资产卡片BAPI:BAPI_FIXEDASSET_CREATE1"BAPI导入参数DATA:LS_KEY LIKE BAPI1022_KEY, "要创建的关键字字段 LS_REFERENCE LIKE BAPI1022_REFERENCE, "创建的参考资产 LV_CREATESUBNUMBER LIKE BAPI1022_MISC-XSUBNO, "检查框 - 创建子编号 L

2021-01-27 15:26:03 4712

原创 ABAP 使用AT LAST/AT NEW/AT END/AT FIRST时数据变为‘*‘

在使用LOOP内表处理数据时,经常会用到AT LAST/AT NEW/AT END/AT FIRST去处理,但是在AT…ENDAT之间如果要用到数据时,会发现字符类型数据变为了’*’,数值类型数据变为了’0’。遇到这样的情况时,我的方法是使用指针规避,使用:LOOP AT IT_TAB ASSIGNING FIELD-SYMBOL(<FS_TAB>).ENDLOOP.代替LOOP AT IT_TAB INTO WA_TAB.ENDLOOP.如果大家还有其他好的方法欢迎评论交流。

2021-01-23 12:21:35 1974

原创 SAP 完全凭证替代出口功能行项目值填入

接到的需求:根据科目HKONT找到凭证中该科目其他行项目贸易伙伴不为空的数据,并将其贸易伙伴赋值进入ZRGGBS000程序(这个程序怎么来的可自行百度)在GET_EXIT_TITLES这个FORM中加入下列代码为什么要用C_EXIT_PARAM_CLASS这个呢,因为在参数中要用到结构参数,由下图可以知道只有这个可以使用结构作为参数然后创建U902的FORM然后更新数据的代码可以参考程序下的例子最后在完全凭证替代中加入OVER…...

2020-11-30 10:34:18 2237

原创 SAP MESSAGE OUT调用的方式怎么进程序断点

客户进入事务码ME22N,然后点击消息,然后选择选择数据点击重复传输,然后后台调用程序发送数据。但是发送数据时出了问题,找到了被调用的程序但是不知道哪段代码出了问题,打断点,准备调试。但是断点怎么都进不去,内部/外部断点全都试过,就是进不去。百度也没找到方法,询问经验丰富的大佬,给出了方法,随便找个程序进入调试模式然后在程序里打断点,就能进调试了,哇哦~神奇。不过使用完之后最好改回去,不然调试结束了,这个调试界面还是挂在那里。OVER…...

2020-10-31 16:46:13 739

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除