0

情景1:如何在不改变所有内容的情况下更改SharePoint外部内容类型中的列?

我有一个返回行/列的SQL Server存储过程。然后在SP Designer(SPD)中创建一个外部内容类型(ECT)并推送到中央管理员(CA)。在CA中,我分配了权限。在网站上,我创建了一个外部列表(EL)并可以查看我的数据。都好。

我更改列名从“供应商名称”为“在程序供应商现在我进入SPD改变ECT,有时无法打开,给了一个错误:

”的BDC服务应用程序Business Data Connectivity Service无法访问。完整的例外文本是:Xml type'xdt:untypedAtomic列表'不支持从Clr类型'Guid'转换为Clr类型'String'。“

我没有看到与我的操作有什么关系变化。撤消我的变化过程并没有解决这个问题。我不得不删除了ECT和ET并重新创建它们,但有时又发生了。

方案2

虽然测试,看它是否发生再次,我发现它有时没有,我有不同的问题

在proc中重命名字段后,我进入SPD和successf Ully打开了ECT并做了修改,推动了CA.在CA中,我发现所有权限都已被删除。这是个问题。为什么会发生?如何避免?

所以我重做权限,然后去网站,两个不同的“子”问题发生。

方案2甲

外部列表被破坏,不能观看或更新以显示新的列名。我必须删除列表并重新创建它。这显然会杀死任何视图,并将其从每个页面中删除,等等,或任何引用它的内容。这是一场噩梦。如何避免这种情况?我想到了一个办法,导致....

情景2 B

而不是创建外部列表的,我编辑网页,添加一个业务数据列表(BDL)网络的一部分,并加入我的ECT到它。一切都很好。然后,我故意重新命名proc中的一列,打开SPD并(此时)能够打开ECT,更新字段名称。我推到了CA.所有权限被删除(叹气)。我重新添加了它们。然后,我用我的BDL去了我的网页,这是坏了。我编辑了网页部分,并能够更新它,以便数据显示在屏幕上。

但是,旧的“Vender Name”字段丢失了(没有意外,因为我将其重命名)。但新的“供应商”字段也缺失。在BDL网站部分,我编辑了视图,惊奇地发现NEITHER字段在可以添加到视图中的字段列表中。在SPD中,我打开ECT来验证新领域是否在那里(是)。没有多少将ECT推送到CA,重新获得许可权和编辑BDL导致出现新字段。然后,最后,不知怎的,新的领域出现在屏幕上,而我没有把它添加到BDL视图 - 缓存问题?

问题

所以现在我只剩下两个问题:1。 你能使用一个外部列表,并避免上述问题呢? 2.为什么权限在每次ECT更新时都消失,以及如何防止这种情况发生?

谢谢。

+0

我爱你的标题:) – dimzak

+0

我们放弃了所有这些都是废话。 – Geminirand

回答

-1

对于情景1:Sharepoint对于“GUID”数据类型并不酷。在对ECT进行更改之前,将ECT分为一级(如果您“过于遥远”并且可能会丢失更改,共享点将提醒您),并检查共享点分配给每个字段的数据类型请注意任何GUID数据类型,您可能必须手动将它们强制转换为view/proc中的varchar,然后关闭/重新打开ECT。

情况2:这可能是一个时间问题,发生在我之前。发生的事情是,你在设计者中创建了ECT并保存了它,然后去了CA来设置权限。如果你没有理由重新更新你的ECT,你会很好。但问题是,您需要在设置权限后进行更改,但可能已将新创建的ECT保留在设计器中。所以你必须做的是 - 在CA中设置权限之后,不要保存对ECT的任何更改,直到您验证您在设计器中看到您在CA中设置的权限(这是右上角的框)。这是一个问题:SP设计器不允许你设置权限,但是在保存时HAPPILY会覆盖它们,所以如果你在设计器中看不到任何权限,那么保存该ECT将“重置”权限为空。在设计人员设置权限后,您必须等待/刷新(有时关闭并重新打开ECT)设计人员的ECT,直到您在那里看到许可证。情景2B:经常对ECT进行更改必须让他们“传播”到网站(这只是我如何设想的,我没有阅读过)。在做出更改后,我发现我的ECT完全崩溃(您将得到一个不会有用的关联ID错误),或者只是看不到我的更改。解决办法是“烟雾,如果你有时间”。进行更新后,我通常至少等待10分钟,直到我开始担心ECT是否损坏,没有显示我的更改等。

希望这有助于您!

相关问题