简单桌面恢复用友软件股份有限公司U8客户服务中心99号2009年10月30日一、问题场景;二、分析过程;三、解决方案;一、问题场景872版本,不小心将简单桌面在场景设计中删除了,并且保存了,重新登陆后,简单桌面没有了,场景设计中也没有;二、分析过程更换帐套登陆,显示依旧,可以判断出与帐套数据库(UFDATA_XXX_XXXX)没有关系,如果是数据库存放的设置应该是在UFsystem中二、分析过程先来跟踪一下,在软件启动时跟踪,发现有语句执行如下:SELECTcScenarioIDASScenarioID,cViewIDASViewID,cVisibleASVisible,flagASFlag,cViewConfigASViewConfig,cNameASViewName,cImplClassASViewImplClass,cCategoryASViewCategory,cDescriptionASViewDescription,cExtensionASViewExtensionFROMUA_ScenarioView,UA_ViewWHEREUA_ScenarioView.cViewID=UA_View.cIDANDcScenarioID='a5b7521a-d67e-46b7-8b33-a38d10afbf80';二、分析过程将此语句在查询分析器中执行,结果如下:ViewName显示的内容不正是高级桌面包含的视图吗?二、分析过程将刚才语句中涉及的表UA_View和UA_ScenarioView查询其内容如下:UA_ScenarioViewUA_View二、分析过程由此可以看出,UA_ScenarioView中显示的是桌面场景中每种视图是否可见(使用);因为软件进入的默认使用的是高级桌面,则可以确定cScenarioID=‘a5b7521a-d67e-46b7-8b33-a38d10afbf80’为高级桌面场景对应的cScenarioID;对比其他正常帐套UA_ScenarioView中的cScenarioID,发现问题帐套比正常帐套缺少cScenarioID为4f511afe-047a-4129-9112-4c2c6e1d5046的记录;二、分析过程在跟踪结果中再向上查找,有语句同样是关于cScenarioID的;语句如下:SELECTcIDASScenarioID,cCaptionASScenarioName,cTypeASType,cForDefaultShowASForDefaultShow,cForDefaultBizASForDefaultBiz,cDescriptionASDescription,Scenario.cLayoutASLayoutFROMUA_ScenarioScenario,UA_PortalLangPortalLangWHERE(cIDIN(SELECTcScenarioIDFROMUA_ScenarioGroupWHEREcGroup_IdIN(SELECTcGroup_IdFROMUA_RoleWHEREcUser_Id='demo'))ANDcID='a5b7521a-d67e-46b7-8b33-a38d10afbf80')AND(Scenario.cID=PortalLang.cItemIDANDPortalLang.cLocalID='zh-CN')二、分析过程去掉后面得条件重新查询SELECTcIDASScenarioID,cCaptionASScenarioName,cTypeASType,cForDefaultShowASForDefaultShow,cForDefaultBizASForDefaultBiz,cDescriptionASDescription,Scenario.cLayoutASLayoutFROMUA_ScenarioScenario,UA_PortalLangPortalLang二、分析过程select*FROMUA_Scenarioselect*FROMUA_PortalLang存放的正式所有场景的信息,与正常帐套对比,唯独缺少了简单桌面,cItemID为4f511afe-047a-4129-9112-4c2c6e1d5046正是桌面场景的信息,看看这条语句涉及的表的内容;UA_PortalLang和UA_Scenario二、分析过程继续查看没有发现其他于此相关的表,由此可以断定,与此相关的表为:UA_Portallang、UA_scenario、UA_scenarioView对比正常帐套中的该表的记录,发现UA_Portallang中,问题数据比正常数据少了cItemID为4f511afe-047a-4129-9112-4c2c6e1d5046的三条记录(包含简体中文、繁体中文、英文);UA_scenario中缺少一条cID为4f511afe-047a-4129-9112-4c2c6e1d5046的记录;UA_scenarioView中缺少cscenarioID为4f511afe-047a-4129-9112-4c2c6e1d5046的七条记录三、解决方案知道原因,可以得出方案,将这几记录参照正常帐套补上即可;语句如下(均为UFsystem库)三、解决方案INSERTINTOUA_scenario(cID,cName,ctype,cfordefaultshow,cfordefaultbiz,clayout,cdescription)VALUES('4f511afe-047a-4129-9112-4c2c6e1d5046','简易桌面','1','1','1','','')补UA_scenario中缺少记录补UA_Portallang中缺少记录INSERTINTOUA_PortalLang(cItemID,cCaption,cLocalID)VALUES('4f511afe-047a-4129-9112-4c2c6e1d5046','简易桌面','zh-CN')INSERTINTOUA_PortalLang(cItemID,cCaption,cLocalID)VALUES('4f511afe-047a-4129-9112-4c2c6e1d5046','簡易桌面','zh-TW')INSERTINTOUA_PortalLang(cItemID,cCaption,cLocalID)VALUES('4f511afe-047a-4129-9112-4c2c6e1d5046','BasicWorkbench','en-US')三、解决方案INSERTINTOUA_scenarioView(cViewID,cscenarioID,cvisible,cviewconfig,flag)VALUES('UFIDA.U8.Audit.AuditHistoryView','4f511afe-047a-4129-9112-4c2c6e1d5046','0','','2')INSERTINTOUA_scenarioView(cViewID,cscenarioID,cvisible,cviewconfig,flag)VALUES('UFIDA.U8.Portal.Framework.Viewers.AuthMgrUIView','4f511afe-047a-4129-9112-4c2c6e1d5046','1','','2')INSERTINTOUA_scenarioView(cViewID,cscenarioID,cvisible,cviewconfig,flag)VALUES('UFIDA.U8.Portal.MTC.Viewers.MTCView','4f511afe-047a-4129-9112-4c2c6e1d5046','1','','1')INSERTINTOUA_scenarioView(cViewID,cscenarioID,cvisible,cviewconfig,flag)VALUES('UFIDA.U8.Portal.UserFavoredFunViewPart.UserFavoredFunViewPart','4f511afe-047a-4129-9112-4c2c6e1d5046','0','','2')INSERTINTOUA_scenarioView(cViewID,cscenarioID,cvisible,cviewconfig,flag)VALUES('UFIDA.U8.Portal.Viewers.Calender.WorkCalender','4f511afe-047a-4129-9112-4c2c6e1d5046','0','','2')INSERTINTOUA_scenarioView(cViewID,cscenarioID,cvisible,cviewconfig,flag)VALUES('UFIDA.U8.Portal.Viewers.OutlookNag.NavigationView','4f511afe-047a-4129-9112-4c2c6e1d5046','1','','2')INSERTINTOUA_scenarioView(cViewID,cscenarioID,cvisible,cviewconfig,flag)VALUES('UFIDA.U8.UAP.Services.ReportManagement.MyReportViewPart','4f511afe-047a-4129-9112-4c2c6e1d5046','0','','2')补UA_scenarioView中缺少记录三、解决方案执行后再次查看,就有简易桌面了