題注:
發(fā)表這篇解決方案,屬于非盈利目的。主要是為了讓大家了解一種接口技術(shù)解決方案文檔的編寫格式以及讓大家評審在我的這個技術(shù)解決方案中的不足之處,以便大家指出并加以改進。
轉(zhuǎn)載,下載或與各種形式使用這篇文章,必須注明文章的作者,出處。
其他未盡事宜,以國家法律規(guī)定的為準(zhǔn)!
作者:南瘋
施工系統(tǒng)提交字典的分類ID,向外協(xié)系統(tǒng)發(fā)送請求。外協(xié)系統(tǒng)根據(jù)字典分類ID,返回對應(yīng)的字典代碼信息。字典代碼的信息返回不受最大返回記錄100條的限制,一次返回全部的該類字典代碼。
請求報文:
<?xml version="1.0" encoding="utf-8"?>
<XmlData>
<UserInfo>
<User>ZhangSan</User>
<PassWord>123456</PassWord>
</UserInfo>
<Description>
</Description>
<Records>
<DictionaryID>201</DictionaryID>
</Records>
</XmlData>


響應(yīng)報文:
<?xml version="1.0" encoding="utf-8"?>
<XmlData>
<Description>
<Result>成功</Result> <!--如果失敗,則返回信息是“失敗:(錯誤信息)”-->
</Description>
<Records>
<Record>
<Field1>Value1</Field1>
<Field2>Value2</Field2>
<Field3>Value3</Field3>
</Record>
<Record>
<Field1>Value1</Field1>
<Field2>Value2</Field2>
<Field3>Value3</Field3>
</Record>
<Record>
<Field1>Value1</Field1>
<Field2>Value2</Field2>
<Field3>Value3</Field3>
</Record>
</Records>
</XmlData>


報文說明:
標(biāo)簽名
|
說明
|
<XmlData>
|
報文數(shù)據(jù)主體
|
<Description>
|
報文頭部信息
|
<Records>
|
記錄集合
|
<Record>
|
一行記錄
|
<UserInfo>
|
業(yè)務(wù)認證的用戶信息
|
<User>
|
業(yè)務(wù)用戶登錄名
|
<PassWord>
|
業(yè)務(wù)用戶驗證口令
|
<DictionaryID>
|
字典類型ID。請求下載的字典類型,外協(xié)根據(jù)字典類型返回對應(yīng)的字典。
|
<Field1>
<Field2>
<Field3>
<Field4>
|
一行字典中的英文字段名稱。實際中,這些標(biāo)簽都是字典的英文名。字段的標(biāo)簽全部是大寫。
具體的字段名稱請參見提供的數(shù)據(jù)模型
|
<Result>
|
反饋報文中的下載成功與否信息。
如果下載成功,則信息是“成功”
如果下載失敗,則信息是“失敗:(后面是錯誤的詳細信息)”
|
外協(xié)系統(tǒng)向施工系統(tǒng)發(fā)送請求的數(shù)據(jù)目前有幾點需要考慮:
u 如何請求發(fā)送一個變更后的業(yè)務(wù)數(shù)據(jù)
u 如何請求發(fā)送一個變更后的字典數(shù)據(jù)
u 文檔發(fā)送請求
外協(xié)系統(tǒng)不會主動發(fā)送文檔的變更信息給施工系統(tǒng),因為文檔的信息(文檔的ID)變更是體現(xiàn)在業(yè)務(wù)的信息當(dāng)中的,外協(xié)系統(tǒng)向施工系統(tǒng)發(fā)送業(yè)務(wù)的變更信息當(dāng)中就包含了變更了的文檔ID,只有在施工系統(tǒng)中進行業(yè)務(wù)需要獲得文檔的信息的時候,由施工系統(tǒng)主動發(fā)送請求到外協(xié)系統(tǒng)獲得文檔的信息或下載文檔。
針對前面這些問題,接口方案的解決方法如下:
8.3.1發(fā)送變更后的數(shù)據(jù)
外協(xié)系統(tǒng)在業(yè)務(wù)數(shù)據(jù)發(fā)生變更(新增、修改、邏輯刪除)的時候,會自動發(fā)送請求到施工系統(tǒng)要求施工系統(tǒng)進行更新。
注意,外協(xié)系統(tǒng)中沒有記錄上的物理刪除,外協(xié)系統(tǒng)中所有的刪除業(yè)務(wù)都是邏輯上的刪除,僅僅在刪除標(biāo)志位上面標(biāo)記為“1”。所以,外協(xié)系統(tǒng)沒有向施工系統(tǒng)發(fā)送物理刪除的請求。
請求報文:
<?xml version="1.0" encoding="utf-8"?>
<XmlData>
<UserInfo>
<User>ZhangSan</User>
<PassWord>123456</PassWord>
</UserInfo>
<Description>
<Note>項目經(jīng)理已經(jīng)對數(shù)據(jù)進行了審批</Note>
</Description>
<Records>
<Record>
<KeyField>KeyValue</KeyField>
<Field1>Value1</Field1>
<Field2>Value2</Field2>
<Field3>Value3</Field3>
<Field4>Value4</Field4>
</Record>
<Record>
<KeyField>KeyValue</KeyField>
<Field1>Value1</Field1>
<Field2>Value2</Field2>
<Field3>Value3</Field3>
<Field4>Value4</Field4>
</Record>
<Record>
<KeyField>KeyValue</KeyField>
<Field1>Value1</Field1>
<Field2>Value2</Field2>
<Field3>Value3</Field3>
<Field4>Value4</Field4>
</Record>
</Records>
</XmlData>


響應(yīng)報文:
<?xml version="1.0" encoding="utf-8"?>
<XmlData>
<Description>
<Result>成功</Result> <!--如果失敗,則<Result>里面內(nèi)容是:失敗:(錯誤原因),同時,KeyField的值為空-->
</Description>
<Records>
</Records>
</XmlData>


報文說明:
標(biāo)簽名
|
說明
|
<XmlData>
|
報文數(shù)據(jù)主體
|
<Description>
|
報文頭部信息
|
<Records>
|
記錄集合
|
<Record>
|
一行記錄
|
<UserInfo>
|
業(yè)務(wù)認證的用戶信息
|
<User>
|
業(yè)務(wù)用戶登錄名
|
<PassWord>
|
業(yè)務(wù)用戶驗證口令
|
<Note>
|
業(yè)務(wù)的簡單描述。比如:開工報告審批、施工組織方案審批 等
|
<KeyField>
|
一行記錄中的主鍵英文字段名稱。實際中,這些標(biāo)簽都是字典的英文名。字段的標(biāo)簽全部是大寫。
具體的主鍵字段名稱請參見提供的數(shù)據(jù)模型
|
<Field1>
<Field2>
<Field3>
<Field4>
|
一行記錄中的英文字段名稱。實際中,這些標(biāo)簽都是字典的英文名。字段的標(biāo)簽全部是大寫。
具體的字段名稱請參見提供的數(shù)據(jù)模型
|
<Result>
|
反饋報文中的保存成功與否信息。
如果保存成功,則信息是“成功”
如果保存失敗,則信息是“失敗:(后面是錯誤的詳細信息)”
|
|
|
8.3.2發(fā)送變更后的字典
外協(xié)系統(tǒng)在字典數(shù)據(jù)發(fā)生變更(新增、修改、邏輯刪除)的時候,會自動發(fā)送請求到施工系統(tǒng)要求施工系統(tǒng)進行更新施工系統(tǒng)的對照字典。
即使是僅僅一個字典條目發(fā)生了改變,外協(xié)系統(tǒng)向施工系統(tǒng)發(fā)送的報文中還是包含了該類字典的所有條目。
請求報文:
<?xml version="1.0" encoding="utf-8"?>
<XmlData>
<UserInfo>
<User>ZhangSan</User>
<PassWord>123456</PassWord>
</UserInfo>
<Description>
<DictionaryID>201</DictionaryID>
</Description>
<Records>
<Record>
<Field1>Value1</Field1>
<Field2>Value2</Field2>
<Field3>Value3</Field3>
<Field4>Value4</Field4>
</Record>
<Record>
<Field1>Value1</Field1>
<Field2>Value2</Field2>
<Field3>Value3</Field3>
<Field4>Value4</Field4>
</Record>
<Record>
<Field1>Value1</Field1>
<Field2>Value2</Field2>
<Field3>Value3</Field3>
<Field4>Value4</Field4>
</Record>
</Records>
</XmlData>


響應(yīng)報文:
<?xml version="1.0" encoding="utf-8"?>
<XmlData>
<Description>
<Result>成功</Result> <!--如果失敗,則<Result>里面內(nèi)容是:失敗:(錯誤原因),同時,KeyField的值為空-->
</Description>
<Records>
</Records>
</XmlData>


報文說明:
標(biāo)簽名
|
說明
|
<XmlData>
|
報文數(shù)據(jù)主體
|
<Description>
|
報文頭部信息
|
<Records>
|
記錄集合
|
<Record>
|
一行記錄
|
<UserInfo>
|
業(yè)務(wù)認證的用戶信息
|
<User>
|
業(yè)務(wù)用戶登錄名
|
<PassWord>
|
業(yè)務(wù)用戶驗證口令
|
<DictionaryID>
|
字典類型ID。發(fā)生變更的字典類型。
|
<Field1>
<Field2>
<Field3>
<Field4>
|
一行記錄中的英文字段名稱。實際中,這些標(biāo)簽都是字典的英文名。字段的標(biāo)簽全部是大寫。
具體的字段名稱請參見提供的數(shù)據(jù)模型
|
<Result>
|
反饋報文中的保存成功與否信息。
如果保存成功,則信息是“成功”
如果保存失敗,則信息是“失敗:(后面是錯誤的詳細信息)”
|
|
|
8.3.3文檔發(fā)送請求
外協(xié)系統(tǒng)不會主動發(fā)送文檔的變更信息給施工系統(tǒng),因為文檔的信息(文檔的ID)變更是體現(xiàn)在業(yè)務(wù)的信息當(dāng)中的,外協(xié)系統(tǒng)向施工系統(tǒng)發(fā)送業(yè)務(wù)的變更信息當(dāng)中就包含了變更了的文檔ID,只有在施工系統(tǒng)中進行業(yè)務(wù)需要獲得文檔的信息的時候,由施工系統(tǒng)主動發(fā)送請求到外協(xié)系統(tǒng)獲得文檔的信息或下載文檔。