Swiper 插件内部字段丢失

Swiper PlugIn internal fields get lost

我刚刚在我的 Domino Designer FP7 上安装了 Swiper Plugin,经过一些测试(也许)我发现了一个错误。

不幸的是,如果您在分支之间切换,$DesignerVersion$$ScriptName 等内部字段会丢失!

这是我的测试场景:

  1. 创建表单(form1.form
  2. master 分支进行初始提交
  3. 创建一个额外的分支,例如develop
  4. develop 分支中的 form1.form 进行一些更改
  5. 提交此更改
  6. 切换回 master 分支

在这一步之后,内部字段(上面提到的)丢失了:(

Swiper 决定 'swipe' 离开的属性和元素是通过使用 xslt 文件控制的。

默认的 xslt 文件确实选择 DesignerVersion$$ScriptName 被刷。

DesignerVersion 默认刷掉,因为这会在您升级 domino designer 时引起很多合并冲突,或者如果您的一位同事决定安装您没有安装的修复包'突然之间,每个文件都会再次发生冲突,需要解决。

尽管可能存在 import/export 每个版本的行为可能不同的争论,但听到 IBM 在过去几年中对 DXL 导入/导出进行了任何更改,我会持怀疑态度。

关于 $$ScriptName,老实说,我不记得为什么我要把它包括在内,但它一定让我很烦。它对我没有造成任何问题,但话又说回来,我没有做很多经典的 NSF 开发,所以也许这样做确实会导致问题。

提供您自己的自定义 xslt 过滤器:

如果您不想要这些 'swiped' 那么您可以提供自定义的 xslt 文件 复制默认文件 org.openntf.swiper/src/org/openntf/swiper/action/DXLClean.xsl

然后评论或删除与设计器版本相关的条目(不止一个)

<xsl:template match="//n:form/@replicaid"/>
<xsl:template match="//n:form/@version"/>
<!--<xsl:template match="//n:form/@designerversion"/>-->

<xsl:template match="//n:database/@replicaid"/>
<xsl:template match="//n:database/@version"/>
<!--<xsl:template match="//n:database/@designerversion"/>-->
.... and so on make sure you do all of them

然后注释掉/删除 $$ScriptName

<!-- Ignore the DesignerVersion Item  and this random FileModDT one -->
<xsl:template match="//n:item[@name='$DesignerVersion']"/>
<!--<xsl:template match="//n:item[@name='$$ScriptName']"/>-->
<xsl:template match="//n:item[@name='$ScriptLib_error']"/>
<xsl:template match="//n:imageresource/n:item[@name='$FileModDT']"/>
<xsl:template match="//n:imageresource/n:item[@name='$EditFilePath']"/>

将其另存为 .xsl 文件 然后在 Designer 中转到文件 -> 首选项 -> Swiper 在 'Custom XSLT Filter' 下浏览到您的文件的位置并单击应用/确定。

当文件从 NSF 导出到 ODP 时,这些规则将在下次运行 swiper 时生效。因此,您可能需要强制保存文件,或故意 'swipe' 文件以查看新结果。