首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有DFC代码的Jython

带有DFC代码的Jython
EN

Stack Overflow用户
提问于 2014-12-10 16:11:42
回答 2查看 562关注 0票数 2

我正试图通过jython在Documentum中使用IDfSysObjects,但我不知道如何从interperter中适当地调用这些方法。下面的代码说明了我想用jython调用什么。

代码语言:javascript
复制
String docId= getDocId();
IDfSysObject doc = (IDfSysObject)session.getObject(new DfId(docId));
ByteArrayInputStream stream = doc.getContent();

从这一职位:

DFC reading a file

我不知道如何协调IDfSysObject和会话。我试过打电话

session.getObject([r_object_id])

但我得到

TypeError: 1st arg can't be coerced to com.documentum.fc.common.IDfId

我的主要问题是,有人知道如何将下面的代码行转换为jython吗?

代码语言:javascript
复制
IDfSysObject doc = (IDfSysObject)session.getObject(new DfId(docId));
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-11 08:27:09

试试这段代码,它能做你想做的事:

代码语言:javascript
复制
import com.documentum.fc.client.DfClient as DfClient
import com.documentum.fc.common as common

import array 

class DFCExample:
 def connectToDocbase(docbase, user, password):
   client = DfClient.getLocalClient()
   li = common.DfLoginInfo()        
   li.setUser(user)
   li.setPassword(password)
   sess = client.newSession(docbase, li)
   return sess

 def example(sess, docId):  
   id = common.DfId(docId)
   sysObj = sess.getObject(id)
   print array.array('b', iter(sysObj.getContent().read, -1)).tostring()

 session = connectToDocbase("docbaseDev", "dmadmin", "dmadmin")
 example(session, "0900323e80071339")
 sess.disconnect()  
票数 1
EN

Stack Overflow用户

发布于 2015-01-07 14:55:39

我想在这里加上一个与我原来的问题有关的答案,并进行第二次操作,以防其他人可能发现这些信息有用。在成功地获得对象之后,我还想对它执行一个导出操作,这并不像我所希望的那样简单。我发现某些操作通过典型的DfClient不可用,必须用DfClientX实例化会话,但请注意在建立会话方面的不同:

代码语言:javascript
复制
import com.documentum.com.DfClientX as DfClientX
import com.documentum.fc.common as common

class DFCExample:
    def connectToDocbase(docbase, user, password):
        clientx = DfClientX() #extra step
        clx = clientx.getLocalClient()
        li = common.DfLoginInfo()        
        li.setUser(user)
        li.setPassword(password)
        sess = clx.newSession(docbase, li)
        return sess, clientx

    def exportDoc(sess, docId, clientx):
        id = common.DfId(docId)
        sysObj = sess.getObject(id)
        exp = clientx.getExportOperation()
        node = exp.add(sysObj)
        exp.setDestinationDirectory(exp.getDefaultDestinationDirectory())
        exp.execute()

    sess, clientx = connectToDocbase("mydocBase", username, password)
    exportDoc(sess, "0900aaa28023215i", clientx)
    sess.disconnect()

虽然我意识到,这一增加可能不属于我原来的问题的答案,但弄清楚这一点对我在手头的问题上有帮助。所以我只想分享一下万一这能帮到别人。谢谢!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27405704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档