본문으로 건너뛰기

Report Workbench 시작하기

Report Workbench는 계산 설명, 사람이 작성하는 값과 표, 계산 결과가 표시될 위치를 한 Report에서 편집하는 화면입니다. Report 원본은 Flow 밖에서 연결할 수 있도록 공개된 input으로 보내고, Flow가 공개한 result는 선택한 Report 위치에 표시합니다. 계산 결과 위치는 사용자가 직접 덮어쓰지 않으며 새 Run으로 갱신합니다.

점선은 `.pxreport`가 소유하는 Report↔Flow mapping이고, 실선은 `.pxflow`와 `flow.connect(...)`가 소유하는 Flow 내부 연결입니다. Report 연결을 만들어도 Flow Python source는 바뀌지 않습니다.

Report–Flow connection 하나에는 한 Run에 들어갈 input 여러 개와 그 Run에서 받을 result 여러 개를 함께 둘 수 있습니다. Report Workbench는 원본과 결과 위치를 편집하고, PXFLOW Studio는 Flow의 public port, Node와 계산 경로를 편집합니다.

처음 한 번에 해보기

Girder check Flow에 spanload_cases를 보내고 utilizationcase_checks를 받는 작업은 다음 순서로 끝낼 수 있습니다.

  1. Project Home → Report에서 Report를 열고 span 값을 작성합니다.
  2. span을 선택하고 @ Insert → PXFLOW → Use report input에서 span input을 연결합니다.
  3. 빈 문단에서 @load_cases Table input을 확정해 새 connected table을 만들고 값을 입력한 뒤, 같은 connection의 Connection → Table mapping에서 field·row key를 편집합니다.
  4. 요약 문장에서 글자 입력 위치(caret)를 두고 Insert Flow result에서 utilization을 삽입합니다.
  5. 빈 결과 영역에 case_checks Table result를 삽입합니다.
  6. 연결 편집기에서 Apply하고 Report를 Save한 뒤, Connected Flow의 Run을 선택합니다.
  7. Project Activity에서 Run을 열고 두 Result와 사용한 Flow·입력값을 확인합니다.
Apply와 Save까지는 계산하지 않습니다. 값이 생기는 시점은 Run 한 번입니다.

input 두 개는 같은 Run의 입력값으로 함께 들어가고, result 두 개는 그 Run의 Result에서 각 Report 위치로 표시됩니다. Apply는 연결 편집 내용을 현재 draft(아직 저장하지 않은 편집 상태)에 반영하고 Save가 새 Report revision을 만듭니다. 계산은 Run에서 시작합니다.

Report Workbench 열기

  1. Project Home에서 작업할 Project를 엽니다.
  2. Report를 선택합니다.
  3. New Report로 문서를 만들거나 목록에서 기존 Report를 엽니다.
  4. 제목과 내용을 작성한 뒤 Save합니다.

Project Home에서 Report와 PXFLOW를 여는 위치 보기

화면에서 먼저 볼 곳

화면 위치여기서 하는 일
Outline제목과 Section 사이를 이동하고 문서 구조 확인
Connections연결 표시 켜기·숨기기. I는 Report input 연결, R은 Flow result 표시
@ InsertPXFLOW input 연결, result 표시, Project data와 evidence 삽입 시작
Report only / Report + PDF문서만 보거나 PDF 작업 영역을 나란히 표시
Report 본문text, 값, Record와 표를 작성하고 Flow result 위치 선택
Project Activityconnection별 Run 진행 상태와 최근 Result 확인

위 예제에서 작성값 spanload_cases는 Report가 소유하고, 같은 연결이 돌려준 utilizationcase_checks는 읽기 전용 위치에 표시됩니다.

첫 PXFLOW connection 만들기

connection은 이 Report와 Flow 하나를 묶어 둔 관계입니다. 한 connection에 넣은 값들은 같은 Run에 함께 전달되고, 그 Run의 결과가 지정한 Report 위치로 돌아옵니다.

두 방향 모두 caret에서 @를 입력하거나 @ Insert → PXFLOW를 선택해 시작합니다.

하고 싶은 일선택할 방향Report가 기억하는 관계
Report의 값·표·첨부를 계산에 사용Use report inputReport 위치 → Flow public input
계산 결과를 Report에 표시Insert Flow resultFlow public result → Report 위치

연결된 input이 만들어지는 시점

@를 입력하면 연결할 대상을 고르는 선택 창(Resolver)이 열립니다. Report가 연결된 input을 실제로 만드는 시점은 이 Resolver에서 확정하는 순간입니다. 빈 위치의 caret에서 @를 직접 입력하고 Connect input을 확정하면, 편집 가능한 input 영역과 Flow input binding이 한 번에 생깁니다. 이미 작성한 text나 number를 선택해 시작하면 그 내용을 새 input의 초기값으로 사용하며, 확정 전까지는 일반 Report 내용으로 남습니다. 빈 required input은 연결만 된 미완료 상태이며 값을 입력해 commit한 뒤에만 Run 준비 상태가 됩니다.

이름이 있는 값 여러 개를 문장이나 목록의 서로 다른 위치에 나눠 표시할 때는 각 위치에서 @를 따로 입력하고 확정합니다. 이렇게 만든 연결들은 같은 구조화된 값에 속하므로 하나의 mapping으로 함께 저장됩니다. Esc, Cancel 또는 확정 전에 안내의 Exit를 선택하면 해당 position의 input 영역과 binding이 생기지 않습니다. 같은 action에서 앞서 확정한 다른 position은 유지됩니다. UndoDisconnect는 binding을 지우는 동시에 input 영역을 일반 내용으로 되돌립니다. 주변 문장·목록·표는 그대로 유지됩니다.

새 table connection은 빈 caret에서 @로 시작합니다. Connection → Table mapping은 이렇게 만들었거나 SDK/import로 가져온 connected table의 field·row mapping을 편집합니다. 기존 ordinary 표 범위를 직접 승격하는 @ 경로는 계획 단계입니다.

예를 들어 고정하중 G와 변동하중 Q를 하나의 구조화된 input으로 보낼 때는, 두 위치에서 각각 @를 확정해 빈 연결 입력 칸을 만든 뒤 값을 입력합니다. 두 칸은 따로 확정되지만 같은 구조화된 값에 속하므로 하나의 mapping으로 함께 저장됩니다.

작성한 값을 Flow input으로 보내기

  1. 새 inline input은 빈 위치에 caret를 둡니다. 기존 값을 초기값으로 쓰려면 text나 number를 선택하고, Record field·첨부는 해당 원본을 선택합니다. 새 table input은 빈 문단의 caret에서 @로 만들고, 기존 ordinary 표 범위의 직접 연결은 위의 planned 경계를 따릅니다.
  2. inline input은 @를 입력하거나 @ Insert를 선택합니다. Record field·첨부는 선택을 유지한 채 @ Insert를 사용합니다.
  3. PXFLOW에서 Project와 Flow를 고릅니다.
  4. Use report input을 선택합니다.
  5. type, unit과 값 형태가 맞는 public input을 고릅니다.
  6. Record·List·Table이면 Connection 탭에서 field 연결과 각 행을 계속 식별할 고유 key를 확인합니다.
  7. Review connection → Connect input을 선택합니다.

같은 Flow Run에 값이 더 필요하면 다음 원본을 선택해 같은 connection에 추가합니다. Report 값과 Flow input을 연결하는 자세한 순서

Flow result를 현재 위치에 표시하기

  1. 결과가 들어갈 문장, 표, 빈 줄 또는 artifact 위치에 caret를 둡니다.
  2. @ Insert → PXFLOW에서 Project와 Flow를 고릅니다.
  3. Insert Flow result를 선택합니다.
  4. 표시할 public result와 표현 방식을 확인합니다.
  5. Record·Table result이면 source field와 Report field를 연결합니다.
  6. Review connection → Insert result를 선택합니다.

같은 result를 다른 Report 위치에도 삽입할 수 있습니다. 두 위치는 같은 Result를 가리키므로 Run 한 번으로 함께 갱신됩니다. Flow result를 Report에 표시하는 자세한 순서

값 형태와 표시 방식

Flow input/result 형태Report에서 사용하는 방식
number단위가 있는 작성값 또는 inline Result
text작성 text 또는 inline Result
booleantrue/false 작성값 또는 상태 Result
Record이름 있는 field mapping 또는 Record result block
List여러 item을 collection 하나로 연결 또는 List result block
Table각 행의 고유 key와 field 연결이 있는 표
artifactReport 첨부를 input으로 전달하거나 artifact 위치에 Result 표시

Record·List·Table의 field 선택은 구조화된 값 mapping에서 예제로 확인할 수 있습니다.

mapping을 추가할 때 지킬 규칙

구성결과
Report 원본 하나를 서로 다른 input에 사용destination마다 mapping을 추가해 재사용
서로 다른 원본이 같은 input을 선택Duplicate destination에서 사용할 원본 하나 선택
result 하나를 여러 Report 위치에 표시모든 위치가 같은 Result와 실행 근거를 참조
여러 result가 같은 Report 위치를 선택해당 위치에 표시할 result 하나 선택

이 규칙을 포함한 전체 연결 예제는 Report와 PXFLOW 연결하기에서 확인하세요.

저장된 connection 확인하고 바꾸기

본문의 @ 표시나 연결된 result block을 더블클릭하면 연결 편집기가 열립니다.

확인하거나 바꾸는 내용
OverviewReport 위치에서 Flow port까지 이어지는 경로를 읽기 전용으로 확인
ConnectionReport 원본·결과 위치, Project, Flow와 public input/result 선택
SettingsManual 실행 같은 이 connection의 Run 정책과 Report 입력값
Advanced정확히 사용할 Flow revision, 고유 key와 schema 계약

Apply는 검토한 변경을 현재 Report draft에 한 번에 반영합니다. CancelEsc는 모달을 열기 전 draft 상태로 돌아갑니다. 새 revision은 Report의 Save에서 만들어집니다. Flow 구조를 수정하려면 Overview에서 Open in PXFLOW Studio를 선택합니다.

연결 편집기와 Overview 화면 자세히 보기

Report에서 Flow를 확인하는 범위

Overview의 Flow 화면은 현재 연결 경로를 찾는 읽기 전용 보기입니다. PanFit view로 연결된 public port와 Node 경로를 확인하고, Open standalone 또는 Open in PXFLOW Studio로 전체 Flow를 엽니다.

Report WorkbenchPXFLOW Studio
Report 원본과 result 위치 편집public input/result 계약 편집
Report–Flow mapping과 표시 방식 편집Node와 Node 사이 연결 편집
connection Run과 Result 확인Node code, Function reference, Component settings 편집

Flow public port를 바꾸면 영향받는 Report connection을 검토한 뒤 새 Flow revision을 선택합니다.

저장하고 Run하기

정식 서버 구현에서 Report 조회에는 해당 Project의 읽기 권한이, 저장에는 읽기·쓰기 권한이 모두 필요합니다. 저장 응답을 다시 확인할 때도 현재 권한을 검사합니다. 사용자 확인을 지원하는 host에 연결되면 이후 저장 요청은 처음 확인한 사용자로 고정되며 계정이 바뀌면 거절됩니다. 실제 서비스의 계정 연결·배포 검증은 별도로 남아 있습니다.

저장 응답이 원래 문서·편집과 맞지 않으면 저장 완료로 표시하지 않습니다. 저장 결과가 불확실한 경우 Retry save는 원래 요청을 다시 확인하며, 저장 중 추가로 쓴 내용은 그 확인이 끝난 뒤 다음 Save로 저장합니다.

사용자가 확인된 host와 브라우저 저장소·Web Locks를 지원하는 구성에서는 제출한 문서와 미확정 요청을 보관합니다. 새로고침 뒤 제출한 문서 복구가 나타나면 이를 선택해 원래 문서를 확인한 후 저장을 재시도합니다. 이미 저장된 요청은 저장 버전만 다시 읽습니다. 다른 사용자·Project의 요청은 복구하지 않으며, 복구를 확인하기 전에는 새 편집·실행을 보류합니다.

복구 범위는 저장 버튼을 눌렀던 당시의 문서입니다. 그 뒤 추가로 입력하고 아직 제출하지 않은 내용이나 전체 Undo 이력의 자동 저장은 지원하지 않습니다. 복구한 편집은 한 번의 Undo로 기준 문서로 돌아갈 수 있습니다. 저장소 접근·문서 검증·재조회가 실패하면 기록을 유지합니다.

  1. connection에서 Apply를 선택하고 Report를 Save합니다.
  2. exact Flow revision, public port와 required input 검증 결과를 확인합니다.
  3. Run으로 선택한 connection의 계산을 시작합니다.
  4. Project Activity에서 진행 상태를 확인합니다.
  5. 완료된 Result와 사용한 Flow revision·입력값을 Report 위치에서 검토합니다.

한 connection의 input mapping은 모두 한 Run에 들어가고 result mapping은 같은 Result를 공유합니다. Report 값, mapping 또는 Flow revision이 바뀌면 결과 위치에 Stale이 표시됩니다. Run again으로 현재 입력의 새 Result를 만듭니다.

여러 connection을 함께 실행하기

Report에서 connection을 골라 Run 또는 Run selected를 선택하면 connection마다 독립된 Flow Run이 시작됩니다. 여러 Run은 실행 자원이 있으면 동시에 진행되고, 시작·완료 순서는 달라질 수 있습니다.

  • Project Activity는 connection마다 Run과 Result 상태를 보여 줍니다.
  • CancelRetry는 선택한 Run에 적용됩니다.
  • 새 Run이 현재 결과로 선택된 뒤 늦게 끝난 이전 Run은 이력에 남고, 현재 Report 결과는 새 Run의 Result를 유지합니다.
  • 계산 순서나 데이터 의존성이 있으면 하나의 Flow 안에서 Node connection 또는 subflow로 구성합니다. Runtime이 그 dependency 순서에 맞춰 실행합니다.

connection별 Run과 동시 실행 자세히 보기

collection과 여러 계산 case

표 선택을 List<T> 또는 Table<Record> input에 연결하면 collection 값 하나로 Run 한 번을 시작합니다.

각 Report 선택은 같은 행의 Flow input 모양과 연결됩니다. 표 전체는 Table 값 하나로 전달됩니다.

각 행이 독립된 scalar input set이면 Batch Run을 선택합니다. Batch는 각 case의 고유 key마다 Run을 만들고 성공·실패·취소 상태를 따로 보여 줍니다. 일부 case가 완료된 상태에서도 성공한 Result를 유지하고 필요한 Run만 Retry할 수 있습니다.

collection 한 Run과 Batch 여러 Run 비교

저장 구조가 필요할 때

Report는 본문, 작성값, result 위치와 Report–Flow connection을 소유합니다. Flow는 외부에서 연결할 input/result, Node와 내부 연결을 소유하고, Runtime은 Run과 변경되지 않는 Result를 소유합니다. 사용자 작업에는 이 세 소유권만 구분하면 충분합니다.

.pxreport field와 exact mapping schema는 Report와 Flow 공개 포트 연결 명세에서 확인하세요.

이어서 보기

저장된 이미지와 계산 그림

보고서의 이미지 첨부와 Run에서 생성해 반영한 PNG는 저장된 Report 리비전의 파일 참조로 읽습니다. 편집 본문뿐 아니라 편집기를 사용할 수 없을 때의 본문 표시와 snapshot 기반 미리보기에서도 같은 원본을 표시합니다. 화면에 맞춰 축소해도 원본 파일과 결과 출처는 바뀌지 않습니다.

파일 reader가 없거나 접근이 거절되거나 이미지를 표시할 수 없으면 이미지 이름과 안내를 표시합니다. 보고서 버전 전환·화면 제거 시 이전 이미지 요청과 임시 URL은 정리됩니다. 그림을 읽기 위해 계산을 다시 실행하지 않습니다. PNG 이외의 생성 결과 형식과 Runtime이 렌더링한 페이지·PDF 출력은 각각의 지원 범위를 따릅니다.