之前导入和导出Global数据都是用portal手工选择操作的,虽然鉴定,但是每次都有找出来,浪费时间。
这次分享个用代码导入和导出M的脚本,这个脚本要到数据映射源头的命名空间执行,如果像LISCODES这种没放出来命名空间的先到cpf把命名空间放出来再把脚本弄进去执行:
Class Util.GlobalUtil Extends %RegisteredObject
{
/// 导出Global到文件
/// d ##Class(Util.GlobalUtil).ExportGlobal()
ClassMethod ExportGlobal()
{
s globalName="^dbo.BTHospitalD.gbl,^dbo.BTHospitalI.gbl"
s globalName=globalName_",^dbo.BTDepartmentD.gbl,^dbo.BTDepartmentI.gbl"
s globalName=globalName_",^dbo.BTDepartmentD.gbl,^dbo.BTDepartmentI.gbl"
Set sc = ##class(%Library.Global).Export(,globalName,"D:\\globaldata.gof",7,0,"")
zw sc
q "完成"
}
/// 导入Global到文件
/// d ##Class(Util.GlobalUtil).Inport()
ClassMethod InportGlobal()
{
s globalName="^dbo.BTHospitalD.gbl,^dbo.BTHospitalI.gbl"
s globalName=globalName_",^dbo.BTDepartmentD.gbl,^dbo.BTDepartmentI.gbl"
s globalName=globalName_",^dbo.BTDepartmentD.gbl,^dbo.BTDepartmentI.gbl"
f i=1:1:$l(globalName,",") d
.s one=$p(globalName,",",i)
.s str="k "_one
.x str
Set sc = ##class(%Library.Global).Import(,globalName,"D:\\globaldata.gof")
zw sc
q "完成"
}
}
这样的话对要经常导出导入的数据就方便了