Report와 PXFLOW 연결하기
Report–Flow connection 하나는 한 Flow Run에 들어갈 값과 Report로 돌아올 결과를 함께 저장하는 연결 단위입니다. Report의 여러 원본 값을 Flow의 서로 다른 input에 모아 보내고, 그 Run이 반환한 여러 result를 Report의 여러 위치에 표시합니다. connection을 만들고 저장하는 동안에는 계산하지 않으며, 사용자가 Run을 선택할 때 계산을 시작합니다.
한 Report에 connection을 여러 개 두고 Run selected를 선택하면 connection마다 독립된 Run이 생깁니다. 이 구분 덕분에 한 계산에 필요한 값은 함께 전달하면서도, 서로 관계없는 계산은 따로 실행하고 취소하거나 재시도할 수 있습니다.
예: 거더 검토 한 번 연결하기
Girder check Flow가 다음 input과 result를 Report에서 연결할 수 있도록 공개한다고 가정합니다.
| Report에서 준비한 원본 | Flow public input | 값 형태 |
|---|---|---|
24.0 m | span | number |
S355 | steel_grade | text |
true | include_self_weight | boolean |
width, depth field | section | Record |
| 선택한 계수 field의 여러 행 | factors | List |
case_key, G, Q field가 있는 표 | load_cases | Table |
| Report의 해석 모델 첨부 | analysis_model | artifact |
이 원본들을 Girder check connection 하나에 추가하면 같은 Run에 사용할 입력 mapping으로 저장됩니다. 사용자가 Run을 선택하면 이 값들이 함께 전달되어 Run 1회가 시작됩니다. Flow는 같은 Run에서 utilization, passed, case_checks, calculation_note, section_summary, checked_model처럼 여러 result를 반환할 수 있습니다.
utilizationnumber는 요약 문장과 표지의 핵심 수치에 함께 표시합니다.passedboolean과calculation_notetext는 검토 요약에 표시합니다.section_summaryRecord와case_checksTable은 field를 고른 결과 block에 표시합니다.checked_modelartifact는 전용 artifact 위치에서 엽니다.
utilization 하나를 두 Report 위치에 표시하면 두 위치가 같은 Result와 실행 근거를 가리키며 Run 한 번으로 함께 갱신됩니다.
연결 규칙 한눈에 보기
| 구성 | 허용 여부 | Review connection에서 확인할 내용 |
|---|---|---|
| Report 원본 하나 → 서로 다른 Flow input 여러 개 | 허용 | 각 destination input을 별도 mapping으로 표시 |
| Report 원본 여러 개 → Flow input 하나 | 하나로 구성 후 연결 | Record·List·Table 또는 Flow 내부 조합을 사용 |
| Flow result 하나 → 서로 다른 Report 위치 여러 곳 | 허용 | 각 위치가 같은 Result를 참조 |
| Flow result 여러 개 → Report 결과 위치 하나 | 하나로 구성 후 표시 | 결과 위치를 나누거나 Flow가 하나의 구조화된 result를 공개 |
| 한 connection에 input과 result mapping 여러 개 | 허용 | 모두 같은 Flow revision과 Run을 공유 |
| 한 Report에 connection 여러 개 | 허용 | connection마다 독립 Run과 상태를 가짐 |
연결 전에 준비할 것
- 작업할 Report를 열고 편집 권한을 확인합니다.
- 연결할 Flow를 저장하고 필요한 public input과 public result가 보이는지 확인합니다.
- 원본과 port의 type, unit, 값 형태를 비교합니다.
- Flow 실행 권한과 Result 읽기 권한을 확인합니다.
Python SDK로 만든 Flow와 PXFLOW Studio에서 만든 Flow 모두 같은 public port 목록으로 표시됩니다. Flow를 화면에서 찾는 방법은 SDK와 PXFLOW Studio의 관계를 참고하세요.
@로 연결 대상 고르기
Report 값이나 결과를 넣을 위치에서 @를 입력하면 연결할 대상을 고르는 선택 창(resolver)이 그 위치에 맞게 열립니다. 현재 Report의 automation Flow가 정해져 있으면 전체 목록을 다시 거치지 않고 호환되는 input 또는 result field부터 보여 줍니다.
기존값을 선택하면 그 값은 선택 영역으로 남고, resolver에서 선택한 public input의 stable key, type과 unit을 함께 확인할 수 있습니다.
| 하고 싶은 일 | 선택할 항목 | 연결 방향 |
|---|---|---|
| Report 값을 계산에 사용 | Use report input | Report 원본 → Flow public input |
| 계산 결과를 Report에 표시 | Insert Flow result | Flow public result → Report 위치 |
키보드에서는 방향키로 이동하고 Enter로 선택합니다. Esc는 메뉴를 닫고 글자 입력 위치(caret)를 원래 자리로 돌려주며 input 영역이나 binding을 만들지 않습니다. 일반 문자 @를 입력하려면 메뉴가 열린 직후 Backspace를 누릅니다.
연결된 input이 만들어지는 시점
빈 위치의 caret에서 @를 입력하고 Resolver의 Connect input을 확정하면 편집 가능한 input 영역과 Flow input binding이 한 번에 생깁니다. 이미 작성한 text나 number를 선택해 시작할 수도 있습니다. 선택한 내용은 새 input의 초기값이 되지만, 확정 전까지는 일반 Report 내용입니다. 빈 required input은 연결만 된 미완료 상태이며 값을 입력해 commit한 뒤에만 Run 준비 상태가 됩니다.
이름이 있는 값 여러 개를 문장이나 목록의 서로 다른 위치에 나눠 표시할 때는 각 위치에서 @를 따로 입력하고 확정합니다. 이렇게 만든 연결들은 같은 구조화된 값에 속하므로 하나의 mapping으로 함께 저장됩니다. Esc, Cancel 또는 확정 전에 안내의 Exit를 선택하면 해당 position에는 둘 다 생기지 않으며, 같은 action에서 앞서 확정한 position은 유지됩니다. Undo나 Disconnect는 binding과 input 영역을 함께 제거하고 값은 일반 Report 내용으로 되돌립니다. 주변 문장·목록·표는 바뀌지 않습니다.
새 table connection은 빈 caret에서 @로 시작합니다. Connection → Table mapping은 이렇게 만들었거나 SDK/import로 가져온 connected table의 field·row mapping을 편집합니다. 기존 ordinary 표 범위를 직접 승격하는 @ 경로는 계획 단계입니다.
예를 들어 고정하중 G와 변동하중 Q를 하나의 구조화된 input으로 보낼 때는, 두 위치에서 각각 @를 확정해 빈 연결 입력 칸을 만든 뒤 값을 입력합니다. 두 칸은 따로 확정되지만 같은 구조화된 값에 속하므로 하나의 mapping으로 함께 저장됩니다.
Report 작성값을 Flow input으로 보내기
- 새 inline input은 빈 위치에 caret를 둡니다. 기존 값을 초기값으로 쓰려면 text나 number를 선택하고, Record field·첨부는 해당 원본을 선택합니다. 새 table input은 빈 문단의 caret에서
@로 만들고, 기존 ordinary 표 범위의 직접 연결은 위의 planned 경계를 따릅니다. - inline input은
@를 입력하거나 @ Insert를 선택합니다. Record field·첨부는 선택을 유지한 채 @ Insert를 사용합니다. - 처음 연결하는 경우 PXFLOW → Project → Flow 순서로 대상을 고릅니다. 현재 Flow가 정해진 Report에서는 이 단계가 생략됩니다.
- Use report input을 선택합니다.
- 선택한 원본과 호환되는 public input을 고릅니다.
- Review connection에서
새 input 또는 선택한 Report 원본 → Flow input경로를 확인합니다. - Connect input을 선택합니다.
같은 Run에 필요한 input이 더 있으면 다음 원본을 선택해 같은 connection에 추가합니다. 한 Report 원본을 다시 선택해 다른 public input에 연결하는 구성도 지원합니다. 각 input은 한 원본만 받으므로 Review connection에 충돌이 표시되면 사용할 원본 하나를 선택합니다.
빈 caret에서 시작한 경우 Connect input을 확정하는 순간 빈 inline input 영역과 binding이 함께 만들어집니다. 이어서 그 영역에 값을 입력합니다.
연결이 끝나면 값 옆에 작은 @ 표시가 생깁니다. Connections를 켜면 port와 상태를 확인할 수 있고, 끄면 작성 표시를 숨긴 채 Report 내용에 집중할 수 있습니다.
Flow result를 Report에 표시하기
- 결과를 표시할 문장, 빈 줄, 표 field 또는 artifact 위치에 caret를 둡니다.
- @ Insert → PXFLOW → Project → Flow 순서로 들어갑니다.
- Insert Flow result를 선택합니다.
- public result를 고릅니다.
- inline 값, Record, List, Table 또는 artifact 표시 방식을 확인합니다.
- Review connection에서
Flow result → Report position경로를 확인합니다. - Insert result를 선택합니다.
같은 result를 다른 위치에도 표시하려면 새 위치에서 위 순서를 반복하고 같은 connection과 result를 선택합니다. 모든 위치가 한 Result를 읽으므로 값과 실행 근거가 함께 갱신됩니다. 한 위치에 이미 다른 result가 연결되어 있으면 Review connection에서 그 위치에 남길 result 하나를 선택합니다.
number, text와 boolean result는 문장 안의 연결된 값으로 표시할 수 있습니다. Record와 List는 선택한 field 또는 전용 result block에, Table과 artifact는 독립 result block에 표시합니다. 결과 위치는 완료된 Result를 읽기 전용으로 보여 줍니다. 값을 갱신할 때는 Report input이나 Flow를 수정한 뒤 새 Run을 시작합니다.
여러 결과 위치를 선택한 경우 resolver에서 각 행에 맞는 typed result field를 함께 확인합니다.
Record·List·Table field를 연결하기
구조화된 값은 field 이름과 type을 보면서 명시적으로 연결합니다.
| 값 형태 | Review connection에서 정할 것 | 예 |
|---|---|---|
| Record | Report field → Flow Record field | section_width → width, section_depth → depth |
| List<T> | 각 item을 공급할 Report field와 item type | factor field의 선택 행 → List<number> |
| List<Record> | item마다 Record field mapping | case_id → case_key, load → value |
| Table<Record> | 행을 식별하는 고유 key와 Report field → Flow column | case_key, G → permanent_g, Q → variable_q |
| Table result | result row key와 result field → Report field | case_key, utilization → ratio, passed → status |
필수 field, unit과 null 허용 여부도 같은 화면에 표시됩니다. Table은 현재 행 번호 대신 각 행의 고유 key로 input과 result를 맞추므로 정렬 뒤에도 같은 case를 찾습니다. 자세한 선택 방법은 Report 값과 표를 Flow input에 연결하기를 따르세요. 정확한 type 규칙은 입력·결과 type과 unit에서 확인할 수 있습니다.
저장하기 전에 연결 요약 확인하기
연결을 고르면 Report 표 안에 방향과 exact field가 표시되고, 표 아래 요약에는 연결한 Flow와 input/result 위치 수가 표시됩니다. 연결만 저장한 상태에서는 결과 셀에 Waiting for Flow가 남아 있어 아직 계산하지 않았음을 알 수 있습니다.
- Report 원본 또는 결과가 들어갈 위치
- 선택한 Project, Flow와 public input/result
- number, text, boolean, Record, List, Table 또는 artifact 형태
- type, unit, field 연결과 행의 고유 key
- 선택한 Flow와 접근 상태
- input mapping과 result position의 수
- 같은 input 또는 같은 Report 위치에 생긴 충돌
확인 뒤 연결을 저장합니다. Esc로 resolver를 닫으면 저장된 Report 상태는 바뀌지 않습니다.
각 행의 Report → Flow와 Flow → Report 방향을 확인하고, 요약에서 같은 connection에 속한 위치가 몇 개인지 확인합니다.
저장된 연결 편집하기
Connections를 켜고 값 또는 결과 셀의 @ 표시를 선택하면 해당 mapping에서 resolver를 다시 엽니다. 바꿀 target과 type·unit을 확인한 뒤 적용하고 Report를 Save하면 새 revision이 생깁니다. Flow 내부 Node와 연결을 바꾸려면 Open Flow로 PXFLOW Studio를 엽니다.
연결 직후 Undo를 실행하거나 저장된 연결에서 Disconnect를 선택하면 input 영역과 binding이 같은 편집에서 제거됩니다. 값은 일반 Report 내용으로 남습니다.
connection별 Run과 동시 실행
한 connection의 모든 input mapping은 한 Run에 함께 들어가고, 그 Run의 모든 result mapping은 같은 Result를 표시합니다. Report에서 connection 세 개를 고르고 Run selected를 선택하면 독립 Run 세 개가 시작됩니다. connection 추가와 저장은 계산 준비를 마치고, Run selected가 실제 계산을 시작합니다.
- 실행 자원이 있으면 여러 Run이 동시에 진행됩니다.
- 시작 순서와 완료 순서는 실행 시간에 따라 달라지며 Project Activity가 Run별 상태를 보여 줍니다.
- 새 Run이 현재 결과로 선택되면 늦게 끝난 이전 Run은 이력에 남고, 현재 Report 위치에는 새 Run의 Result가 유지됩니다.
- Cancel과 Retry는 선택한 Run에 적용되므로 다른 connection의 진행과 Result는 유지됩니다.
- 계산 B가 계산 A의 result를 필요로 하면 두 단계를 한 Flow 안의 Node 연결 또는 subflow로 구성합니다. Runtime이 그 Flow 내부 dependency 순서를 지키면서 실행합니다.
Report 값, Flow revision 또는 mapping이 바뀌면 결과 위치에 Stale이 표시됩니다. 마지막으로 확인한 Result는 그대로 남아 있으며, Run again으로 현재 입력의 새 Result를 만듭니다.
collection 한 번과 Batch 여러 번 구분하기
같은 표 행을 선택해도 destination input의 형태에 따라 Run 수가 달라집니다.
| 작업 | Flow input | Run 수 | case와 부분 상태 |
|---|---|---|---|
| collection 계산 | List<T> 또는 Table<Record> | 1회 | Table의 stable row key와 row status를 한 Result에 포함 가능 |
| scalar case 반복 | scalar input의 Batch Run | 확인한 case 수만큼 | stable case key마다 독립 Run 상태와 Result 표시 |
예를 들어 ULS-01, ULS-02, SLS-01 세 행을 Table input에 연결하면 Table 값 하나로 Run 한 번을 시작합니다. 같은 세 행을 Batch Run으로 준비하면 세 case key가 각각 input set과 Run을 가집니다. 일부 case만 완료되면 Batch 요약은 성공·실패·취소 상태를 case key별로 보여 주고, 완료된 Result는 그대로 사용할 수 있습니다. Cancel과 Retry는 필요한 Run을 선택해 적용합니다.
field와 case를 구성하는 자세한 방법은 Report 값과 표를 Flow input에 연결하기를 참고하세요.
Report 화면과 PXFLOW Studio 오가기
Overview에서 Open in PXFLOW Studio를 선택하면 선택한 Flow를 전체 화면으로 엽니다. Report 안의 읽기 전용 Flow 미리 보기에서는 Open standalone이 같은 역할을 합니다.
| Report Workbench에서 편집 | PXFLOW Studio에서 편집 |
|---|---|
| Report 원본과 result 위치 | public input/result 이름과 계약 |
| input/result mapping과 표시 방식 | Node와 Node 사이 연결 |
| connection의 Run 정책 | Node code, Function reference와 Component settings |
Flow public port 계약을 바꾸면 PXFLOW Studio가 사용 중인 Report와 영향을 받는 connection을 먼저 보여 줍니다.
저장 위치와 정확한 schema
| 관계 | 작성 표면 | 저장 owner |
|---|---|---|
| Report 값·표·첨부 → Flow public input | Report Workbench, Python px.Report 또는 AI·MCP | Report의 flowConnections |
| Flow public result → Report 위치 | Report Workbench, Python px.Report 또는 AI·MCP | Report의 flowConnections |
| Flow input → Node input | PXFLOW Studio, Python px.Flow 또는 AI·MCP | Flow 내부 연결 |
| Node result → 다음 Node input | PXFLOW Studio, Python px.Flow 또는 AI·MCP | Flow 내부 연결 |
Report를 저장하면 .pxreport가 Report 위치, exact Flow revision과 public port key를 함께 기록합니다. Flow의 Node와 내부 연결은 .pxflow 또는 Python source가 계속 소유합니다. SDK의 flow.connect(...)는 Flow 내부 연결을 작성할 때 사용합니다.
저장 field, mapping identity와 검증 규칙은 Report와 Flow 공개 포트 연결 명세에 모아 두었습니다. Table field schema는 Report Table 연결과 여러 case에서 확인하세요.
연결 상태 해결하기
| 상태 | 확인할 곳 | 다음 동작 |
|---|---|---|
| Draft | 연결 편집기 하단 | Apply 또는 Cancel |
| Review update | Flow와 port 변경 내역 | 새 revision과 연결 비교 후 Apply |
| Incompatible | 원본 값과 port의 type·unit·shape | 호환 input/result 선택 |
| Duplicate destination | 같은 input 또는 Report 위치의 두 mapping | 사용할 source/result 하나 선택 |
| Permission required | Report edit, Flow read/run, Result read 권한 | Request access |
| Stale | 바뀐 Report input, mapping 또는 Flow revision | Run again |
| Choose revision | 찾을 수 있는 Flow revision 목록 | 사용할 revision 선택 |
이름이 비슷한 port가 있어도 현재 connection은 저장된 public port를 계속 가리킵니다. Review update에서 새 port의 이름과 계약을 확인한 뒤 연결 대상을 바꿉니다.