SAP Business One從2007升級到8.82,現(xiàn)在又要升級到9.3,以適應(yīng)服務(wù)器系統(tǒng)升級和MSSQL升級要求;
按照說明,必須先升級到9.1,再升級到9.3
升級9.1步驟,
1、附加數(shù)據(jù)庫,
2、運行升級包中upgrade.exe
3、選擇語言彈窗,默認(rèn)簡體中文,直接點擊下一步;
4、選擇升級前的測試和升級,點擊下一步
5、勾選使用上次向?qū)н\行的設(shè)置,點擊下一步;(服務(wù)器名稱:localhost;端口:30000;用戶:B1SiteUser;密碼:自己第一次安裝時設(shè)定)
6、已從先前的配置文件讀取,直接點擊下一步;
7、輸入用戶B1SiteUser的密碼,下一步;
8、許可證服務(wù)器名稱localhost,數(shù)據(jù)庫服務(wù)器類型MSSQL_20XX;服務(wù)器名稱:默認(rèn)本機計算機名稱;可以直接點擊下一步;
9、選擇服務(wù)器組件,Databases,右側(cè)顯示找到最早版本。且默認(rèn)勾選;其它勾選可以去除;下一步
10、就緒,選擇升級的數(shù)據(jù)庫,下一步;
開始測試,測試完數(shù)據(jù)庫旁邊會出現(xiàn)報告,若有錯誤,查看日志,根據(jù)日志到企業(yè)管理器里修改;沒有錯誤,打開詳情信息,勾選警告項,返回后,點擊“升級”,開始升級;
**********
OCFW出現(xiàn)重復(fù)問題;OMRC重復(fù)問題,POR1、RDR1出現(xiàn)2491問題,其中后三個都是字段記錄長度不合要求。截取時會產(chǎn)生重復(fù)。升級前后查看設(shè)計表結(jié)構(gòu)說明確實如此,升級前后個別字段設(shè)計長度不一樣。
一些常用查看命令, 新建查詢后
1、列出表OMRC中所有廠商名字(FirmName)長度大于30字符的,然后保存為文件,以備修改前后參考以及升級后還原 SELECT *  FROM omrc WHERE  LEN(FirmName)>30
2、顯示por1表中u_cgtk字段記錄長度超過10的記錄,以num,DOCENTRY,LineNum,u_cgtj列表,然后保存為文件 SELECT ROW_NUMBER() OVER(PARTITION BY DOCENTRY ORDER BY  LineNum) as num,DOCENTRY,LineNum,u_cgtk FROM por1  WHERE  LEN(u_cgtk)>10 
顯示por1表中u_zzyh字段記錄長度超過50的記錄,以num,DOCENTRY,LineNum,u_zzyh列表,然后保存為文件 SELECT ROW_NUMBER() OVER(PARTITION BY DOCENTRY ORDER BY  LineNum) as num,DOCENTRY,LineNum,u_zzyh FROM por1  WHERE  LEN(u_zzyh)>50 
RDR1同樣操作;
3、 列出u_cgtk字段所有記錄長度大于10的,并排序,標(biāo)號,然后保存為文件 SELECT ROW_NUMBER() OVER(PARTITION BY DOCENTRY ORDER BY  LineNum) as num,DOCENTRY,LineNum,u_cgtk FROM rdr1  WHERE  LEN(u_cgtk)>10
4、后面與前面廠商名稱有重復(fù)的,在前面加字符1 update  omrc  set  FirmName=’1’+FirmName where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) > 1) and FirmCode not in (select min(FirmCode) from  omrc  group by FirmName  having count(FirmName )>1)
如果要盡量保持與遠(yuǎn)來內(nèi)容基本一致,修改注意項目如下:
a、內(nèi)容為空(長度為0)的不合格,要修改
b、長度超過30字符的不合格,SQL數(shù)據(jù)庫中中文規(guī)則下,半角全角字符一視同仁;
c、名稱重復(fù)不合格;重復(fù)超過2次以上的怎么辦,以查詢最多的10次為例,依次分別追加序數(shù)改名,如下
update  omrc  set  FirmName=FirmName+''10'' where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) =10) and FirmCode  in (select max(FirmCode) from  omrc  group by FirmName  having count(FirmName )=10) update  omrc  set  FirmName=FirmName+''9'' where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) =9) and FirmCode  in (select max(FirmCode) from  omrc  group by FirmName  having count(FirmName )=9) update  omrc  set  FirmName=FirmName+''8'' where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) =8) and FirmCode  in (select max(FirmCode) from  omrc  group by FirmName  having count(FirmName )=8) update  omrc  set  FirmName=FirmName+''7'' where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) =7) and FirmCode  in (select max(FirmCode) from  omrc  group by FirmName  having count(FirmName )=7) update  omrc  set  FirmName=FirmName+''6'' where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) =6) and FirmCode  in (select max(FirmCode) from  omrc  group by FirmName  having count(FirmName )=6) update  omrc  set  FirmName=FirmName+''5'' where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) =5) and FirmCode  in (select max(FirmCode) from  omrc  group by FirmName  having count(FirmName )=5) update  omrc  set  FirmName=FirmName+''4'' where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) =4) and FirmCode  in (select max(FirmCode) from  omrc  group by FirmName  having count(FirmName )=4) update  omrc  set  FirmName=FirmName+''3'' where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) =3) and FirmCode  in (select max(FirmCode) from  omrc  group by FirmName  having count(FirmName )=3) update  omrc  set  FirmName=FirmName+''2'' where FirmName  in (select  FirmName  from omrc  group  by  FirmName   having  count(FirmName) =2) and FirmCode  in (select max(FirmCode) from  omrc  group by FirmName  having count(FirmName )=2)
第10個名稱后追加10,第9個名稱后追加9,依次追加,直到?jīng)]有重復(fù)
5、
por1表中所有u_cgtk字段長度大于10的記錄,可以分別截取,或者分別修改,或者一致改為‘某字符串’;
rdr1表中所有u_cgtk字段長度大于10的記錄,可以分別截取,或者分別修改,或者一致改為‘某字符串’;
如
update  por1  set  u_cgtk=''尚欠9萬1'' WHERE  LEN(u_cgtk)>10 update  rdr1  set  u_cgtk=''日發(fā)大財'' WHERE  LEN(u_cgtk)>10
rdr1表中所有u_cgtk內(nèi)容為“2020年12月25日”記錄,統(tǒng)統(tǒng)改為''2020.12.25''(或者''2020年12月25'') update  rdr1  set  u_cgtk=''2020.12.25''  WHERE  u_cgtk=''2020年12月25日''
二、9.1升級9.3;
附加升級后的9.1數(shù)據(jù)庫,運行setup,這個比較簡單 |