【发布时间】:2021-01-02 01:57:03
【问题描述】:
我有一个 XSL/XML/JS 文件。它是由一个不再在这里工作的人写的,我通常只处理 SQL,所以我不知道如何实现我需要做的事情
我正在尝试将一些变量添加到现有 CDATA 块中的文件中。然后我在函数中使用变量。但是,我尝试了以下方法和变体,但在应用程序(Dynamics AX)中不断出现语法错误。我是否在这里做一些明显错误的事情,无论是我如何声明变量或我如何使用它们?这些是我所做的唯一更改,没有这些更改就没有语法或任何其他问题/错误。
<?xml version="1.0" encoding="utf-16"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:mxm="http://schemas.microsoft.com/dynamics/2008/01/documents/MxmServInterfaceOutboundAif"
xmlns:data="http://www.example.com/data" exclude-result-prefixes="xs xsi xsl">
<xsl:output method="text" encoding="UTF-8" indent="no" />
<msxsl:script language="JScript" implements-prefix="data">
<![CDATA[
//Minor Repairs email address
var MinorsEmail = xxx@domain.com
//Service Dept email address
var ServiceEmail = yyy@domain.com
//Major Repairs email address
var MajorsEmail = zzz@domain.com
//Select appropriate email to use
function EmailFrom(fault)
{
var type = fault.substr(0,2);
if (type == "MI")
{
var ret = MinorsEmail;
}
else
{
var ret = concat(ServiceEmail, "; ",MajorsEmail);
}
return ret;
}
编辑:在变量值周围添加引号已经解决了部分问题。现在的问题是 CONCAT 没有按预期运行。我现在收到以下错误:
Variable concat has not been declared
【问题讨论】:
-
如果这些电子邮件地址应该是 JavaScript 字符串,则可以引用您的字符串值。
-
感谢@MartinHonnen 在字符串值中添加引号已解决部分问题。我现在唯一的问题是功能。如果 ELSE 适用,则 CONCAT 不起作用 - 我收到错误消息“未声明变量 concat”。有什么想法吗?
-
嗨@FH-Inway,您可以在基本 - 设置 - 应用程序集成框架 - XSLT 存储库中添加 XSL 转换。是这个意思吗?
-
JavaScript 中的字符串连接是通过
+运算符ServiceEmail + "; " + MajorsEmail完成的
标签: javascript xml xslt dynamics-ax-2009