所有人!
我们正在使用MS SQL主数据服务来组织企业主数据,并且我们保留的某些实体几乎都是从外部源按原样加载的数据。我们定期使用作业或SSIS软件包对其进行更新,将数据放入登台表([stg].[<name>_Leaf]
中),并使用名为[stg].[udp_<name>_Leaf]
的过程开始登台过程,如THIS和THIS中所述有关MDS中分期过程的主题。
有时,我们从某个外部来源导入的数据以平面表的形式出现,仅包含一组行,我们可能希望在其他表中引用这些行,然后加载并享受(实际上,我们将数据放入登台表,调用SP并让MDS在任何合适的服务器上进行处理,因为登台过程的主要工作是通过Broker异步运行。
但是,还有许多其他的,丑陋的但真实的情况,当我们加载的数据以树的形式显示,其中包含对成员的引用时,我们尚未加载,只是将其放入登台表中。
问题是,在大多数情况下,我们使用自动代码创建功能(并且我们不能使用非代理代码),并且我们无法将成员引用的字段值(必须放置被引用的成员代码)设置为新创建的成员,然后再创建成员并将其插入基表并生成和设置代码。
如我所见,如果我们可以通过登台表的ID(即IDENTITY并在插入后立即分配)来引用登台成员,则可以解决此问题。
-或-
如果将数据放入基本表并分配代码后,我们可以从登台过程中收到回调。然后,我们将计算所有引用并更新它们(使用相同的登台过程机制)。
当前,在这种情况下,我们使用 stupid 不太优雅的解决方法,生成GUID并将其用作代码值。
谁能提供更多企业服务? (:
答案 0 :(得分:0)
在加载层次结构数据时,将父记录加载到登台表中,然后运行关联的存储过程以将它们应用于实体表,在该表中将为其分配自动生成的代码。
下一步,将子记录加载到暂存叶中时,将使用父实体的订阅视图查找父代码。
使用自动生成代码时,建议您从10000或100000开始,因为Excel会将代码按字符串排序。