问题标签 [abap-st]

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.

0 投票
3 回答
5873 浏览

xml - 带有任意 XML 标记的 SAP 简单转换

我有未知结构的 XML,我想在其上应用 ST(简单转换)以“以某种方式”将 XML 中的内容转换为 ABAP 结构。

现在我有以下测试报告:

我有以下 ST 转换 ZTBU_ST_COPY_TEST (上面调用的那个):

现在它工作正常,它会将 ID 带入表 LT_OBJ 的字段中。但是,由于使用<TT:SKIP>. 我的目标是将 XML 文档的其余部分(这些 FIRST、SECOND、HERE 和 THERE 或任何任意 XML)以“某种”格式放入字段 REST 中——可能作为存储在 STRING 变量中的粗略 XML。

我知道我需要<TT:SKIP>用更聪明的东西代替,但我不知道应该是什么......知道吗?

旁注:是的,我知道,最好使用 XSLT 或其他东西,而不是 ST,但我别无选择,我需要使用 ST。

0 投票
2 回答
1724 浏览

abap-st - 通过 ABAP 简单转换在单个 XML 元素中使用多个命名空间

目前,对于我们提到命名空间前缀“etd”的所有元素,都会为它们打印链接(突出显示为绿色)。输出 XML 文件如下所示: 在此处输入图像描述

我希望输出看起来像: 在此处输入图像描述

而不是打印所有元素的链接,我希望它只打印一次 - 在标题(在元素“JPK”中,突出显示绿色),就像默认命名空间一样。

您能否向我提供您宝贵的意见以纠正问题?

请找到我通过事务代码创建的简单转换的代码XSLT_TOOL

0 投票
1 回答
3309 浏览

abap-st - ABAP 简单转换中的 CX_ST_MATCH_ELEMENT

我正在尝试将简单的 XML 转换为 ABAP 并使用事务XSLT_TOOL。我得到的垃圾场

错误 tiempo ejec。ST_MATCH_FAIL Excepción
CX_ST_MATCH_ELEMENT Fecha y hora 31.07.2017 18:55:46

XML:

xslt_tool

在此处输入图像描述

这是程序生成的:

这是一个简单的程序:

我究竟做错了什么?

0 投票
1 回答
2409 浏览

xml - 简单转换反序列化:匹配元素错误

运行程序后,我必须将以下 XML 解析为内部表,得到简短的转储。请看下面的程序和简单的转换。简单转换中发生异常,下面将详细说明。

分配给类“CX_ST_MATCH_ELEMENT”的异常未被捕获,因此导致运行时错误。

异常的原因是:

XML 匹配错误预期为元素结束:“总计”[] 读取为元素开始:“称重”

我的 XML:

程序:

ZPP_TT_EXAMPLETEST_ST 转换:

提前谢谢了。

0 投票
2 回答
423 浏览

xml - 在 ST 转换中连接值?

我正在通过 ST 编写序列化,它应该将多个变量/节点放入一个 XML 标记中。

输入应序列化的 ABAP itab:

其中每个ROW值都是一个 itab,它 VALINDEX字段组成

第一行的预期输出样本:

这里

1 in<row r="1">对应于行号ROW_ID

1_xcell1 in<c r="1_xcell1">ROW_ID根表INDEX的当前行、当前行的字段、表的ROW文字cell和循环计数器的串联ROW

我最终得到的转变是:

我将in 放入 var 以用于标记ROW_ID中下杆的映射。<c>

如您所见,这种方法不起作用,因为我不知道如何放置循环计数器以及如何将其与其他值连接起来。

我在 answers.sap.com ( 123 )上找到了几个旧线程,但没有得到答复。

ST 中是否有像 XSLT 中的串联:

SY-TABIX是否有像ABAP中的循环的内置变量?

0 投票
2 回答
455 浏览

xml - ST 转换序列化期间错误的命名空间绑定

我有一个简单的转换来创建这样的 XML 文件:

但是我的转换会生成一个像这样的文件:

我希望所有命名空间都位于<ORDEREXPORT>元素中。

我怎样才能做到这一点?

我的转变:

0 投票
2 回答
943 浏览

regex - 使用 Regex ABAP 删除 XML 中的空标签

我在生成 XML 时遇到问题。我使用了简单转换。我的 XML 中的许多标签都是空的。我发现了一个信息,我可以使用 Regex 摆脱这些标签,但它不能完美地工作。让我向你展示它的外观。

没有正则表达式:

用 ABAP 编写的正则表达式:

使用正则表达式后:

SimpleTransformation 看起来像这样:

正则表达式删除简单的元素,但有嵌套元素的问题,如<cac:InvoicePeriod>. 在我的程序中,我有很多嵌套元素。你能帮我修改正则表达式或找到其他解决方案吗?

谢谢你的帮助。

0 投票
2 回答
788 浏览

xml - 将字段值分配给 ABAP ST 转换中的属性?

我正在使用 SAP 简单转换,我想unitCode从我的结构中定义的 ABAP 字段中设置属性值。假设它是UNITCODE领域。

现在unitCode被硬编码为值C62,但我希望这个属性从 ABAPUNITCODE字段中获取值(与 相同的结构INVOICEDQUANTITY)。我怎样才能做到这一点?

提前致谢!

0 投票
1 回答
278 浏览

json - 通过 ST 转换处理 JSON 反序列化中的 Null 值?

JSON 到 ABAP 的问题。这是一个高度简化的示例,但试图抓住要点。每个 JSON 元素(除了少数例外)都可能以真实值存在、以空值存在或根本不存在。

在此示例中,有 3 个订单项目。订单项可能有也可能没有 order_reason。对于第 01 行,它是 ABC,对于第 02 行,它是空的,对于第 03 行,它根本不存在。

如果您查看 XML,您会看到创建的元素因内容而异,我不知道如何在我的 ST 中处理它。我猜这是某种条件或组或开关,但我似乎找不到正确的语法来检查元素有时是“空”还是有时是“字符串”。因此,它不是对元素内容的检查,而是对实际元素本身的检查。

超简单的 JSON

然后将其隐式转换为 XML 以在 ST 中进行处理。Order Reason 元素是第一项的 <str...>,然后是第二项的 <null ....>,最后一行中缺少。

这是我的示例 ST。

这是一个可执行的 ABAP 来测试上述内容。有两个版本的 JSON 要测试。第一个有效,因为每个项目都有一个原因代码。检查这个只是为了确保一切都在快乐的情况下工作。通过切换到代码中的第二个示例,您可以看到需要处理 <null ....> 元素而不是 <str ....> 元素。所以不是元素的内容,而是预期的元素本身。我试图对元素 <str ...> 进行存在性检查,但这似乎不起作用(或者实际上我不知道引用当前元素的类型/名称的语法)。

0 投票
1 回答
389 浏览

json - JSON转换中的反序列化布尔值?

我正在反序列化一个 JSON 文件,并试图找到处理布尔值的正确方法。我首先尝试将 JSON/XML 布尔值直接映射到本机 ABAP 元素,但这引发了异常。然后我尝试检查是否为真并映射特定值“X”(以各种方式),但这些都不起作用。寻找想法/建议。

我的示例程序

我检查元素的值是否为“true”——如果是,我想为 ABAP_BOOLEAN 返回适当的值。我尝试了很多选择。在这个最新版本中,它引发了一个预期值“X”的异常。

我认为这应该很容易——但又卡住了:-)。感谢您提供任何输入建议。