标签: abap

什么是ABAP和SAP?

什么是SAP和ABAP?我搜索并获得了一些不太有意义的不同首字母缩略词.

  • SAP是数据库引擎吗?
  • ABAP是一种编程语言吗?
  • 或者他们没有那种性质?

它们主要用于什么?

sap abap

74
推荐指数
6
解决办法
14万
查看次数

ABAP的直升机视图

我不知道关于ABAP的事情,除了它有一个OO方面,我想在我开始仔细研究之前对它有一些直升机视图.我知道我可以在研究它时找到所有这些,但就像我说的初学者一样,我想知道我在处理什么.

  • 是(总是)编译?
  • Typestem:它是强类型的吗?它是否使用类型推断?
  • 继承:single/muliple,类似接口的结构?
  • 集合:除了数组之外还有它的集合吗?它是通用收藏品吗?它是否使用List理解?
  • 数组,返回类型,参数类型,重写方式(con/contra/in)方差怎么样?
  • 任何例外处理?
  • 是否通过合同支持进行设计?
  • 选择其他众所周知的语言有什么值得注意的吗?
  • ...

任何关于特征的一般信息基本上都是受欢迎的

sap abap

48
推荐指数
2
解决办法
6211
查看次数

如何在abap中获取内部表的行数?

如何获取内部表的行数?我想我可以循环播放它.但必须有一个更健全的方式.

我不知道它是否有所作为,但代码应该在4.6c版本上运行.

sap abap

33
推荐指数
3
解决办法
31万
查看次数

SAP可以使用Python吗?

Python可用于查询SAP数据库吗?

python sap abap

26
推荐指数
4
解决办法
4万
查看次数

ABAP开发的首选布尔类型

SAP没有布尔值的核心数据类型.此外,SAP中更高级别的布尔类型通常具有三种状态:true('X'),false('')和unknown(' - ').

现在很明显,布尔值是我开发工作的基石,但我意识到我的类型(数据元素)用法并不是非常一致.到目前为止,我认为这些是最常见的:

  • abap_bool:在abap类型池中定义,不受约束但常量定义为true,false,unknown,yes和no
  • os_boolean:数据元素,是('X')或否('')
  • xfeld:data element,True('X')或False('')缺少字段标签,描述为复选框

在我的代码中我主要使用,abap_bool因为我可以使用常量而不是字符值,而不是我无法分配abap_truexfeld.但是,我被警告过,这种类型的池可能并不总是可用.

我现在想知道布尔值的最佳实践,特别是:

  • 我应该使用哪种首选类型?
  • 使用abap类型池会导致某些模块或场景出现问题吗?
  • abap_bool包含未知或任何字符值的可能性是否重要?

sap abap

17
推荐指数
2
解决办法
1万
查看次数

从循环中的内部表中删除当前行

在循环内部表时,我可以安全地删除活动行吗?

例如,请考虑以下代码:

LOOP AT lt_itab INTO ls_wa.
    IF [...] . " A check that can't be done inside a 'DELETE lt_itab WHERE'
        DELETE lt_itab INDEX sy-tabix
        " OR
        DELETE lt_itab FROM ls_wa.
    ENDIF.
ENDLOOP.
Run Code Online (Sandbox Code Playgroud)

删除这样的记录是否安全,或者这种逻辑不按预期行事?

我应该在临时itab中存储行的唯一标识符并DELETE lt_itab WHERE在循环后运行吗?

我假设对当前迭代中加载的记录以外的记录执行删除操作肯定会引起问题,但我不确定这是否是有效的,更不用说是好的做法.

sap abap

15
推荐指数
1
解决办法
6万
查看次数

是否有另一种连接方式而不是使用CONCATENATE关键字?

是否有另一种在ABAP中连接而不是使用CONCATENATE关键字的方法

使用示例CONCATENATE:

DATA:
  foo    TYPE string,
  bar    TYPE string,
  foobar TYPE string.

  foo = 'foo'.
  bar = 'bar'.

  CONCATENATE foo 'and' bar INTO foobar SEPARATED BY space.
Run Code Online (Sandbox Code Playgroud)

sap abap

14
推荐指数
3
解决办法
3万
查看次数

在纯ABAP中针对XSD验证XML

是否有任何标准方法在ABAP中使用XSD执行XML文档验证?据我所知,有一种方法利用XI/PI功能,但这些功能在我们的系统中不可用.

我想我们也可以使用一种解决方法:使用任何其他语言制作独立的Java RFC或Web服务,从SAP获取XML和XSD,执行验证并将结果返回给SAP; 但这可能是更复杂,更不可靠的解决方案.

你有没有遇到类似的任务,你是如何解决的?任何建议,意见甚至澄清问题都非常感谢!

xml validation abap xsd

14
推荐指数
1
解决办法
2058
查看次数

附加排序表的ABAP短转储

当我将一行添加到已排序的表时,为什么我的ABAP程序会短暂转储?

ST22显示 ITAB_ILLEGAL_SORT_ORDER

data: sorted_tab type sorted table of ty_tab with non-unique key key,
      line       type ty_tab.

line-key = 1. 
append line to sorted_tab.  "works fine" 

line-key = 2. 
append line to sorted_tab.  "works fine" 

line-key = 1. 
append line to sorted_tab.  "<==== Short dump here" 
Run Code Online (Sandbox Code Playgroud)

sap abap

12
推荐指数
1
解决办法
2万
查看次数

三元运营商(替代方案)

ABAP语法中是否有三元或条件运算符?我没有找到一个,所以假设答案是否定的,那么我是否有一个替代方案可以用来清理IF我经常使用的常见"哑" 语句?

例如,考虑一种使用可选消息参数记录消息的方法.要决定使用导入的参数还是默认值,我必须像这样检查值:

IF iv_class IS INITIAL.
    lv_message_class = 'DEFAULT'.
ELSE.
    lv_message_class = iv_class.
ENDIF.
IF iv_number IS INITIAL.
    lv_message_number = '000'.
ELSE.
    lv_message_number = iv_number.
ENDIF.
IF iv_type IS INITIAL.
    lv_message_type = 'E'.
ELSE.
    lv_message_type = iv_type.
ENDIF.
Run Code Online (Sandbox Code Playgroud)

三元运算符会将这五行语句中的每一个都减少为单行,如下面的代码块所示.当操作员在线使用时,它甚至可以不需要使用临时变量.

lv_message_class  = iv_class  IS INITIAL ? 'DEFAULT' : iv_class.
lv_message_number = iv_number IS INITIAL ? '000'     : iv_number .
lv_message_type   = iv_type   IS INITIAL ? 'E'       : iv_type   .
Run Code Online (Sandbox Code Playgroud)

有没有办法在ABAP中近似这种编程风格,还是我陷入了混乱?

sap abap

11
推荐指数
1
解决办法
4906
查看次数

标签 统计

abap ×10

sap ×9

python ×1

validation ×1

xml ×1

xsd ×1