标签: sap

三元运营商(替代方案)

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
查看次数

由于记录插入记录,使用dbWritetable使用RJDBC写入SAP HANA非常慢

我正在尝试使用RJDBC的dbWritetable以下列方式从R到SAP HANA编写一个大型数据集(10个字符串,100M记录)

library("RJDBC")
drv <- JDBC("com.sap.db.jdbc.Driver", "/data/hdbclient/ngdbc.jar", "'")
database <- dbConnect( drv,"jdbc:sap://servername", "USER", "PASS")

dbWriteTable(database, "largeSet", largeSet)
Run Code Online (Sandbox Code Playgroud)

这有效,但速度极慢(每小时75k记录).我也测试了RODBC(sqlsave),这显示了同样的问题.

看看dbWriteTable它背后的代码似乎是逐个记录(即与插入相同),并且确实使用逐行插入到使用中dbSendUpdate显示相同的性能.我已经验证问题不在于连接速度本身.

ROracle有一个bulk_write选项似乎可以解决这个问题,但由于我正在尝试写HANA,我需要RJDBC或RODBC.

谁能告诉我如何通过运行批量写入或其他方法来加快对HANA的写入?

sap r rjdbc

10
推荐指数
1
解决办法
997
查看次数

适用于多个目的地的JCO IDOC服务器

我正在开发一个IDOC服务器,它可以连接到同一SAP系统上的多个目的地(网关主机将是相同的)并接收IDoc.我不确定我需要运行多个JCoServer实例还是需要多个目的地的单个JCoServer.

如果是后一种情况,为什么jco.server.repository_destination在提供服务器数据时会有一个参数来使用属性指定目标名称?

java sap idoc jco sapjco3

10
推荐指数
1
解决办法
681
查看次数

如何使用 OAUTH/JWT 与 HANA 建立 Python 连接

我们目前在连接到 SAP HANA 的 Python 连接器中使用基本身份验证。在我们当前的连接字符串中,我们使用 SQLAlchemy,它看起来像这样:

def get_engine(host_name):
    return create_engine('hana://{user}:{password}@{host_name}:{port}/HUP'.format(
        user=request.json['username'],
        password=base64.b64decode(bytes(request.json['password'], encoding='utf-8')).decode('utf-8'),
        host_name=host_name,
        port=current_app.config['HANA_PORT']
    )
    )
Run Code Online (Sandbox Code Playgroud)

我们现在需要过渡到使用 HANA Oauth,因此不再需要在连接字符串中输入用户名和密码。理想情况下,应该有一种方法可以将 JWT 输入到连接详细信息中。我在网上找不到太多资源来真正说明如何使用 Oauth 的 HANA 创建基于 Python 的连接器。这里的任何帮助将不胜感激。

python sap sqlalchemy oauth-2.0 hana

10
推荐指数
1
解决办法
217
查看次数

获取SAP ABAP中服务器端目录的内容

我需要在SAP中获取服务器端目录的列表.我如何在ABAP中实现这一目标?我可以调用任何内置的SAP函数吗?

理想情况下,我想要一个函数,我可以将路径作为输入传递,并返回内部表中的文件名列表.

sap abap directory-listing

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

为什么在java中调用RFC_READ_TABLE到CDPOS时得到DATA_BUFFER_EXCEED

我的java/groovy程序中的要求是这样的:允许用户输入表名和表字段作为查询输入参数,并期望从SAP获得一些查询结果.从用户输入,我得到表名[CDPOS]和[CDHDR].在阅读了SAP文档和谷歌搜索后,我发现这些是存储更改文档日志的表.但是我没有找到任何可以在java中用来执行这种查询的远程调用函数.然后我使用了已弃用的RFC"RFC_READ_TABLE",并尝试仅根据此RFC构建自定义查询.但是,我发现如果我传递给这个RFC的所需字段的数量超过2,即使我限制了最大行,我总是得到DATA_BUFFER_EXCEED错误.

我无权成为sap系统中的ABAP开发人员,无法将FM添加到现有系统,因此我只能编写代码来完成JAVA中的此要求.

难道我做错了什么?你能否就这个问题给我一些提示?

提前谢谢了!

sap abap jco saprfc

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

标准表和散列表Abap之间的区别

能否请您详细解释使用"标准表","哈希表"或简称"表"之间的区别."初始大小0"的含义是什么?

如需参考,请查看以下代码..

it_c01_d006_raw TYPE STANDARD TABLE OF /bic/ac01_d00600
                       INITIAL SIZE 0,
it_c01_d006     TYPE HASHED TABLE OF /bic/ac01_d00600
                       WITH UNIQUE KEY /bic/cemployee /bic/cdatetype,
it_c01_d002     TYPE TABLE OF /bic/ac01_d00200.
Run Code Online (Sandbox Code Playgroud)

sap abap

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

什么是SAP系统中的客户端?

有人可以解释一下使用ABAP堆栈的SAP NetWeaver系统中的客户端是什么,以及它如何在同一个安装中创建逻辑分隔?

sap abap

9
推荐指数
1
解决办法
9753
查看次数

调试器中的ABAP内存ID或PARAMETER值

我必须调试的一些ABAP程序使用系统内存使用以下语法将数据传递到其他程序:

EXPORT: VARIABLE_NAME  TO MEMORY ID 'NAME_OF_MEMORY_OBJECT'.
Run Code Online (Sandbox Code Playgroud)

如何在调试器中检查这些内存ID的值?


相关地,如何查看参数集的值:

SET PARAMETER 'ZPR' FIELD lv_project.
Run Code Online (Sandbox Code Playgroud)

debugging sap abap

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

SAP RFC:大数据的分块

有没有办法用SAP-RFC将大结果"分块"成几个较小的部分?

根据这些链接,你似乎需要自己实现分块:-(

我想避免这种情况,我希望有一种方法可以让SAP-RFC库进行分块.

使用案例:

结果是100k行.我想获取1k行,直到收到所有行.

我想它并不重要,但我会使用PyRFC代码.

python sap saprfc

9
推荐指数
1
解决办法
372
查看次数

标签 统计

sap ×10

abap ×6

jco ×2

python ×2

saprfc ×2

debugging ×1

directory-listing ×1

hana ×1

idoc ×1

java ×1

oauth-2.0 ×1

r ×1

rjdbc ×1

sapjco3 ×1

sqlalchemy ×1