監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 甲方項(xiàng)目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉
免費(fèi)OA系統(tǒng)

當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 免費(fèi)辦公軟件 > 免費(fèi)OA系統(tǒng)

OA軟件也開始免費(fèi)啦!來看哈他的文檔webservices接口

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

第十部分 泛普免費(fèi)OA文檔webservices接口
一. 泛普OA管理平臺(tái)接口說明
可以通過該接口對(duì)系統(tǒng)中的文檔進(jìn)行一些操作,創(chuàng)建文檔、刪除文檔、更新文檔、查看文檔
二. 使用說明
一、 泛普OA軟件泛普OA系統(tǒng)系統(tǒng)文檔接口部署
1. 更新lib目錄下文件
將spring.jar更新為spring-1.2.6.jar
將xfire-all-1.1.2.jar更新為xfire-all-1.2.6.jar
添加xbean-spring-2.8.jar文件
 
2. 修改web.xml文件
在相應(yīng)處增加servlet部署(參考系統(tǒng)中已有很多servlet部署),加入如下描述
  <servlet>
    <servlet-name>XFireServlet</servlet-name>
    <display-name>XFire Servlet</display-name>
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>XFireServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>
注意:不要添加在注釋中(即以“<!—”開始至“-->”結(jié)束為注釋)!
 
3. 添加文件
在classes目錄中添加META-INF/xfire/services.xml
在classes目錄中添加以下class文件:
泛普OA系統(tǒng)docswebservicesDocAttachment.class
泛普OA系統(tǒng)docswebservicesDocCustomField.class
泛普OA系統(tǒng)docswebservicesDocInfo.class
泛普OA系統(tǒng)docswebservicesDocService.class
泛普OA系統(tǒng)docswebservicesDocServiceImpl.class
 
二、 泛普OA破解版接口使用
 
文檔接口采用標(biāo)準(zhǔn)的Web Service規(guī)范,因此可以使用標(biāo)準(zhǔn)的Web Service客戶端調(diào)用。
1. 客戶端所需lib
commons-discovery-0.2.jar
javax-wsdl_1.5.1jar
commons-logging_1.0.4.jar
axis.jar
jaxrpc.jar
saaj.jar
activation.jar
mail.jar
 
2. wsdl描述
在泛普OA系統(tǒng)系統(tǒng)中成功部署文檔Web Service接口后,訪問以下地址即可查看到該接口的wsdl描述:http://服務(wù)器:端口號(hào)/services/DocService?wsdl
 
 
3. 接口方法概述
名稱 參數(shù) 返回值 功能描述
login String loginid:用戶登陸名
String password :用戶登陸密碼
int logintype:登陸方式(0 數(shù)據(jù)庫(kù)驗(yàn)證;1 動(dòng)態(tài)密碼驗(yàn)證;2 LDAP驗(yàn)證)
String ipaddress:用戶IP地址 String:登陸Session碼 登陸驗(yàn)證用戶,并根據(jù)返回隨Session碼
createDoc DocInfo docinfo:文檔信息對(duì)象
String sessioncode:登陸Session碼 int:1 成功 0 失敗 根據(jù)文檔對(duì)象創(chuàng)建文檔
updateDoc DocInfo docinfo:文檔信息對(duì)象
String sessioncode:登陸Session碼 int:1 成功 0 失敗 根據(jù)文檔對(duì)象修改文檔
deleteDoc int id:文檔ID
String sessioncode:登陸Session碼 int:1 成功 0 失敗 根據(jù)文檔ID刪除文檔
getDoc int id:文檔ID
String sessioncode:登陸Session碼 DocInfo:文檔對(duì)象 根據(jù)文檔ID取得文檔對(duì)象(帶文檔內(nèi)容及附件)
getDocCount String sessioncode:登陸Session碼 int:文檔數(shù) 取得有權(quán)限訪問的文檔數(shù)
getList String sessioncode:登陸Session碼 DocInfo[]:文檔對(duì)象數(shù)組 取得有權(quán)限訪問的文檔對(duì)象數(shù)組(無文檔內(nèi)容及附件)
 
4. 接口調(diào)用示例
使用eclipse向?qū)蒞eb Service客戶端
 
 
 
完成后,創(chuàng)建調(diào)用程序后,寫入如下代碼:
    public static void main(String[] args) {
    try {
    //根據(jù)Eclipse生成的Web Service客戶端程序,取得接口
    DocServicePortType service = new DocServiceLocator().getDocServiceHttpPort(new URL("http://localhost:8080//services/DocService"));
    //登陸
    String session = service.login("zdp", "1", 0, "127.0.0.1");
    //取得有權(quán)限訪問的文檔數(shù)
    int count = service.getDocCount(session);
   
    //取得有權(quán)限訪問的文檔列表,第1頁,每頁10條記錄
    DocInfo[] docs1 = service.getList(session,1,10);
    //取得有權(quán)限訪問的文檔列表,第2頁,每頁10條記錄
    DocInfo[] docs2 = service.getList(session,2,10);
    //循環(huán)打印取得的文檔的ID、標(biāo)題、主目錄ID、主目錄名稱、分目錄ID、分目錄名稱、
    //子目錄ID、子目錄名稱、文檔創(chuàng)建人ID、文檔創(chuàng)建人名稱、創(chuàng)建日期、創(chuàng)建時(shí)間
    for(int i=0;i<docs1.length;i++) 
    System.out.println(docs1[i].getId()+"|"+docs1[i].getDocSubject()+"|"+
docs1[i].getMaincategory()+"|"+docs1[i].getMaincategoryStr()+"|"+
docs1[i].getSubcategory()+"|"+docs1[i].getSubcategoryStr()+"|"+
    docs1[i].getSeccategory()+"|"+docs1[i].getSeccategoryStr()+"|"+
    docs1[i].getDoccreaterid()+"|"+docs1[i].getDoccreatername()+"|"+
    docs1[i].getDoccreatedate()+"|"+docs1[i].getDoccreatetime());
 
    //根據(jù)ID取得文檔內(nèi)容
    DocInfo doc = service.getDoc(13095,session);
    //取得該文檔的第一個(gè)附件
    DocAttachment da = doc.getAttachments()[0];
    //得到附件內(nèi)容
    byte[] content = Base64.decode(da.getFilecontent());
    //得到附件在服務(wù)器上的絕對(duì)路徑
    String filepath = da.getFilerealpath();
 
    //將附件內(nèi)容轉(zhuǎn)存至D:
    File file = new File("d:\"+da.getFilename());
try {
int byteread;
byte data[] = new byte[1024];
InputStream imagefile = null;
if(da.getIszip()==1){
ZipInputStream zin = new ZipInputStream(new ByteArrayInputStream(content));
if (zin.getNextEntry() != null)
imagefile = new BufferedInputStream(zin);
} else {
imagefile = new ByteArrayInputStream(content);
}
OutputStream out = new FileOutputStream(file);
while ((byteread = imagefile.read(data)) != -1) {
out.write(data, 0, byteread);
out.flush();
}
imagefile.close();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
 
//根據(jù)絕對(duì)路徑轉(zhuǎn)存附件(僅限與泛普OA系統(tǒng)系統(tǒng)在同一服務(wù)器上)
try {
int byteread;
byte data[] = new byte[1024];
InputStream imagefile = null;
if(da.getIszip()==1){
ZipInputStream zin = new ZipInputStream(new FileInputStream(new File(da.getFilerealpath())));
if (zin.getNextEntry() != null)
imagefile = new BufferedInputStream(zin);
} else {
imagefile = new FileInputStream(new File(da.getFilerealpath()));
}
   
OutputStream out = new FileOutputStream(file);
while ((byteread = imagefile.read(data)) != -1) {
out.write(data, 0, byteread);
out.flush();
}
imagefile.close();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
 
 
//上傳附件,更新文檔
content = null;
try {
int byteread;
byte data[] = new byte[1024];
InputStream input = new FileInputStream(new File("d:\123.pdf"));
 
ByteArrayOutputStream out = new ByteArrayOutputStream();
while ((byteread = input.read(data)) != -1) {
out.write(data, 0, byteread);
out.flush();
}
content = out.toByteArray();
input.close();
out.close();
} catch(Exception e){
e.printStackTrace();
}
da.setDocid(doc.getId());
da.setImagefileid(0);
da.setFilecontent(Base64.encode(content));
da.setIszip(1);
 
doc.setDocSubject("test");
doc.setDoccontent("content");
doc.setAttachments(new DocAttachment[]{da});
service.updateDoc(doc, session);
 
//上傳附件,創(chuàng)建文檔
content = null;
try {
int byteread;
byte data[] = new byte[1024];
InputStream input = new FileInputStream(new File("d:\123.pdf"));
 
ByteArrayOutputStream out = new ByteArrayOutputStream();
while ((byteread = input.read(data)) != -1) {
out.write(data, 0, byteread);
out.flush();
}
content = out.toByteArray();
input.close();
out.close();
} catch(Exception e){
e.printStackTrace();
}
 
da.setDocid(0);
da.setImagefileid(0);
da.setFilecontent(Base64.encode(content));
da.setFilerealpath("d:\123.pdf");
da.setIszip(1);
 
doc.setId(0);
doc.setDocSubject("test pdf1");
doc.setDoccontent("abcefghijk");
doc.setAttachments(new DocAttachment[]{da});
service.createDoc(doc, session);
    } catch(Exception e) {
    e.printStackTrace();
    }
}
 
5. 文檔對(duì)象說明
DocInfo
/**
* 文檔ID
*/
private int id;
 
/**
* 文檔類型
* 1 Html文檔 2 Office文檔
*/
private int docType;
 
/**
* 文檔標(biāo)題
*/
private String docSubject;
 
/**
* 文檔編號(hào)
*/
private String docCode;
 
/**
* 新聞?lì)愋?/div>
*/
private int docPublishType;
private String publishable;
 
/**
* 文檔版本
*/
private int docEdition;
private int docEditionId;
private String docEditionStr;
 
/**
* 文檔狀態(tài)
*/
private int docStatus;
private String docStatusStr;
 
/**
*  主目錄
*/
private int maincategory;
private String maincategoryStr;
 
/**
* 分目錄
*/
private int subcategory;
private String subcategoryStr;
 
/**
* 子目錄
*/
private int seccategory;
private String seccategoryStr;
 
/**
* 部門
*/
private int docdepartmentid;
private String docdepartmentStr;
 
/**
* 語言
*/
private int doclangurage;
private String doclangurageStr;
 
/**
* 關(guān)鍵字
*/
private String keyword;
 
/**
* 創(chuàng)建
*/
private int doccreaterid;
private int doccreatertype;
private String doccreatername;
private String doccreatedate;
private String doccreatetime;
 
/**
* 修改
*/
private int doclastmoduserid;
private int doclastmodusertype;
private String doclastmodusername;
private String doclastmoddate;
private String doclastmodtime;
 
/**
* 批準(zhǔn)
*/
private int docapproveuserid;
private int docapproveusertype;
private String docapproveusername;
private String docapprovedate;
private String docapprovetime;
 
/**
* 失效
*/
private int docinvaluserid;
private int docinvalusertype;
private String docinvalusername;
private String docinvaldate;
private String docinvaltime;
 
/**
* 歸檔
*/
private int docarchiveuserid;
private int docarchiveusertype;
private String docarchiveusername;
private String docarchivedate;
private String docarchivetime;
 
/**
* 作廢
*/
private int doccanceluserid;
private int doccancelusertype;
private String doccancelusername;
private String doccanceldate;
private String doccanceltime;
 
/**
* 主文檔
*/
private int maindoc;
private String maindocname;
 
/**
* 被引用列表 
*/
private int[] childdoc;
private String[] chiledocname;
 
/**
* 文檔所有者
*/
private int ownerid;
private int ownertype;
private String ownername;
 
/**
* 失效時(shí)間
*/
private String invalidationdate;
 
/**
* 虛擬目錄
*/
private int[] dummyIds;
private String[] dummyNames;
 
/**
* 自定義字段
*/
private DocCustomField[] doccustomfields;
 
/**
* 關(guān)聯(lián)類型
*/
private int hrmresid;
private int assetid;
private int CRMid;
private int itemid;
private int projectid;
private int financeid;
 
/**
* HTML文檔內(nèi)容
*/
private String doccontent;
 
/**
* Office文檔內(nèi)容
*/
private int imagefileId;
private int versionId;
 
/**
* 是否回復(fù)文檔
*/
private String isreply;
private int replydocid;
 
/**
* 附件數(shù)
*/
private int accessorycount;
 
/**
* 回復(fù)數(shù)
*/
private int replaydoccount;
 
/**
* 文檔附件
*/
private DocAttachment[] attachments;
 
 
DocCustomField
 
/**
* 自定義字段ID
*/
private int fieldid;
 
/**
* 自定義字段顯示類型
*/
private String fieldhtmltype;
 
/**
* 自定義字段存儲(chǔ)類型
*/
private String fielddbtype;
 
/**
* 自定義字段類型
*/
private int fieldtype;
 
/**
* 自定義字段顯示名稱
*/
private String fieldshow;
 
/**
* 自定義字段值
*/
private String fieldvalue;
 
 
DocAttachment
 
/**
* 文檔ID
*/
private int docid;
 
/**
* 附件ID
*/
private int imagefileid;
 
/**
* 附件名稱
*/
private String imagefilename;
 
/**
* 附件描述
*/
private String imagefiledesc;
 
/**
* 附件寬度(圖片文件)
*/
private int imagefilewidth;
 
/**
* 附件高度(圖片文件)
*/
private int imagefileheight;
 
/**
* 附件大小
*/
private int imagefilesize;
 
/**
* 附件類型
*/
private String docfiletype;
 
/**
* 附件版本
*/
private int versionId;
 
/**
* 附件版本描述
*/
private String versionDetail;
 
/**
* 是否Office文檔內(nèi)容附件
*/
private String isextfile;
 
/**
* 文件名稱
*/
private String filename;
 
/**
* 文件類型
*/
private String filetype;
 
/**
* 文件使用次數(shù)
*/
private int fileused;
 
/**
* 文件絕對(duì)路徑
*/
private String filerealpath;
 
/**
* 文件內(nèi)容Base64后編碼
*/
private String filecontent;
 
/**
* 是否壓縮
*/
private int iszip;
 
發(fā)布:2006-04-22 15:19    編輯:泛普軟件 · admin    [打印此頁]    [關(guān)閉]
相關(guān)文章: