问题标签 [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.
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。
abap-st - 通过 ABAP 简单转换在单个 XML 元素中使用多个命名空间
目前,对于我们提到命名空间前缀“etd”的所有元素,都会为它们打印链接(突出显示为绿色)。输出 XML 文件如下所示:
我希望输出看起来像:
而不是打印所有元素的链接,我希望它只打印一次 - 在标题(在元素“JPK”中,突出显示绿色),就像默认命名空间一样。
您能否向我提供您宝贵的意见以纠正问题?
请找到我通过事务代码创建的简单转换的代码XSLT_TOOL
:
xml - 简单转换反序列化:匹配元素错误
运行程序后,我必须将以下 XML 解析为内部表,得到简短的转储。请看下面的程序和简单的转换。简单转换中发生异常,下面将详细说明。
分配给类“CX_ST_MATCH_ELEMENT”的异常未被捕获,因此导致运行时错误。
异常的原因是:
XML 匹配错误预期为元素结束:“总计”[] 读取为元素开始:“称重”
我的 XML:
程序:
ZPP_TT_EXAMPLETEST_ST 转换:
提前谢谢了。
xml - 在 ST 转换中连接值?
我正在通过 ST 编写序列化,它应该将多个变量/节点放入一个 XML 标记中。
输入应序列化的 ABAP itab:
其中每个ROW
值都是一个 itab,它由 VAL
和INDEX
字段组成
第一行的预期输出样本:
这里
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 ( 1、2、3 )上找到了几个旧线程,但没有得到答复。
ST 中是否有像 XSLT 中的串联:
SY-TABIX
是否有像ABAP中的循环的内置变量?
xml - ST 转换序列化期间错误的命名空间绑定
我有一个简单的转换来创建这样的 XML 文件:
但是我的转换会生成一个像这样的文件:
我希望所有命名空间都位于<ORDEREXPORT>
元素中。
我怎样才能做到这一点?
我的转变:
regex - 使用 Regex ABAP 删除 XML 中的空标签
我在生成 XML 时遇到问题。我使用了简单转换。我的 XML 中的许多标签都是空的。我发现了一个信息,我可以使用 Regex 摆脱这些标签,但它不能完美地工作。让我向你展示它的外观。
没有正则表达式:
用 ABAP 编写的正则表达式:
使用正则表达式后:
SimpleTransformation 看起来像这样:
正则表达式删除简单的元素,但有嵌套元素的问题,如<cac:InvoicePeriod>
. 在我的程序中,我有很多嵌套元素。你能帮我修改正则表达式或找到其他解决方案吗?
谢谢你的帮助。
xml - 将字段值分配给 ABAP ST 转换中的属性?
我正在使用 SAP 简单转换,我想unitCode
从我的结构中定义的 ABAP 字段中设置属性值。假设它是UNITCODE
领域。
现在unitCode
被硬编码为值C62
,但我希望这个属性从 ABAPUNITCODE
字段中获取值(与 相同的结构INVOICEDQUANTITY
)。我怎样才能做到这一点?
提前致谢!
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 ...> 进行存在性检查,但这似乎不起作用(或者实际上我不知道引用当前元素的类型/名称的语法)。
json - JSON转换中的反序列化布尔值?
我正在反序列化一个 JSON 文件,并试图找到处理布尔值的正确方法。我首先尝试将 JSON/XML 布尔值直接映射到本机 ABAP 元素,但这引发了异常。然后我尝试检查是否为真并映射特定值“X”(以各种方式),但这些都不起作用。寻找想法/建议。
我的示例程序
我检查元素的值是否为“true”——如果是,我想为 ABAP_BOOLEAN 返回适当的值。我尝试了很多选择。在这个最新版本中,它引发了一个预期值“X”的异常。
我认为这应该很容易——但又卡住了:-)。感谢您提供任何输入建议。