서비스 구성 둘러보기



홈 화면 구성

홈 화면 구성

사용자로 로그인하면 홈(Home) 화면이 표시 됩니다.

홈 화면은 화면 상단에 아래와 같은 여러 메뉴가 표시 됩니다.

  • 홈 메뉴 : 홈 화면 바로가기 입니다.
  • 메인 메뉴 : 필터와 필터별 모듈 메뉴를 표시 합니다.
    • 필터 : 모듈을 그룹핑한 것으로 "관리 > 메뉴 구성"에서 설정 합니다.
    • 모듈 : 필터에 속한 모듈을 표시 합니다.
  • 통합 검색 : 통합 검색 화면을 표시 합니다.
  • 알림 : 알림이 있는 경우, 알림 표시 합니다.
  • 개인 메뉴 : 개인 설정(프로파일, 직원)과 관리 메뉴(관리) 등을 표시 합니다.
    • 프로파일 : 로그인한 사용자의 개인정보를 수정하는 화면을 표시 합니다.
    • 직원 : 직원 목록을 표시 합니다.
    • 관리 : 관리자로 로그인한 경우에만 표시되며, 선택시 관리자 화면이 표시 됩니다.
    • 지원 포럼 : https://suitecrm.com/forum/index
    • About : 서비스(SuiteCRM)에 대한 기본 정보 제공
    • 로그아웃 : 로그아웃

최근 사용 : 최근에 사용한 레코드를 표시 합니다.

즐겨찾기 : 레코드 중에 즐겨찾기(별표)를 선택한 레코드를 표시 합니다.

대시보드 : 대시렛을 추가할 수 있는 대시보드를 표시 합니다.


모듈 화면 구성

모듈 화면 구성

메인 메뉴에서 특정 모듈을 선택하면 모듈 화면이 표시 됩니다.

모듈 화면은 아래와 같이 여러 메뉴가 표시 됩니다.

  • 홈 메뉴 : 홈 화면 바로가기 입니다.
  • "선택한 모듈명" : 메인 메뉴에서 선택한 모듈의 이름을 표시 합니다.
  • 메인 메뉴 : 필터와 필터별 모듈 메뉴를 표시 합니다.
    • 필터 : 모듈을 그룹핑한 것으로 "관리 > 메뉴 구성"에서 설정 합니다.
    • 모듈 : 필터에 속한 모듈을 표시 합니다.
  • 통합 검색 : 통합 검색 화면을 표시 합니다.
  • 알림 : 알림이 있는 경우, 알림을 표시 합니다.
  • 개인 메뉴 : 개인 설정(프로파일, 직원)과 관리 메뉴(관리) 등을 표시 합니다.

하위 메뉴 : 모듈의 하위 메뉴를 표시 합니다.

최근 사용 : 최근에 사용한 레코드를 표시 합니다.

작업 영역 : 모듈의 하위 메뉴 또는 선택한 작업에 따른 작업 영역 입니다.


모듈별 공통 메뉴와 작업

분류업무상세 설명
하위 메뉴
(모듈 메뉴)
~ 생성모듈에 레코드를 생성 합니다.
vCard로 ~ 생성vCard로 모듈을 생성 합니다.
~ 목록모듈에 등록된 레코드의 목록을 보여 줍니다.
~ 가져오기csv 파일로 모듈 레코드를 대량으로 등록 합니다.
대규모 작업다량 업데이트선택한 모든 레코드의 특정 필드를 한번에 수정 합니다.
병합선택한 레코드를 병합 합니다.
PDF로 저장- 선택한 레코드를 PDF로 저장 합니다.
- 인쇄를 위해서 PDF Template을 선택 합니다.
내보내기레코드를 csv 파일로 내보냅니다.
삭제선택한 모든 레코드를 삭제 합니다.
보안 그룹: 대량 할당선택한 모든 레코드에 지정한 보안 그룹을 할당 합니다.
작업편집 / 복재 / 삭제레코드 편집/복재/삭제 합니다.
중복 찾기중복된 레코드를 찾고 병합 합니다.
PDF로 저장레코드를 PDF로 저장 합니다.
변경 로그 보기- 레코드에서 지정한 필드의 변경 로그를 조회 합니다.
- 표시 내용 : 필드, 이전 값, 새 값, 편집자, 변경일
내보내기레코드를 csv 파일로 내보냅니다.
하위 패널활동작업, 미팅, 전화통화 기록, 이메일 작성을 표시 합니다.
히스토리- 노트 또는 첨부 생성, 이메일 보관을 표시 합니다.
- 요약 보기, 필터 작업을 선택할 수 있습니다.
문서문서를 표시 합니다.
보안 그룹보안 그룹을 표시 합니다.
하위 패널의 작업생성빠른 레코드 생성 화면을 표시 합니다.
선택레코드를 검색하여 선택 합니다.
편집현재 레코드 편집 합니다.
삭제현재 레코드 삭제 합니다.

하위 메뉴 : 모듈을 선택한 경우, 좌측 메뉴에 표시되는 모듈별 메뉴 입니다.

대규모 작업 : 모듈 목록 화면에서 선택할 수 있는 작업 입니다.

작업 : 모듈 상세 조회 화면에서 선택할 수 있는 작업 입니다.

하위 패널 : 모듈 상세 조회 화면 하단에 표시되는 하위 패널 입니다.

하위 패널의 작업 : 하위 패널에서 선택할 수 있는 작업 입니다.


메인 메뉴

"관리 > 개발자 도구 > 메뉴 구성" 메뉴에서 메인 메뉴에 표시할 필터와 모듈을 구성 합니다.

메인 메뉴

필터, 모듈 형태로 메뉴를 구성 합니다.

설정 방법은 관리자 매뉴얼을 참고 합니다.


통합 검색

화면 상단에 있는 검색 아이콘을 선택하여 통합 검색을 한다.

Global Search

  • "가져오기" 메뉴를 사용하여 등록된 것은 고급 검색에서 표시되지 않습니다.
  • 검색 예약어
    • 고급 검색 : * 사용
    • 기본 검색 : % 사용 (*도 사용할 수 있도록 수정함)

통합 검색에서 검색을 실행하면 기본 검색 화면이 표시 됩니다.

  • 기본 검색
    • 모듈별 검색 결과를 각 모듈별로 표시 합니다.
    • "검색" 버튼 우측에 있는 "고급" 링크를 선택하여 검색할 모듈과 결과의 표시 순서를 설정 합니다.
  • 고급 검색
    • 검색어를 입력한 후 "검색" 버튼을 선택하면, 모듈별 검색 결과를 한번에 표시 합니다.

AOD 미활성화시

"기본 검색" 화면만 표시 한다. 기본 검색은 관리자가 설정에서 지정한 활성 모듈별로 검색 결과를 표시 한다.

AOD 활성화시

"고급 검색" 화면을 표시 한다. 고급 검색은 Zend Lucene search framework을 사용하여 통합 검색을 한다.

상단의 "고급 검색 사용" 링크를 선택하여 고급 검색 화면으로 전환 하거나 "기본 검색 사용" 링크를 선택하여 기본 검색 화면으로 전환 한다.


통합 검색(기본 검색) 설정

"관리 > 시스템 > 통합 검색" 메뉴에서 통합 검색에 사용할 모듈과 검색 순서를 설정 한다.

통합 검색

  • 활성 모듈 : 통합 검색에서 사용할 모듈

  • 비활성 모듈 : 통합 검색에서 사용하지 않을 모듈


고급 검색

Zend Lucene search framework를 사용하여 검색 한다. 검색시 "*"를 사용 한다.

고급 검색


기본 검색

지정한 활성 모듈에 대해서 모듈별로 검색 결과를 표시 한다. 검색시 "%" 문자를 사용 한다. (*도 사용할 수 있도록 수정함)

기본 검색


목록에서 필터 사용

  • 등록 : 목록에서 "필터 > 고급필터"에서 "저장할 검색 이름"을 지정하여 검색 필터를 저장 한다.
  • 수정 : 목록에서 "필터 > 고급필터"에서 "수정" 버튼을 선택하여 "내 필터"에 지정된 필터를 수정 한다.
  • 삭제 : 목록에서 "필터 > 고급필터"에서 "삭제" 버튼을 선택하여 "내 필터"에 지정된 필터를 삭제 한다.

목록에서 "내 필터"의 하위 메뉴에서 저장한 필터를 선택하여 검색 한다.

필터를 사용한 목록 보기에서 'x' 버튼을 선택하여, 적용된 필터를 해지 한다.


즐겨찾기

상세 조회 화면 상단에 있는 별표를 선택하여 "즐겨찾기" 항목을 추가하거나 삭제 한다.

즐겨찾기 항목은 "최근 사용" 항목 아래에 "즐겨찾기"에 표시 된다.

목록에서 "기본 필터"에 있는 "내 즐겨찾기"를 체크하여 사용할 수도 있다.


AOD (Advanced OpenDiscovery) 설정

AOD

"관리 > 고급 OpenAdmin > AOD 설정" 메뉴에서 "AOD 활성화"를 선택 한다.

  • 통합 검색에서 "고급 검색" 화면이 표시 된다.

  • 고급 검색에서 Zend Lucene search framework를 사용 한다.

  • 고급 검색 결과 표시시 검색 점수(Search Score)도 표시 한다.


AOD 인덱스 최적화

"Optimize AOD Index" 스케쥴러를 사용하여 인덱스를 최적화 한다.

AOD_Index.php 파일의 optimise() 함수를 호출 한다.


LogicHook

데이터를 저장 또는 수정시 after_save LogicHook이 호출하여 Lucene Index를 갱신 한다. 삭제시에는 after_delete, 복구시에는 after_restore LogicHook을 호출 한다.


프로파일

프로파일 메뉴에서 사용자 정보를 관리할 수 있습니다.

  • 사용자 프로파일 탭 : 사용자 기본 정보를 지정 또는 변경 관리 합니다.
  • 비밀번호 탭 : 비밀번호 수정 합니다.
  • 테마 탭 : 사용자에게 표시되는 화면 테마를 설정 합니다.
  • 고급 탭 : 화면 출력 및 언어, 모듈, 통화 등을 설정 합니다.
  • 외부 계정 탭 : Facebook, Twiter 등에서 사용할 외부 계정을 관리 합니다.

"비밀번호" 탭을 선택한 후 비밀번호를 변경할 수 있습니다.

프로파일

  • 현재 비밀번호 : 지금 등록된 비밀번호

  • 새 비밀번호 : 변경할 비밀번호

  • 비밀번호 확인 : 변경할 비밀번호

  • 저장

  • 취소

  • 사용자 설정 초기화

  • 홈페이지 재설정 : 홈 화면의 대시보드를 초기화 합니다.


직원

  • 직원 목록과 직원 상세 정보를 조회 합니다.
    • "직원" 메뉴, "프로파일" 메뉴, "관리 > 사용자 > 사용자 관리" 메뉴에서 직원 정보를 수정할 수 있습니다.
    • 직원은 서비스에 접근할 수 있는 사용자 이면서 참여와 협업의 대상으로 사용 됩니다.

직원

직원(Employee)의 참여와 협업 활용 방법

  • 활동의 참석자로 추가
  • 메일 수신, 참조, 숨은 참조로 추가
  • 모듈의 담당자 지정

사용자는 서비스에 로그인할 수 있습니다. 로그인을 하지 않는 직원도 관리할 수 있습니다.


하위 메뉴

모듈 메뉴 선택시 모듈별로 하위 메뉴를 표시 합니다.

하위메뉴


목록 화면

목록 화면

모듈의 목록 화면 아래와 같은 기능을 제공 합니다.

  • 레코드 선택 : 레코드 선택시 사용 합니다.
  • 대규모 작업 : 선택한 레코드에 적용할 수 있는 작업 입니다.
    • 최소 하나 이상의 레코드를 선택한 경우만 활성화 됩니다.
  • 검색 필터 : 레코드를 검색하기 위한 빠른 필터와 고급 필터를 제공 합니다.
  • 컬럼 선택 : 목록에 표시할 컬럼을 선택하고 표시 순서를 설정 합니다.
    • 목록에서 표시되는 컬럼의 위측에 있는 화살표를 선택하여 오름차순, 내림차순으로 정렬 합니다.
  • 보안 그룹: 대량 할당 : 선택한 레코드에 보안 그룹을 할당하거나 삭제 합니다.

PDF 템플릿 모듈에서 작성 가능한 Template 유형은 아래와 같습니다.

  • 가망고객, 거래처, 연락처
  • 견적서, 계약, 청구서

목록 화면 > 다량 업데이트

  • 선택한 레코드의 특정 필드를 다량으로 업데이트 합니다.

다량 업데이트

영업기회 목록에서 2개의 레코드를 선택한 후 대규모 작업으로 "다량 업데이트"를 선택한 경우의 화면 입니다.

목록 화면 하단에 다량 업데이트를 할 수 있는 영역이 표시 됩니다.

목록 화면 > 병합

  • 여러개의 레코드를 하나로 병합 합니다.

병합

맨 왼쪽열에 포시되는 레코드가 저장된 주 레코드 입니다.

  • 병합 저장 : 병합한 레코드를 저장 합니다.
  • 취소 : 병합을 취소 합니다.
  • 주 레코드로 설정 : 현재 열을 주 레코드로 설정 합니다.
  • 삭제 : 현재의 열을 병합 대상에서 제외 합니다.
  • "<<" : 이 값을 주 레코드에 반영 합니다.

선택한 여러 레코드를 병합하여 하나의 레코드를 생성 합니다. 최종 저장되는 레코드는 화면 맨좌측에 있는 레코드 입니다. 우측에 표시되는 레코드에서 값을 선택하여 주 레코드의 필드값을 수정하거나 직접 수정할 수 있습니다.

병합시 일반적인 작업 절차는 아래와 같습니다.

  • 선택한 레코드 중에서 가장 최신의 데이터를 가진 레코드를 주 레코드로 선택 합니다.
  • 우측에 표시한 레코드 중에서 최신 값을 가지고 있는 필드로 주 레코드를 갱신 합니다.
  • 필요한 경우, 주 레코드를 직접 수정 합니다.
  • "병합 저장" 버튼을 선택하여 레코드 병합을 실행 합니다.

목록 화면 > PDF로 저장

PDF로 저장

목록 화면에서 레코드를 선택한 후 "PDF로 저장" 작업을 선택 합니다.

모듈 유형에 해당하는 PDF 템플릿이 있으면 PDF 템플릿을 선택할 수 있는 창이 표시 됩니다.

선택한 PDF 템플릿으로 pdf가 생성되어 저장 됩니다.

목록 화면 > 내보내기

내보내기

csv 파일 형식

  • "필드명1","필드명2" : 헤더행으로 필드명 저장
  • "필드값1","필드값2" : 행을 바꾸어 여러 레코드 저장

다운로드한 CSV 파일을 사용하여 "가져오기"를 할 경우에 헤더행에서 가져오기에 사용할 필드만 남겨 두고 작성하면 됩니다. 단, 이 경우에 레코드가 저장되는 영역에서도 헤더에 해당하는 필드만 남겨 두어야 합니다.

"프로파일" 메뉴의 "고급" 탭에서 가져오기/내보내기 설정

설정


상세 조회 화면

"관리 > 개발자 도구 > 모듈과 하위 패널 표시"

상세 조회 화면

관리자 화면과 프로파일에서 사용할 모듈과 하위패널을 지정할 수 있습니다.

  • "관리 > 개발자 도구 > 모듈과 하위 패널 표시" 메뉴에서 서비스에서 사용할 모듈과 표시할 하위 패널을 지정 합니다.
  • "프로파일 > 고급" 에서 사용자별로 사용할 모듈을 지정 합니다. 관리자 화면에서 설정한 모듈과 하위 패널 내에서 설정이 가능 합니다.

상세 조회 화면 > 중복 찾기

중복찾기

여러 영업대표가 영업활동을 진행하다보면 거래처와 연락처의 중복이 자주 발생 합니다. 이런 경우 담당자를 두어 특정 주기(한달)에 한번씩 거래처와 연락처를 정리 합니다. 정리는 일반적으로 아래 순서를 진행 됩니다.

  • "중복 찾기" 기능을 사용하여 중복되는 레코드를 찾습니다.
  • "병합" 기능을 사용하여 중복된 레코드를 병합 합니다.

아래와 같은 교육을 통해 중복되는 데이터의 입력을 방지할 수 있습니다.

  • 거래처와 연락처 등록전에 미리 검색을 한 후, 존재하지 않을 경우에 등록 합니다.
  • 거래처 명 등을 입력할 때, 정해진 규칙대로 입력 합니다.
  • 예) 명함에 표시되는 거래처명으로 등록 합니다.

상세 조회 화면 > 변경 로그 보기

  • 모듈에서 감사 필드로 등록된 필드의 변경 로그를 표시 합니다.

변경 로그 보기

"감사" 필드는 레코드에서 중요한 필드로 변경 history를 남기고 싶은 필드를 감사 필드로 선택 합니다.


홈 화면

홈 화면 구성

  • 홈 화면은 상단의 탭과 하단의 대시렛으로 구성 됩니다.

홈 화면

탭 영역

  • 대시렛 추가 : 현재의 탭에 대시렛을 추가 합니다.
  • 탭 추가 : 새로운 탭을 추가 합니다.
  • 탭 편집 : 탭을 선택하여 삭제 합니다.

대시렛 영역

  • 대시렛 옵션 편집
  • 새로 고침
  • 대시렛 삭제

대시렛은 드래그앤드랍으로 위치를 조정 합니다.

"프로파일" 메뉴에서 "홈페이지 재설정" 버튼을 선택하면 홈 화면이 초기화 됩니다.

"관리 > 시스템 > 시스템 설정" 메뉴의 설정

  • 홈페이지 대시렛의 최대 수 : 15

홈 화면 구성

홈 화면 구성

탭 추가

  • 탭 이름과 컬럼수를 입력한 후 탭을 추가 합니다.

탭 편집

  • "-" 버튼을 선택하여 탭을 삭제 합니다.

홈 화면 구성

대시렛 옵션

  • 일반
    • 대시렛 이름과 일반 설정을 합니다.
    • 제목 : 대시렛 이름
    • 행보기 : 표시할 행의 수
    • 자동-다시 가져오기 : 갱신 주기 설정
  • 필터
    • 검색 조건을 지정 합니다.
    • 내 항목만 : 선택시 자신이 소유한 레코드만 표시 합니다.

대시렛 종류에 따라 옵션이 다릅니다.

modules/${Module}/Dashlets/${Dashlet}/

  • ${Dashlet}.php : Dashlet Class
  • ${Dashlet}.meta.php : Dashlet Metadata
  • ${Dashlet}.data.php
    • $dashletData['MyOpportunitiesDashlet']['searchFields']
    • $dashletData['MyOpportunitiesDashlet']['columns']

대시렛 종류

Last modified: 2019.01.01 ~ 2020.07.07, version 0.003


이메일 템플릿


"이메일 > 이메일 템플릿 목록" 메뉴를 선택 합니다.

서비스에서 사용하는 이메일 템플릿을 관리 합니다.

유형영문 이름이름상세 설명
systemSystem-generated password email시스템 생성 비밀번호"관리 > 비밀번호 관리" 메뉴
시스템에서 임의로 생성한 비밀번호를 발송 합니다.
Forgot Password email비밀번호 재설정 링크"관리 > 비밀번호 관리" 메뉴
사용자가 비밀번호를 잊어 버렸을 경우, 다시 비밀번호를 설정하기 위한 링크를 발송 합니다.
로그인 화면에서 "비밀번호를 잊어 버리셨나요?" 링크를 선택하여 비밀번호 재설정 링크를 발송할 수 있습니다.
Event Invite Template이벤트 초청 이메일Event 초청 이메일을 발송 합니다.
Case Creation고객지원 생성고객지원(Case)가 생성 되었음을 알립니다.
User Case Update사용자 - 고객지원 수정사용자에게 고객지원(Case)가 수정 되었음을 알립니다.
Contact Case Update연락처 - 고객지원 수정고객에게 고객지원(Case)가 수정 되었음을 알립니다.
Case Closure고객지원 마감고객지원(Case)가 종료 되었음을 알립니다.
Joomla Account Creation포털 계정 생성Joomla 포털에 계정이 생성 되었음을 알림

서비스에서 제공하는 이메일 템플릿을 수정하거나 새로운 이메일 템플릿을 등록하여 사용할 수 있습니다.

이메일 템플릿 : System-generated password email (시스템 생성 비밀번호)

  • 제목 : 고객 관리 : 임시로 생성한 비밀번호

임시 비밀번호

이메일 템플릿 : Forgot Password email (비밀번호 재설정 링크)

  • 제목 : 고객 관리 : 비밀번호 재설정 링크

비밀번호 재설정

"$변수명"을 사용하여 관련 레코드의 값을 이메일에 추가할 수 있습니다.

이메일 템플릿 생성/수정시 "변수 추가"에서 모듈과 필드를 선택하면 해당 변수명이 표시 됩니다.

"$변수명"을 사용하여 동적인 이메일 템플릿을 생성 하세요.

Last modified: 2020.07.07 ~ 2020.07.07, version 0.001


Vardefs


Bean에 대한 정보를 저장 한다.

  • 테이블
  • 필드 (fields)
  • 관계 (relationships)
  • 색인 (indices)

파일 구조

custom/Extention/modules/${Modules}/Ext/Vardefs/${field}_~_c.php
# custom/modules/${Modules}/Ext/Vardefs/vardefs.ext.php (자동 생성됨)

modules/${Module}/vardefs.php

Module 속성


$dictionary[${Module}]
이름타입상세 설명
tableString데이터베이스 테이블 이름
commentString테이블 설명
fieldsArray아래 참조
relationshipsArray아래 참조
indicesArray아래 참조
auditedBooleantrue. 감사 하용
duplicate_mergeBooleantrue. 병합 허용
optimistic_lockingBoolean
optimistic_lockBoolean
unified_searchBooleantrue. 통합 검색 허용
unified_search_default_enabledBoolean
full_text_searchBoolean
custom_fieldsBooleantrue. 사용자 정의 필드 사용
acl_fieldsBoolean
inline_editBoolean
engineStringMyISAM
mysqlengineStringMyISAM

Fields


필드의 type

modules/DynamicFields/ 폴더 참조

  • FieldCases.php : type에 해당하는 widget 할당
    • custom/modules/DynamicFields/templates/Fields/Template${Type}.php
    • modules/DynamicFields/templates/Fields/Template${Type}.php
      • CustomTemplate${Type} class
      • Template${Type} class
  • FieldViewer.php : type에 해당하는 tpl 할당
    • custom/modules/DynamicFields/templates/Fields/Forms/${type}.php
    • modules/DynamicFields/templates/Fields/Forms/${type}.php
      • get_body() 함수 호출
    • modules/DynamicFields/templates/Fields/Forms/varchar.tpl
CategoryTypeDescription
문자열name레코드 이름
user_name사용자 이름
varchar문자열
encrypt암호화된 문자열
text텍스트
longtext텍스트
phone전화번호
email이메일
urlURL
longhtmlHTML
enum선택목록
multienum다중 선택목록
dynamicenum동적 선택목록
숫자tinyint작은 정수
int정수
short작은 정수
long큰 정수
decimal실수
float실수
통화currency통화
currency_id통화 아이디
논리bool논리값
날자date날자
time시간
datetime날자 시간
datetimecombo날자 시간 콤보
파일file파일
image이미지
Table 연동id다른 모듈의 ID를 저장
relateid 필드를 참조하여 값을 가져 온다.
linkRelationship 정보로 데이터 추출
assigned_user_name담당자
modified_user_name수정자
parent
parent_type
기타function함수 호출
CronSchedule
readonly읽기전용
none사용하지 않는 필드

SugarFields

  • Field : base, int, float, datatime, link
custom/include/SugarFields/Fields/${Field}/SugarField${Field}.php
include/SugarFields/Fields/${Field}/SugarField${Field}.php
include/SugarFields/Fields/Base/SugarFieldBase.php
    CustomSugarField${Field} class
    SugarField${Field} class
    
include/SugarFields/Parsers/Rules/${Modules}ParseRule.php
include/SugarFields/Parsers/Rules/ParseRules.php
    ${Modules}Parse Rule class

필드의 dbType

dbTypeDescription
id
varchar
int
double
datetime
text

공통 속성

이름타입상세 설명
nameString필드 이름
vnameString시스템 레이블 (예, LBL_LEAD_SOURCE)
typeString필드의 종류
lenIntegerDB 필드 크기
sizeInteger필드 크기
precisionString소수점 아래 자리수
requiredBooleantrue. 필수 필드
isnullBooleantrue. null 허용
auditedBooleantrue. 감사
1. Audit
inline_editBoolean
reportableBooleantrue. 보고서에서 사용
isMultiSelect
quicksearchStringenabled
unified_searchBooleantrue. 통합 검색에서 검색 가능
enable_range_searchBooleantrue. 범위 검색에서 검색 가능
full_text_searchArrayReserved
studioStringvisible. 스튜디오에 표시
studioArrayvisible
editview, detailview, listview, searchview
quickcreate, basic_search, advanced_search
no_duplicate, formula
massupdateBoolean1. 대량 업데이트 허용
import
importableStringrequired
exportable
duplicate_mergeBooleandisabled
duplicate_merge_dom_valueString0
merge_filterStringdisabled
defaultString디폴트 값 (NULL, ...)
no_defaultBooleantrue. 디폴트 없음
default_value
display_defaultString
commentString필드 설명
commentsString필드 설명
helpString도움말
moduleString모듈 이름
tableString테이블 이름
bean_nameStringBean 이름
dbTypeStringDB에 저장되는 field type
relationshipStringRationship 이름
relationship_fieldsArray
rel_fieldArray
join_primary
linkStirngreports_to_link
linkBoolean
link_typeStringone, many, relationship_info
join_link_name
linkModuleOverride
link_target
link_class
link_file
sideStringright. relationship에서 오른쪽에 위치
functionArrayinclude : PHP 파일 이름
name : 실행할 함수 이름
params : 전달하는 인수
returns : html. 결과를 html로 반환
onListView : true. 목록에 표시
function_requireStringPHP 파일 이름
function_classStringClass 이름
function_nameString함수 이름
function_paramsArray함수에 전달하는 인수
function_params_sourceStringparent. 디폴트값, this
sort_on
sort_on2
fields
db_concat_fields
inline_editBoolean1. 인라인 편집 지원
validationarraytype, compareto, blank, min, max
rname
id_name
sourceStringnon-db
options
dependency
rowsString행 수
colsString열 수
ext2
disable_num_format
min최소값
max최대값
save저장 여부
dbtype
editable
group관련 필드를 하나의 그룹으로 묶을 때 사용
type_name
parent_type
id
db_field
rel_fields
db_concat_fields
join_name
auto_increment
validation
do_report
editor
parentenum
hideacl
allowEapm
popupHelp
noChange
fileId
fields
docType
docUrl
docId
readonly
write_only
length
sensitive
width넓이
height높이
gen
additionalFields
hide_history_contacts_emails
ignore_role
operatorStringsubquery
query_typeStringdefault
subqueryStringSQL문

id type 필드

이름타입상세 설명
nameString필드 이름
vnameString시스템 레이블 (예, LBL_LEAD_SOURCE)
typeString필드의 종류 : id
id_nameStringname과 동일
tableString테이블 이름
rnameStringtable의 참조할 필드 이름
moduleString모듈 이름
dbTypeStringDB 필드 타입

name type 필드

이름타입상세 설명
linkBooleantrue.
dbTypeString

text type 필드

이름타입상세 설명
rowsString행 수
colsString열 수

enum type 필드

이름타입상세 설명
optionsString선택목록 이름
dependencyBooleantrue. 의존 관계 있음

int type 필드

이름타입상세 설명
disable_num_formatString1. 포맷 사용 않음
maxBooleanfalse. 최대값 없음
minBoolenafalse. 최소값 없음

link type 필드

이름타입상세 설명
relationshipString테이블 이름
sourceStringnon-db. DB에 저장하지 않음
이름타입상세 설명
relationshipString테이블 이름
sourceStringnon-db. DB에 저장하지 않음
moduleString모듈 이름
bean_nameStringBean 이름
id_nameString필드 이름
sideStringright
saveBooleantrue. 저장 허용
tableString테이블 이름
linkString

relate type 필드

이름타입상세 설명
linkString
rnameStringReserved
id_nameStringReserved
Table 필드 이름 (name과 동일)
tableStringReserved
필드_테이블
moduleString모듈 이름
dbTypeStringDB 필드 타입
ext2String

function type 필드

이름타입상세 설명
functionArrayinclude : PHP 파일 이름
name : 실행할 함수 이름
returns : html. 결과를 html로 반환

이름타입상세 설명
function_requireStringPHP 파일 이름
function_classStringClass 이름
function_nameString함수 이름
function_paramsArray함수에 전달하는 인수
sourceStringfunction

relationships

이름타입상세 설명
relationship_typeStringone-to-one
one-to-many
many-to-many
lhs_moduleString왼쪽 모듈
lhs_tableString왼쪽 테이블
lhs_keyString왼쪽 테이블 키
one-to-many인 경우 id 값을 가지
rhs_moduleString오른쪽 모듈
rhs_tableString오른쪽 테이블
rhs_keyString오른쪽 테이블 키
relationship_role_columnString
relationship_role_column_valueString

자동으로 설정되는 레이블 변경

  • custom/Extension/modules/${Modules}/Ext/Language/ko_KR.*.php

one-to-one

  • Left module : ${begin}
  • Right module : ${end}
  • 순번 : ${n} (1부터 시작)

one-to-many

${varname} = ${begins}_${ends}_${n}

#--- 데이터베이스 관련 항목
# 테이블 : ${varname}_c
#     id
#     date_modified
#     deleted
#     ${varname}${begin}_ida            : ${begin} 모듈의 ID
#     ${varname}${end}_idb              : ${end} 모듈의 ID

#--- Relationshop 메타 파일
# custom/Extension/modules/relationships/relationships/${varname}MetaData.php

#--- ${begin} 모듈에 생성되는 항목
# custom/Extension/modules/relationships/vardefs/${varname}_${Begins}.php
# custom/modules/${Begins}/Ext/Vardefs/vardefs.ext.php (자동 생성)

# 변수 : ${varname}                      #--- Relationship의 데이터 아이디
$dictionary[${Begins}]["fields"][${varname}] = array (
  'name' => ${varname},
  'vname' => 'LBL_${VARNAME}_FROM_${END}_TITLE',
  'source' => 'non-db',
  
  'type' => 'link',                     #--- Relationship을 사용한 link
  'relationship' => ${varname},         #--- Relationship 이름
  'side' => 'right',
  'module' => ${Begins},
  'bean_name' => ${Begins},
);

#--- ${end} 모듈에 생성되는 항목
# custom/Extension/modules/relationships/vardefs/${varname}_${Ends}.php
# custom/modules/${Ends}/Ext/Vardefs/vardefs.ext.php (자동 생성)

# 변수 : ${varname}${begin}_ida          #--- Relationship의 데이터 아이디
# Relationship 테이블에서 right 항목이 현재 레코드의 ID와 같은 항목을 찾은 후 left 항목을 반환
$dictionary[${ends}]["fields"]["${varname}${begin}_ida"] = array (
  'name' => '${varname}${begin}_ida',
  'vname' => 'LBL_${VARNAME}_FROM_${END}_TITLE',
  'source' => 'non-db',
  'reportable' => false,

  'type' => 'link',                     #--- Relationship을 사용한 link
  'relationship' => '${varname}',       #--- Relationship 이름
  'side' => 'right',                    #--- right와 현재 레코드의 ID가 같아야 함
);

# 변수 : ${varname}                      : ${begin} 데이터의 ID
$dictionary[${ends}]["fields"][${varname}] = array (
  'name' => ${varname},
  'vname' => 'LBL_${VARNAME}_FROM_${BEGIN}_TITLE',
  'source' => 'non-db',

  'type' => 'link',                     #--- Relationship을 사용한 link
  'relationship' => ${varname},         #--- Relationship 이름
  'id_name' => '${varname}${begin}_ida',#--- 현재 레코드에서 참조할 변수명
  'module' => ${Begins},
  'bean_name' => ${Begins},
);

# 변수 : ${varname}_name                 #--- ${begin} 데이터의 이름
$dictionary[${ends}]["fields"]["${varname}_name"] = array (
  'name' => '${varname}_name',
  'vname' => 'LBL_${VARNAME}_FROM_${BEGIN}_TITLE',
  'source' => 'non-db',
  'save' => true,

  'type' => 'relate',                   #--- 관계 필드
  'link' => '${varname}',               #--- Relationship 이름
  'id_name' => '${varname}${begin}_ida',#--- 현재 레코드에서 참조할 변수명
  'table' => ${begins},
  'module' => ${Begins},
  'rname' => 'name',                    #--- 모듈에서 가져올 필드의 이름
);

many-to-many


indices

이름타입상세 설명
nameString인덱스 이름 (idx_~)
typeStringprimary. Primary 인덱스
index. 인덱스
unique.
fieldsArrayarray(필드1, 필드2)

Data Loader



비밀번호 저장 구조

//--- 비밀번호 해시 : user_hash
//---     strtolower(md5($password)) : $로 시작않는 32자
//---     hashlib.md5(password.encode('utf-8')).hexdigest().lower() : $로 시작
//--- repo_python/SuiteCRM/Zztemp.py의 getPasswordHash() 함수 참조
SELECT id, user_name, user_hash
  FROM users;

이메일 저장 구조

//--- Users      : email_addr_bean_rel, email_address / outbound_email
//--- Accounts   : email_addr_bean_rel, email_address
//--- Contacts   : email_addr_bean_rel, email_address

//--- Outbound Email
//---     mail_smtppass: Blowfish encode 적용 (Utils.blowfish_encode() 함수 참조)
SELECT id, user_id, name, mail_smtpserver, mail_smtpport, mail_smtpuser, mail_smtppass
  FROM outbound_email;

//--- Bean(bean_module, bean_id)에 해당하는 이메일이 저장된 ID
SELECT bean_module, bean_id, email_address_id
  FROM email_addr_bean_rel
 ORDER BY bean_module ASC;

//--- 이메일 저장
SELECT id, email_address, email_address_caps
  FROM email_addresses
 ORDER by email_address;

계약 모듈 구조

계약 테이블 구조

  • ~_cstm 테이블은 사용자 정의 필드가 저장되는 테이블 이다.

계약 테이블 구조

계약 모듈 관련 가져오기 마법사 항목

  • 계약 : 계약의 일반 사항을 관리 한다.
  • 제품 항목 그룹 : 계약의 제품 항목에서 그룹을 지정 한다.
  • 제품 항목 : 계약의 제품 항목에서 각 제품 항목을 지정 한다.

계약 모듈 관련 스튜디오 항목

  • 계약
  • 제품 항목
    • 특수한 목적으로 사용되는 모듈로 견적서, 계약, 청구서 모듈과 연동하여 사용 한다.
    • 별도의 화면이 존재하지 않고 견적서, 계약, 청구서 모듈의 "제품 항목"으로 사용 된다.
    • 주의 : 여러 모듈에서 같이 사용되므로 수정시 견적서, 계약, 청구서 모듈에 모두 반영 된다.

Search



통합 검색

화면 상단에 있는 검색 아이콘을 선택하여 통합 검색을 한다.

Global Search

AOD 미활성화시

"기본 검색" 화면만 표시 한다. 기본 검색은 관리자가 설정에서 지정한 활성 모듈별로 검색 결과를 표시 한다.

AOD 활성화시

"고급 검색" 화면을 표시 한다. 고급 검색은 Zend Lucene search framework을 사용하여 통합 검색을 한다.

상단의 "고급 검색 사용" 링크를 선택하여 고급 검색 화면으로 전환 하거나 "기본 검색 사용" 링크를 선택하여 기본 검색 화면으로 전환 한다.


통합 검색 설정

"관리 > 시스템 > 통합 검색" 메뉴에서 통합 검색에 사용할 모듈과 검색 순서를 설정 한다.

통합 검색

  • 활성 모듈 : 통합 검색에서 사용할 모듈
  • 비활성 모듈 : 통합 검색에서 사용하지 않을 모듈

고급 검색

Zend Lucene search framework를 사용하여 검색 한다. 검색시 "*"를 사용 한다.

고급 검색

  • URL : index.php?action=UnifiedSearch&module=Home&query_string=~
    • module : Home
    • action : UnifiedSearch
    • query_string : 검색하고자 하는 문자열
    • search_fallback : 값이 있으면 LuceneSearch를 사용하지 않는다.
    • showGSDiv : 선언이 되면 LuceneSearch를 사용하지 않는다.

modules/Home/UnifiedSearch.php

  • start : 표시할 레코드 순번 (0, 1, 2, ...). Default는 0 이다.

  • amount : 한 페이지에 표시할 레코드 갯수. Default는 20개 이다.

  • total : 전체 레코드 갯수

  • doSearch() : 검색

  • AOD_Index module

    • modules/AOD_Index/Index/Index/ : Lucene Index를 저장하는 폴더
    • cache/modules/AOD_Index/QueryCache/~ : 검색 결과를 serialize 하여 임시 저장
    • find() : 검색
      • modules/AOD_Index/Lib/Search/Lucene.php : Zend_Search_Lucene
    • index() : 인덱스 생성. after_save LogicHook을 사용 한다.
    • optimise() : 인덱스 최적화
  • AOD_IndexEvent module


기본 검색

지정한 활성 모듈에 대해서 모듈별로 검색 결과를 표시 한다. 검색시 "%" 문자를 사용 한다.

기본 검색

  • URL : index.php?action=UnifiedSearch&module=Home&search_fallback=1&query_string=~

modules/Home/UnifiedSearch.php

  • modules/Home/UnifiedSearchAdvanced.php의 search() 함수 호출
    • custom/modules/Home/UnifiedSearchAdvancedForm.tpl
    • modules/Home/UnifiedSearchAdvancedForm.tpl

목록에서 필터 사용

  • 등록 : 목록에서 "필터 > 고급필터"에서 "저장할 검색 이름"을 지정하여 검색 필터를 저장 한다.
  • 수정 : 목록에서 "필터 > 고급필터"에서 "수정" 버튼을 선택하여 "내 필터"에 지정된 필터를 수정 한다.
  • 삭제 : 목록에서 "필터 > 고급필터"에서 "삭제" 버튼을 선택하여 "내 필터"에 지정된 필터를 삭제 한다.

목록에서 "내 필터"의 하위 메뉴에서 저장한 필터를 선택하여 검색 한다.

필터를 사용한 목록 보기에서 'x' 버튼을 선택하여, 적용된 필터를 해지 한다.

saved_search table

  • search_module : 모듈 이름
  • contents : 저장된 필터
    • 검색 조건을 담은 객체를 문자열로 변환
    • Base64로 인코딩
  • assigned_user_id : 소유자 아이디

즐겨찾기

상세 조회 화면 상단에 있는 별표를 선택하여 "즐겨찾기" 항목을 추가하거나 삭제 한다.

즐겨찾기 항목은 "최근 사용" 항목 아래에 "즐겨찾기"에 표시 된다.

목록에서 "기본 필터"에 있는 "내 즐겨찾기"를 체크하여 사용할 수도 있다.

favorites table

  • parent_type : 모듈 이름
  • parent_id : 모듈의 레코드 아이디
  • assigned_user_id : 소유자 아이디

AOD (Advanced OpenDiscovery) 설정

AOD(Advanced OpenDiscovery)

"관리 > 고급 OpenAdmin > AOD 설정" 메뉴에서 "AOD 활성화"를 선택 한다.

  • 통합 검색에서 "고급 검색" 화면이 표시 된다.
  • 고급 검색에서 Zend Lucene search framework를 사용 한다.
  • 고급 검색 결과 표시시 검색 점수(Search Score)도 표시 한다.

AOD 인덱스 최적화

"Optimize AOD Index" 스케쥴러를 사용하여 인덱스를 최적화 한다.

AOD_Index.php 파일의 optimise() 함수를 호출 한다.


LogicHook

데이터를 저장 또는 수정시 after_save LogicHook이 호출하여 Lucene Index를 갱신 한다. 삭제시에는 after_delete, 복구시에는 after_restore LogicHook을 호출 한다.

#--- custom/modules/logic_hooks.php
$hook_array['after_save'] = Array();
$hook_array['after_save'][] = Array(1, 'AOD Index Changes', 'modules/AOD_Index/AOD_LogicHooks.php','AOD_LogicHooks', 'saveModuleChanges');
#--- AOD_Index.php 파일의 index() 함수를 호출 한다.
$hook_array['after_save'][] = Array(30, 'popup_select', 'modules/SecurityGroups/AssignGroups.php','AssignGroups', 'popup_select');

$hook_array['after_delete'] = Array();
$hook_array['after_delete'][] = Array(1, 'AOD Index changes', 'modules/AOD_Index/AOD_LogicHooks.php','AOD_LogicHooks', 'saveModuleDelete');

$hook_array['after_restore'] = Array();
$hook_array['after_restore'][] = Array(1, 'AOD Index changes', 'modules/AOD_Index/AOD_LogicHooks.php','AOD_LogicHooks', 'saveModuleRestore');

#--- custom/modules/unified_search_modules_display.php

모듈별 vardefs.php 파일 설정

  • unified_search : true. 통합 검색 대상 모듈
  • unified_search_default_enabled: true. 디폴트로 통합 검색 사용 설정이 되어 있는 모듈
  • full_text_search : true. 전문 검색 지원
  • 필드 정보
    • unified_search : 통합 검색 대상 필드
    • full_text_search

Person Package



차계부 (Car Book)

한글명영문명Type상세 설명
일자OccurrenceDateDate
분류CategoryDropDown주유비, 주차비, 톨비,
보험료, 공과금, 범칙금,
정기 검사, 수리, 기타
지출 항목ItemTextField
거래처AccountTextField
금액PriceCurrency
주행거리DistanceInteger단위: km
주유량AmountInteger단위: 리터
주유 단가UnitPriceInteger단위: 원
비고DescriptionTextField
  • Workflow : name = Category + "/" + Item

OBCon Package



Call Center Package



Multi-Instance Service Model

최종 수정일: 2024-04-28 17:10:01

이전글 :
다음글 :
상단 menu
arrow_back_ios
arrow_forward_ios