2013-11-01 4 views
2

현재 중앙 버전 제어 저장소에서 변경 사항을 추적하기 위해 모든 노드를 내 AX 2009 AOT에서 개별 XPO 파일로 내보내는 시스템에서 작업하고 있습니다. 나는 운이 좋았지 만, 어떤 이유로 양식이나 데이터 세트 노드를 내보낼 수 없습니다.AX 2009에서 일괄 내보내기 양식

이 내 현재 코드 집합은 다음과 같습니다

private void export(str parentNode) 
{ 
    TreeNode   node, parent; 
    str     folderName; 
    Set     permissions = new Set(Types::Class); 
    ; 

    folderName = exportBaseDir + parentNode; 

    permissions.add(new FileIoPermission(folderName, "r")); 
    permissions.add(new InteropPermission(InteropKind::ClrInterop)); 

    CodeAccessPermission::assertMultiple(permissions); 

    //Create Filesystem Folder if needed 
    if (!WinApiServer::pathExists(folderName)) 
     System.IO.Directory::CreateDirectory(folderName); 


    CodeAccessPermission::revertAssert(); 

    parent = TreeNode::findNode(parentNode); 

    if (parent) 
     node = parent.AOTfirstChild(); 
    else 
     warning(strfmt("Could not parse node: %1", parentNode)); 

    while (node) 
    { 
     this.exportNode(node); 
     node = node.AOTnextSibling(); 
    } 
} 

나는 내가 TreeNode::findNode()가 제대로 해결되지 않은 의미하는 "노드를 구문 분석 할 수 없습니다"메시지가 export(@"\Forms"); 또는 export(@"\Data Sets"); 전화

. 다른 노드 (예 : 클래스)에서 실행하면이 문제가 발생하지 않습니다. 이것은 일괄 처리에서 실행될 때만 발생하며 클라이언트와 함께 실행하면 ( CodeAccessPermission 부분이 제거 된 상태) 모든 노드가 예상대로 내보내집니다.

일괄 처리에서 양식 및 데이터 세트에 액세스하지 못하도록하는 것이 있습니까? 그렇다면 노드에 액세스하려면 어떻게해야합니까?

+0

vss를 사용하지 않거나 소스 컨트롤이 내장 된 이유는 무엇입니까? – AnthonyBlake

+0

우리는 내장 된 MorphX VC를 사용하고 있습니다. 이것은이 외에도 사용될 것입니다. 그들의 VC 시스템은 (특정 날짜에 업데이트되었거나 업데이트되지 않은 코드, 코드의 오프 사이트 백업 등을 볼 수있는 능력과 같이) 많은 것을 남겨 두며,이 솔루션이 이러한 갭을 해결하는 데 도움이된다고 생각합니다. – kingofzeal

+0

멋진데 - vss를 사용하지 않는 이유는 무엇입니까? – AnthonyBlake

답변

1

나는 그것이 서버/클라이언트 문제/버그라고 말할 수있다.

client static TreeNode clientTreeNode(str _path) 
{ 
    return TreeNode::findNode(_path); 
} 

는 그런 다음 코드에서 parent = TreeNode::findNode(parentNode); 라인 아래에 넣어 : 쉬운 해결책은 클래스에서이 메소드를 작성하는 것입니다

parent = parent ? parent : YourClassHere::clientTreeNode(parentNode);

그리고 그 문제를 해결해야한다. 서버 계층에서 작동하지 않는 이유를 알아 내기 위해서는 약간의 파고가 있어야합니다.

+0

이것은 즉각적인 문제를 해결하는 것 같지만 실행될 때 모든 양식 및 데이터 세트 XPO에서 "파일이 쓰기 금지 또는 사용 중"으로 표시됩니다. 단계별로 살펴보면'[treenode] .treeNodeExport (fileName)'행에서 발생합니다. 적절한 FileIOPermissions를 설정 했으므로 다른 모든 것이 올바르게 반출됩니다. 파일이 전혀 존재하지 않습니다. 생각? – kingofzeal

+0

더 많은 정보가 필요하다고 생각합니다. 그것은 서버 파일 경로와 클라이언트 파일 경로의 차이 일 수 있습니다. 또는 아마도'treenode'가 제대로 초기화되지 않았습니다. –

+0

문제는 우리가 사용하려고했던 UNC 경로에있는 것 같습니다. 클라이언트는 루트 경로를 좋아하지 않는 것 같습니다. 형식은 "\\ server.domain.com \ c $ \ src \ AXSource"입니다. 네트워크상의 폴더를 공유하고 루트 패치 "\\ server.domain.com \ AXSource"를 변경하는 것은 잘 작동하는 것 같습니다. 도움을 요청합니다! – kingofzeal