@things-factory/operato-board 6.1.136 → 6.1.138

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.
@@ -0,0 +1,15 @@
1
+ ## 동영상/gif 파일 업로드시 용량 제한이 있는지? (10MB?)
2
+
3
+ - 오페라토보드 어플리케이션에서 직접 첨부파일의 용량을 제한하고 있습니다. 디폴트 제한값은 10MB 입니다.
4
+ - 파일 용량 제한은 설치 폴더의 config/config.production.js 파일에서 설정할 수 있습니다.
5
+
6
+ ```
7
+ ...,
8
+ fileUpload: {
9
+ maxFileSize: '100mb',
10
+ maxFiles: 10 // 한번에 업로드할 수 있는 파일의 최대 갯수
11
+ },
12
+ ...
13
+ ```
14
+
15
+ - 보통, 웹서버에서도 업로드 파일의 크기를 제한할 수 있으니, 웹서버 설정도 확인해보시기 바랍니다.
@@ -0,0 +1,13 @@
1
+ ## 보드 그룹이나 플레이 그룹 관리(수정, 삭제) 기능
2
+
3
+ 보드 그룹이나 플레이 그룹 이름에 마우스를 올리고 마우스 오른쪽 버튼을 누른 후 0.5초 정도 홀드(롱-클릭)하면 오른쪽에 관리 화면을 볼 수 있습니다.
4
+
5
+ 이 화면에서 이름 수정 또는 삭제할 수 있습니다.
6
+
7
+ 단, 삭제의 경우에는 그룹 내에 보드가 하나도 없는 상태에서만 가능하다.
8
+
9
+ ![board-group-management-01]
10
+ ![board-group-management-02]
11
+
12
+ [board-group-management-01]: ./images/board-group-management-01.png
13
+ [board-group-management-02]: ./images/board-group-management-02.png
@@ -0,0 +1,40 @@
1
+ ## 시나리오의 쿼리 결과(object array)를 데이터전파할 경우, 특정 프로퍼티의 값으로 필터링된 object만 전파하는 방법 (예: 프로퍼티A의 값이 A1이거나 A2인 object만 전파함)
2
+
3
+ ### 방법 1
4
+
5
+ - 데이타 바인딩시에 규칙타입중 '함수(eval)'를 사용하는 방법이 가장 간편합니다.
6
+
7
+ 예를 들어 속성 A의 값이 'A1'이거나 'A2'인 오브젝트만 전파하려면,
8
+
9
+ ```
10
+ return (value || []).filter(v => v.A == 'A1' || v.A == 'A2')
11
+ ```
12
+
13
+ 이렇게 작성하시면 됩니다.
14
+
15
+ 이것은 순수한 자바스크립트 문법입니다.
16
+
17
+ 여기에서 value는 eval의 내장변수로서, '소스 데이타'가 '접근자'를 통해서 가공된 후 eval에 전달된 값입니다.
18
+
19
+ ![filtering01]
20
+
21
+ ### 방법 2
22
+
23
+ - JSonata 의 문법을 사용하여, '접근자'에서 필터링 조건을 줄 수도 있습니다.
24
+ - 이 경우 필터링 결과가 없거나 하나인 경우에도 오브젝트 배열형태로 반환되지 않는 문제가 있습니다.
25
+ - 필터링 결과가 하나인 경우에는 오브젝트타입으로 반환됨
26
+ - 필터링 결과가 없는 경우에는 반환값이 없습니다.
27
+
28
+ ```
29
+ $filter($, function($v) { $v.A = 'A1' or $v.A = 'A2' })
30
+ ```
31
+
32
+ ![filtering02]
33
+
34
+ ### 결과
35
+
36
+ ![filtering03]
37
+
38
+ [filtering01]: ./images/data-filtering-for-object-array-01.png
39
+ [filtering02]: ./images/data-filtering-for-object-array-02.png
40
+ [filtering03]: ./images/data-filtering-for-object-array-03.png
@@ -0,0 +1,26 @@
1
+ ## 데이터 전파의 속성 차이점 (data, value, text)
2
+
3
+ - 데이터 전파의 개념은 다음 그림과 같습니다.
4
+ - 모든 컴포넌트는 data 속성을 가지고 있습니다. 이 data 속성은 데이터 전파를 위해서 활용됩니다.
5
+ - 컴포넌트의 data에 변화가 생기면, 자동으로 데이터 전파가 시작됩니다.
6
+ - 데이타 전파는 대상 컴포넌트이 여러가지 속성으로 반영될 수 있습니다.
7
+
8
+ ![concept]
9
+
10
+ - 속성들
11
+ - data
12
+ - 모든 컴포넌트들이 데이타 전파를 위해서 가지는 속성.
13
+ - 보통 이 속성은 컴포넌트의 모양이나 기능에 직접 영향을 미치지 않습니다.
14
+ - text
15
+ - 이 속성은 텍스트를 표현할 수 있는 컴포넌트의 내/외부에 문자열을 표현하기 위해 사용됩니다.
16
+ - value
17
+ - 각 컴포넌트들은 자신의 대표 속성을 가지게 됩니다. 대부분의 컴포넌트는 'text' 속성이 대표속성입니다.
18
+ - value 속성은 각 컴포넌트의 대표속성과 동일한 기능을 합니다.
19
+ - 예를 들면, 'rect' 컴포넌트의 경우에 'value'와 'text' 속성은 같은 효과를 만들게 됩니다. 'rect'의 대표 속성이 'text' 이기 때문입니다.
20
+ - 'scenario-run' 컴포넌트의 경우에 'value'는 'variables' 속성과 같은 기능을 하게됩니다. 이 속성은 시나리오 호출시에 넘겨줄 파라미터로 사용됩니다.
21
+ - 그림에서와 같이, 각 컴포넌트의 대표 속성이 무엇인지는 각 컴포넌트 도움말을 참조하시기 바랍니다.
22
+
23
+ ![value-property]
24
+
25
+ [concept]: ./images/data-spread-properties-01.png
26
+ [value-property]: ./images/data-spread-properties-02.png
@@ -0,0 +1,28 @@
1
+ ## Query 태스크의 SQL 에서 변수 사용
2
+
3
+ "시나리오 실행 컨텍스트 데이타(context data)"를 사용하기 위해서는 ${변수접근자} 형식으로 작성할 수 있다.
4
+
5
+ - SQL을 실행하는 코드에는 다음 4가지의 내장변수가 제공된다
6
+
7
+ - domain : 시나리오가 실행중인 테넌시 정보
8
+ - name: 도메인 이름
9
+ - description: 도메인 설명
10
+ - timezone : 도메인 타임존
11
+ - attributes: 도메인 속성들 (시스템 수퍼유저가 도메인에 대한 커스텀 속성을 지정할 수 있다. - 예를 들어, 회사이름, 주소, 공장코드, 대표자명 등)
12
+ - user : 시나리오를 요청한 유저 정보 (스케쥴러 등 시스템에 의해 실행되는 경우에는 사용자가 없을 수 있다.)
13
+ - name
14
+ - email
15
+ - userType
16
+ - variables : 시나리오 호출 시점에 호출자로부터 전달받은 오브젝트
17
+ - data: 시나리오 실행과정에 생성된 각 스텝의 결과 데이타
18
+
19
+ - 주의 : 변수의 타입에 맞춰서 문자열인 경우에는 '(single quotation)' 으로 감싸주어야 한다. 숫자형은 감싸지 않아도 된다.
20
+
21
+ ```
22
+ # SQL 예시
23
+
24
+ Select * from LOT
25
+ where product='${variables.search.product}' // variables : 시나리오 입력변수
26
+ and operation='${data.lot.operation}' // data : 시나리오 실행 데이타
27
+ and factory='${domain.attributes.factory}' // domain : 현재 테넌시 정보
28
+ ```
@@ -0,0 +1,36 @@
1
+ ## Script 태스크에서 변수 사용
2
+
3
+ "시나리오 실행 컨텍스트 데이타(context data)"를 사용하기 위해서는 "내장변수"를 직접 사용할 수 있다.
4
+
5
+ - Script를 실행하는 코드에는 다음 4가지의 내장변수가 제공된다
6
+
7
+ - domain : 시나리오가 실행중인 테넌시 정보
8
+ - name: 도메인 이름
9
+ - description: 도메인 설명
10
+ - timezone : 도메인 타임존
11
+ - attributes: 도메인 속성들 (시스템 수퍼유저가 도메인에 대한 커스텀 속성을 지정할 수 있다. - 예를 들어, 회사이름, 주소, 공장코드, 대표자명 등)
12
+ - user : 시나리오를 요청한 유저 정보 (스케쥴러 등 시스템에 의해 실행되는 경우에는 사용자가 없을 수 있다.)
13
+ - name
14
+ - email
15
+ - userType
16
+ - variables : 시나리오 호출 시점에 호출자로부터 전달받은 오브젝트
17
+ - data: 시나리오 실행과정에 생성된 각 스텝의 결과 데이타
18
+
19
+ ```
20
+ # Script 예시
21
+
22
+ return {
23
+ lot: {
24
+ id: data.lotId, // data : 시나리오 실행 데이타
25
+ operation: variables.oper, // variables : 시나리오 입력변수
26
+ qty: variables.qty
27
+ },
28
+ user: {
29
+ name: user?.name,
30
+ email: user?.email
31
+ },
32
+ company: {
33
+ address: domain.attributes?.address
34
+ }
35
+ }
36
+ ```
package/helps/faq.md CHANGED
@@ -31,6 +31,28 @@ A: [보드 호출시 변수 전달](./faq/data-binding-on-calling-board.md)
31
31
 
32
32
  A: [로그인 유저 정보 획득](./faq/user-credential-component.md)
33
33
 
34
+ ## 질문 6: 보드 그룹이나 플레이 리스트 삭제나 이름 변경은 어떻게 하나요 ?
35
+
36
+ A: [보드그룹/플레이리스트 수정 삭제](./faq/board-group-management.md)
37
+
38
+ ## 질문 7: Query 태스크의 SQL 이나 Script 태스크에서 변수를 사용하려면 어떻게 하나요 ?
39
+
40
+ A: [SQL내에서 변수사용](./faq/using-variable-in-SQL.md)
41
+
42
+ A: [Script내에서 변수사용](./faq/using-variable-in-script.md)
43
+
44
+ ## 질문 8: 시나리오의 쿼리 결과(object array)를 데이터전파할 경우, 특정 프로퍼티의 값으로 필터링된 object만 전파하는 방법
45
+
46
+ A: [배열데이터 필터링](./faq/data-filtering-for-object-array.md)
47
+
48
+ ## 질문 9: 데이터전파의 속성 종류 차이 (data, value, text)
49
+
50
+ A: [데이터전파 속성차이](./faq/data-spread-properties.md)
51
+
52
+ ## 질문 10: 동영상/gif 파일 업로드시 용량 제한이 있는지? (10MB?)
53
+
54
+ A: [첨부파일 용량제한](./faq/attachment-size-limitation.md)
55
+
34
56
  ---
35
57
 
36
58
  ## 운영관련 질문들
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/operato-board",
3
- "version": "6.1.136",
3
+ "version": "6.1.138",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -86,7 +86,7 @@
86
86
  "@operato/utils": "^1.0.1",
87
87
  "@things-factory/apptool-ui": "^6.1.129",
88
88
  "@things-factory/auth-ui": "^6.1.129",
89
- "@things-factory/board-service": "^6.1.135",
89
+ "@things-factory/board-service": "^6.1.137",
90
90
  "@things-factory/board-ui": "^6.1.130",
91
91
  "@things-factory/context-ui": "^6.1.129",
92
92
  "@things-factory/export-ui": "^6.1.129",
@@ -96,11 +96,11 @@
96
96
  "@things-factory/help": "^6.1.129",
97
97
  "@things-factory/i18n-base": "^6.1.129",
98
98
  "@things-factory/import-ui": "^6.1.129",
99
- "@things-factory/integration-base": "^6.1.129",
100
- "@things-factory/integration-msgraph": "^6.1.129",
101
- "@things-factory/integration-notification": "^6.1.132",
102
- "@things-factory/integration-openai": "^6.1.129",
103
- "@things-factory/integration-ui": "^6.1.129",
99
+ "@things-factory/integration-base": "^6.1.138",
100
+ "@things-factory/integration-msgraph": "^6.1.138",
101
+ "@things-factory/integration-notification": "^6.1.138",
102
+ "@things-factory/integration-openai": "^6.1.138",
103
+ "@things-factory/integration-ui": "^6.1.138",
104
104
  "@things-factory/layout-ui": "^6.1.129",
105
105
  "@things-factory/more-ui": "^6.1.129",
106
106
  "@things-factory/notification": "^6.1.132",
@@ -117,8 +117,8 @@
117
117
  "@things-factory/system-ui": "^6.1.129"
118
118
  },
119
119
  "devDependencies": {
120
- "@things-factory/board-test": "^6.1.135",
120
+ "@things-factory/board-test": "^6.1.137",
121
121
  "@things-factory/builder": "^6.1.129"
122
122
  },
123
- "gitHead": "c7e750419ae4b8d48f07c43177af637a02036512"
123
+ "gitHead": "6bcb91fa7d1647f069212383bf0ece8039e742e5"
124
124
  }
package/schema.gql CHANGED
@@ -3420,6 +3420,7 @@ type ScenarioInstance {
3420
3420
  scenarioName: String
3421
3421
  state: String
3422
3422
  timestamp: Timestamp
3423
+ user: User
3423
3424
  variables: Object
3424
3425
  }
3425
3426