이상한 문제가 있습니다. DFC로 새 폴더를 만들면됩니다. 그러나 코드 (JUnit 또는 응용 프로그램 내부)를 실행할 때 폴더가 생성되지 않으며 놀랍게도 예외가 발생하지 않습니다. 그래서 나는 그 오류가 어딘가에 있다고 생각한다.DFC (Documentum)로 폴더 만들기
이 내 코드입니다 :
public void createNewFolder(String sFolderName, String sParentId)
{
IDfSession session = null;
try
{
session = getSession();
IDfFolder newFolder = (IDfFolder) session.newObject("dm_folder");
newFolder.setObjectName(sFolderName);
newFolder.link(sParentId);
newFolder.save();
String sDump = newFolder.dump();
System.out.println("Folder ["+sFolderName+"] saved.");
System.out.println("Folder has id ["+newFolder.getId("r_object_id")+"]");
}
catch (DfException e)
{
e.printStackTrace();
}
finally
{
m_sessionManager.release(session);
}
내가 반환에 sysobject ID를 받고 있어요,하지만 난 DQL 문을 가져올려고 할 때 나는 그것을 찾을 수 없습니다.
나는 dql create query를 실행하여 폴더를 생성하려고했습니다. 이것은 JUnit이나 실행중인 응용 프로그램에서는 작동하지 않지만 수동으로 실행하면 간단하게 작동합니다.
이것은 내하는 getSession() 메소드
private IDfSession getSession()
{
try
{
if (m_sessionManager == null)
{
return establishConnection();
}
else
{
return m_sessionManager.getSession(m_sRepository);
}
}
catch (DfException e)
{
e.printStackTrace();
}
return null;
}
이 뭘까요?
dfc.properties가 확인하려는 동일한 인스턴스를 가리키고 있는지 확인 했습니까? 당신의 코드에서'newFolder.dump()'라인이 당신에게 어떤 것을 돌려 줄 수 있습니까? 나는 당신이 그것을 인쇄하는 곳을 보지 못한다. ID를 돌려 주면 생성됩니다. –
예, 실제로 디버깅 할 때 ID를 다시 얻습니다. 하지만 실행 된 직후, DQL로 가져 오기 위해 노력하고 있지만 어떤 이유로 든 거기에 있지 않습니다 ... –
어떤 종류의 DFC 트랜잭션을 사용하고 있습니까? 그게 먼저 커밋해야합니다. 동일한 트랜잭션 내에서도 DQL 트랜잭션을 DQL과 혼합 할 때 이상한 동작을 보았습니다. 내 유일한 다른 제안은 Acl에 대해 실제로 권한이 있는지 확인하기 위해 Acl을 다시 확인한다는 것입니다. –