2013-06-25 2 views
1

기본적으로 CustGroup 테이블 다음에 모델링하는 사용자 지정 테이블이 있습니다.사용자 지정 테이블의 기본 키 필드를 확인할 수 없습니다.

테이블에 두 개의 필드가 있습니다. 하나는 SysGroup이고 다른 하나는 Name 유형입니다. AllowDuplicates = NoSysGroup 필드를 추가했습니다.

테이블에 나는 필드와 동일한 PrimaryIndex을 설정합니다.

axapd.aoi 파일을 삭제하고 AOS를 재시작했습니다. 교차 참조 업데이트 및 SysFlushAOD::main(null);도 실행했습니다.

다음 코드를 실행하면 첫 번째 줄은 0을 반환하고 두 번째 줄은 기본 키를 찾을 수 있음을 의미합니다.

info(strfmt("MyCustGroup: %1", new SysDictTable(40390).primaryKeyField())); // Returns 0 
info(strfmt("CustGroup: %1", new SysDictTable(57).primaryKeyField())); // Returns 1 

내가 뭘 잘못하고 있는지 아는 사람이 있습니까?

+0

색인은 AOT에서 어떤 모양입니까? 아이콘이 기본 아이콘임을 나타내는 '1'이 조금 있습니까? – AnthonyBlake

+0

예 1이 약간 있습니다. –

+1

40390 대신 여기에 빨대를 넣으십시오. SysDictTable (tablenum (MyCustGroup)). primaryKeyField())); AOS 서비스를 통해 테이블을 복사하는 경우 테이블간에 다른 TableID가있을 수 있습니다. –

답변

0

기본 키는 SysGroup까지 확장 된 자체 확장 데이터 형식 (EDT)을 확장해야합니다. EDT의 관계 노드에는 테이블 및 키 필드와 정상적인 관계가 있습니다. 그런 다음 EDT에서 확장하려면 키 필드를 변경하십시오.

표의 TableGroup 속성을 Group으로 설정하십시오. 그런 다음 테이블이 Best Practice 검사를 완료했는지 확인하십시오.

그래도 문제가 해결되지 않으면 테이블을 내보내고 삭제하고 가져 오기하십시오.

+0

AH! EDT에 정상적인 관계를 추가하는 것을 잊어 버렸습니다. –