Java Jython与DFC代码
我试图通过jython在Documentum中使用IDfSysObjects,但我不知道如何从interperter适当地调用这些方法。下面的代码说明了我想用jython调用什么Java Jython与DFC代码,java,jython,documentum,dfc,Java,Jython,Documentum,Dfc,我试图通过jython在Documentum中使用IDfSysObjects,但我不知道如何从interperter适当地调用这些方法。下面的代码说明了我想用jython调用什么 String docId= getDocId(); IDfSysObject doc = (IDfSysObject)session.getObject(new DfId(docId)); ByteArrayInputStream stream = doc.getContent(); 从本帖: 我不知道如何协调ID
String docId= getDocId();
IDfSysObject doc = (IDfSysObject)session.getObject(new DfId(docId));
ByteArrayInputStream stream = doc.getContent();
从本帖:
我不知道如何协调IDfSysObject与会话。我试过打电话
session.getObject([r\u object\u id])
但我明白了
TypeError:1st arg不能强制为com.documentum.fc.common.IDfId
我的主要问题是,有人知道如何将下面这行代码转换成jython吗
IDfSysObject doc = (IDfSysObject)session.getObject(new DfId(docId));
请尝试此代码,它可以满足您的要求:
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()
我想在这里添加一个与我的原始问题相关的答案,以及一个辅助操作,以防其他人发现这些信息有用。成功获取对象后,我还希望对其执行导出操作,这并不像我希望的那样简单。我发现某些操作无法通过典型的
DfClient
进行,我必须用DfClientX
实例化会话,但请注意建立会话的不同之处:
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()
虽然我意识到这一补充可能不属于我最初问题的答案,但弄清楚这一点对我手头的话题有帮助。所以我想和大家分享一下,以防这对其他人有所帮助。谢谢 我很高兴能帮上忙!:-)