一般都使用傳xml對象的方式。這種方式方便在只需傳入正確的視圖就行了。但是如果字段不全,或者字段的數據類型與api要求的不服,會報些莫名其妙的錯誤,比如這些:
項目大類0不存在項目大類0不存在貨位不合法!
貨位不合法!
存貨01019002069沒有自由項1管理,不能輸入
存貨01019002069沒有自由項2管理,不能輸入
存貨01019002069沒有自由項3管理,不能輸入
存貨01019002069沒有自由項4管理,不能輸入
存貨01019002069沒有自由項5管理,不能輸入
存貨01019002069沒有自由項6管理,不能輸入
存貨01019002069沒有自由項7管理,不能輸入
存貨01019002069沒有自由項8管理,不能輸入
存貨01019002069沒有顏色管理,不能輸入
存貨01019002069沒有內存管理,不能輸入
存貨01019002069輸入項目大類不合法,請重新輸入
存貨01019002069輸入項目大類不合法,請重新輸入
存貨01019002069沒有設置為追蹤管理,不能輸入入庫單號
不是代管倉庫,不能錄入代管供應商!
收發類別 14 在本系統中不存在收發類別 2a 在本系統中不存在轉出倉庫不能為空
入庫類別不合法
轉入倉庫不能為空
出庫類別不合法
解決辦法是:
1.構建一個和用友單據一摸一樣的視圖
仿照單據對應的用友的視圖寫一個自己的視圖,保證 自己寫的字段名和用友的視圖的字段名一摸一樣。如果自己表有值的地方就保證自己的表里的這個字段數據類型和用友單據對應的表的字段類型一樣。
如果是自己表沒有的字段,而用友視圖上有的字段,就不能簡單的賦值為NULL了,這樣會得到莫名其妙的錯誤。
2.構造正確的數據類型。
比如要插入的單據是 其他出庫單主表 ,視圖名稱:kcotherouth,首先在u8上錄入一條其他出庫單的數據。
為了保證自己的視圖數據類型一樣,可以使用 select top 1 * into t_tempKcotherouth from kcotherouth 這條語句構建一個和其他出庫單主表數據類型,字段名稱都一樣的臨時表。
然后在自己的視圖里left join t_tempKcotherouth on 視圖名稱.關鍵字段=t_tempKcotherouth.不要和關鍵字段名稱有關聯的字段,保證這個 左連接不會查出臨時表的任何記錄。這樣做的目的
是為了使用這個臨時表的數據結構,保證自己的視圖和用友u8的視圖數據結構一摸一樣。
這兩步做完插入的成功率就會大大的提高。