电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

用友U9知识-更新多语表.docx

用友U9知识-更新多语表.docx_第1页
1/7
用友U9知识-更新多语表.docx_第2页
2/7
用友U9知识-更新多语表.docx_第3页
3/7
批量同步实体上的扩展字段绑定的值集名称到多语表的组合名称中IFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[P_SyncFieldCombineName]'))DROPPROC[dbo].[P_SyncFieldCombineName];GO--================================================--批量同步实体上的拓展字段绑定的值集名称到多语表的组合名称中,需要传入实体的fullname和扩展字段名称‘--该存储过程依赖两个函数fn_ReplacePosStr,f_getdefinevalue--================================================CREATEPROC[dbo].[P_SyncFieldCombineName](@FullNameVARCHAR(100),@DescFieldNameVARCHAR(80))ASDECLARE@ContextTypeVARCHAR(10);DECLARE@TableNameVARCHAR(100);SET@TableName=(SELECTDefaultTableNameFROMUBF_MD_ClassWHEREFullName=@FullName);DECLARE@IsPublicSegBIT;DECLARE@IsPrivateSegBIT;DECLARE@NumberINT;DECLARE@DNumberINT;SET@IsPublicSeg=0;SET@IsPrivateSeg=0;--先判断公共扩展字段还是全局段,全局段序号需加50,如果都不是则跳出IFCHARINDEX('Private',@DescFieldName)>0BEGINSET@IsPrivateSeg=1;SET@ContextType='Global';SET@DNumber=SUBSTRING(@DescFieldName,PATINDEX('%[0-9]%',@DescFieldName),LEN(@DescFieldName)-PATINDEX('%[0-9]%',@DescFieldName)+1);SET@Number=50+@DNumber;END;ELSEIFCHARINDEX('Pub',@DescFieldName)>0BEGINSET@IsPublicSeg=1;SET@ContextType='Public';SET@Number=SUBSTRING(@DescFieldName,PATINDEX('%[0-9]%',@DescFieldName),LEN(@DescFieldName)-PATINDEX('%[0-9]%',@DescFieldName)+1);SET@DNumber=@Number;END;ELSEBEGINRETURN;END;IF@Number<=0BEGINRETURN;END;DECLARE@prexVARCHAR(30);SET@prex=SUBSTRING(@DescFieldName,1,CHARINDEX('_',@DescFieldName)-1);--目前此脚本仅支持无档案类型和自定义类型的拓展字段处理DECLARE@ValidateEnumINT;SET@ValidateEnum=(SELECTE.ValidateTypeFROMUBF_MD_ClassAINNERJOINBase_DescFlexFieldDefBONA.Local_ID=B.EntityTypeINNERJOINBase_DescFlexContextCONB.ID=C.DescFlexFieldDefINNERJOINBase_DescFlexSegmentDONC.ID=D.DescFlexContextINNERJOINbase_valuesetdefEOND.ValueSetDef=E.IDWHEREC.ContextValue=@ContextTypeANDD.Number=@DNumberANDA.FullName=@FullName);DECLARE@sqlNVARCHAR(1000)='';IF@ValidateEnum=2BEGIN--无档案SET@sql='UPDATEASET'+@prex+'_CombineName=dbo.[fn_ReplacePosStr](B.'+@DescFieldName+',A.'+@prex+'_CombineName,'+CAST(@NumberASCHAR(3))+')';SET@sql+='FROMdbo.'+@TableName+'_TrlA';SET@sql+='INNERJOIN'+@TableName+'BONA.ID=B.ID';PRINT@sql;EXECsp_executesql@sql;END;ELSEIF@ValidateEnum=3BEGIN--自定义类型SET@sql='UPDATEAsetA.'+@prex+'_CombineName=dbo.[fn_ReplacePosStr](C.Name,A.'+@prex+'_CombineName,'+CAST(@NumberASVARCHAR(10))+')';SET@sql+='FROMdbo.'+@TableName+'_TrlA';SET@sql+='INNERJOIN'+@TableName+'BONA.ID=B.ID';SET@sql+='innerjoindbo.[f_getdefinevalue]('''+@FullName+''','+CAST(@DNumberASVARCHAR(10))+','''+@ContextType+''')asConB.'+@DescFieldName+'=C.CodeandA.SysMLFlag=C.SysMLFlag';PRINT@sql;EXECsp_executesql@sql;END;GOIFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[f_getdefinevalue]'))DROPFUNCTION[dbo].[f_getdefinevalue];GO--================================================--根据实体全名和上下文名称,查询某一个序号的扩展字段的值集值--================================================CREATEFUNCTION[dbo].[f_getdefinevalue](@FullNameVARCHAR(50),@NumberINT,@ContextTypeVARCHAR(10))RETURNS@resultTABLE(CodeVARCHAR(100),NameVARCHAR(500),SysMLFlagVARCHAR(10))ASBEGIN--FillthetablevariablewiththerowsforyourresultsetINSERTINTO@resultSELECTE.Code,E1.Name,E1.SysMLFlagFROMUBF_MD_ClassAINNERJOINBase_DescFlexFieldDefBONA.Local_ID=B.EntityTypeINNERJOINBase_DescFlexContextCONB.ID=C.DescFlexFieldDefINNERJOINBase_DescFlexSegmentDONC.ID=D.DescFlexContextINNERJOINBase_DefineValueEOND.ValueSetDef=E.ValueSetDefINNERJOINBase_DefineValue_trlE1ONE.id=E1.idWHEREC.ContextValue=@ContextTypeANDD.Number=@NumberANDA.FullName=@FullName;RETURN;END;GOIFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[fn_ReplacePosStr]'))DROPFUNCTION[dbo].[fn_ReplacePosStr]GO--================================================--用于替换组合名称中某一序号的值,分割符为#@#--================================================CREATEFUNCTION[dbo].[fn_ReplacePosStr](@strVARCHAR(2000),@expVARCHAR(MAX),@posINT)RETURNSVARCHAR(MAX)ASBEGINIF@str=''OR@pos<1OR@pos>80OR@exp=''RETURN@exp;DECLARE@iINT;DECLARE@jINT;DECLARE@sINT;DECLARE@vVARCHAR(500);DECLARE@sepVARCHAR(500);SET@sep='#@#';SET@s=1;SET@j=0;SET@v='';WHILE@s<=LEN(@exp)+1BEGINSET@j=@j+1;SET@i=CHARINDEX(@sep,@exp,@s);IF@i<1BEGINSET@v=SUBSTRING(@exp,@s,LEN(@exp)-@s+1);BREAK;END;ELSEBEGINSET@v=SUBSTRING(@exp,@s,@i-@s);END;IF@j=@posBREAK;SET@s=@i+3;END;IF@j<@posRETURN@exp;IF@i>0RETURNISNULL(SUBSTRING(@exp,0,@s)+ISNULL(@str,'')+SUBSTRING(@exp,@i,LEN(@exp)-@i+1),@exp);RETURNISNULL(SUBSTRING(@exp,0,@s)+ISNULL(@str,''),@exp);END;GO

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

用友U9知识-更新多语表.docx

您可能关注的文档

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信