SAP ABAP 如何处理函数抛出的例外参数消息文本(Function Exceptions)

本文主要是介绍SAP ABAP 如何处理函数抛出的例外参数消息文本(Function Exceptions),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SAP ABAP 如何处理函数抛出的例外参数消息文本(Function Exceptions)

引言: 有时,我们调用的 ABAP 函数中没有 Return 结构,也没有其他描述处理结果的消息类返回参数,但是却惊讶的发现函数定义了很多 Exceptions 参数,此时,我们不得不通过 Exceptions 入手,为用户层返回提供准确可读的错误原因消息文本。

关键字:SAP ABAP Function Exceptions 例外/异常 消息文本

文章目录

  • SAP ABAP 如何处理函数抛出的例外参数消息文本(Function Exceptions)
    • 1. 何时会偶遇这类函数
    • 2. 函数案例
    • 3. 如何解决
    • 4. 进一步的问题与解决
      • 4.1 单元级解决方案
      • 4.2 项目级解决方案
      • 4.3 产品级解决方案
    • 5. 思维发散
    • 其他


1. 何时会偶遇这类函数

一般在调用某些标准函数时会遇到,遇到了也是缘分。
我把他们分成两类:

  • 第一类:SAP内部使用函数

  • 第二类:SAP业务层级函数

    • 我能理解第一类函数这样设计,但不太理解第二类函数也这样设计!虽然我没有专门调试第二类函数(并不清楚技术层的具体实现),但根据接口设计原则,业务层级的函数应该遵从业务接口级别设计思想的指导——提供易用、友好的交互。
    • 我大胆猜测第二类函数中有相当一部分可能是 SAP 的“弃子”,他们从被创造到被放弃(已转向新的产品)所经历的时间较短,没来得及完成业务接口级别的最终迭代就进入了生命周期的终点。当然,这可能是函数个体的现象,也可能是模块/产品级的。

2. 函数案例

  • 第一类案例 SD_DELIVERY_ITEMS_RECEIVE
    在这里插入图片描述
    说明:此函数被用作 BAPI_GOODSMVT_CREATE 对 MIGO 检查功能的补充,知道的大顾们应该不多,但可以在 SAP Support 上找到相关资料,我通过 where use list 找到了它的用处,下图。
    在这里插入图片描述
    从清单可以知道,它被 MIGO 包含程序 LMIGOKO1 使用,而进一步我们从 LMIGOKO1 的描述中得知,他必定是内部使用的,下图。
    在这里插入图片描述
  • 第二类案例 L_TO_CREATE_DN
    在这里插入图片描述
    说明:此函数是 SAP-WM 模块(注意不是 EWM )创建 TO 转储单的标准业务函数,我们看到它足足有15个 Exception ,这里不深究为什么,可以明确这是一个业务接口级别的函数。

如上述两个例子所示,他们并没有标准 Return 结构的返回,假设他们都运行失败,我们不得不通过 Exceptions 参数入手,为用户界面或接口等的返回提供准确且可读的错误原因消息文本。

3. 如何解决

通过函数 SWO_TEXT_FUNCTION_EXCEPTION 获取 Exception 参数的短文本描述
在这里插入图片描述
以 call function ‘SD_DELIVERY_ITEMS_RECEIVE’ 为例:
在这里插入图片描述

4. 进一步的问题与解决

哈哈,你的小眼神可能已经在盯着函数中的 language 入参,这使你心生不妙。对的,你需要进一步处理短文本的语言维护问题。

4.1 单元级解决方案

首先你根据系统当前语言去获取文本,然后你发现返回了个寂寞,所以你心怀忐忑地跑去 SE37 看看,结果心凉了半截,如图,
在这里插入图片描述
它只有德文!然后你点击菜单栏->转到->翻译。
考虑到经常使用,要进行下一步。

4.2 项目级解决方案

为此类问题建立处理机制,简单的逻辑:以当前会话语言为优先,设置第一、二、三语言的文本获取。
直接看代码:
在这里插入图片描述
在这里插入图片描述

4.3 产品级解决方案

这是我的管理解决方案中的一个子方案

  • 专门建立管理封装标准函数的函数组
  • 在函数组下封装所需的标准函数(命名/标准/通用/可扩展是重要设计原则)
  • 提供定制BAPI级的函数服务

做到这里,这篇文章标题要做的事情就结束了,后面的消息抛出与展现等不归我管。

5. 思维发散

  • 每一个函数都有一个预置例外
  • 函数抛出例外的几种方式
  • 对常用的业务函数或BAPI也可以参照4.3的解决方案
    函数组:ZFG_ENCAPSULATION_ON_STD
    组描述:基于标准功能或代码之上的封装

其他

我的微信群、QQ群和其他发布平台。

  • 关于微信群、QQ群和其他发布平台

长期提供开发和运维服务。

  • 关于提供开发和运维服务的详情

这篇关于SAP ABAP 如何处理函数抛出的例外参数消息文本(Function Exceptions)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/299989

相关文章

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

聊聊springboot中如何自定义消息转换器

《聊聊springboot中如何自定义消息转换器》SpringBoot通过HttpMessageConverter处理HTTP数据转换,支持多种媒体类型,接下来通过本文给大家介绍springboot中... 目录核心接口springboot默认提供的转换器如何自定义消息转换器Spring Boot 中的消息

Python中高级文本模式匹配与查找技术指南

《Python中高级文本模式匹配与查找技术指南》文本处理是编程世界的永恒主题,而模式匹配则是文本处理的基石,本文将深度剖析PythonCookbook中的核心匹配技术,并结合实际工程案例展示其应用,希... 目录引言一、基础工具:字符串方法与序列匹配二、正则表达式:模式匹配的瑞士军刀2.1 re模块核心AP

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,