@qualisoft/ai-skills 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +234 -0
  3. package/bin/cli.mjs +331 -0
  4. package/package.json +53 -0
  5. package/skills/erd-visual/SKILL.md +294 -0
  6. package/skills/erd-visual/build.mjs +404 -0
  7. package/skills/erd-visual/engine/dbml.mjs +133 -0
  8. package/skills/erd-visual/engine/ingest.mjs +273 -0
  9. package/skills/erd-visual/engine/layout.mjs +165 -0
  10. package/skills/erd-visual/engine/overview.mjs +314 -0
  11. package/skills/erd-visual/engine/render.mjs +144 -0
  12. package/skills/erd-visual/engine/router.mjs +401 -0
  13. package/skills/erd-visual/engine/verify.mjs +138 -0
  14. package/skills/erd-visual/engine/wire.mjs +115 -0
  15. package/skills/erd-visual/fixtures/crm-large.dbml +1337 -0
  16. package/skills/erd-visual/fixtures/edge-cases.dbml +43 -0
  17. package/skills/erd-visual/fixtures/map-dynamics.json +32 -0
  18. package/skills/erd-visual/fixtures/shop-basic.dbml +78 -0
  19. package/skills/erd-visual/fixtures/src-json/api.json +38 -0
  20. package/skills/erd-visual/fixtures/src-prisma/schema.prisma +44 -0
  21. package/skills/erd-visual/fixtures/src-sql/shop.sql +62 -0
  22. package/skills/erd-visual/readers/csv.mjs +81 -0
  23. package/skills/erd-visual/readers/index.mjs +55 -0
  24. package/skills/erd-visual/readers/jsonschema.mjs +86 -0
  25. package/skills/erd-visual/readers/prisma.mjs +102 -0
  26. package/skills/erd-visual/readers/sql.mjs +205 -0
  27. package/skills/erd-visual/readers/xlsx.mjs +220 -0
  28. package/skills/erd-visual/readers/xml.mjs +130 -0
  29. package/skills/erd-visual/readers/zip.mjs +74 -0
  30. package/skills/erd-visual/viewer/index.html +539 -0
  31. package/skills/project-build/SKILL.md +171 -0
  32. package/skills/project-build/templates/build-rules.md +88 -0
  33. package/skills/project-build/templates/change-log.md +29 -0
  34. package/skills/project-build/templates/coverage.md +49 -0
  35. package/skills/project-build/templates/parity.html +375 -0
  36. package/skills/project-build/templates/theme.css +45 -0
  37. package/skills/project-design/MEDIUMS.md +104 -0
  38. package/skills/project-design/QUESTIONS.md +126 -0
  39. package/skills/project-design/SKILL.md +365 -0
  40. package/skills/project-design/templates/audit.html +689 -0
  41. package/skills/project-design/templates/change-log.md +53 -0
  42. package/skills/project-design/templates/design-rules.md +118 -0
  43. package/skills/project-design/templates/mockup-app.html +96 -0
  44. package/skills/project-design/templates/mockup-slides.html +82 -0
  45. package/skills/project-design/templates/mockup-web.html +45 -0
  46. package/skills/project-design/templates/styleguide.html +436 -0
  47. package/skills/project-design/templates/tokens.css +69 -0
  48. package/skills/project-design/templates/tone-options.html +138 -0
  49. package/skills/project-init/GUIDE.md +370 -0
  50. package/skills/project-init/RUNBOOK.md +192 -0
  51. package/skills/project-init/SKILL.md +382 -0
  52. package/skills/project-init/build.mjs +2898 -0
  53. package/skills/project-init/evals/RUBRIC.md +81 -0
  54. package/skills/project-init/evals/cases/conflicting.expect.json +17 -0
  55. package/skills/project-init/evals/cases/conflicting.md +9 -0
  56. package/skills/project-init/evals/cases/vague-idea.expect.json +11 -0
  57. package/skills/project-init/evals/cases/vague-idea.md +7 -0
  58. package/skills/project-init/evals/cases/well-formed.expect.json +18 -0
  59. package/skills/project-init/evals/cases/well-formed.md +28 -0
  60. package/skills/project-init/markdown.mjs +0 -0
  61. package/skills/project-init/modules/a11y.json +46 -0
  62. package/skills/project-init/modules/ai.json +77 -0
  63. package/skills/project-init/modules/audience.json +48 -0
  64. package/skills/project-init/modules/backend.json +129 -0
  65. package/skills/project-init/modules/brand.json +78 -0
  66. package/skills/project-init/modules/core.json +132 -0
  67. package/skills/project-init/modules/design.json +72 -0
  68. package/skills/project-init/modules/engineering.json +86 -0
  69. package/skills/project-init/modules/mobile.json +22 -0
  70. package/skills/project-init/modules/ops.json +122 -0
  71. package/skills/project-init/modules/process.json +104 -0
  72. package/skills/project-init/modules/product.json +37 -0
  73. package/skills/project-init/modules/ux.json +52 -0
  74. package/skills/project-init/modules/web.json +129 -0
  75. package/skills/project-init/presets/ai-product.json +12 -0
  76. package/skills/project-init/presets/internal-system.json +15 -0
  77. package/skills/project-init/presets/mobile-app.json +20 -0
  78. package/skills/project-init/presets/web-corporate.json +116 -0
  79. package/skills/project-init/schema.json +80 -0
  80. package/skills/project-init/templates/log.md +54 -0
  81. package/skills/project-init/templates/readme.md +62 -0
  82. package/skills/project-init/templates/reference.md +34 -0
  83. package/skills/project-init/templates/register.md +63 -0
  84. package/skills/project-init/templates/spec.md +46 -0
  85. package/skills/project-interview/INTERVIEW.md +221 -0
  86. package/skills/project-interview/SKILL.md +156 -0
  87. package/skills/project-interview/fixtures/brief.md +49 -0
  88. package/skills/project-interview/fixtures/decisions.md +13 -0
  89. package/skills/project-interview/fixtures/open-questions.md +9 -0
  90. package/skills/project-interview/templates/brief.md +179 -0
  91. package/skills/project-interview/templates/decisions.md +55 -0
  92. package/skills/project-interview/templates/open-questions.md +40 -0
  93. package/skills/project-interview/validate.mjs +49 -0
@@ -0,0 +1,1337 @@
1
+ // ═══════════════════════════════════════════════════════════════
2
+ // TSNE Dynamics 365 CRM — ERD
3
+ // 원본 _자료/CRM_Entity_DOC260824_ExcelAll.xlsx (2026-08-24 추출)
4
+ // _자료/SiteMap_260824.XML — 업무 영역 그룹의 근거
5
+ // 생성 2026-08-31
6
+ //
7
+ // 엔티티 75 · 속성 1393 · 단일 대상 FK 202
8
+ //
9
+ // [ 사실 근거 ]
10
+ // · 관계는 Metadata 시트의 Lookup 속성 "Targets:" 값에서만 도출했다.
11
+ // 추측으로 만든 관계는 하나도 없다.
12
+ // · 대상이 여러 개인 다형 참조(Owner·Customer·regardingobjectid 등)는
13
+ // DBML 이 단일 Ref 만 표현하므로 Ref 로 그리지 않고 컬럼 주석에 대상을 모두 적었다.
14
+ // 임의로 하나를 골라 선을 긋지 않았다.
15
+ // · 컬럼은 전체가 아니라 "관계와 필수"만 실었다 —
16
+ // 기본키 · 이름 속성 · 모든 FK · 필수(ApplicationRequired/SystemRequired) · 상태.
17
+ // 표에 실리지 않은 속성 수는 각 Table Note 의 "총 속성" 과 대조하면 알 수 있다.
18
+ // ═══════════════════════════════════════════════════════════════
19
+
20
+ // ─── 영업_SFA : 영업 — 고객·기회·제품 ─────────────────
21
+
22
+ Table account {
23
+ accountid uniqueidentifier [pk, not null, note: '기본 키']
24
+ name nvarchar(160) [not null, note: '거래처명']
25
+ new_9l_enguser09 uniqueidentifier [note: '기술담당자9 → systemuser']
26
+ new_l_contract_contact uniqueidentifier [note: '계약담당자 → contact']
27
+ new_l_engineer uniqueidentifier [note: '기술담당자 → systemuser']
28
+ new_l_enguser02 uniqueidentifier [note: '기술담당자2 → systemuser']
29
+ new_l_enguser03 uniqueidentifier [note: '기술담당자3 → systemuser']
30
+ new_l_enguser04 uniqueidentifier [note: '기술담당자4 → systemuser']
31
+ new_l_enguser05 uniqueidentifier [note: '기술담당자5 → systemuser']
32
+ new_l_enguser06 uniqueidentifier [note: '기술담당자6 → systemuser']
33
+ new_l_enguser07 uniqueidentifier [note: '기술담당자7 → systemuser']
34
+ new_l_enguser08 uniqueidentifier [note: '기술담당자8 → systemuser']
35
+ new_l_enguser10 uniqueidentifier [note: '기술담당자10 → systemuser']
36
+ new_l_keyuser uniqueidentifier [note: 'Key User → contact']
37
+ new_l_owner02 uniqueidentifier [note: '영업담당자2 → systemuser']
38
+ new_l_sbs1 uniqueidentifier [note: '영업담당자1 사업부 → businessunit']
39
+ new_l_sbs2 uniqueidentifier [note: '영업담당자2 사업부 → businessunit']
40
+ new_l_tbs1 uniqueidentifier [note: '기술담당자1 사업부 → businessunit']
41
+ new_l_tbs2 uniqueidentifier [note: '기술담당자 2 사업부 → businessunit']
42
+ new_l_tbs3 uniqueidentifier [note: '기술담당자3 사업부 → businessunit']
43
+ new_l_tbs4 uniqueidentifier [note: '기술담당자4 사업부 → businessunit']
44
+ new_l_tbs5 uniqueidentifier [note: '기술담당자5 사업부 → businessunit']
45
+ new_taxmanager uniqueidentifier [note: '세금계산서 담당자 → contact']
46
+ originatingleadid uniqueidentifier [note: '원래 잠재 고객 → lead']
47
+ ownerid uniqueidentifier [not null, note: '영업담당자 → 다형: systemuser, team']
48
+ parentaccountid uniqueidentifier [note: '상위 거래처 → account']
49
+ primarycontactid uniqueidentifier [note: '기본 연락처 → contact']
50
+ transactioncurrencyid uniqueidentifier [note: '통화 → transactioncurrency']
51
+ address1_line1 nvarchar(250) [not null, note: '도로명 주소']
52
+ customertypecode int [not null, note: '거래처유형 [Choice]']
53
+ industrycode int [not null, note: '적용분야 [Choice]']
54
+ new_p_grade int [not null, note: '고객등급 [Choice]']
55
+ new_txt_engname nvarchar(100) [not null, note: '거래처명(영문)']
56
+ statecode int [not null, note: '상태 [State]']
57
+ Note: '거래처 (Account) · 표준 · 총 속성 82개 · 표시 34개\n고객 회사 또는 잠재 고객 회사를 나타내며, 비즈니스 거래에서 청구 대상이 되는 회사입니다.'
58
+ }
59
+
60
+ Table contact {
61
+ contactid uniqueidentifier [pk, not null, note: '기본 키']
62
+ fullname nvarchar(160) [note: '전체 이름']
63
+ modifiedby uniqueidentifier [note: '수정한 사람 → systemuser']
64
+ originatingleadid uniqueidentifier [note: '원래 잠재 고객 → lead']
65
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
66
+ parentcustomerid uniqueidentifier [not null, note: '소속 거래처 → 다형: account, contact']
67
+ transactioncurrencyid uniqueidentifier [note: '통화 → transactioncurrency']
68
+ emailaddress1 nvarchar(100) [not null, note: '전자 메일']
69
+ firstname nvarchar(50) [not null, note: '이름']
70
+ lastname nvarchar(50) [not null, note: '성']
71
+ mobilephone nvarchar(50) [not null, note: '휴대폰']
72
+ new_p_dmtype int [not null, note: 'DM타입 [Choice]']
73
+ new_user_division int [not null, note: '사용자 분류 [Choice]']
74
+ Note: '연락처 (Contact) · 표준 · 총 속성 53개 · 표시 13개\n사업부와 관계가 있는 사람(예: 고객, 공급자, 동료)입니다.'
75
+ }
76
+
77
+ Table lead {
78
+ leadid uniqueidentifier [pk, not null, note: '기본 키']
79
+ fullname nvarchar(160) [note: '이름']
80
+ campaignid uniqueidentifier [note: '원본 캠페인 → campaign']
81
+ createdby uniqueidentifier [note: '만든 사람 → systemuser']
82
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
83
+ transactioncurrencyid uniqueidentifier [note: '통화 → transactioncurrency']
84
+ lastname nvarchar(100) [not null, note: '성명']
85
+ statuscode int [note: '상태 설명 [Status]']
86
+ Note: '잠재 고객 (Lead) · 표준 · 총 속성 47개 · 표시 8개\n잠재 고객 또는 잠재 영업 기회입니다. 우량 잠재 고객은 거래처, 연락처 또는 영업 기회로 변환되고 그렇지 않은 잠재 고객은 삭제되거나 보관됩니다.'
87
+ }
88
+
89
+ Table opportunity {
90
+ opportunityid uniqueidentifier [pk, not null, note: '기본 키']
91
+ name nvarchar(300) [not null, note: '영업기회명']
92
+ createdby uniqueidentifier [note: '만든 사람 → systemuser']
93
+ customerid uniqueidentifier [not null, note: 'xxx-거래처 → 다형: account, contact']
94
+ modifiedby uniqueidentifier [note: '수정한 사람 → systemuser']
95
+ new_l_contact uniqueidentifier [not null, note: '고객명 → contact']
96
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
97
+ parentaccountid uniqueidentifier [not null, note: '거래처 → account']
98
+ parentcontactid uniqueidentifier [note: '연락처 → contact']
99
+ pricelevelid uniqueidentifier [note: '가격표 → pricelevel']
100
+ transactioncurrencyid uniqueidentifier [not null, note: '통화 → transactioncurrency']
101
+ estimatedclosedate datetime [not null, note: '예상 종료 날짜']
102
+ new_p_step int [not null, note: '영업기회 단계 [Choice]']
103
+ new_p_type int [not null, note: '타입 [Choice]']
104
+ statecode int [not null, note: '상태 [State]']
105
+ statuscode int [note: '상태 설명 [Status]']
106
+ Note: '영업 기회 (Opportunity) · 표준 · 총 속성 47개 · 표시 16개\n거래처에 대한 잠재적 매출 창출 이벤트나 영업으로서, 완료될 때까지 영업 프로세스를 통해 추적해야 합니다.'
107
+ }
108
+
109
+ Table new_opptyproduct {
110
+ new_opptyproductid uniqueidentifier [pk, not null, note: '기본 키']
111
+ new_name nvarchar(100) [note: '이름']
112
+ new_l_custom uniqueidentifier [note: 'Account → 다형: account, contact']
113
+ new_l_oppty uniqueidentifier [not null, note: '영업기회 → opportunity']
114
+ new_product uniqueidentifier [not null, note: '제품 → new_product']
115
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
116
+ Note: '영업기회 제품 (new_opptyproduct) · 커스텀 · 총 속성 6개 · 표시 6개'
117
+ }
118
+
119
+ Table new_product {
120
+ new_productid uniqueidentifier [pk, not null, note: '기본 키']
121
+ new_name nvarchar(86) [not null, note: '제품명']
122
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
123
+ new_i_glistprice decimal [not null, note: '[국외-PO용]List Price']
124
+ new_i_price decimal [not null, note: '[국내]List Price']
125
+ statecode int [not null, note: '상태 [State]']
126
+ Note: '제품관리 (new_product) · 커스텀 · 총 속성 23개 · 표시 6개'
127
+ }
128
+
129
+ Table new_machine {
130
+ new_machineid uniqueidentifier [pk, not null, note: '기본 키']
131
+ new_name nvarchar(100) [note: 'Flex ID']
132
+ new_l_acct uniqueidentifier [note: '거래처명 → account']
133
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
134
+ statecode int [not null, note: '상태 [State]']
135
+ Note: '장비관리 (new_machine) · 커스텀 · 총 속성 18개 · 표시 5개'
136
+ }
137
+
138
+ Table new_eachaccount {
139
+ new_eachaccountid uniqueidentifier [pk, not null, note: '기본 키']
140
+ new_name nvarchar(100) [note: '이름']
141
+ new_l_account uniqueidentifier [not null, note: '#Account → new_account']
142
+ new_l_acct uniqueidentifier [not null, note: '거래처 → account']
143
+ Note: '거래처별#Account (new_eachaccount) · 커스텀 · 총 속성 3개 · 표시 4개'
144
+ }
145
+
146
+ Table list {
147
+ listid uniqueidentifier [pk, not null, note: '기본 키']
148
+ listname nvarchar(128) [not null, note: '이름']
149
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
150
+ transactioncurrencyid uniqueidentifier [note: '통화 → transactioncurrency']
151
+ createdfromcode int [not null, note: '마케팅 목록 구성원 유형 [Choice]']
152
+ type bit [not null, note: '유형']
153
+ Note: '마케팅 목록 (List) · 표준 · 총 속성 12개 · 표시 6개\n마케팅 캠페인 또는 기타 영업 목적을 위해 만들어진 기존 고객이나 잠재 고객의 그룹입니다.'
154
+ }
155
+
156
+ // 영업 — 고객·기회·제품
157
+ TableGroup "영업 SFA" {
158
+ account
159
+ contact
160
+ lead
161
+ opportunity
162
+ new_opptyproduct
163
+ new_product
164
+ new_machine
165
+ new_eachaccount
166
+ list
167
+ }
168
+
169
+ // ─── 견적_계약 : 견적 · 계약 — 수주까지 ────────────────
170
+
171
+ Table new_quot {
172
+ new_quotid uniqueidentifier [pk, not null, note: '기본 키']
173
+ new_name nvarchar(100) [note: '이름']
174
+ new_l_account uniqueidentifier [note: '소속기관 → account']
175
+ new_l_contact uniqueidentifier [note: '고객명 → contact']
176
+ new_l_copy_source uniqueidentifier [note: 'copy source → new_quot']
177
+ new_l_oppty uniqueidentifier [note: '관련 영업기회 → opportunity']
178
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
179
+ new_txt_quottitle nvarchar(100) [not null, note: '견적명']
180
+ Note: '견적 (new_quot) · 커스텀 · 총 속성 21개 · 표시 8개\n견적마스터'
181
+ }
182
+
183
+ Table new_quot_details {
184
+ new_quot_detailsid uniqueidentifier [pk, not null, note: '기본 키']
185
+ new_name nvarchar(100) [not null, note: '이름']
186
+ new_l_quot uniqueidentifier [note: 'Quot No → new_quot']
187
+ new_l_quot_main_g uniqueidentifier [note: '관련 유지보수 분류 (대) → new_quot_main_g']
188
+ new_l_quot_main_g2 uniqueidentifier [note: '관련 유지보수 분류 (중) → new_quot_main_g']
189
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
190
+ Note: '견적 상세 (new_quot_details) · 커스텀 · 총 속성 19개 · 표시 6개'
191
+ }
192
+
193
+ Table new_quotunit {
194
+ new_quotunitid uniqueidentifier [pk, not null, note: '기본 키']
195
+ Note: '견적 제품 (new_quotunit) · 커스텀 · 총 속성 0개 · 표시 1개'
196
+ }
197
+
198
+ Table new_quot_pdf {
199
+ new_quot_pdfid uniqueidentifier [pk, not null, note: '기본 키']
200
+ new_name nvarchar(100) [not null, note: '이름']
201
+ new_l_quotation uniqueidentifier [note: 'Quotation → new_quot']
202
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
203
+ Note: '견적 PDF (new_quot_pdf) · 커스텀 · 총 속성 6개 · 표시 4개'
204
+ }
205
+
206
+ Table new_quot_main_g {
207
+ new_quot_main_gid uniqueidentifier [pk, not null, note: '기본 키']
208
+ new_name nvarchar(100) [not null, note: '이름']
209
+ new_l_largegroup uniqueidentifier [note: '대분류 → new_quot_main_g']
210
+ new_l_quot uniqueidentifier [note: '관련 견적 → new_quot']
211
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
212
+ new_ntxt_desc nvarchar(max) [not null, note: '비고']
213
+ new_p_group int [not null, note: '분류 [Choice]']
214
+ Note: '견적 유지보수 분류 (new_quot_main_g) · 커스텀 · 총 속성 13개 · 표시 7개'
215
+ }
216
+
217
+ Table new_contract {
218
+ new_contractid uniqueidentifier [pk, not null, note: '기본 키']
219
+ new_name nvarchar(200) [not null, note: '계약명']
220
+ createdby uniqueidentifier [note: '만든 사람 → systemuser']
221
+ modifiedby uniqueidentifier [note: '수정한 사람 → systemuser']
222
+ new_l_acct uniqueidentifier [not null, note: '거래처 → account']
223
+ new_l_basiccontract uniqueidentifier [note: 'Copy Source → new_contract']
224
+ new_l_calculate_contact uniqueidentifier [note: '계산서담당 → contact']
225
+ new_l_contract uniqueidentifier [note: '계약업체 → account']
226
+ new_l_contractuser uniqueidentifier [note: '계약업체담당 → contact']
227
+ new_l_engineer uniqueidentifier [note: '기술담당자 → systemuser']
228
+ new_l_exchange uniqueidentifier [note: '환율적용 → new_exchange']
229
+ new_l_machine uniqueidentifier [note: '관련장비 → new_machine']
230
+ new_l_username uniqueidentifier [note: '사용자 → contact']
231
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
232
+ new_dt_contract datetime [not null, note: '계약일자']
233
+ statecode int [not null, note: '상태 [State]']
234
+ Note: '계약관리 (new_contract) · 커스텀 · 총 속성 65개 · 표시 16개\n계약마스터'
235
+ }
236
+
237
+ Table new_contract_product {
238
+ new_contract_productid uniqueidentifier [pk, not null, note: '기본 키']
239
+ new_name nvarchar(100) [note: '계약제품명']
240
+ createdby uniqueidentifier [note: '만든 사람 → systemuser']
241
+ modifiedby uniqueidentifier [note: '수정한 사람 → systemuser']
242
+ new_l_acct uniqueidentifier [note: '거래처 → account']
243
+ new_l_contract uniqueidentifier [note: '계약서명 → new_contract']
244
+ new_l_product uniqueidentifier [note: '제품 → new_product']
245
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
246
+ Note: '계약제품 (new_contract_product) · 커스텀 · 총 속성 33개 · 표시 8개'
247
+ }
248
+
249
+ // 견적 · 계약 — 수주까지
250
+ TableGroup "견적 계약" {
251
+ new_quot
252
+ new_quot_details
253
+ new_quotunit
254
+ new_quot_pdf
255
+ new_quot_main_g
256
+ new_contract
257
+ new_contract_product
258
+ }
259
+
260
+ // ─── 정산_구매 : 정산 · 구매 — 계산서·수금·PO ───────────
261
+
262
+ Table new_taxinvoice {
263
+ new_taxinvoiceid uniqueidentifier [pk, not null, note: '기본 키']
264
+ new_name nvarchar(450) [note: '세금계산서명']
265
+ createdby uniqueidentifier [note: '만든 사람 → systemuser']
266
+ modifiedby uniqueidentifier [note: '수정한 사람 → systemuser']
267
+ new_addressee uniqueidentifier [not null, note: '수신자 성명 → contact']
268
+ new_l_acct uniqueidentifier [not null, note: '발행업체 → account']
269
+ new_l_contract uniqueidentifier [note: '관련 계약 → new_contract']
270
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
271
+ new_i_day int [not null, note: '일수']
272
+ new_p_pay int [not null, note: '결제조건 [Choice]']
273
+ statecode int [not null, note: '상태 [State]']
274
+ Note: '세금계산서 (new_taxInvoice) · 커스텀 · 총 속성 23개 · 표시 11개'
275
+ }
276
+
277
+ Table new_taxinvoicehistory {
278
+ new_taxinvoicehistoryid uniqueidentifier [pk, not null, note: '기본 키']
279
+ new_name nvarchar(100) [not null, note: '이름']
280
+ new_l_income uniqueidentifier [note: '관련 계산서 세부내역 → new_income']
281
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
282
+ Note: '세금계산서 발행 이력 (new_taxinvoicehistory) · 커스텀 · 총 속성 4개 · 표시 4개'
283
+ }
284
+
285
+ Table new_income {
286
+ new_incomeid uniqueidentifier [pk, not null, note: '기본 키']
287
+ new_name nvarchar(450) [note: '세금계산서 품목']
288
+ createdby uniqueidentifier [note: '만든 사람 → systemuser']
289
+ modifiedby uniqueidentifier [note: '수정한 사람 → systemuser']
290
+ new_l_acct uniqueidentifier [not null, note: '발행업체 → account']
291
+ new_l_addressee uniqueidentifier [note: '수신자 성명 → contact']
292
+ new_l_taxinvoice uniqueidentifier [not null, note: '세금계산서 → new_taxinvoice']
293
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
294
+ new_d_danga decimal [not null, note: '단가']
295
+ new_dt_writedate datetime [not null, note: '작성일자(발행예정일)']
296
+ new_i_count int [not null, note: '수량']
297
+ new_p_count int [not null, note: '회차 [Choice]']
298
+ new_p_purposetype int [not null, note: '영수/청구 [Choice]']
299
+ new_p_taxtype int [not null, note: '과세형태 [Choice]']
300
+ new_txt_mgkey nvarchar(100) [not null, note: '계산서 관리번호']
301
+ statecode int [not null, note: '상태 [State]']
302
+ Note: '계산서 세부내역 (new_income) · 커스텀 · 총 속성 65개 · 표시 16개'
303
+ }
304
+
305
+ Table new_po {
306
+ new_poid uniqueidentifier [pk, not null, note: '기본 키']
307
+ new_name nvarchar(100) [note: '이름']
308
+ new_l_acct uniqueidentifier [note: '거래처 → account']
309
+ new_l_contract uniqueidentifier [note: '계약서명 → new_contract']
310
+ new_l_contract_product uniqueidentifier [not null, note: '계약제품 → new_contract_product']
311
+ new_l_product uniqueidentifier [note: '제품명 → new_product']
312
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
313
+ new_p_ansysshare int [not null, note: 'ANSYS Share [Choice]']
314
+ statecode int [not null, note: '상태 [State]']
315
+ Note: 'PO 관리 (new_po) · 커스텀 · 총 속성 31개 · 표시 9개'
316
+ }
317
+
318
+ Table new_exchange {
319
+ new_exchangeid uniqueidentifier [pk, not null, note: '기본 키']
320
+ new_name nvarchar(100) [not null, note: '환율적용월명']
321
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
322
+ new_dt_exchange datetime [not null, note: '환율적용월']
323
+ statecode int [not null, note: '상태 [State]']
324
+ Note: '환율관리 (new_exchange) · 커스텀 · 총 속성 5개 · 표시 5개'
325
+ }
326
+
327
+ // 정산 · 구매 — 계산서·수금·PO
328
+ TableGroup "정산 구매" {
329
+ new_taxinvoice
330
+ new_taxinvoicehistory
331
+ new_income
332
+ new_po
333
+ new_exchange
334
+ }
335
+
336
+ // ─── 라이선스 : 라이선스 · 자산 ─────────────────────
337
+
338
+ Table new_licensekey {
339
+ new_licensekeyid uniqueidentifier [pk, not null, note: '기본 키']
340
+ new_name nvarchar(100) [not null, note: 'License명']
341
+ modifiedby uniqueidentifier [note: '수정한 사람 → systemuser']
342
+ new_l_acct uniqueidentifier [not null, note: '거래처 → account']
343
+ new_l_addressee uniqueidentifier [note: '추가수신자 → systemuser']
344
+ new_l_approvaluser uniqueidentifier [note: '발급담당 → systemuser']
345
+ new_l_contact uniqueidentifier [note: '연락처 → contact']
346
+ new_l_contract uniqueidentifier [note: '관련계약 → new_contract']
347
+ new_l_exchange uniqueidentifier [note: '환율적용 → new_exchange']
348
+ new_l_machine uniqueidentifier [note: '관련 장비 → new_machine']
349
+ new_l_machine2 uniqueidentifier [note: '관련 장비 2 → new_machine']
350
+ new_l_machine3 uniqueidentifier [note: '관련 장비 3 → new_machine']
351
+ new_l_oppty uniqueidentifier [note: '영업기회 → opportunity']
352
+ ownerid uniqueidentifier [not null, note: 'License신청자 → 다형: systemuser, team']
353
+ new_dt_closingdate datetime [not null, note: 'Closing Date']
354
+ new_ntxt_engreason nvarchar(max) [not null, note: '신청사유(영문)']
355
+ new_p_pipeline int [not null, note: 'Pipeline 정보 [Choice]']
356
+ new_p_status int [not null, note: 'Status [Choice]']
357
+ new_p_type int [not null, note: '키유형 [Choice]']
358
+ new_sw_product int [not null, note: 'SW제품명 [Choice]']
359
+ new_txt_licenseno nvarchar(100) [not null, note: 'Account #']
360
+ statecode int [not null, note: '상태 [State]']
361
+ Note: '라이선스키 (new_licensekey) · 커스텀 · 총 속성 55개 · 표시 22개'
362
+ }
363
+
364
+ Table new_licensekeyproduct {
365
+ new_licensekeyproductid uniqueidentifier [pk, not null, note: '기본 키']
366
+ new_name nvarchar(100) [note: '이름']
367
+ new_l_account uniqueidentifier [note: '거래처 → account']
368
+ new_l_exchange uniqueidentifier [note: '환율적용 → new_exchange']
369
+ new_l_license uniqueidentifier [not null, note: '라이선스키 → new_licensekey']
370
+ new_l_product uniqueidentifier [not null, note: '제품 → new_product']
371
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
372
+ Note: '라이선스키 제품 (new_licensekeyproduct) · 커스텀 · 총 속성 8개 · 표시 7개'
373
+ }
374
+
375
+ // 라이선스 · 자산
376
+ TableGroup "라이선스" {
377
+ new_licensekey
378
+ new_licensekeyproduct
379
+ }
380
+
381
+ // ─── 컨설팅 : 컨설팅 — 프로젝트 수행 ─────────────────
382
+
383
+ Table new_project {
384
+ new_projectid uniqueidentifier [pk, not null, note: '기본 키']
385
+ new_name nvarchar(100) [not null, note: '제목']
386
+ new_contract uniqueidentifier [note: '관련계약 → new_contract']
387
+ new_l_acct uniqueidentifier [not null, note: '거래처명 → account']
388
+ new_l_oppty uniqueidentifier [note: '관련제품영업기회 → opportunity']
389
+ new_l_relconsulting uniqueidentifier [note: '관련컨설팅계약 → new_project']
390
+ new_l_salesman uniqueidentifier [note: '영업담당자 → systemuser']
391
+ ownerid uniqueidentifier [not null, note: '기술담당자 → 다형: systemuser, team']
392
+ new_dt_eproject_end datetime [not null, note: '예상 종료일']
393
+ new_dt_eproject_start datetime [not null, note: '예상 시작일']
394
+ new_p_secure int [not null, note: '대외비 유무 [Choice]']
395
+ new_p_status int [not null, note: '진행단계 [Choice]']
396
+ new_p_type int [not null, note: '컨설팅/BMT 구분 [Choice]']
397
+ statecode int [not null, note: '상태 [State]']
398
+ Note: '컨설팅 (new_project) · 커스텀 · 총 속성 44개 · 표시 14개\n프로젝트가 컨설팅으로 변경'
399
+ }
400
+
401
+ Table new_project_act {
402
+ new_project_actid uniqueidentifier [pk, not null, note: '기본 키']
403
+ new_name nvarchar(100) [not null, note: '진행항목']
404
+ new_l_eng02 uniqueidentifier [note: '기술지원02 → systemuser']
405
+ new_l_eng03 uniqueidentifier [note: '기술지원03 → systemuser']
406
+ new_l_eng04 uniqueidentifier [note: '기술지원04 → systemuser']
407
+ new_l_project uniqueidentifier [not null, note: '관련 컨설팅 → new_project']
408
+ ownerid uniqueidentifier [not null, note: '기술지원 → 다형: systemuser, team']
409
+ statecode int [not null, note: '상태 [State]']
410
+ Note: '컨설팅 진행항목 (new_project_act) · 커스텀 · 총 속성 13개 · 표시 8개'
411
+ }
412
+
413
+ Table new_project_activity {
414
+ new_project_activityid uniqueidentifier [pk, not null, note: '기본 키']
415
+ new_name nvarchar(100) [not null, note: '주제']
416
+ createdby uniqueidentifier [note: '만든 사람 → systemuser']
417
+ new_l_project uniqueidentifier [not null, note: '관련 프로젝트 → new_project']
418
+ new_l_project_act uniqueidentifier [note: '관련 진행항목 → new_project_act']
419
+ new_l_project_activity uniqueidentifier [note: '다음 작업 → new_project_activity']
420
+ ownerid uniqueidentifier [not null, note: '업무 수행자 → 다형: systemuser, team']
421
+ new_dt_finish datetime [not null, note: '실제 종료 날짜']
422
+ new_dt_start datetime [not null, note: '실제 시작 날짜']
423
+ Note: '컨설팅 활동 (new_project_activity) · 커스텀 · 총 속성 16개 · 표시 9개'
424
+ }
425
+
426
+ Table new_projectbiz {
427
+ activityid uniqueidentifier [pk, not null, note: '기본 키']
428
+ subject nvarchar(200) [note: '주제']
429
+ new_l_businessunit uniqueidentifier [not null, note: '사업부 → businessunit']
430
+ new_l_project uniqueidentifier [not null, note: '컨설팅 → new_project']
431
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
432
+ regardingobjectid uniqueidentifier [not null, note: '관련 항목 → 다형: account, bookableresourcebooking, bookableresourcebookingheader, bulkoperation 외 29']
433
+ statecode int [not null, note: '활동 상태 [State]']
434
+ Note: '컨설팅/BMT 부서관리 (new_projectbiz) · 커스텀·활동 · 총 속성 9개 · 표시 7개'
435
+ }
436
+
437
+ Table new_pj_person {
438
+ new_pj_personid uniqueidentifier [pk, not null, note: '기본 키']
439
+ new_name nvarchar(100) [note: '이름']
440
+ new_l_biz uniqueidentifier [not null, note: '기술지원부서 → businessunit']
441
+ new_l_project uniqueidentifier [not null, note: '관련 컨설팅 → new_project']
442
+ new_l_projectbiz uniqueidentifier [not null, note: '컨설팅 부서 → new_projectbiz']
443
+ new_l_user uniqueidentifier [not null, note: '팀원 → systemuser']
444
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
445
+ new_p_part int [not null, note: '참여율 [Choice]']
446
+ statecode int [not null, note: '상태 [State]']
447
+ Note: '투입인원 (new_pj_person) · 커스텀 · 총 속성 13개 · 표시 9개'
448
+ }
449
+
450
+ Table new_prj_contact {
451
+ new_prj_contactid uniqueidentifier [pk, not null, note: '기본 키']
452
+ new_name nvarchar(100) [note: 'x이름']
453
+ new_l_acct uniqueidentifier [not null, note: '거래처명 → account']
454
+ new_l_contact uniqueidentifier [not null, note: '사용자명 → contact']
455
+ new_l_project uniqueidentifier [not null, note: '참여 프로젝트 → new_project']
456
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
457
+ statecode int [not null, note: '상태 [State]']
458
+ Note: '컨설팅 고객 (new_prj_contact) · 커스텀 · 총 속성 7개 · 표시 7개'
459
+ }
460
+
461
+ Table new_consulting {
462
+ activityid uniqueidentifier [pk, not null, note: '기본 키']
463
+ subject nvarchar(200) [not null, note: '주제']
464
+ customers partylist [note: '추가고객명 → 참가자 목록(activityparty)']
465
+ new_l_acct uniqueidentifier [not null, note: '업체명 → account']
466
+ new_l_contact uniqueidentifier [not null, note: '고객명 → contact']
467
+ new_l_oppty uniqueidentifier [note: '관련 영업기회 → opportunity']
468
+ new_l_project uniqueidentifier [note: '관련 컨설팅 → new_project']
469
+ new_l_project_act uniqueidentifier [note: '관련 진행항목 → new_project_act']
470
+ optionalattendees partylist [note: '보고자 → 참가자 목록(activityparty)']
471
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
472
+ regardingobjectid uniqueidentifier [note: '관련 항목 → 다형: account, bookableresourcebooking, bookableresourcebookingheader, bulkoperation 외 29']
473
+ requiredattendees partylist [note: '동행자 → 참가자 목록(activityparty)']
474
+ new_p_type int [not null, note: '약속형태 [Choice]']
475
+ scheduledstart datetime [not null, note: '약속날짜']
476
+ statecode int [not null, note: '활동 상태 [State]']
477
+ Note: '컨설팅 약속 (new_consulting) · 커스텀·활동 · 총 속성 38개 · 표시 15개'
478
+ }
479
+
480
+ Table new_consulting_work {
481
+ activityid uniqueidentifier [pk, not null, note: '기본 키']
482
+ subject nvarchar(200) [not null, note: '제목']
483
+ new_l_consulting_work uniqueidentifier [note: '이전 작업 → new_consulting_work']
484
+ new_l_project uniqueidentifier [not null, note: '관련 컨설팅 → new_project']
485
+ new_l_project_act uniqueidentifier [note: '관련 진행항목 → new_project_act']
486
+ optionalattendees partylist [note: '선택 참석자 → 참가자 목록(activityparty)']
487
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
488
+ new_txt_subject nvarchar(100) [not null, note: '제목']
489
+ scheduledend datetime [not null, note: '종료일']
490
+ scheduledstart datetime [not null, note: '시작일']
491
+ statecode int [not null, note: '활동 상태 [State]']
492
+ Note: '컨설팅 작업 (new_consulting_work) · 커스텀·활동 · 총 속성 20개 · 표시 11개'
493
+ }
494
+
495
+ Table new_consultingoutsourcing {
496
+ new_consultingoutsourcingid uniqueidentifier [pk, not null, note: '기본 키']
497
+ new_name nvarchar(100) [note: '외주 업체명']
498
+ new_l_acct uniqueidentifier [not null, note: '업체명 → account']
499
+ new_l_relconsulting uniqueidentifier [not null, note: '관련 컨설팅 → new_project']
500
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
501
+ new_i_outsourcingcost int [not null, note: '외주 금액(VAT별도)']
502
+ Note: '컨설팅 외주 업체 (new_consultingoutsourcing) · 커스텀 · 총 속성 8개 · 표시 6개'
503
+ }
504
+
505
+ // 컨설팅 — 프로젝트 수행
506
+ TableGroup "컨설팅" {
507
+ new_project
508
+ new_project_act
509
+ new_project_activity
510
+ new_projectbiz
511
+ new_pj_person
512
+ new_prj_contact
513
+ new_consulting
514
+ new_consulting_work
515
+ new_consultingoutsourcing
516
+ }
517
+
518
+ // ─── 기술지원 : 기술지원 — AS ─────────────────────
519
+
520
+ Table new_aslist {
521
+ new_aslistid uniqueidentifier [pk, not null, note: '기본 키']
522
+ new_name nvarchar(100) [note: '기술지원명']
523
+ new_l_acct uniqueidentifier [note: '관련거래처 → account']
524
+ new_l_business uniqueidentifier [note: '지원사업부 → businessunit']
525
+ new_l_contact uniqueidentifier [not null, note: '지원고객명 → contact']
526
+ ownerid uniqueidentifier [not null, note: '기술지원자 → 다형: systemuser, team']
527
+ new_dt_work datetime [not null, note: '접수일자']
528
+ statecode int [not null, note: '상태 [State]']
529
+ Note: '기술지원내역 (new_aslist) · 커스텀 · 총 속성 25개 · 표시 8개'
530
+ }
531
+
532
+ Table new_asact {
533
+ activityid uniqueidentifier [pk, not null, note: '기본 키']
534
+ subject nvarchar(200) [not null, note: '지원 제목']
535
+ cc partylist [note: '이메일 참조자 → 참가자 목록(activityparty)']
536
+ createdby uniqueidentifier [note: '만든 사람 → systemuser']
537
+ modifiedby uniqueidentifier [note: '수정한 사람 → systemuser']
538
+ new_l_acct uniqueidentifier [not null, note: '관련거래처 → account']
539
+ new_l_business uniqueidentifier [note: '지원사업부 → businessunit']
540
+ new_l_contact uniqueidentifier [not null, note: '고객명 → contact']
541
+ ownerid uniqueidentifier [not null, note: '기술지원자 → 다형: systemuser, team']
542
+ regardingobjectid uniqueidentifier [note: '관련 항목 → 다형: account, bookableresourcebooking, bookableresourcebookingheader, bulkoperation 외 29']
543
+ requiredattendees partylist [note: '추가 기술지원자 → 참가자 목록(activityparty)']
544
+ new_p_product int [not null, note: '지원제품 [Choice]']
545
+ new_p_type int [not null, note: '지원형태 [Choice]']
546
+ scheduledstart datetime [not null, note: '접수일자']
547
+ statecode int [not null, note: '활동 상태 [State]']
548
+ Note: '기술지원 활동 (new_asact) · 커스텀·활동 · 총 속성 36개 · 표시 15개'
549
+ }
550
+
551
+ Table new_asappoint {
552
+ activityid uniqueidentifier [pk, not null, note: '기본 키']
553
+ subject nvarchar(200) [not null, note: '주제']
554
+ customers partylist [note: '추가고객명 → 참가자 목록(activityparty)']
555
+ new_l_acct uniqueidentifier [not null, note: '업체명 → account']
556
+ new_l_contact uniqueidentifier [not null, note: '고객명 → contact']
557
+ new_l_oppty uniqueidentifier [note: '관련 영업기회 → opportunity']
558
+ optionalattendees partylist [note: '보고자 → 참가자 목록(activityparty)']
559
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
560
+ requiredattendees partylist [note: '동행자 → 참가자 목록(activityparty)']
561
+ new_p_gigan int [not null, note: '소요기간 [Choice]']
562
+ new_p_purpose int [not null, note: '방문/내방 목적 [Choice]']
563
+ new_p_type int [not null, note: '약속장소 [Choice]']
564
+ scheduledstart datetime [not null, note: '약속날짜']
565
+ statecode int [not null, note: '활동 상태 [State]']
566
+ Note: '기술지원 약속 (new_asappoint) · 커스텀·활동 · 총 속성 35개 · 표시 14개'
567
+ }
568
+
569
+ Table new_other_asperson {
570
+ new_other_aspersonid uniqueidentifier [pk, not null, note: '기본 키']
571
+ new_name nvarchar(100) [note: '이름']
572
+ new_l_licenseacct uniqueidentifier [not null, note: 'License 보유거래처 → account']
573
+ new_l_ocontact uniqueidentifier [not null, note: '타부서 사용자 → contact']
574
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
575
+ statecode int [not null, note: '상태 [State]']
576
+ Note: '타부서 지원현황 (new_other_asperson) · 커스텀 · 총 속성 7개 · 표시 6개'
577
+ }
578
+
579
+ Table serviceappointment {
580
+ activityid uniqueidentifier [pk, not null, note: '기본 키']
581
+ subject nvarchar(200) [not null, note: '주제']
582
+ createdby uniqueidentifier [note: '만든 사람 → systemuser']
583
+ customers partylist [note: '고객 → 참가자 목록(activityparty)']
584
+ modifiedby uniqueidentifier [note: '수정한 사람 → systemuser']
585
+ new_l_appoint uniqueidentifier [note: '관련 약속 → appointment']
586
+ new_l_asappoint uniqueidentifier [note: '관련 기술지원 약속 → new_asappoint']
587
+ new_l_consulting uniqueidentifier [note: '관련 컨설팅약속 → new_consulting']
588
+ new_l_dummy uniqueidentifier [note: '더미장비 → equipment']
589
+ new_l_edu uniqueidentifier [note: '관련 교육 → new_trainingschedule']
590
+ new_l_region uniqueidentifier [note: '지역 → territory']
591
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
592
+ regardingobjectid uniqueidentifier [note: '관련 항목 → 다형: account, bookableresourcebooking, bookableresourcebookingheader, campaign 외 26']
593
+ resources partylist [note: '리소스 → 참가자 목록(activityparty)']
594
+ serviceid uniqueidentifier [not null, note: '서비스 → service']
595
+ siteid uniqueidentifier [note: '사이트 → site']
596
+ description nvarchar(max) [not null, note: '설명']
597
+ scheduledend datetime [not null, note: '예약된 종료 시간']
598
+ scheduledstart datetime [not null, note: '예약된 시작 시간']
599
+ statecode int [not null, note: '상태 [State]']
600
+ statuscode int [note: '상태 설명 [Status]']
601
+ Note: '차량/회의실관리 (ServiceAppointment) · 표준·활동 · 총 속성 32개 · 표시 21개\n고객의 요구를 충족시키기 위해 조직에서 제안한 활동입니다. 각 서비스 활동에는 날짜, 시간, 기간 및 필요한 리소스가 포함됩니다.'
602
+ }
603
+
604
+ // 기술지원 — AS
605
+ TableGroup "기술지원" {
606
+ new_aslist
607
+ new_asact
608
+ new_asappoint
609
+ new_other_asperson
610
+ serviceappointment
611
+ }
612
+
613
+ // ─── 서비스일정 : 서비스 일정 — 리소스·설비 예약 ────────────
614
+
615
+ Table calendar {
616
+ calendarid uniqueidentifier [pk, not null, note: '기본 키']
617
+ name nvarchar(160) [note: '이름']
618
+ Note: '일정 (Calendar) · 표준 · 총 속성 2개 · 표시 2개\n일정 시스템에서 약속 또는 활동이 발생할 시기를 정의하는 데 사용되는 일정입니다.'
619
+ }
620
+
621
+ Table equipment {
622
+ equipmentid uniqueidentifier [pk, not null, note: '기본 키']
623
+ name nvarchar(160) [not null, note: '이름']
624
+ businessunitid uniqueidentifier [not null, note: '사업부 → businessunit']
625
+ siteid uniqueidentifier [note: '사이트 → site']
626
+ timezonecode int [not null, note: '표준 시간대']
627
+ Note: '시설/장비 (Equipment) · 표준 · 총 속성 7개 · 표시 5개\n예약할 수 있는 리소스입니다.'
628
+ }
629
+
630
+ Table resourcespec {
631
+ resourcespecid uniqueidentifier [pk, not null, note: '기본 키']
632
+ businessunitid uniqueidentifier [not null, note: '사업부 → businessunit']
633
+ Note: '리소스 사양 (ResourceSpec) · 표준 · 총 속성 1개 · 표시 2개\n일정 엔진에서 리소스 풀의 여러 리소스를 선택할 수 있도록 하는 선택 규칙입니다. 이러한 규칙은 서비스와 연관될 수 있습니다.'
634
+ }
635
+
636
+ Table constraintbasedgroup {
637
+ constraintbasedgroupid uniqueidentifier [pk, not null, note: '기본 키']
638
+ name nvarchar(160) [not null, note: '이름']
639
+ businessunitid uniqueidentifier [not null, note: '사업부 → businessunit']
640
+ Note: '리소스 그룹 (ConstraintBasedGroup) · 표준 · 총 속성 3개 · 표시 3개\n예약할 수 있는 사람, 장비 또는 시설의 그룹이나 모음입니다.'
641
+ }
642
+
643
+ // 서비스 일정 — 리소스·설비 예약
644
+ TableGroup "서비스일정" {
645
+ calendar
646
+ equipment
647
+ resourcespec
648
+ constraintbasedgroup
649
+ }
650
+
651
+ // ─── 교육 : 교육 · 연수 ───────────────────────
652
+
653
+ Table new_curriculum {
654
+ new_curriculumid uniqueidentifier [pk, not null, note: '기본 키']
655
+ new_name nvarchar(100) [not null, note: '이름']
656
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
657
+ statecode int [not null, note: '상태 [State]']
658
+ Note: '커리큘럼 (new_curriculum) · 커스텀 · 총 속성 43개 · 표시 4개'
659
+ }
660
+
661
+ Table new_trainingschedule {
662
+ new_trainingscheduleid uniqueidentifier [pk, not null, note: '기본 키']
663
+ new_name nvarchar(100) [not null, note: '제목']
664
+ createdby uniqueidentifier [note: '만든 사람 → systemuser']
665
+ modifiedby uniqueidentifier [note: '수정한 사람 → systemuser']
666
+ new_l_acct uniqueidentifier [note: '관련 거래처 → account']
667
+ new_l_contract uniqueidentifier [note: '관련 계약 → new_contract']
668
+ new_l_trainerid uniqueidentifier [note: '강사/발표자 목록 → systemuser']
669
+ new_l_traininglocation uniqueidentifier [note: '장소 → account']
670
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
671
+ new_p_location int [not null, note: '위치 [Choice]']
672
+ new_p_machinetype int [not null, note: '업무 종류 [Choice]']
673
+ new_p_trainingstatus int [not null, note: '진행 상태 [Choice]']
674
+ new_p_type int [not null, note: '타입 [Choice]']
675
+ new_txt_homecd nvarchar(100) [not null, note: '정기교육코드']
676
+ statecode int [not null, note: '상태 [State]']
677
+ Note: '교육 일정 (new_trainingschedule) · 커스텀 · 총 속성 36개 · 표시 15개'
678
+ }
679
+
680
+ Table new_edu_participant_list {
681
+ new_edu_participant_listid uniqueidentifier [pk, not null, note: '기본 키']
682
+ new_name nvarchar(100) [not null, note: '이름']
683
+ new_l_account uniqueidentifier [note: '신청자 소속 → account']
684
+ new_l_contact uniqueidentifier [note: '고객명 → contact']
685
+ new_l_edu uniqueidentifier [not null, note: '관련 교육 → new_trainingschedule']
686
+ new_l_salesman uniqueidentifier [note: '영업담당 → systemuser']
687
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
688
+ Note: '교육 참여 리스트 (new_edu_participant_list) · 커스텀 · 총 속성 27개 · 표시 7개'
689
+ }
690
+
691
+ Table new_event_participant_list {
692
+ new_event_participant_listid uniqueidentifier [pk, not null, note: '기본 키']
693
+ new_name nvarchar(100) [not null, note: '이름']
694
+ new_l_account uniqueidentifier [note: 'CRM거래처 → account']
695
+ new_l_contact uniqueidentifier [note: '고객명 → contact']
696
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
697
+ Note: '행사(세미나/컨퍼런스) 참여리스트 (new_event_participant_list) · 커스텀 · 총 속성 15개 · 표시 5개'
698
+ }
699
+
700
+ Table new_traineeperformance {
701
+ new_traineeperformanceid uniqueidentifier [pk, not null, note: '기본 키']
702
+ new_name nvarchar(100) [not null, note: '이름']
703
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
704
+ statecode int [not null, note: '상태 [State]']
705
+ Note: '연수생 성과 (new_traineeperformance) · 커스텀 · 총 속성 5개 · 표시 4개'
706
+ }
707
+
708
+ Table new_traineeperformanceresult {
709
+ new_traineeperformanceresultid uniqueidentifier [pk, not null, note: '기본 키']
710
+ new_name nvarchar(100) [not null, note: '이름']
711
+ new_l_contactid uniqueidentifier [note: '연수생 → contact']
712
+ new_l_performanceid uniqueidentifier [note: 'Trainee Performance ID → new_traineeperformance']
713
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
714
+ statecode int [not null, note: '상태 [State]']
715
+ Note: '연수생 성과 보고서 (new_traineeperformanceResult) · 커스텀 · 총 속성 8개 · 표시 6개'
716
+ }
717
+
718
+ Table new_link {
719
+ new_linkid uniqueidentifier [pk, not null, note: '기본 키']
720
+ new_name nvarchar(100) [not null, note: '이름']
721
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
722
+ Note: '링크 (new_link) · 커스텀 · 총 속성 2개 · 표시 3개'
723
+ }
724
+
725
+ // 교육 · 연수
726
+ TableGroup "교육" {
727
+ new_curriculum
728
+ new_trainingschedule
729
+ new_edu_participant_list
730
+ new_event_participant_list
731
+ new_traineeperformance
732
+ new_traineeperformanceresult
733
+ new_link
734
+ }
735
+
736
+ // ─── 설문_만족도 : 설문 · 만족도 ──────────────────────
737
+
738
+ Table new_sulmoon {
739
+ new_sulmoonid uniqueidentifier [pk, not null, note: '기본 키']
740
+ new_name nvarchar(100) [not null, note: '이름']
741
+ new_l_aslist uniqueidentifier [note: '기술지원(구) → new_aslist']
742
+ new_l_aslistact uniqueidentifier [note: '기술지원활동 → new_asact']
743
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
744
+ statecode int [not null, note: '상태 [State]']
745
+ Note: '설문 (new_sulmoon) · 커스텀 · 총 속성 22개 · 표시 6개'
746
+ }
747
+
748
+ Table new_customersatisfaction {
749
+ new_customersatisfactionid uniqueidentifier [pk, not null, note: '기본 키']
750
+ new_name nvarchar(100) [not null, note: '이름']
751
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
752
+ statecode int [not null, note: '상태 [State]']
753
+ Note: '만족도조사 (new_customersatisfaction) · 커스텀 · 총 속성 11개 · 표시 4개'
754
+ }
755
+
756
+ Table new_customersatisfactionresult {
757
+ new_customersatisfactionresultid uniqueidentifier [pk, not null, note: '기본 키']
758
+ new_name nvarchar(100) [not null, note: '이름']
759
+ new_l_contactid uniqueidentifier [note: '연수생 → contact']
760
+ new_l_surveyid uniqueidentifier [note: 'Survey ID → new_customersatisfaction']
761
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
762
+ statecode int [not null, note: '상태 [State]']
763
+ Note: '만족도조사 결과 (new_customersatisfactionResult) · 커스텀 · 총 속성 12개 · 표시 6개'
764
+ }
765
+
766
+ // 설문 · 만족도
767
+ TableGroup "설문 만족도" {
768
+ new_sulmoon
769
+ new_customersatisfaction
770
+ new_customersatisfactionresult
771
+ }
772
+
773
+ // ─── 활동 : 활동 — 공통 상위 및 하위 유형 ────────────
774
+
775
+ Table activitypointer {
776
+ activityid uniqueidentifier [pk, not null, note: '기본 키']
777
+ Note: '활동 (ActivityPointer) · 표준 · 총 속성 0개 · 표시 1개\n사용자가 수행했거나 수행할 작업입니다. 활동은 일정에 해당 항목을 만들 수 있는 작업입니다.'
778
+ }
779
+
780
+ Table appointment {
781
+ activityid uniqueidentifier [pk, not null, note: '기본 키']
782
+ subject nvarchar(200) [not null, note: '주제']
783
+ createdby uniqueidentifier [note: '만든 사람 → systemuser']
784
+ new_l_prjact uniqueidentifier [note: '프로젝트 모듈 → new_project_act']
785
+ optionalattendees partylist [note: '보고자명단 → 참가자 목록(activityparty)']
786
+ ownerid uniqueidentifier [not null, note: '업무수행자 → 다형: systemuser, team']
787
+ regardingobjectid uniqueidentifier [note: '관련 항목 → 다형: account, bookableresourcebooking, bookableresourcebookingheader, bulkoperation 외 28']
788
+ requiredattendees partylist [note: '동행자 → 참가자 목록(activityparty)']
789
+ new_p_type int [not null, note: '약속형태 [Choice]']
790
+ scheduledend datetime [not null, note: '종료 시간']
791
+ scheduledstart datetime [not null, note: '약속날짜']
792
+ statecode int [not null, note: '상태 [State]']
793
+ statuscode int [note: '상태 설명 [Status]']
794
+ Note: '약속 (Appointment) · 표준·활동 · 총 속성 25개 · 표시 13개\n시작/종료 시간 및 기간으로 시간 간격을 표시하는 약정입니다.'
795
+ }
796
+
797
+ Table task {
798
+ activityid uniqueidentifier [pk, not null, note: '기본 키']
799
+ subject nvarchar(200) [not null, note: '주제']
800
+ createdby uniqueidentifier [note: '만든 사람 → systemuser']
801
+ new_l_prjact uniqueidentifier [note: '프로젝트 모듈 → new_project_act']
802
+ ownerid uniqueidentifier [not null, note: '업무수행자 → 다형: systemuser, team']
803
+ regardingobjectid uniqueidentifier [note: '관련 항목 → 다형: account, bookableresourcebooking, bookableresourcebookingheader, campaign 외 27']
804
+ new_p_jobtype int [not null, note: '업무타입 [Choice]']
805
+ scheduledstart datetime [not null, note: '시작 날짜']
806
+ statecode int [not null, note: '활동 상태 [State]']
807
+ Note: '작업 (Task) · 표준·활동 · 총 속성 22개 · 표시 9개\n수행해야 할 작업을 나타내는 일반 활동입니다.'
808
+ }
809
+
810
+ Table phonecall {
811
+ activityid uniqueidentifier [pk, not null, note: '기본 키']
812
+ subject nvarchar(200) [not null, note: '주제']
813
+ from partylist [not null, note: '발신 위치 → 참가자 목록(activityparty)']
814
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
815
+ regardingobjectid uniqueidentifier [note: '관련 항목 → 다형: account, bookableresourcebooking, bookableresourcebookingheader, bulkoperation 외 28']
816
+ to partylist [not null, note: '발신 대상 → 참가자 목록(activityparty)']
817
+ scheduledstart datetime [not null, note: '시작 날짜']
818
+ statecode int [not null, note: '활동 상태 [State]']
819
+ Note: '전화 통화 (PhoneCall) · 표준·활동 · 총 속성 15개 · 표시 8개\n전화 통화를 추적하는 활동입니다.'
820
+ }
821
+
822
+ Table email {
823
+ activityid uniqueidentifier [pk, not null, note: '기본 키']
824
+ subject nvarchar(200) [note: '주제']
825
+ bcc partylist [note: '숨은 참조 → 참가자 목록(activityparty)']
826
+ cc partylist [note: '참조 → 참가자 목록(activityparty)']
827
+ from partylist [note: '보낸 사람 → 참가자 목록(activityparty)']
828
+ new_l_contract uniqueidentifier [note: '관련 계약 → new_contract']
829
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
830
+ regardingobjectid uniqueidentifier [note: '관련 항목 → 다형: account, asyncoperation, bookableresourcebooking, bookableresourcebookingheader 외 29']
831
+ to partylist [note: '받는 사람 → 참가자 목록(activityparty)']
832
+ statuscode int [note: '상태 설명 [Status]']
833
+ Note: '전자 메일 (Email) · 표준·활동 · 총 속성 16개 · 표시 10개\n전자 메일 프로토콜을 사용하여 배달된 활동입니다.'
834
+ }
835
+
836
+ Table bulkoperation {
837
+ activityid uniqueidentifier [pk, not null, note: '기본 키']
838
+ subject nvarchar(200) [not null, note: '주제']
839
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
840
+ regardingobjectid uniqueidentifier [note: '가져올 파일 이름 → 다형: campaignactivity, list']
841
+ statecode int [not null, note: '상태 [State]']
842
+ statuscode int [note: '상태 설명 [Status]']
843
+ Note: '퀵 캠페인 (BulkOperation) · 표준·활동 · 총 속성 16개 · 표시 6개\n캠페인 활동이나 퀵 캠페인을 배포하는 것처럼 큰 데이터 집합에 대한 비동기 작업과 시간이 오래 걸리는 작업을 수행하는 데 사용되는 시스템 작업입니다.'
844
+ }
845
+
846
+ Table new_leave {
847
+ activityid uniqueidentifier [pk, not null, note: '기본 키']
848
+ subject nvarchar(200) [not null, note: '주제']
849
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
850
+ scheduledend datetime [not null, note: '종료 날짜']
851
+ scheduledstart datetime [not null, note: '시작 날짜']
852
+ statecode int [not null, note: '활동 상태 [State]']
853
+ Note: '휴가 (new_leave) · 커스텀·활동 · 총 속성 7개 · 표시 6개'
854
+ }
855
+
856
+ // 활동 — 공통 상위 및 하위 유형
857
+ TableGroup "활동" {
858
+ activitypointer
859
+ appointment
860
+ task
861
+ phonecall
862
+ email
863
+ bulkoperation
864
+ new_leave
865
+ }
866
+
867
+ // ─── 사내 : 사내 운영 ─────────────────────────
868
+
869
+ Table new_companyboard {
870
+ new_companyboardid uniqueidentifier [pk, not null, note: '기본 키']
871
+ new_name nvarchar(100) [not null, note: '제목']
872
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
873
+ new_p_category int [not null, note: 'BU [Choice]']
874
+ Note: '사내게시판 (new_companyboard) · 커스텀 · 총 속성 12개 · 표시 4개'
875
+ }
876
+
877
+ Table new_comment {
878
+ new_commentid uniqueidentifier [pk, not null, note: '기본 키']
879
+ new_name nvarchar(100) [not null, note: '이름']
880
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
881
+ Note: '댓글 (new_comment) · 커스텀 · 총 속성 2개 · 표시 3개'
882
+ }
883
+
884
+ Table new_attachfile {
885
+ new_attachfileid uniqueidentifier [pk, not null, note: '기본 키']
886
+ new_name nvarchar(100) [not null, note: '이름']
887
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
888
+ statecode int [not null, note: '상태 [State]']
889
+ statuscode int [note: '상태 설명 [Status]']
890
+ Note: '첨부파일 관리 (new_attachfile) · 커스텀 · 총 속성 13개 · 표시 5개'
891
+ }
892
+
893
+ Table new_weeklyreport {
894
+ new_weeklyreportid uniqueidentifier [pk, not null, note: '기본 키']
895
+ new_name nvarchar(100) [not null, note: '주간보고서명']
896
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
897
+ statecode int [not null, note: '상태 [State]']
898
+ Note: '주간업무보고 (new_weeklyreport) · 커스텀 · 총 속성 7개 · 표시 4개'
899
+ }
900
+
901
+ Table new_knowledgebase {
902
+ new_knowledgebaseid uniqueidentifier [pk, not null, note: '기본 키']
903
+ new_name nvarchar(100) [not null, note: '제목']
904
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
905
+ new_txt_contents nvarchar(max) [not null, note: '내용']
906
+ Note: '지식기반 (new_knowledgebase) · 커스텀 · 총 속성 12개 · 표시 4개'
907
+ }
908
+
909
+ // 사내 운영
910
+ TableGroup "사내" {
911
+ new_companyboard
912
+ new_comment
913
+ new_attachfile
914
+ new_weeklyreport
915
+ new_knowledgebase
916
+ }
917
+
918
+ // ─── 공통_코드 : 공통 · 코드 ───────────────────────
919
+
920
+ Table new_zipcode {
921
+ new_zipcodeid uniqueidentifier [pk, not null, note: '기본 키']
922
+ new_name nvarchar(100) [not null, note: '우편']
923
+ modifiedby uniqueidentifier [note: '수정한 사람 → systemuser']
924
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
925
+ statecode int [not null, note: '상태 [State]']
926
+ Note: '우편번호 (new_zipcode) · 커스텀 · 총 속성 14개 · 표시 5개'
927
+ }
928
+
929
+ Table new_postno5 {
930
+ new_postno5id uniqueidentifier [pk, not null, note: '기본 키']
931
+ new_name nvarchar(10) [not null, note: '우편번호']
932
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
933
+ statecode int [not null, note: '상태 [State]']
934
+ Note: '새우편번호 (new_postno5) · 커스텀 · 총 속성 3개 · 표시 4개\n5자리 우편번호'
935
+ }
936
+
937
+ Table new_menu {
938
+ new_menuid uniqueidentifier [pk, not null, note: '기본 키']
939
+ new_name nvarchar(100) [not null, note: '이름']
940
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
941
+ Note: 'Menu설정 (new_menu) · 커스텀 · 총 속성 2개 · 표시 3개'
942
+ }
943
+
944
+ Table new_crm_user {
945
+ new_crm_userid uniqueidentifier [pk, not null, note: '기본 키']
946
+ new_name nvarchar(100) [not null, note: '사용자명']
947
+ new_l_crm uniqueidentifier [note: 'CRM 사용자 → systemuser']
948
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
949
+ statecode int [not null, note: '상태 [State]']
950
+ Note: 'ERP_사용자 (new_crm_User) · 커스텀 · 총 속성 6개 · 표시 5개'
951
+ }
952
+
953
+ Table new_dev_role {
954
+ new_dev_roleid uniqueidentifier [pk, not null, note: '기본 키']
955
+ new_name nvarchar(100) [not null, note: '이름']
956
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
957
+ statecode int [not null, note: '상태 [State]']
958
+ Note: '개발보안설정 (new_dev_role) · 커스텀 · 총 속성 3개 · 표시 4개'
959
+ }
960
+
961
+ Table new_dev_role2 {
962
+ new_dev_role2id uniqueidentifier [pk, not null, note: '기본 키']
963
+ new_name nvarchar(100) [not null, note: '이름']
964
+ ownerid uniqueidentifier [not null, note: '담당자 → 다형: systemuser, team']
965
+ statecode int [not null, note: '상태 [State]']
966
+ Note: '개발보안[경영] (new_dev_role2) · 커스텀 · 총 속성 3개 · 표시 4개'
967
+ }
968
+
969
+ Table subject {
970
+ subjectid uniqueidentifier [pk, not null, note: '기본 키']
971
+ Note: '주제 (Subject) · 표준 · 총 속성 0개 · 표시 1개\n시스템에서 사용할 수 있는 주제에 대한 정보입니다.'
972
+ }
973
+
974
+ // 공통 · 코드
975
+ TableGroup "공통 코드" {
976
+ new_zipcode
977
+ new_postno5
978
+ new_menu
979
+ new_crm_user
980
+ new_dev_role
981
+ new_dev_role2
982
+ subject
983
+ }
984
+
985
+ // ─── 시스템 : 시스템 — 보안·조직 ───────────────────
986
+
987
+ Table systemuser {
988
+ systemuserid uniqueidentifier [pk, not null, note: '기본 키']
989
+ businessunitid uniqueidentifier [not null, note: '사업부 → businessunit']
990
+ defaultmailbox uniqueidentifier [note: '사서함 → mailbox']
991
+ mobileofflineprofileid uniqueidentifier [note: 'Mobile Offline 프로필 → mobileofflineprofile']
992
+ new_l_junmu uniqueidentifier [note: '기술대표 → systemuser']
993
+ new_l_localgroup uniqueidentifier [note: '지역그룹장 → systemuser']
994
+ new_l_partuser uniqueidentifier [note: '부본부장 → systemuser']
995
+ new_l_sangmu uniqueidentifier [note: '영업대표 → systemuser']
996
+ new_l_techjang uniqueidentifier [note: '기술그룹장 → systemuser']
997
+ new_l_temajang uniqueidentifier [note: '팀장 → systemuser']
998
+ parentsystemuserid uniqueidentifier [note: 'xxx-관리자 → systemuser']
999
+ positionid uniqueidentifier [note: '위치 → position']
1000
+ queueid uniqueidentifier [note: '기본 큐 → queue']
1001
+ siteid uniqueidentifier [note: '지점/사무소 → site']
1002
+ territoryid uniqueidentifier [note: '지역 → territory']
1003
+ accessmode int [not null, note: '액세스 모드 [Choice]']
1004
+ caltype int [not null, note: '라이선스 유형 [Choice]']
1005
+ domainname nvarchar(1024) [not null, note: '사용자 이름']
1006
+ firstname nvarchar(64) [not null, note: '이름']
1007
+ internalemailaddress nvarchar(100) [not null, note: '기본 메일 주소']
1008
+ invitestatuscode int [not null, note: '초대 상태 [Choice]']
1009
+ Note: '사용자 (SystemUser) · 표준 · 총 속성 56개 · 표시 21개\nMicrosoft CRM 시스템에 액세스할 수 있고 Microsoft CRM 데이터베이스의 개체를 담당하는 사람입니다.'
1010
+ }
1011
+
1012
+ Table businessunit {
1013
+ businessunitid uniqueidentifier [pk, not null, note: '기본 키']
1014
+ name nvarchar(160) [not null, note: '이름']
1015
+ parentbusinessunitid uniqueidentifier [not null, note: '상위 사업 → businessunit']
1016
+ Note: '사업부 (BusinessUnit) · 표준 · 총 속성 17개 · 표시 3개\nMicrosoft Dynamics 365 데이터베이스에 있는 사업부, 부문 또는 부서입니다.'
1017
+ }
1018
+
1019
+ Table role {
1020
+ roleid uniqueidentifier [pk, not null, note: '기본 키']
1021
+ name nvarchar(100) [not null, note: '이름']
1022
+ createdby uniqueidentifier [note: '만든 사람 → systemuser']
1023
+ modifiedby uniqueidentifier [note: '수정한 사람 → systemuser']
1024
+ parentroleid uniqueidentifier [note: '상위 역할 → role']
1025
+ Note: '보안 역할 (Role) · 표준 · 총 속성 6개 · 표시 5개\n보안 권한을 그룹화한 것입니다. 사용자는 Microsoft CRM 시스템에 대한 액세스 권한을 부여하는 역할을 할당받습니다.'
1026
+ }
1027
+
1028
+ Table owner {
1029
+ ownerid uniqueidentifier [pk, not null, note: '기본 키']
1030
+ Note: '담당자 (Owner) · 표준 · 총 속성 0개 · 표시 1개\n삭제되지 않은 시스템 사용자 및 삭제되지 않은 팀의 그룹입니다. 담당자를 사용하여 특정 개체에 대한 액세스를 제어할 수 있습니다.'
1031
+ }
1032
+
1033
+ Table resource {
1034
+ resourceid uniqueidentifier [pk, not null, note: '기본 키']
1035
+ Note: '리소스 (Resource) · 표준 · 총 속성 0개 · 표시 1개\n서비스를 위해 예약할 수 있는 사용자 또는 시설/장비입니다.'
1036
+ }
1037
+
1038
+ // 시스템 — 보안·조직
1039
+ TableGroup "시스템" {
1040
+ systemuser
1041
+ businessunit
1042
+ role
1043
+ owner
1044
+ resource
1045
+ }
1046
+
1047
+ // ─── 문서 밖 참조 대상 ──────────────────────────────
1048
+ // 엔티티 시트(75개)에는 없지만 Lookup Targets 가 지목한 대상이다.
1049
+ // 관계는 사실이므로 버리지 않고 스텁으로 남긴다. 컬럼은 알 수 없다.
1050
+
1051
+ Table campaign {
1052
+ campaignid uniqueidentifier [pk, note: '기본 키 (추정 — 문서에 없음)']
1053
+ Note: '문서 밖 엔티티 · 이 문서에 정의 없음 · 피참조 1건\n엔티티 시트에 포함되지 않아 속성을 알 수 없다.'
1054
+ }
1055
+
1056
+ Table mailbox {
1057
+ mailboxid uniqueidentifier [pk, note: '기본 키 (추정 — 문서에 없음)']
1058
+ Note: '문서 밖 엔티티 · 이 문서에 정의 없음 · 피참조 1건\n엔티티 시트에 포함되지 않아 속성을 알 수 없다.'
1059
+ }
1060
+
1061
+ Table mobileofflineprofile {
1062
+ mobileofflineprofileid uniqueidentifier [pk, note: '기본 키 (추정 — 문서에 없음)']
1063
+ Note: '문서 밖 엔티티 · 이 문서에 정의 없음 · 피참조 1건\n엔티티 시트에 포함되지 않아 속성을 알 수 없다.'
1064
+ }
1065
+
1066
+ Table new_account {
1067
+ new_accountid uniqueidentifier [pk, note: '기본 키 (추정 — 문서에 없음)']
1068
+ Note: '문서 밖 엔티티 · 이 문서에 정의 없음 · 피참조 1건\n엔티티 시트에 포함되지 않아 속성을 알 수 없다.'
1069
+ }
1070
+
1071
+ Table position {
1072
+ positionid uniqueidentifier [pk, note: '기본 키 (추정 — 문서에 없음)']
1073
+ Note: '문서 밖 엔티티 · 이 문서에 정의 없음 · 피참조 1건\n엔티티 시트에 포함되지 않아 속성을 알 수 없다.'
1074
+ }
1075
+
1076
+ Table pricelevel {
1077
+ pricelevelid uniqueidentifier [pk, note: '기본 키 (추정 — 문서에 없음)']
1078
+ Note: '문서 밖 엔티티 · 이 문서에 정의 없음 · 피참조 1건\n엔티티 시트에 포함되지 않아 속성을 알 수 없다.'
1079
+ }
1080
+
1081
+ Table queue {
1082
+ queueid uniqueidentifier [pk, note: '기본 키 (추정 — 문서에 없음)']
1083
+ Note: '문서 밖 엔티티 · 이 문서에 정의 없음 · 피참조 1건\n엔티티 시트에 포함되지 않아 속성을 알 수 없다.'
1084
+ }
1085
+
1086
+ Table service {
1087
+ serviceid uniqueidentifier [pk, note: '기본 키 (추정 — 문서에 없음)']
1088
+ Note: '문서 밖 엔티티 · 이 문서에 정의 없음 · 피참조 1건\n엔티티 시트에 포함되지 않아 속성을 알 수 없다.'
1089
+ }
1090
+
1091
+ Table site {
1092
+ siteid uniqueidentifier [pk, note: '기본 키 (추정 — 문서에 없음)']
1093
+ Note: '문서 밖 엔티티 · 이 문서에 정의 없음 · 피참조 3건\n엔티티 시트에 포함되지 않아 속성을 알 수 없다.'
1094
+ }
1095
+
1096
+ Table territory {
1097
+ territoryid uniqueidentifier [pk, note: '기본 키 (추정 — 문서에 없음)']
1098
+ Note: '문서 밖 엔티티 · 이 문서에 정의 없음 · 피참조 2건\n엔티티 시트에 포함되지 않아 속성을 알 수 없다.'
1099
+ }
1100
+
1101
+ Table transactioncurrency {
1102
+ transactioncurrencyid uniqueidentifier [pk, note: '기본 키 (추정 — 문서에 없음)']
1103
+ Note: '문서 밖 엔티티 · 이 문서에 정의 없음 · 피참조 5건\n엔티티 시트에 포함되지 않아 속성을 알 수 없다.'
1104
+ }
1105
+
1106
+ // 엔티티 시트에 없으나 Lookup 이 지목한 대상. 스텁이다.
1107
+ TableGroup "문서 밖" {
1108
+ campaign
1109
+ mailbox
1110
+ mobileofflineprofile
1111
+ new_account
1112
+ position
1113
+ pricelevel
1114
+ queue
1115
+ service
1116
+ site
1117
+ territory
1118
+ transactioncurrency
1119
+ }
1120
+
1121
+ // ═══════ 관계 — Lookup Targets 가 단일 엔티티인 것만 ═══════
1122
+
1123
+ Ref: account.new_9l_enguser09 > systemuser.systemuserid
1124
+ Ref: account.new_l_contract_contact > contact.contactid
1125
+ Ref: account.new_l_engineer > systemuser.systemuserid
1126
+ Ref: account.new_l_enguser02 > systemuser.systemuserid
1127
+ Ref: account.new_l_enguser03 > systemuser.systemuserid
1128
+ Ref: account.new_l_enguser04 > systemuser.systemuserid
1129
+ Ref: account.new_l_enguser05 > systemuser.systemuserid
1130
+ Ref: account.new_l_enguser06 > systemuser.systemuserid
1131
+ Ref: account.new_l_enguser07 > systemuser.systemuserid
1132
+ Ref: account.new_l_enguser08 > systemuser.systemuserid
1133
+ Ref: account.new_l_enguser10 > systemuser.systemuserid
1134
+ Ref: account.new_l_keyuser > contact.contactid
1135
+ Ref: account.new_l_owner02 > systemuser.systemuserid
1136
+ Ref: account.new_l_sbs1 > businessunit.businessunitid
1137
+ Ref: account.new_l_sbs2 > businessunit.businessunitid
1138
+ Ref: account.new_l_tbs1 > businessunit.businessunitid
1139
+ Ref: account.new_l_tbs2 > businessunit.businessunitid
1140
+ Ref: account.new_l_tbs3 > businessunit.businessunitid
1141
+ Ref: account.new_l_tbs4 > businessunit.businessunitid
1142
+ Ref: account.new_l_tbs5 > businessunit.businessunitid
1143
+ Ref: account.new_taxmanager > contact.contactid
1144
+ Ref: account.originatingleadid > lead.leadid
1145
+ Ref: account.parentaccountid > account.accountid
1146
+ Ref: account.primarycontactid > contact.contactid
1147
+ Ref: contact.modifiedby > systemuser.systemuserid
1148
+ Ref: contact.originatingleadid > lead.leadid
1149
+ Ref: lead.createdby > systemuser.systemuserid
1150
+ Ref: opportunity.createdby > systemuser.systemuserid
1151
+ Ref: opportunity.modifiedby > systemuser.systemuserid
1152
+ Ref: opportunity.new_l_contact > contact.contactid
1153
+ Ref: opportunity.parentaccountid > account.accountid
1154
+ Ref: opportunity.parentcontactid > contact.contactid
1155
+ Ref: new_opptyproduct.new_l_oppty > opportunity.opportunityid
1156
+ Ref: new_opptyproduct.new_product > new_product.new_productid
1157
+ Ref: new_machine.new_l_acct > account.accountid
1158
+ Ref: new_eachaccount.new_l_acct > account.accountid
1159
+ Ref: new_quot.new_l_account > account.accountid
1160
+ Ref: new_quot.new_l_contact > contact.contactid
1161
+ Ref: new_quot.new_l_copy_source > new_quot.new_quotid
1162
+ Ref: new_quot.new_l_oppty > opportunity.opportunityid
1163
+ Ref: new_quot_details.new_l_quot > new_quot.new_quotid
1164
+ Ref: new_quot_details.new_l_quot_main_g > new_quot_main_g.new_quot_main_gid
1165
+ Ref: new_quot_details.new_l_quot_main_g2 > new_quot_main_g.new_quot_main_gid
1166
+ Ref: new_quot_pdf.new_l_quotation > new_quot.new_quotid
1167
+ Ref: new_quot_main_g.new_l_largegroup > new_quot_main_g.new_quot_main_gid
1168
+ Ref: new_quot_main_g.new_l_quot > new_quot.new_quotid
1169
+ Ref: new_contract.createdby > systemuser.systemuserid
1170
+ Ref: new_contract.modifiedby > systemuser.systemuserid
1171
+ Ref: new_contract.new_l_acct > account.accountid
1172
+ Ref: new_contract.new_l_basiccontract > new_contract.new_contractid
1173
+ Ref: new_contract.new_l_calculate_contact > contact.contactid
1174
+ Ref: new_contract.new_l_contract > account.accountid
1175
+ Ref: new_contract.new_l_contractuser > contact.contactid
1176
+ Ref: new_contract.new_l_engineer > systemuser.systemuserid
1177
+ Ref: new_contract.new_l_exchange > new_exchange.new_exchangeid
1178
+ Ref: new_contract.new_l_machine > new_machine.new_machineid
1179
+ Ref: new_contract.new_l_username > contact.contactid
1180
+ Ref: new_contract_product.createdby > systemuser.systemuserid
1181
+ Ref: new_contract_product.modifiedby > systemuser.systemuserid
1182
+ Ref: new_contract_product.new_l_acct > account.accountid
1183
+ Ref: new_contract_product.new_l_contract > new_contract.new_contractid
1184
+ Ref: new_contract_product.new_l_product > new_product.new_productid
1185
+ Ref: new_taxinvoice.createdby > systemuser.systemuserid
1186
+ Ref: new_taxinvoice.modifiedby > systemuser.systemuserid
1187
+ Ref: new_taxinvoice.new_addressee > contact.contactid
1188
+ Ref: new_taxinvoice.new_l_acct > account.accountid
1189
+ Ref: new_taxinvoice.new_l_contract > new_contract.new_contractid
1190
+ Ref: new_taxinvoicehistory.new_l_income > new_income.new_incomeid
1191
+ Ref: new_income.createdby > systemuser.systemuserid
1192
+ Ref: new_income.modifiedby > systemuser.systemuserid
1193
+ Ref: new_income.new_l_acct > account.accountid
1194
+ Ref: new_income.new_l_addressee > contact.contactid
1195
+ Ref: new_income.new_l_taxinvoice > new_taxinvoice.new_taxinvoiceid
1196
+ Ref: new_po.new_l_acct > account.accountid
1197
+ Ref: new_po.new_l_contract > new_contract.new_contractid
1198
+ Ref: new_po.new_l_contract_product > new_contract_product.new_contract_productid
1199
+ Ref: new_po.new_l_product > new_product.new_productid
1200
+ Ref: new_licensekey.modifiedby > systemuser.systemuserid
1201
+ Ref: new_licensekey.new_l_acct > account.accountid
1202
+ Ref: new_licensekey.new_l_addressee > systemuser.systemuserid
1203
+ Ref: new_licensekey.new_l_approvaluser > systemuser.systemuserid
1204
+ Ref: new_licensekey.new_l_contact > contact.contactid
1205
+ Ref: new_licensekey.new_l_contract > new_contract.new_contractid
1206
+ Ref: new_licensekey.new_l_exchange > new_exchange.new_exchangeid
1207
+ Ref: new_licensekey.new_l_machine > new_machine.new_machineid
1208
+ Ref: new_licensekey.new_l_machine2 > new_machine.new_machineid
1209
+ Ref: new_licensekey.new_l_machine3 > new_machine.new_machineid
1210
+ Ref: new_licensekey.new_l_oppty > opportunity.opportunityid
1211
+ Ref: new_licensekeyproduct.new_l_account > account.accountid
1212
+ Ref: new_licensekeyproduct.new_l_exchange > new_exchange.new_exchangeid
1213
+ Ref: new_licensekeyproduct.new_l_license > new_licensekey.new_licensekeyid
1214
+ Ref: new_licensekeyproduct.new_l_product > new_product.new_productid
1215
+ Ref: new_project.new_contract > new_contract.new_contractid
1216
+ Ref: new_project.new_l_acct > account.accountid
1217
+ Ref: new_project.new_l_oppty > opportunity.opportunityid
1218
+ Ref: new_project.new_l_relconsulting > new_project.new_projectid
1219
+ Ref: new_project.new_l_salesman > systemuser.systemuserid
1220
+ Ref: new_project_act.new_l_eng02 > systemuser.systemuserid
1221
+ Ref: new_project_act.new_l_eng03 > systemuser.systemuserid
1222
+ Ref: new_project_act.new_l_eng04 > systemuser.systemuserid
1223
+ Ref: new_project_act.new_l_project > new_project.new_projectid
1224
+ Ref: new_project_activity.createdby > systemuser.systemuserid
1225
+ Ref: new_project_activity.new_l_project > new_project.new_projectid
1226
+ Ref: new_project_activity.new_l_project_act > new_project_act.new_project_actid
1227
+ Ref: new_project_activity.new_l_project_activity > new_project_activity.new_project_activityid
1228
+ Ref: new_projectbiz.new_l_businessunit > businessunit.businessunitid
1229
+ Ref: new_projectbiz.new_l_project > new_project.new_projectid
1230
+ Ref: new_pj_person.new_l_biz > businessunit.businessunitid
1231
+ Ref: new_pj_person.new_l_project > new_project.new_projectid
1232
+ Ref: new_pj_person.new_l_projectbiz > new_projectbiz.activityid
1233
+ Ref: new_pj_person.new_l_user > systemuser.systemuserid
1234
+ Ref: new_prj_contact.new_l_acct > account.accountid
1235
+ Ref: new_prj_contact.new_l_contact > contact.contactid
1236
+ Ref: new_prj_contact.new_l_project > new_project.new_projectid
1237
+ Ref: new_consulting.new_l_acct > account.accountid
1238
+ Ref: new_consulting.new_l_contact > contact.contactid
1239
+ Ref: new_consulting.new_l_oppty > opportunity.opportunityid
1240
+ Ref: new_consulting.new_l_project > new_project.new_projectid
1241
+ Ref: new_consulting.new_l_project_act > new_project_act.new_project_actid
1242
+ Ref: new_consulting_work.new_l_consulting_work > new_consulting_work.activityid
1243
+ Ref: new_consulting_work.new_l_project > new_project.new_projectid
1244
+ Ref: new_consulting_work.new_l_project_act > new_project_act.new_project_actid
1245
+ Ref: new_consultingoutsourcing.new_l_acct > account.accountid
1246
+ Ref: new_consultingoutsourcing.new_l_relconsulting > new_project.new_projectid
1247
+ Ref: new_aslist.new_l_acct > account.accountid
1248
+ Ref: new_aslist.new_l_business > businessunit.businessunitid
1249
+ Ref: new_aslist.new_l_contact > contact.contactid
1250
+ Ref: new_asact.createdby > systemuser.systemuserid
1251
+ Ref: new_asact.modifiedby > systemuser.systemuserid
1252
+ Ref: new_asact.new_l_acct > account.accountid
1253
+ Ref: new_asact.new_l_business > businessunit.businessunitid
1254
+ Ref: new_asact.new_l_contact > contact.contactid
1255
+ Ref: new_asappoint.new_l_acct > account.accountid
1256
+ Ref: new_asappoint.new_l_contact > contact.contactid
1257
+ Ref: new_asappoint.new_l_oppty > opportunity.opportunityid
1258
+ Ref: new_other_asperson.new_l_licenseacct > account.accountid
1259
+ Ref: new_other_asperson.new_l_ocontact > contact.contactid
1260
+ Ref: serviceappointment.createdby > systemuser.systemuserid
1261
+ Ref: serviceappointment.modifiedby > systemuser.systemuserid
1262
+ Ref: serviceappointment.new_l_appoint > appointment.activityid
1263
+ Ref: serviceappointment.new_l_asappoint > new_asappoint.activityid
1264
+ Ref: serviceappointment.new_l_consulting > new_consulting.activityid
1265
+ Ref: serviceappointment.new_l_dummy > equipment.equipmentid
1266
+ Ref: serviceappointment.new_l_edu > new_trainingschedule.new_trainingscheduleid
1267
+ Ref: equipment.businessunitid > businessunit.businessunitid
1268
+ Ref: resourcespec.businessunitid > businessunit.businessunitid
1269
+ Ref: constraintbasedgroup.businessunitid > businessunit.businessunitid
1270
+ Ref: new_trainingschedule.createdby > systemuser.systemuserid
1271
+ Ref: new_trainingschedule.modifiedby > systemuser.systemuserid
1272
+ Ref: new_trainingschedule.new_l_acct > account.accountid
1273
+ Ref: new_trainingschedule.new_l_contract > new_contract.new_contractid
1274
+ Ref: new_trainingschedule.new_l_trainerid > systemuser.systemuserid
1275
+ Ref: new_trainingschedule.new_l_traininglocation > account.accountid
1276
+ Ref: new_edu_participant_list.new_l_account > account.accountid
1277
+ Ref: new_edu_participant_list.new_l_contact > contact.contactid
1278
+ Ref: new_edu_participant_list.new_l_edu > new_trainingschedule.new_trainingscheduleid
1279
+ Ref: new_edu_participant_list.new_l_salesman > systemuser.systemuserid
1280
+ Ref: new_event_participant_list.new_l_account > account.accountid
1281
+ Ref: new_event_participant_list.new_l_contact > contact.contactid
1282
+ Ref: new_traineeperformanceresult.new_l_contactid > contact.contactid
1283
+ Ref: new_traineeperformanceresult.new_l_performanceid > new_traineeperformance.new_traineeperformanceid
1284
+ Ref: new_sulmoon.new_l_aslist > new_aslist.new_aslistid
1285
+ Ref: new_sulmoon.new_l_aslistact > new_asact.activityid
1286
+ Ref: new_customersatisfactionresult.new_l_contactid > contact.contactid
1287
+ Ref: new_customersatisfactionresult.new_l_surveyid > new_customersatisfaction.new_customersatisfactionid
1288
+ Ref: appointment.createdby > systemuser.systemuserid
1289
+ Ref: appointment.new_l_prjact > new_project_act.new_project_actid
1290
+ Ref: task.createdby > systemuser.systemuserid
1291
+ Ref: task.new_l_prjact > new_project_act.new_project_actid
1292
+ Ref: email.new_l_contract > new_contract.new_contractid
1293
+ Ref: new_zipcode.modifiedby > systemuser.systemuserid
1294
+ Ref: new_crm_user.new_l_crm > systemuser.systemuserid
1295
+ Ref: systemuser.businessunitid > businessunit.businessunitid
1296
+ Ref: systemuser.new_l_junmu > systemuser.systemuserid
1297
+ Ref: systemuser.new_l_localgroup > systemuser.systemuserid
1298
+ Ref: systemuser.new_l_partuser > systemuser.systemuserid
1299
+ Ref: systemuser.new_l_sangmu > systemuser.systemuserid
1300
+ Ref: systemuser.new_l_techjang > systemuser.systemuserid
1301
+ Ref: systemuser.new_l_temajang > systemuser.systemuserid
1302
+ Ref: systemuser.parentsystemuserid > systemuser.systemuserid
1303
+ Ref: businessunit.parentbusinessunitid > businessunit.businessunitid
1304
+ Ref: role.createdby > systemuser.systemuserid
1305
+ Ref: role.modifiedby > systemuser.systemuserid
1306
+ Ref: role.parentroleid > role.roleid
1307
+ Ref: lead.campaignid > campaign.campaignid
1308
+ Ref: systemuser.defaultmailbox > mailbox.mailboxid
1309
+ Ref: systemuser.mobileofflineprofileid > mobileofflineprofile.mobileofflineprofileid
1310
+ Ref: new_eachaccount.new_l_account > new_account.new_accountid
1311
+ Ref: systemuser.positionid > position.positionid
1312
+ Ref: opportunity.pricelevelid > pricelevel.pricelevelid
1313
+ Ref: systemuser.queueid > queue.queueid
1314
+ Ref: serviceappointment.serviceid > service.serviceid
1315
+ Ref: equipment.siteid > site.siteid
1316
+ Ref: serviceappointment.siteid > site.siteid
1317
+ Ref: systemuser.siteid > site.siteid
1318
+ Ref: serviceappointment.new_l_region > territory.territoryid
1319
+ Ref: systemuser.territoryid > territory.territoryid
1320
+ Ref: account.transactioncurrencyid > transactioncurrency.transactioncurrencyid
1321
+ Ref: contact.transactioncurrencyid > transactioncurrency.transactioncurrencyid
1322
+ Ref: lead.transactioncurrencyid > transactioncurrency.transactioncurrencyid
1323
+ Ref: list.transactioncurrencyid > transactioncurrency.transactioncurrencyid
1324
+ Ref: opportunity.transactioncurrencyid > transactioncurrency.transactioncurrencyid
1325
+
1326
+ // ═══════ 다형 참조 — Ref 로 그리지 않았다 ═══════
1327
+ // 대상이 둘 이상이라 DBML 의 단일 Ref 로 표현할 수 없다.
1328
+ // 하나를 임의로 고르면 없는 사실을 만드는 것이라 선을 긋지 않았다.
1329
+ // 각 컬럼의 note 에 대상이 모두 적혀 있다.
1330
+ //
1331
+ // Owner systemuser, team 62건
1332
+ // Lookup 대상 다수(활동 regardingobjectid 계열) 8건
1333
+ // Customer account, contact 3건
1334
+ // Lookup campaignactivity, list 1건
1335
+ //
1336
+ // PartyList 19건 — 활동 참가자. activityparty 를 거치는 다대다이며
1337
+ // activityparty 는 이 문서에 없다. 그려면 없는 테이블을 만드는 것이라 남기지 않았다.