題注:
發表這篇解決方案,屬于非盈利目的。主要是為了讓大家了解一種接口技術解決方案文檔的編寫格式以及讓大家評審在我的這個技術解決方案中的不足之處,以便大家指出并加以改進。
轉載,下載或與各種形式使用這篇文章,必須注明文章的作者,出處。
其他未盡事宜,以國家法律規定的為準!
作者:南瘋
施工系統提交字典的分類ID,向外協系統發送請求。外協系統根據字典分類ID,返回對應的字典代碼信息。字典代碼的信息返回不受最大返回記錄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>


響應報文:
<?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>


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


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


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


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


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