題注:
發表這篇解決方案,屬于非盈利目的。主要是為了讓大家了解一種接口技術解決方案文檔的編寫格式以及讓大家評審在我的這個技術解決方案中的不足之處,以便大家指出并加以改進。
轉載,下載或與各種形式使用這篇文章,必須注明文章的作者,出處。
其他未盡事宜,以國家法律規定的為準!
作者:南瘋
根據前面的兄弟和父子關系的說明,一條記錄中補充上傳文檔的方式就簡單了許多。只要施工系統上傳了文檔,獲得最后的文檔ID,然后,在施工系統中維護最后的文檔ID,再用修改記錄的報文上報更新后的業務數據即可。流程:
上傳補充的文檔 à 獲得最后的文檔ID à 用最后的文檔ID更新業務數據 à 上傳修改后的業務數據。
向外協系統請求刪除一個文檔,只需要向外協系統提交包含有要刪除的文檔ID即可。
如果需要刪除的是文檔鏈當中的某一個文檔,則需要向外協請求獲得文檔鏈的信息(參見后面的“如何獲取文檔信息”),然后,從鏈中找到要刪除的文檔ID,向外協系統提交。外協系統在刪除文檔的同時,會自動把鏈連接起來成為一個完整的鏈關系,同時,總是返回鏈的最末尾的文檔ID。施工系統獲得鏈末尾的最后文檔ID之后,更新業務表中的相應記錄,再用修改的報文上報修改后的業務數據(此步驟不要忘記)。
請求刪除文檔的報文:
<?xml version="1.0" encoding="utf-8"?>
<XmlData>
<UserInfo>
<User>ZhangSan</User>
<PassWord>123456</PassWord>
</UserInfo>
<Description>
</Description>
<Records>
<ID>123456</ID>
</Records>
</XmlData>

響應報文:
<?xml version="1.0" encoding="utf-8"?>
<XmlData>
<Description>
<Result>成功</Result> <!--如果失敗,則返回信息是“失敗:(錯誤信息)”-->
</Description>
<Records>
<Record>
<ID>456789</ID> <!--這個是鏈當中的最后一個文檔ID,如果鏈已經不存在,返回 -1 -->
</Record>
</Records>
</XmlData>


報文說明:
標簽名
|
說明
|
<XmlData>
|
報文數據主體
|
<Description>
|
報文頭部信息
|
<Records>
|
記錄集合
|
<Record>
|
一行記錄
|
<UserInfo>
|
業務認證的用戶信息
|
<User>
|
業務用戶登錄名
|
<PassWord>
|
業務用戶驗證口令
|
<Result>
|
反饋報文中的保存成功與否信息。
如果文檔刪除成功,則信息是“成功”
如果文檔刪除失敗,則信息是“失敗:(后面是錯誤的詳細信息)”
|
請求報文中<ID>
|
文檔的ID。要刪除的文檔ID
|
反饋報文中<ID>
|
文檔的ID。當刪除鏈中的一個文檔之后,外協系統自動維護鏈之間的關系,并返回鏈末尾最后一個文檔的ID
|
施工系統根據文檔的ID向外協系統請求獲得文檔的基本信息。外協系統返回滿足結果的文檔基本信息。施工系統可以請求一個文檔的基本信息,也可以請求多個(最多100個)文檔的信息。這個接口不考慮文檔鏈的情況,僅僅是按指定文檔ID返回結果。
請求報文:
<?xml version="1.0" encoding="utf-8"?>
<XmlData>
<UserInfo>
<User>ZhangSan</User>
<PassWord>123456</PassWord>
</UserInfo>
<Description>
</Description>
<Records>
<Record>
<ID>123456</ID>
</Record>
<Record>
<ID>456789</ID>
</Record>
</Records>
</XmlData>

響應報文:
<?xml version="1.0" encoding="utf-8"?>
<XmlData>
<Description>
<Result>成功</Result> <!--如果失敗,則返回信息是“失敗:(錯誤信息)”-->
</Description>
<Records>
<Record>
<ID>123456</ID>
<FILE_PRJ_ID>Value1</FILE_PRJ_ID>
<FILE_TYPE>Value2</FILE_TYPE>
<FILE_CREAET_MODE>Value3</FILE_CREAET_MODE>
<FILE_NAME>Value4</FILE_NAME>
<FILE_UNIT>Value5</FILE_UNIT>
<FILE_MAN>Value6</FILE_MAN>
<FILE_CREATE_TIME>Value7</FILE_CREATE_TIME>
<FILE_SIZE>Value8</FILE_SIZE>
<FILE_AUTHOR>Value9</FILE_AUTHOR>
<FILE_TITLE>Value10</FILE_TITLE>
<FILE_BROTHER_ID>Value11</FILE_BROTHER_ID>
<FILE_PARENT_ID>Value12</FILE_PARENT_ID>
</Record>
<Record>
<ID>456789</ID>
<FILE_PRJ_ID>Value1</FILE_PRJ_ID>
<FILE_TYPE>Value2</FILE_TYPE>
<FILE_CREAET_MODE>Value3</FILE_CREAET_MODE>
<FILE_NAME>Value4</FILE_NAME>
<FILE_UNIT>Value5</FILE_UNIT>
<FILE_MAN>Value6</FILE_MAN>
<FILE_CREATE_TIME>Value7</FILE_CREATE_TIME>
<FILE_SIZE>Value8</FILE_SIZE>
<FILE_AUTHOR>Value9</FILE_AUTHOR>
<FILE_TITLE>Value10</FILE_TITLE>
<FILE_BROTHER_ID>Value11</FILE_BROTHER_ID>
<FILE_PARENT_ID>Value12</FILE_PARENT_ID>
</Record>
</Records>
</XmlData>


報文說明:
標簽名
|
說明
|
<XmlData>
|
報文數據主體
|
<Description>
|
報文頭部信息
|
<Records>
|
記錄集合
|
<Record>
|
一行記錄
|
<UserInfo>
|
業務認證的用戶信息
|
<User>
|
業務用戶登錄名
|
<PassWord>
|
業務用戶驗證口令
|
<Result>
|
反饋報文中的保存成功與否信息。
如果文檔獲得成功,則信息是“成功”
如果文檔獲得失敗,則信息是“失敗:(后面是錯誤的詳細信息)”
|
請求報文中<ID>
|
文檔的ID。要獲取的文檔ID
|
反饋報文中<ID>
|
文檔的ID。要獲取的文檔ID
|
<FILE_PRJ_ID>
|
文檔所屬項目ID
|
<FILE_TYPE>
|
文檔類型
|
<FILE_CREAET_MODE>
|
文檔創建方式 默認:用戶上傳
|
<FILE_NAME>
|
文檔(文件)名稱
|
<FILE_UNIT>
|
創建單位
|
<FILE_MAN>
|
創建人
|
<FILE_CREATE_TIME>
|
創建日期
|
<FILE_SIZE>
|
文檔大小
|
<FILE_AUTHOR>
|
文檔作者
|
<FILE_TITLE>
|
文檔標題
|
<FILE_BROTHER_ID>
|
兄弟節點ID,如果沒有兄長,則為 -1
|
<FILE_PARENT_ID>
|
父親節點ID, 如果沒有父親,則為 -1
|
獲得文檔所有兄弟信息與獲得文檔基本信息類似,區別之處在于在獲得文檔所有兄弟信息的時候,施工系統僅僅需要提交一個最小兄弟的節點,外協系統自動找出該文檔的所有“兄長”文檔信息返回。
注意,在返回的所有兄弟報文中,最小的兄弟排在記錄的最前面,依序排序往上,最后,最大的兄弟排在最后面。
下面的這個報文雖然和前面的“如何獲得文檔的基本信息”報文一樣,但是,施工系統僅僅需要提交一條文檔的ID。而且,這個求情所調用的接口和前面的“如何獲得文檔的基本信息”的所調用的接口是不一樣的。
請求報文:
<?xml version="1.0" encoding="utf-8"?>
<XmlData>
<UserInfo>
<User>ZhangSan</User>
<PassWord>123456</PassWord>
</UserInfo>
<Description>
</Description>
<Records>
<Record>
<ID>123456</ID>
</Record>
</Records>
</XmlData>

響應報文:
<?xml version="1.0" encoding="utf-8"?>
<XmlData>
<Description>
<Result>成功</Result> <!--如果失敗,則返回信息是“失敗:(錯誤信息)”-->
</Description>
<Records>
<Record>
<ID>123456</ID>
<FILE_PRJ_ID>Value1</FILE_PRJ_ID>
<FILE_TYPE>Value2</FILE_TYPE>
<FILE_CREAET_MODE>Value3</FILE_CREAET_MODE>
<FILE_NAME>Value4</FILE_NAME>
<FILE_UNIT>Value5</FILE_UNIT>
<FILE_MAN>Value6</FILE_MAN>
<FILE_CREATE_TIME>Value7</FILE_CREATE_TIME>
<FILE_SIZE>Value8</FILE_SIZE>
<FILE_AUTHOR>Value9</FILE_AUTHOR>
<FILE_TITLE>Value10</FILE_TITLE>
<FILE_BROTHER_ID>456789</FILE_BROTHER_ID>
<FILE_PARENT_ID>Value12</FILE_PARENT_ID>
</Record>
<Record>
<ID>456789</ID>
<FILE_PRJ_ID>Value1</FILE_PRJ_ID>
<FILE_TYPE>Value2</FILE_TYPE>
<FILE_CREAET_MODE>Value3</FILE_CREAET_MODE>
<FILE_NAME>Value4</FILE_NAME>
<FILE_UNIT>Value5</FILE_UNIT>
<FILE_MAN>Value6</FILE_MAN>
<FILE_CREATE_TIME>Value7</FILE_CREATE_TIME>
<FILE_SIZE>Value8</FILE_SIZE>
<FILE_AUTHOR>Value9</FILE_AUTHOR>
<FILE_TITLE>Value10</FILE_TITLE>
<FILE_BROTHER_ID>-1</FILE_BROTHER_ID>
<FILE_PARENT_ID>Value12</FILE_PARENT_ID>
</Record>
</Records>
</XmlData>

各種標簽說明:(參見前面的“如何獲得文檔的基本信息”說明)
同“如何獲得文檔的所有兄弟信息”接口一樣,施工系統向外協系統提交最小輩分的一個文檔的ID,外協系統自動返回所有的父輩文檔信息,包含父親,爺爺,祖爺爺等。
請求報文:(參見“如何獲得文檔的所有兄弟信息”請求報文)
響應報文:(參見“如何獲得文檔的所有兄弟信息”響應報文)
各種標簽說明:(參見前面的“如何獲得文檔的基本信息”說明)
獲得文檔的ID之后,施工系統可以向外協系統請求下載某一個文檔的實體數據。外協系統把文檔用二進制讀取出來之后,轉換成base64的格式供施工系統下載。施工系統一次只能請求下載一個文檔。
請求報文:
<?xml version="1.0" encoding="utf-8"?>
<XmlData>
<UserInfo>
<User>ZhangSan</User>
<PassWord>123456</PassWord>
</UserInfo>
<Description>
</Description>
<Records>
<ID>123456</ID>
</Records>
</XmlData>


響應報文:
<?xml version="1.0" encoding="utf-8"?>
<XmlData>
<Description>
<Result>成功</Result> <!--如果失敗,則返回信息是“失敗:(錯誤信息)”-->
</Description>
<Records>
<Record>
<FileData>/e5asf@dfgafa#sdgsdg……</FileData>
</Record>
</Records>
</XmlData>


報文說明:
標簽名
|
說明
|
<XmlData>
|
報文數據主體
|
<Description>
|
報文頭部信息
|
<Records>
|
記錄集合
|
<Record>
|
一行記錄
|
<UserInfo>
|
業務認證的用戶信息
|
<User>
|
業務用戶登錄名
|
<PassWord>
|
業務用戶驗證口令
|
<ID>
|
文檔的ID。請求下載的文檔ID
|
<FileData>
|
文件實體內容。文件實體內容用二進制讀取出來之后,然后轉換成base64的格式提供給施工系統。
|
<Result>
|
反饋報文中的下載成功與否信息。
如果下載成功,則信息是“成功”
如果下載失敗,則信息是“失敗:(后面是錯誤的詳細信息)”
|