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内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

苹果macOS 26 Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色

《苹果macOS26Tahoe主题功能大升级:可定制图标/高亮文本/文件夹颜色》在整体系统设计方面,macOS26采用了全新的玻璃质感视觉风格,应用于Dock栏、应用图标以及桌面小部件等多个界面... 科技媒体 MACRumors 昨日(6 月 13 日)发布博文,报道称在 macOS 26 Tahoe 中

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

C++ RabbitMq消息队列组件详解

《C++RabbitMq消息队列组件详解》:本文主要介绍C++RabbitMq消息队列组件的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. RabbitMq介绍2. 安装RabbitMQ3. 安装 RabbitMQ 的 C++客户端库4. A

SpringCloud整合MQ实现消息总线服务方式

《SpringCloud整合MQ实现消息总线服务方式》:本文主要介绍SpringCloud整合MQ实现消息总线服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、背景介绍二、方案实践三、升级版总结一、背景介绍每当修改配置文件内容,如果需要客户端也同步更新,

一文详解PostgreSQL复制参数

《一文详解PostgreSQL复制参数》PostgreSQL作为一款功能强大的开源关系型数据库,其复制功能对于构建高可用性系统至关重要,本文给大家详细介绍了PostgreSQL的复制参数,需要的朋友可... 目录一、复制参数基础概念二、核心复制参数深度解析1. max_wal_seChina编程nders:WAL