![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ABAP
文章平均质量分 59
SAP小白kenny
SAP ABAP PO CPI BTP
展开
-
SAP Publish a Service Group
This document describes about publishing a service group to which the service, created by using Service Builder that comply with OData V4, is assigned.To publish your service, you must create a service group and assign your service to this group to make it原创 2024-05-15 13:21:05 · 576 阅读 · 0 评论 -
CDS视图通过 SEGW 和 /IWFND/MAINT_SERVICE 发布OData服务
在创建完Gateway之后输入事务代码 /n/IWFND/MAINT_SERVICE 进入Activate and Maintain Services点击按钮添加服务,如果SEGW和/IWFND/MAINT_SERVICE是同一个服务器,则选择Co-Deployed(联合部署),如果不是则在System Alias(系统别名)选择SEGW所在服务器名。如果想要在后面实现OData的增删改功能,则需要进入YCL_YDEMO_DPC_EXP类中重定义。设置Request URI。点击创建按钮创建工程。原创 2024-04-22 12:55:27 · 374 阅读 · 0 评论 -
Step by step to create a text table
Click Yes。原创 2024-04-15 11:19:21 · 428 阅读 · 0 评论 -
什么是 SAP S/4HANA 的 Virtual Data Model(VDM)
Virtual Data Model(VDM)是在SAP S/4HANA中引入的一个重要概念,用于帮助组织更好地理解和操作企业数据。它是一种逻辑数据模型,用于表示和组织企业数据的各个方面,以支持不同层次的分析、报告和查询需求。VDM 旨在提供一个标准化、统一的数据访问层,使用户能够轻松地从底层数据源中检索和分析数据,而无需直接操作复杂的数据库结构。VDM 的核心目标之一是消除数据冗余并提供数据的一致性视图,从而简化数据访问和分析的过程。转载 2023-12-21 18:21:49 · 433 阅读 · 0 评论 -
SAP 采购订单审批策略实例详解
类似上述的业务需求,系统要允许企业定制一些筛选条件,保证需要被审批的订单,必须被审批,有的公司在OA系统实现审批通过接口传到SAP,这里讲讲SAP里面如何实现采购订单审批。如下图,01现在是可审批状态,而03是审批前提缺失,即03需要等01,02审批完成后才能进行审批,与设定的审批层级是相一致的。4:该状态下,审批之后,可以修改,如果修改的地方是审批条件里面定义的,则需要重新审批;我们要审批单据,一旦单据被审批了,原则上,单据在一定程度上就不能被修改了,未经过审批的订单,是不能收货的。转载 2023-12-14 10:29:18 · 750 阅读 · 0 评论 -
采购订单审批的七大类常见问题
假设采购组影响采购审批策略,其中采购组A1、A2的审批代码为Z1,采购组B1、B2的审批代码为Z2,审批代码Z1和Z2分布代表不同的采购审批角色,如果将采购订单的采购组从A1改成A2,由于二个采购组确定的是相同的审批代码Z1,也就是审批策略保持不变,那么此时不会触发重新审批,采购订单的状态将仍然是批准状态。可变性的值为4:当PO为批准状态,可以对PO进行各种字段的修改,当某个字段的修改影响新的审批策略或者导致采购订单金额变大,则将会触发重新审批,状态变成未审批的状态。其他字段的修改不会导致重新审批。转载 2023-12-14 11:05:29 · 600 阅读 · 0 评论 -
SAP采购审批策略常用表以及出口增强
为了使审批对谁某一个人,就要启用权限控制,给不同的人,分配审批组,及审批代码,进而控制不同的级别审批对准不同的人;采购订单的审批配置完毕后,在前台生成采购订单的同时,系统自动发送采购订单的审批参数,以便生成此审购订单的审批界面等,在相关参数流动的时候,经过用户出口“M06E0004”如果此出口激活后,而没有任何代码,数据流不向下一下暂存区,生成的采购订单,将无法进行审批,根据审批组和审批策略 在表T16FS表中查找此采购订单的可审批代码,然后根据FRGZU可以查看到了哪级审批(当前的审批代码)。转载 2023-12-14 09:13:02 · 279 阅读 · 0 评论 -
SM37 Cancel Logon of user DDIC in client 200 failed when starting a step
在执行MDGIMG 调整了模型的映射的时候,需要在同一个环境的 不同Client分别创建一个SM37的后台Job,我在执行NWBC的时候报错,发现MDG创建物料的流程用不了,发现是SM37的Job被取消了,报错是。如果不存在创建要给用户,如果存在,检查是否被锁住了。里面讲到的方案是到目标Client检查用户,同时这个Job的执行人是DDIC这个客户。二、然后我找到note。如果锁住了,请解锁。原创 2023-12-06 18:17:20 · 384 阅读 · 0 评论 -
SM59 事物码里的错误消息 SECSTORE035
如果存储加密数据记录,则数据文件的加密部分将使用标准加密密钥进行加密,这通常能够提供足够的安全性。此过程将单独的密钥存储在密钥路径的密钥文件中,并使用新的加密密钥自动加密安全存储中的所有数据记录。它允许加密存储 SAP 应用程序在登录到其他系统时需要的敏感数据,或保护内部数据结构的完整性。当这个参数路径指向的 .pse 文件包含非法字符或者文件内容小于 48 个字符,或者指向的 .pse 文件压根就不存在的时候,就会报这个错误。应用程序传输到安全存储的数据被加密并存储在数据库中。转载 2023-09-20 13:33:08 · 285 阅读 · 0 评论 -
PM工单BAPI增强字段处理
3、如果增强结构中存在数字字段,需要对BAPI中调用的BADI进行增强,通过BAPI可以找到对应的BADI(IBAPI_ALM_ORD_MODIFY),具体方法不再赘述,通过传入ZBAPI_TE_AUFK(自行新建,保证纯字符型)的结构字段,然后进行字符与数值的机构转换。前提:PM工单增强时,在CI_AUFK中新增过增强字段,目前需要在调用PM工单维护BAPI(BAPI_ALM_ORDER_MAINTAIN)时,通过extensionin参数进行传输增强字段,由BAPI写入。转载 2023-03-10 12:08:50 · 589 阅读 · 0 评论 -
PM任务清单批量导入IA05的BAPI
4、对于同一个任务清单的多个计数器来讲,以上代码中均通过EAM_TASKLIST_CREATE来进行创建而没有使用EAM_TASKLIST_CHANGE进行修改原任务清单来增加计数器(不确定通过EAM_TASKLIST_CHANGE可以实现,大家可以自行试一下)。1、通常来讲我们调用EAM_TASKLIST_POST函数,会认为不需要进行Commit Work,但是对于任务清单来讲,Commit Work还是少不了的。5、在创建同一个任务清单的多个计数器时,需要先创建任务清单,并提交,然后创建下一计数器。转载 2023-03-10 12:07:22 · 318 阅读 · 0 评论 -
FI票据凭证调用BAPI问题
现状:我们在使用BAPI_ACC_DOCUMENT_POST生成会计凭证时,大家会注意到,票据相关凭证无法通过该BAPI进行调用,为此SAP提供的方式有2种:1、使用BDC生成会计凭证;在调用BAPI生成票据相关凭证(W特殊总帐)时,需要注意2点,1、返回F5 246的错误消息;2、票据相关内容无传入参数可以进行写入;2、票据相关参数传入需要借助Memory ID进行传入,然后在标准代码中进行引入,然后写入数据即可。解决:1、针对报错消息,对标准代码进行修改(增加调用程序判断,以免影响标准业务)转载 2023-03-10 12:02:20 · 514 阅读 · 0 评论 -
EXIT_SAPLCOIH_009出口中修改当前单据数据
目前的解决手段一般用指针指向SAPLCOBH主程序的全局变量CAUFVD修改值,或者指向SAPLCOBC中的RESB_BT进行内表修改,具体指针如何指向的方法不做过多的表述,从sap社区中一搜一大堆。在维修工单出口IWO10009中,保存前检查的增强中,通常我们会遇到要修改PM工单抬头数据、组件数据、工序数据的需求,但在该出口中,SAP明显未预留给我们exporting和changing参数。组件与工序的信息修改与保存,参见工序与组件获取的函数组中的函数,也会查找到对应的函数,进行处理。转载 2023-03-10 12:01:59 · 247 阅读 · 1 评论 -
SAP 特征 Classification
特性 Classification原创 2022-08-02 11:37:57 · 5110 阅读 · 1 评论 -
SAP 系统取消用户设置ALV全局布局
ALV全局原创 2022-06-22 11:42:29 · 1911 阅读 · 0 评论 -
STMS 导入其他系统的请求无法传入PRD
如下的一个请求,再D环境导入后如果需要传到Q或者P的时候,STMS刷新不出来。办法一办法二重新使用副本请求导入之前的请求如果这样还是无法再正式环境刷新到该请求,重复办法一...原创 2022-04-24 09:56:45 · 370 阅读 · 0 评论 -
左连接字段作为查询条件
一问题描述不知道你有没有创建过这样的报表. 在查询结果中,特定字段为空. 但是用该字段为空去查询, 却查不出记录.如图一,没有限制查询条件时,可以查询到数据如图二.通过ALV过滤能只显示地点为空的数据如图三.限制地点为空时, 用户期望能查询到图一红色框中的数据.如图四.实际查询不到任何数据.图一图二图三图四二问题分析上述问题产生的原因很简单,因为报表程序中使用了左连接(如图五),并且选择条件是左连接的表字段.当左连接的右表中不存...原创 2022-03-15 18:02:29 · 1143 阅读 · 0 评论 -
隐藏标准程序上面的选择条件
有时候我们会碰到使用标准报表,但是部分选择不想被我们的用户使用。这边项目上碰到一个CON2的程序,但是我们不想用户使用其中的并发功能,因为这个程序很坑,会使用当前组服务器上所有的空余进程,这样满负荷的计算量对CPU要求很大,所以当时给用户多个方案,第一个是在里面加隐式增强,控制并发数,第二个是将界面上并发的选择条件隐藏。用户选择了第二个方案:所以我们将程序copy出来保存了一个变式然后再SE93里面 使用变式启动...原创 2021-12-02 17:43:28 · 498 阅读 · 0 评论 -
原生SQL接口API(ADBC)的使用
通常我们在项目实施过程中,会遇到需要从外围系统数据库中取数,插入数据,删除数据等操作,通常我们都会使用native sql,下面介绍一下adbc的使用方法,个人感觉比native sql更好一些,而且更加符合面向对象的开发理念,至于什么是adbc,以及adbc更多的介绍,大家可以通过百度了解更多,这里就不一一介绍了,下面通过代码来讲解具体的使用方法。更多的demo大家可参照sap标准的demo,以下:背景:ECC需要从BW系统的表中获取数据,通常我们会在bw系统创建一个远程函数调用来获.转载 2021-11-10 17:25:22 · 2166 阅读 · 0 评论 -
ABAP CDS View
一、前言核心数据服务(CDS)是用于定义和使用语义丰富(semantically-rich)的数据模型的一套架构,属于SAP HANA的一部分,但也可以在ABAP平台上使用,因此分为HANA CDS与ABAP CDS.HANA CDS:由于HANA需要直接在数据库内开发应用,使用标准SQL语言比如CREATE TABLE和CREATE VIEW等,已不能满足需要定义带有语义属性(比如Annotation)的数据库表、视图、类型等,因此HANA CDS应运而生。ABAP CDS:可以运行在除了HA原创 2021-11-04 17:10:47 · 1889 阅读 · 0 评论 -
Eclipse的代码自动完成(Code Automatic completion)配置
Today my colleague tells me with one tip regarding Eclipse auto completion setting, which I think is useful in my daily life.There are lots of standard classes and those class/method created on my own, however when I type some characters there is no auto转载 2021-11-04 10:52:21 · 240 阅读 · 0 评论 -
SAP Query里写自定义ABAP代码
SAP Query里写自定义ABAP代码主要有2种方式:1.SQ02里输入对应的信息集增加代码,详细使用可参考下列URL:http://www.erpfixers.com/blog/2016/9/12/using-abap-coding-in-sap-standard-queryhttps://blogs.sap.com/2015/11/20/building-an-sap-query-with-abap-code/http://www.baidusap.com/abap/query/922比如转载 2021-11-02 15:37:01 · 1815 阅读 · 0 评论 -
Query 创建教程
一、前言QUERY是SAP提供的方便无编程基础用户的报表工具,使用图形化的界面,让用户托托拽拽就能轻松完成报表编写。一般来说有两种方法:SQ01创建SAP Query,SQVI创建快速Query。二、SQVI创建快速Query这种方式创建的Query只有创建者才能Display 和 Change,别人无法使用,除非给它分配一个Tcode。SQVI操作分为编辑和执行两大部分,在编辑状态可直接执行报表。本文示例是销售订单抬头表VBAK和项目表VBAP的联合查询报表,搜索条件可以是抬头表的凭证原创 2021-11-02 15:34:53 · 2275 阅读 · 0 评论 -
WS_DELIVERY_UPDATE 修改库存地点
这个函数交货单过账的时候会提示库存地点为空,但是入参中logrt的赋值,不起作用。ls_vbpok-kzlgo='X'.ls_vbpok-xwmpp='X'.这两个字段也需要附上值。 CLEAR:lv_message,lt_vbpok,ls_vbpok. la_vbkok-vbeln_vl = lf_vbeln. la_vbkok-wabuc = 'X'. la_vbkok-wadat_i...原创 2021-08-20 14:05:39 · 1482 阅读 · 1 评论 -
Update function的问题和解决方案
DN的过账一般使用的是都是 Function:WS_DELIVERY_UPDATE ,其实这是一个经常使用到的函数,注意,这不是一个BAPI,只是一个函数,但是这个函数里面有一个update funtion ,所以这个函数并没有返回参数 return ( update 和异步的funtion都没有返回参数 )。DN的创建/修改 / 以及过账中BAPI:BAPI_OUTB_DELIVERY_CREATE_SLSBAPI_OUTB_DELIVERY_CREATE_STOBAPI_OUTB_...原创 2021-08-20 14:01:42 · 1538 阅读 · 0 评论 -
IDOC 监控
本文主要介绍IDOC监控相关的标准功能及相关表.主要集中在两个事务代码 WE02 显示 IDoc WPER POS 接口监控器 二事务代码WE02IDOC基本监控程序01选择界面02明细结果呈现左侧通过树状结构呈现消息类型及状态 统计IDOC个数. 双击任意节点,右侧ALV显示节点下的所有IDOC明细03单个IDOC显示双击明细条目显示单个IDOC的具体内容.如果选择界面限制的IDOC只有一个,会直接进入单个IDOC具体内容显示.转载 2021-07-30 17:42:40 · 476 阅读 · 0 评论 -
FICO批量修改资产字段AR31
今天财务顾问跑过来跟我说我的替代没起作用,让我看看是为什么。起因是这样的,财务会计需要对部分资产批量调整成本中心,区分新日期之后的使用新的成本中心。1、在GGB1替代中的主数据批量修改创新新的替代,如下图:2、在AR01中根据所选资产创建工作清单,这里可以选择批量修改的替代3、 执行事务:AR31,下达工作清单注:有些时候会报出 “在工作订单中没有找到代理人”,这时候需要你执行如下步骤:1)、执行 OAWF,2)、点击分配代理,3)、对下达工作清单基本功能创建..原创 2021-07-30 15:22:38 · 2539 阅读 · 0 评论 -
DEBUG 问题
1、程序中直接设定断点 -- 一般会加上执行用户的if 判断if sy-uname = 'ZTEST'. break-point.endif.2、job 的debug将执行程序设置为后台执行,SM37选择需要debug的程序,选中需要debug的job前面的复选框,然后再事务输入框中输入: JDBG,回车。3、程序运行界面 debug/H4、正在运行的程序debug,再SM50或者SM66,选择需要debug的process,然后点击工具栏: Program/Mode -转载 2021-06-15 17:59:30 · 598 阅读 · 0 评论 -
SAP download 表格信息到本地 (八)
使用标准的 SAP 类CL_DOCX_DOCUMENT 读取和下载XLSXFUNCTION zcl_ehfnd_xlsx.*"----------------------------------------------------------------------*"*"本地接口:*" IMPORTING*" VALUE(IV_FNAME) TYPE RLGRAP-FILENAME " upload 文件地址*" VALUE(IV_SHEETNAME) TYPE .原创 2021-06-15 11:57:15 · 431 阅读 · 0 评论 -
异步RFC 的使用
一直以来对RFM的使用大多是同步RFC,当需要保持数据一致性的时候,偶尔会用到事务性RFC( background tast / update task),考虑到程序效能的时候会用到并发RFC,单独的使用到异步RFC的时候很少。其原因在于我的生产机一般只有一台,程序前后关联行大多是比较强的,碰到效能问题不是用并发执行就是submit 后台JOB。异步RFC和并发RFC相比不需要看到结果:目前的项目是零售行业,采用的是多台生产机,很多主数据都是从MDG发送到其他几个生产机,这种数据的更新非常适合.原创 2021-04-12 16:34:03 · 914 阅读 · 0 评论 -
FICO 里面的替代和校验 以及调试
1、替代和校验的作用校验( validation ) :在凭证保存前根据设置条件判断此凭证是否有效,其中可以按抬头、行项目或者完全凭证来判断,后再根据valication 设置的消息消息类型决定凭证是否允许保存。SAP 校验是对在系统输入的 数据按照规则设定检验是否正确,可以按抬头、行项目或完全凭证来判断,然后根据validation 设置的消息类型决定凭证是否允许保存,(取消、错误、警告、信息 ),通过事物代码OB28和GGB0实现。事务步骤:1、SE38 将RGGBR000复制为ZRGG原创 2021-03-30 17:28:11 · 4036 阅读 · 0 评论 -
ABAP 弹窗弹出多个message
1、单条消息的输出 普通消息输出方式每次只能输出最后一条消息,例如: message e001(vf).2、多条消息的输出需要用到函数组:MESSAGES_SHOWTYPES: BEGIN OF ts_msg, msgty TYPE msgty, msgid TYPE msgid, msgno TYPE syst_msgno, msgv1 TYPE msgv1, msgv2 TYPE msgv2,...原创 2021-02-21 19:20:19 · 807 阅读 · 0 评论 -
在ABAP中使用表达式操作内表(替代READ TABLE)
在传统的ABAP代码中,通常使用READ TABLE来访问某一条内表数据,使用LOOP来访问多条数据。其实,在ABAP中也可以使用表达式的方式来操作内表,以使得代码更简洁。在本篇博客中,汇总了常用的内表表达式,并给出了与READ TABLE的相对比的写法,供读者参考。主要包括:使用内表表达式[ ]访问内表数据; 使用关键在VALUE和BASE为内表赋值; 使用在VALUE关键字中使用FOR实现LOOP循环赋值; 常用的built-in表达式lines_index( )和lines_exist转载 2021-02-21 16:31:20 · 1329 阅读 · 0 评论 -
SAP ABAP性能优化 - 使用次键(Secondary Keys)提升内表查询性能
1. 什么是次键?次键(Secondary Keys)是相对于内表的主键(Primary Keys)而言的第二级键值。通常内表的类型便决定了内表访问的数据索引方式 - 例如标准表是“线性查找”,排序表是“二分查找”,哈希表通过“哈希算法”进行查找。但这是基于主键访问的基础上的。如果对于哈希表的访问是通过非主键字段进行时,那么查找方式又将会是“线性查找”,而线性查找对于大数据量而言是效率最低的方式。如何解决这种问题呢?答案就是为内表定义次键(Secondary Key)。********转载 2021-02-21 16:28:14 · 1700 阅读 · 0 评论 -
ALV 选择屏幕的展开和折叠
方式一:使用COMMENT关键字。REPORT ztest_collapse.TYPE-POOLS icon.TABLES mara.SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME . PARAMETERS p_werks TYPE werks.SELECTION-SCREEN END OF BLOCK b1.SELECTION-SCREEN SKIP 1.SELECTION-SCREEN BEGIN OF LINE. SELECT.原创 2021-02-21 16:23:58 · 772 阅读 · 0 评论 -
屏幕序列 Screen Sequences
屏幕序列 Screen Suquences:SY-DYNNR存储当前屏幕号,如果需要使用屏幕序列,可以在Screen Painter中设置它的 next screen,这是静态的,还可以在处理函数中重写statically - defined next screen,这是动态的方式。如果不想序列中的某个屏幕显示,可以在PBO中使用 SUPPRESS DIALOG阻止显示,(注:此时PBO和PAI模块还是会处理 ),当你的屏幕序列中显示List的情况可以使用。某个屏幕的 next screen为.原创 2021-02-21 10:07:34 · 413 阅读 · 0 评论 -
常用系统变量 SY-*
直接在syst结构里面可以找到abap系统变量SY-SUBRC: 系统执行某指令后,表示执行成功与否的变量,0表示成功SY-DBLNT: 被处理过的记录的笔数SY-UNAME: 当前使用者登入SAP的USERNAMESY-DATUM: 当前系统日期SY-UZEIT: 当前系统时间SY-TCODE: 当前执行程序的Transaction codeSY-REPID: 当前程序名称SY-INDEX : 当前LOOP循环过的次...转载 2021-02-02 16:33:08 · 748 阅读 · 0 评论 -
Smartforms 的一个实例
自己偶尔做的一个实例,具体内容是:封面单独一页,写着采购订单,然后写着订单的抬头和明细,明细中数量金额小计,5行一页。只是测试用的,比较简陋啊。 1、封面:采购订单文本是通过text module,然后再window中直接调用,logo是通过SE78上传的。因为只是封面调用一次,所以没有创建main window,同时next page也不是当前页。接口变量和全局变量:1、调用table控件之前,这里获取header_count的...原创 2021-02-01 19:43:06 · 862 阅读 · 0 评论 -
ABAP内存、SAP内存、跨client内存
用户登陆后,最多一个系统可以开6个窗口,这在SAP中称为External Mode。而同一个窗口中,运行某程序后,可以通过CALL TRANSACTION/SUBMIT或其他代码跳转到其他程序,这个称为Internal Mode。Internal Mode的调用栈最多为9层。那么ABAP Memory,它是属于Internal Mode间可以共享的数据,而External Mode间无法共享。所以,ABAP Memorcy只能在同一窗体中共享,这与浏览器中的Session是一样的。1、ABAP Memo原创 2021-01-27 16:50:33 · 816 阅读 · 0 评论 -
Smartform 应用
Smartform主要是SAP针对文件打印的一种工具。主要由Form、Style,Text module三个组成,事务:SMARTFORMS。Form是由不同的节点组成,一个form包含一个或多个page,一个form中只可以拥有一个main window且在form创建时已经默认创建,但是可以可以有多个secondary window,copies window,final window。列表输出:template打印固定数据格式类型,可设置行高,列宽。table:打印动态数据表格,...原创 2021-01-05 13:59:15 · 849 阅读 · 0 评论