点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) Hello PowerDesi...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) Hello PowerDesi...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
Hello PowerDesigner社区,
我目前正在开发PowerShell脚本(后来称为PD脚本),该脚本应该能够复制表的映射,但是新的映射基于新的数据源。
这是我到目前为止所拥有的:
## ToDo在运行脚本之前 ###!必须打开所有相关模型 ###!新数据源必须已经在目标模型中创建 ###!更改并验证初始变量名称 ##!初始化变量名 $ targetModelName ='Test_Stage' $ duplicatedTableName ='StageTable47' $ oldSourceModelName ='测试来源' $ oldDatasourceName ='DataSource_Source2Stage' $ newSourceModelName ='重复的测试_来源' $ newDatasourceName ='DataSource_Duplicated_Src2Stage' ##将PowerDesigner窗口获取为新对象 $ powerDesigner =新对象-com powerdesigner.application ##选择目标模型作为对象,并选择要更改映射的重复表 $ targetModel = $ powerDesigner.Models | 其中代码-eq $ targetModelName $ duplicatedTable = $ targetModel.Tables | 其中代码-eq $ duplicatedTableName ##选择新的和旧的源模型以设置或获取映射的属性 $ newSourceModel = $ powerDesigner.Models | 其中代码-eq $ newSourceModelName $ oldSourceModel = $ powerDesigner.Models | 其中代码-eq $ oldSourceModelName ##选择新的和旧的数据源 $ datasourceFrom = $ targetModel.DataSources | 其中代码-eq $ oldDatasourceName $ datasourceTo = $ targetModel.DataSources | 其中代码-eq $ newDatasourceName #选择旧的映射(也重复了) $ oldMapping = $ datasourceFrom.GetMapping($ duplicatedTable) #在重复的表上创建一个新的映射 $ newMapping = $ datasourceTo.CreateMapping($ duplicatedTable) #为新映射设置一些属性 $ newMapping.SetAttribute('名称',-join($ oldMapping.Name,'_ duplicated')) $ newMapping.SetAttribute('Code',-join($ oldMapping.Code,'_ duplicated')) #将新的源表(来自新的数据源)添加到新的映射中 $ newSourceTable = $ newSourceModel.Tables | 其中代码-eq $ oldMapping.MappedTo $ newMapping.AddSource($ newSourceTable)
我的问题是:现在如何创建新的基本列映射,使其与旧的映射完全一样,但是以新的数据源为父级。
我尝试复制旧的基本列映射,但这并没有改变父级
我还尝试在$ newMapping的ColumnMaps集合上使用CreateNew()方法,但是这导致BaseColumnMapping中的列为空,这是我创建后无法更改的只读属性。
我需要方法(构造函数)来创建具有指定列的基础列映射。
谢谢
斯蒂芬
更新:
一些附加信息:
使用脚本后,当前的"映射编辑器"如下所示:
(311.0 kB)
我怀疑您需要 告诉Excel导入以搜索其他模型中的引用对象-请参阅导入选项
一周热门 更多>