>

DXL 스크립트를 작성하는 작업을 받았습니다. 첫 번째 문제는 DOORS 자체에 대해 수년 간의 경험이 있지만 이전에 DXL을 사용한 적이 없다는 것입니다. 나는 내 특정 문제에 대한 지침을 찾기 위해 인터넷 서핑을 해왔다. 또한 참고 용으로 몇 가지 표본 DXL 스크립트가 있습니다.

새로운 클라이언트는 특정 모듈의 각 뷰에 대해 많은 뷰가 있으며 각 뷰를 반영하여 새로운 "축소 된"모듈을 생성해야합니다.

"감소 된"것으로서,이 새로운 모듈에는 해당 뷰에 실제로 필요하지 않은 것은 포함되지 않습니다 (예 : 열, 속성 등).이 새로운 모듈에는 단일 뷰만 있습니다.

따라서 앞으로 볼 수있는 한 가지 방법은 단일 마스터 모듈의 사본을 각보기마다 하나씩 가져 와서 주어진 마스터 모듈/필수보기를 반영하도록 사본의 이름을 바꾸고 주어진 사본 모듈에서 필요한보기를 선택하는 것입니다 그런 다음 해당보기에 필요하지 않은 모든 항목, 즉 사용 가능한 열, 속성 등을 삭제하십시오.

필요한 DXL 지식이 있다면 가능한 한 빨리 데리려고 노력하고 있습니다.

가능한 경우이 스크립트는 일반적이어야하며 특정보기를 반영하는 관련 "축소 된"모듈을 생성하기 위해 마스터 모듈 사본 중 하나를 사용할 수 있어야합니다.

클라이언트는 View 아카이빙을 위해 정기적으로 스크립트를 사용하는 것을 목표로합니다 (알고 싶은 방식입니다).

설명

원래의 질문에서 다음과 같은 텍스트를 감안할 때 내가 필요하다고 생각하는 것에 대한 설명이 필요합니다.

If at all possible, this script has to be generic and be able to work upon any of the master Module copies to produce the associated "reduced" Module reflecting a particular View.

따라서 DXL 스크립트 외부에 마스터 모듈에 대한 열 개의 뷰가 있다고 가정하면 마스터 모듈을 열 번 복사하여 각 사본의 이름을 바꾸어 각 열 개의 뷰를 반영합니다. 당신이 다른 것을 알지 않는 한, 그 10 개의 사본 각각은 마스터 모듈에서와 동일한"절대 번호"를 반영하므로 아무 문제가 없습니까?

그러므로 복사 된 모듈 중 첫 번째부터 시작하여 각각 최종적으로 표시 할보기를 반영하도록 이름이 지정됩니다.보기는 사용 가능한 10 개의보기에서 설정되며 제목과 일치합니다.

그런 다음 첫 번째 복사 모듈에 대해 단일 일반 DXL 스크립트가 실행됩니다. 즉, 해당 뷰에 실제로 필요하지 않은 모든 항목 (예 : 속성, 열)을 삭제하는 것이 목표입니다. 스크립트에 대해 일종의 제거 명령이 필요합니까? 위에서 삭제 한 항목이 있습니까?

그런 다음 단일 일반 DXL 스크립트는 해당 사본 모듈에서 모든보기를 삭제합니다. 스크립트를 실행할 때 생성되는 로그도 캡처해야하지만 가능하면 스크립트 내에서 수행해야하는지 또는 스크립트 외부에서 별도의 수동 작업으로 수행해야하는지 잘 모르겠습니다.

그런 다음 동일한 일반 스크립트를 사용하여 나머지 9 개의 복사 된 모듈에 대해 위에서 언급 한 (들여진) 프로세스를 반복합니다. 그 중 하나는 10 개의 복사 모듈로, 각각 10 개의 가능한 뷰 중 하나를 반영하며, 각 뷰에는 해당 뷰에 필요한 속성, 열 등 만 포함되어 있습니다.


  • 답변 # 1

    이 접근법으로 모듈의 미러를 만드는 것은 그렇게 쉬운 IMO가 아닙니다. 예를 들어 "절대 숫자"에 대해. 원래 모듈에 숫자 15 (수준 1), 2000 (수준 2), 1 (수준 1)이 포함되어 있으면 2000 개의 개체를 만들고 1997 개를 제거하고 올바른 위치로 이동해야합니다. https://www.ibm.com/developerworks/community/forums/html/topic?id=43862118-113d-4eac-b3f1-21d3b73959d1에 "중복"도구가 있지만 여기에 명시된대로 이 스크립트는 모든 상황에서 올바르게 작동하지 않는다고합니다.

    따라서 "string clipCopy (Item i);string clipPaste (Folder folderRef)"접근 방식을 사용하려고합니다. 더 빠르고 오류가 적어야합니다. 그러나 모든 아웃 링크도이 방법으로 복사됩니다. 복사 후 링크를 ​​삭제해야합니다. 그렇지 않으면 링크 대상 모듈에 많은 인 링크가 포함됩니다.

    모든 뷰가 일부 또는 다른 속성에 의존하는 DXL 열을 가질 수 있고 또 다른 sth에 의존 할 수있는 DXL 속성을 포함 할 수 있기 때문에 문제를 여전히 해결하기 쉽지 않습니다. DXL 코드를 "즉석에서"분석하고 삭제할 수있는 열을 찾는 방법이 있는지 의심합니다.

    아마도 완전히 다른 접근법이 가능할 수 있습니다. 각 뷰를 열고 Excel로 내보내기를 생성하면 동적 종속성을 제거 할 수 있습니다. 그런 다음 엑셀 시트를 새 DOORS 모듈로 다시 가져 오십시오. 여전히 "절대 숫자"문제가 발생하지만 의사 속성 "원래 절대 숫자"가 있고 "새" "절대 숫자" '는 무시할 수 있습니다.'

    DXL 초보자에게는 큰 과제입니다 ....

    업데이트 : 두 번째 생각으로, 이러한 접근법을 결합하고 싶을 수도 있습니다

    절대 숫자의 대체 속성을 사용하겠다고 고용주와 합의하십시오

    Russel에서 제안한 것과 같은 루프를 사용하십시오. 객체를 생성 할 때 객체는 이전 또는 형제보다 "아래"또는 "후"생성되어야 할 수 있습니다.

    DXL 속성의 경우 DXL 코드를 복사하지 않고 객체의 실제 현재 값

    DXL 열의 경우 의사 속성 _을 만들고 원래 값 대신 이러한 의사 속성을 사용하는 새보기를 만듭니다

  • 답변 # 2

    전체 모듈을 복사 한 다음 해당보기에없는 것을 모두 삭제하면 각 특정보기에서 필요한 것을 복사하는 것보다 더 나빠 보입니다.

    프로그램의 개요로 다음을 취하겠습니다 :

    for view in main module do {
        for column in view do {
            Find attribute for each column and store (possibly in a skip list?)
            Store name of column
        }
        create new module
        create needed types / attributes in new module
        create new view in new module
        for object in main module {
            create object in new module
            for attribute in main module {
                check if attribute is in new module {
                    copy info from old object to new
                }
            }   
        }
    }
    
    

    X in y 루프에 대한 이들 각각은 DXL 참조 매뉴얼에 일부 또는 다른 곳에 있어야합니다.

    도움이 더 필요하면 알려주십시오!

  • 이전 다중 인증 한 페이지 로그인 laravel 사용
  • 다음 html - 호버링시 div 아래의 작은 파란색 "밑줄" - 이것은 어디에서 오는가?