2

如何在导入时注册插件?
有消息“导入”和“全部导入”。它们是如何使用的?

我想在导入特定实体后创建一条记录。
我尝试使用“导入”,但我不知道是什么context.InputParameters["Target"]。导入 CSV 时插件没有触发。

4

2 回答 2

4

Import 正在创建/更新实体,因此您应该能够根据 Create 和 Update 消息触发插件

于 2013-02-04T18:59:41.520 回答
1

您可以使用更新创建消息。现在,我了解到您希望将执行限制为单个(也是最后一个)实例。技术上,做不到。每个更新创建都会单独调用插件。

但是,有解决方法。并不为此感到自豪,但是是的,我做到了。一次。

public void Execute(...)
{
  Entity entity = context.InputParameters["Target"] as Entity;
  bool isTheLast = entity["someField"] == "Viltersten is Godlike";
  if(!isTheLast)
    return;
}

这可以缩短,在一行中完成。我只是想成为教学法。另外,我没有检查确切的语法,但你明白了。使您导入的最后一个东西命名为独特的东西。然后,让插件随心所欲地触发。只有一个实例可以通过。

如果您无法控制导入顺序,这将是 FUBAR。

就我而言,我做不到。我的解决方案是引入一个名为Controller的新实体。在所有导入之后,我创建了它的一个新实例。在那里,我确实执行了其他实体所需的所有操作。

吹牛?几乎不。可行吗?是的。

于 2013-02-05T21:06:52.120 回答