|
问题现象:在用友8.61erp系统中用友U8版本号:U8.61软件的供应链产品线销售管理模块出现如下问题:客户从用友U851ERP系统升级到用友U861ERP系统,建立销售订单后,发现有发货信息,但是没有发货单,库存台帐数据正确请帮忙解答!
原因分析:经查您的数据,现对问题做如下分析答复:造成该现象的原因是在订单子表(so_sodetails)中,正常情况下isosid应同autoid,即便由于某些原因,与autoid不同,但至少不能有重复的记录,即两个订单表体行不能有相同的标识。而该数据中恰发生此问题。由于isosid字段会在dispathlist/s、salebillvouch/s表中进行记录,相同的isosid对应一张发货或发票记录,从而导致对订单操作时,正常连接的单据无法查询获取,提示异常的错误。故,需要将该类订单表体行的isosid根据发货单和发票表、重新取值。具体的脚本如下,可参考执行。
解决方案:在用友erp 系统版本U8.61软件中经查您的数据,现对问题做如下分析答复:造成该现象的原因是在订单子表(so_sodetails)中,正常情况下isosid应同autoid,即便由于某些原因,与autoid不同,但至少不能有重复的记录,即两个订单表体行不能有相同的标识。而该数据中恰发生此问题。由于isosid字段会在dispathlist/s、salebillvouch/s表中进行记录,相同的isosid对应一张发货或发票记录,从而导致对订单操作时,正常连接的单据无法查询获取,提示异常的错误。故,需要将该类订单表体行的isosid根据发货单和发票表、重新取值。具体的脚本如下,可参考执行,同时,已将脚本发送邮件给您,请注意查收:declare@autoidvarchar(50)declare@stringvarchar(200)declareUpdateSoDetailsIsosidcursorforselectautoidfromso_sodetailswherecsocodenotin(selectisnull(cSOCode,'')fromdispatchlist)andisosidin(selectisnull(isosid,'')fromdispatchlist)andisosidin(selectisosidfromso_sodetailsgroupbyisosidhavingcount(*)>1)--orderbyisosidunionselectautoidfromso_sodetailswherecsocodenotin(selectisnull(cSOCode,'')fromsalebillvouch)andisosidin(selectisnull(isosid,'')fromsalebillvouch)andisosidin(selectisosidfromso_sodetailsgroupbyisosidhavingcount(*)>1)--orderbyisosid)forreadonlyOpenUpdateSoDetailsIsosidFetchnextfromUpdateSoDetailsIsosidinto@autoidwhile@@Fetch_Status=0begin--print@isosidset@string='updateso_sodetailssetisosid=(selectmax(isosid)fromso_sodetails)+1whereautoid='+@isosid--print@stringexec(@string)set@string='updateso_sodetailssetikpquantity=0,ikpmoney=0,ifhnum=0,ifhquantity=0,ifhmoney=0whereautoid='+@isosidexec(@string)FetchnextfromUpdateSoDetailsIsosidinto@autoidendcloseUpdateSoDetailsIsosidDEALLOCATEUpdateSoDetailsIsosid。
|
|