问题标签 [s4hana]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 在 Hana DB 中传输 4 个虚拟 SDA 表的最佳方式
问题:我的团队目前正在进行从 ECC 系统到新 S/4 Hana 系统的 ERP 迁移。作为上线的一部分,我们的团队需要将所有表从 S/4 系统复制到我们将托管数据的 SLT 模式中。大多数表将由 SAP 之外的 SLT 复制处理。但是,由于时间紧迫,我们确定了 4 个需要多天复制的表。想法是从远程源 (ABAP/SDA) 复制现有数据并放置在我们的 SLT 模式中。一旦完成,我们可以激活点前向复制并允许更新所有新的或修改的记录查看 SLT 复制。
尝试的方法:我们当前的方法是与后端 S/4 数据库建立 SDA 连接,并按年份分解数据,以使用存储过程插入到我们的本地表中。这种方法出现了许多问题,但它目前正在发挥作用。它只是超级慢。
论坛问题:
- 这是您处理此类问题的方式吗?如果没有,您提出的解决方案是什么?
- 您是否在目标表中看到任何需要自定义以提高性能的内容?
- 存储过程中是否有任何突出的地方需要调整?
示例: 假设我们有一个名为:A_tbl的源表
- A_tbl 中有 5 亿条记录
- 大约 500 列宽
然后我们将有我们的目标表:B_tbl
- 与 A_tbl (500) 相同的列数
- 12 人轮循分区
- 索引 5 列
当前程序:
abap - 如何在 S4HANA 中阻止用于存放的存储箱?
我需要阻止在创建仓库任务期间确定的 bin 以外的 bin - 与确定的 bin 相邻的 bin。我可以通过 /SCWM/LS02 手动阻止存储箱进行存放,如下所示:
但是,我需要在仓库任务过帐期间通过增强来做到这一点。我把代码放在一个BADI中,用于更新仓库任务(增强点/SCWM/ES_CORE_SB),在/SCWM/LS02中复制这个过程是相当困难的。它涉及通过对话框操作内存值,然后在调用功能模块以保存更改之前将它们再次导入主程序(但仍然无法成功使更改“粘住”)
自定义状态已设置好,可用作阻止 bin for putaway 的原因。
有谁知道我可以使用任何 FM 或 BAPI 来阻止具有自定义状态的存储箱?或者尝试通过 ABAP 阻止存储箱?谷歌搜索但没有找到。已经查看并尝试了 FG CRMBSVA 的 FM,但无济于事。
在此先感谢您的帮助!
api - 如何访问 S/4HANA Cloud 的 REST API
我有一个 S/4HANA Cloud 试用帐户,并尝试访问 REST API。我收到“401 未授权”错误。
S/4HANA 试用账户是否不允许访问 REST API?有没有办法启用它?或者我应该为 REST API 的基本身份验证使用其他一些用户 ID?(我正在尝试与网络浏览器相同的用户名/密码)谢谢。西本杜
azure - 面向 SAP 网关的 Azure APIM 客户端证书
在 SAP S/4HANA 中调用 OData 服务时,我们尝试使用客户端证书进行身份验证。我们从一个天蓝色的 APIM 实例调用。作为证书,我们创建了一个自签名证书并根据此博客配置了 SAP S/4HANA ( https://blogs.sap.com/2020/05/03/x.509-certificate-based-logon-to- odata-services/ ) 然后我们从浏览器中测试它,它就像一个魅力。但是从 azure APIM 调用我们会从 SAP S/4HANA 得到以下响应:
<?xml version="1.0" encoding="utf-8"?> <error xmlns:xsi="http://www.w3.org/2001/XMLSchema-Instance">
<code>HTTP/404/E/Not Found</code>
<message> Service /sap/opu/odata/sap/xxxxyyyy/xxyyzz call was terminated because the corresponding service is not available.The termination occurred in system UFI with error code 404 and for the reason Not found. Please select a valid URL. If it is a valid URL, check whether service /sap/opu/odata/sap/xxxxyyyy/xxyyzz is active in transaction SICF. If you do not yet have a user ID, contact your system administrator. </message>
SAP S/4HANA 支持表示,然后从浏览器调用他们可以“看到”有效负载中的证书,但随后从 APIM 调用,有效负载是“空的”。
我从 SAP S/4HANA 网关服务器获得了跟踪日志,并且我注意到从浏览器调用与从 APIM 调用的细微差别:
浏览器调用(成功):[Thr 140708195055360] HttpModGetDefRules:确定缺陷:COPY_CERT_TO_MPI (1)
APIM 调用(失败):[Thr 140708197697280] HttpModGetDefRules:确定了缺陷:NOTHING (0)
所以证书显然是到达 SAP S/4HANA 网关服务器,而不是 SAP S/4HANA Odata 服务器。所以不知何故,由于某种原因,它在 SAP S/4HANA 网关服务器上丢失了,然后它来自 azure APIM。
我试图使调用 100% 相同(相同的标头相同的值),但我无法控制在 azure apim 中添加证书的方式,或者可以一个?
我读到可以使用以下策略设置证书正文:
但我不知道如何获得“byteCertificate”的正确值。
有人做过吗?或者有没有人遇到过类似的问题?
tms - 从 TMS 到 SAP S/4HANA(入站)的 SAP PO 7.5 接口。IDOC XML 到标准企业服务将通过 2 个新字段得到增强
我在从 TMS 到 SAP S/4HANA(入站)的 TMS 接口中使用 SAP PO 7.5。它是标准企业服务 ( TrasaportatiOrderGenericRequest_IN
) 的 IDOC XML(XML 文件),需要通过附加 2 个新字段来增强。
对于 N 个停靠点 ( E1TPSLS-LSQNUM
),需要在 (N-1) 个阶段填充每个阶段下的字段,以根据交货的装载/卸载位置取值。在给定的装卸条件下,我无法在每个阶段生成ReqeustedUnloadedDateTime
和字段。ExpectedArrivalDateTime
这是核心 TMS 场景。谁能帮助我。我是否使用任何 UDF 来处理具有给定条件的事件和队列。请帮忙。
附上截图。
图片1:
图片2:
图片3:
图片4:
s4hana - 是否可以通过 ERP 连接器访问 SAP Analytics Cloud 中的 S/4HANA SQVI 查询?
上下文:我需要将事务中内置的查询中的数据从SQVI
本地 S/4HANA 复制到 SAP Analytics Cloud(版本:2021.14.7)。然而,显而易见的连接器 S/4HANA 连接器不起作用。相反,我使用了 ERP 连接器,但在这里我无法访问 Z* 查询。
abap - ABAP Open SQL - 从多个表中选择的最佳方式
我想从多个表的选择中报告并应用过滤器。没什么新鲜的,但我想知道最好的实现是什么(考虑到我使用的是 S/4HANA 系统)。
规格
数据
例如,我们要从表中检索数据:EKKO
订单标题EKPO
订购项目EKKN
订单项目分配EKBE
订单项目历史
表有以下关系:
EKKO
1 - nEKPO
EKPO
1 - nEKKN
EKPO
1 - nEKBE
过滤器
我们希望每个表的至少一个元素存在(INNER JOIN),如果标题没有项目我们不上传标题数据,如果项目没有分配我们不上传帖子的数据,等等
我们将过滤器应用于几个表格区域,例如
EKPO-WERKS
植物- ETC...
执行
- 选择加入
第一个解决方案是使用连接对所有表进行选择,然后在使用LOOP AT ... GROUP BY...
then之后将它们分解LOOP AT GROUP
。
但我已经在问自己问题了!
应按什么顺序选择数据? EKKO
-> EKPO
-> 等等。或EKPO
->EKKO
等。
- 多选
选择标题,然后根据标题选择项目,然后根据项目进行分配等。
优点是它更具可读性(不确定)并且我们的冗余数据更少,另一方面,我们必须在 ABAP 中应用某些过滤器后选择。
- ???
另一种解决方案?
结论
所以我有点迷茫,我想听听你的意见。
s4hana - 将 ASCII 数据从 SAP 提取到其他系统
我们正在将一些数据从 SAP 导出到 Azure。这包括一个包含 URL 信息的字段。SAP 以 ASCII 格式存储它。
在这个其他系统中如何将这些数据转换为文本数据?是否有一些可用的标准代码/库(例如 Java、Python)?
更多信息 - 当使用 SAP Logon 查看数据时,它显示为字符串“ FF060201.....
”,看起来像 ASCII Hex。但是当我尝试像http://www.unit-conversion.info/texttools/ascii/这样的在线 ASCII 转换器时,它无法转换和显示 URL(显示一些垃圾字符)。这是因为 SAP Logon 屏幕显示数据的方式不同,而实际存储的 ASCII 数据不同?
提前感谢您的任何指示/帮助。
问候,
S.达斯
编辑:
这就是我使用 SAP Logon 搜索表并查看数据(存储在名为 Data 的列中)的方式
workflow - SAP Workflow 从邮件模板的 CDS 视图读取决策说明
正如标题所示,我必须在 CDS 视图中阅读工作流用户决策任务中的决策说明(https://blogs.sap.com/2013/04/01/sap-workflow-decision-task-new-capability-添加注释/)。CDS 视图用于向邮件模板提供数据,该模板在用户拒绝某个工作流程步骤后发送。决定说明为什么该项目被拒绝应该在邮件中发送,以通知收件人出了什么问题。
在 ABAP 中,存在两个不同的函数(SO_NOTE_READ 或 SO_DOCUMENT_READ_API1)来阅读决策说明,效果很好,我能够轻松阅读决策说明。但是我在纯 CDS 中找不到等价物。
我还找到了两种不同的解决方案来解决这个问题。但该解决方案仅使我能够使用 SQl 查询访问数据库层或使用虚拟元素注释。 ABAP CDS 视图 - 使用类方法 后一种解决方案仅适用于基于注释的解决方案,邮件模板不是,我没有找到关于如何从纯 SQL 中读取决策说明的解决方案。
对于这个问题,任何人都有解决方案来替换纯 CDS 中的 FM SO_NOTE_READ 吗?请注意,我使用的是灵活的工作流程,邮件是通过 Fiori 应用程序“维护电子邮件模板”触发的,因此不可能/不需要使用 ABAP 发送邮件。