点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我开始学习XSLT映射,尽管我认为我已经掌握了一些基础知识,但是我仍在努力理解Java增强功能。 我已经尝试过许多博客和网站,但是必须很旧,链接指向不再存在的页面。 我有几个问题。
对于其中一个,我不确定这是否始终可行或取决于处理器。
第二,我不知道如何正确调用Java类。 在XSLT文件中,我声明在示例代码中找到的名称空间。 但是我不知道自己在哪里可以找到这些命名空间,或者现在如何知道特定类或函数所需的命名空间?
第三,我无法使用XSLT常量,例如$ MessageId。 我声明了一个MessageId参数,但是当尝试输出该数字时,该字段保持为空。 我使用ESR的测试功能,所以也许在那里没有构造MessageId(仅当发送真实消息时)?
我有一个输入IDOC,为了练习,我尝试连接两个值TABNAM和MESTYP。
<?xml version =" 1.0" encoding =" UTF-8"?>EDI_DC40 310 0000000280974044 750 30 1 2 ZIKDTA01 ZMKADATA SAPQAS LS QAS_310 SAPQX3_300 LS QKADATA001 20200428 151804 20200428151804
我的XSLT当前看起来像这样(部分)
<?xml version =" 1.0" encoding =" UTF-8"?><消息>
这是Java代码:
包com.company.group; 导入java.util.Map; 导入com.sap.aii.mapping.api.AbstractTrace; 导入com.sap.aii.mapping.api.StreamTransformationConstants; 公共类MappingClass { 公共静态字符串concat(String Table, 字符串消息, 地图输入参数) { 跟踪=(AbstractTrace)inputparam.get( StreamTranformationConstants.MAPPING_TRACE); trace.addInfo(" concat(): \ nTABNAM =" +表格+ \ nMESTYP =" +消息); 返回表+''+消息; } }
对于串联,我以SAP文档中的示例为例 https://help.sap.com/saphelp_nwpi71/helpdata/en/73/f61eea1741453eb8f794e150067930/content.htm?no_cache=true 在我的情况下,它跳过了XSLT中的javamap:concat部分。 此外,Mes
它不起作用,因为我对此不太熟悉,所以我不知道在哪里寻找答案:我的Java类正确吗? 处理器不能处理这个,我的XSLT错误吗?
在ESR中,我将XSLT和Java文件作为导入的档案上传并获得以下测试结果:
(128.8 kB)
嗨Reinout,
乍一看一切都很好。 我会做类似的。 有两种猜测可能会有所帮助:
我想 " java"是一个文件夹... .zip文件应包含您Java开发的JAR文件。 此文件还应该具有.jar作为文件扩展名。
嗨!
为了在ESR中测试操作映射时使用" MessageId"参数,应在OM"测试"页面的"参数"选项卡上手动填写相应的参数:
关于使用Java扩展,我建议从名称空间中删除" java"前缀。
此外,如果要在java类中传递map-type参数,则应将其强制转换为适当的Java类型:
xmlns:xsltc =" http://xml.apache.org/xalan/xsltc "
...
在将其用作方法的参数之前。
关于,Evgeniy。
嗨!
.zip存档中的" java"文件是什么?
您应该提供。 包含.class文件的jar存档。
致谢,Evgeniy。
一周热门 更多>