본문으로 건너뛰기

처음 시작하기

Report를 작성하면서 계산을 연결할 때는 Report Workbench, 계산 Flow를 먼저 만들 때는 PXFLOW Studio 또는 Python SDK에서 시작합니다. 두 경로는 Flow가 Report와 다른 화면에 공개한 input과 result에서 연결됩니다.

Report와 Flow는 Project 안의 나란한 문서입니다. Workbench 또는 SDK로 작성한 Report 값을 Flow input에 연결하고, SDK 또는 Studio에서 구성한 Flow의 Result를 Report 위치에 표시할 수 있습니다.

시작 전에 준비하기

  1. 로그인한 뒤 My projects에서 작업할 Project를 엽니다.
  2. Project가 없다면 New project로 만들거나, 조직에서 제공한 예제 Project를 엽니다.
  3. 다른 사람이 만든 Project라면 Report 편집과 Flow 실행 권한이 있는지 확인합니다.
  4. 예제에서 사용할 Function이나 Component가 보이지 않으면 Project dependencies에서 설치 상태를 확인합니다.

Project Home의 화면 위치 보기

시작 방법 선택

Report에서 시작

  1. My projects에서 Project를 고르고 Report를 선택합니다.
  2. 새 Report를 만들고 본문, 계산 입력값 또는 표를 작성합니다.
  3. 새 table input은 빈 문단에 글자 입력 위치(caret)를 두고 @ Insert → PXFLOW → Use report input으로 connected table을 만듭니다. 기존 text나 number는 선택한 뒤 같은 메뉴로 연결할 수 있습니다. 기존 ordinary 표 범위를 직접 승격하는 경로는 아직 계획 단계입니다.
  4. 결과를 표시할 위치에서 @ Insert → PXFLOW → Show result를 선택합니다.
  5. Report를 Save하고 연결한 Flow에서 Run을 선택합니다.
  6. Report의 결과 위치와 Project Activity에서 Result를 확인합니다.

Report Workbench에서 처음 연결하기

Flow 화면에서 시작

시작 화면의 My projectsProject Home입니다. 첫 예제에 필요한 공유 Function과 Scalar Component는 이미 준비되어 있으므로 코드 작성이나 추가 설치 없이 화면 순서를 따라갈 수 있습니다.

  • Function은 여러 Flow에서 다시 쓰는 계산 기능입니다. Flow에 놓으면 그 Function을 가리키는 Function Reference Node가 됩니다.
  • Component는 아래 Components dock에서 고르는 준비된 기능 카드입니다. Canvas에 놓으면 현재 Flow의 Node가 됩니다.
  • Flow key는 Project 안에서 이 Flow만 가리키는 고유한 이름입니다. 나중에 Report 연결과 코드·CLI·AI 자동화가 이 이름으로 이 Flow를 찾습니다. 이름에 Girder utilization을 입력하면 girder_utilization_flow로 자동으로 채워지므로 첫 예제에서는 그대로 둡니다.
  1. My projects에서 작업할 Project를 고르고 PXFLOW를 선택합니다.
  2. 새 Flow의 이름과 설명을 입력하고, 자동으로 채워진 Flow key는 그대로 둡니다.
  3. 준비된 Function과 Scalar Component를 Node로 놓고 입력과 결과를 연결합니다.
  4. Validate → Save → Run 순서와 Run·Result 영역의 위치를 확인합니다.
  5. Result를 Report에 표시하려면 Report 연결 안내로 이동합니다.

화면을 따라 첫 Flow 만들기

Python에서 시작

화면 대신 코드로 반복 작성하거나 자동화할 때는 Python SDK에서 시작합니다. Flow만 만들 수도 있고, 필요하면 같은 SDK에서 Report를 작성해 Flow와 연결할 수 있습니다.

SDK 코드는 항상 from pipelinexlab import px로 시작합니다. px.는 SDK가 제공하는 객체와 데이터 계약을 찾는 이름이고, 만든 문서 안의 작업은 그 문서를 담은 변수 이름으로 이어집니다.

먼저 쓰는 코드만들어지는 객체이어서 쓰는 코드
flow = px.Flow(...)Flow 객체 flowflow.node(...), flow.connect(...)
report = px.Report(...)Report 객체 reportreport.section(...), report.save()
basis = report.section(...)Section handle basisbasis.text(...), basis.value(...)
connection = report.connect_flow(...)Connected Flow handle connectionconnection.bind(...), connection.show(...)
client = px.Client(...)Client 객체 clientclient.run(...), client.run_many(...)

이 표기 덕분에 같은 Python 파일에 public Flow 하나와 public Report 하나를 함께 작성해도 어느 문서를 바꾸는 코드인지 변수 이름에서 바로 확인할 수 있습니다. 추가 Flow는 Flow별 module로 나누고 Report module에서 필요한 Flow를 import합니다.

아래는 pip install pipelinexlab 뒤에 그대로 실행할 수 있는 가장 작은 Flow입니다. 계산 하나를 Node로 놓고 input 두 개를 연결한 뒤 result 하나를 공개하고 실행합니다.

python
from pipelinexlab import px


class CheckResults(px.Results):
    utilization: float


@px.function(
    key="check_resistance",
    version="1.0.0",
    description="Checks girder demand against resistance.",
)
def check_resistance(span: float, demand: float) -> CheckResults:
    resistance = span * 100.0
    return CheckResults(utilization=demand / resistance)


flow = px.Flow(
    "girder_check",
    label="Girder check",
    description="Checks girder demand against resistance.",
)
span = flow.input("span", float, unit="m", description="Clear span.")
demand = flow.input("demand", float, unit="kN.m", description="Design demand.")
check = flow.node("resistance_check", check_resistance)
flow.connect(span, check.inputs.span)
flow.connect(demand, check.inputs.demand)
flow.result("utilization", check.results.utilization)


if __name__ == "__main__":
    client = px.Client(workspace="engineering", project="bridge_project")
    run = client.run(flow, span=12.0, demand=860.0)

각 문장이 PXFLOW 화면에서 무엇이 되는지는 이렇게 대응합니다.

코드화면에서 보이는 것
px.Flow(...)PXFLOW의 Flow 하나
flow.input(...)Canvas에 공개된 input port
flow.node(...)Canvas의 Node 상자
flow.connect(...)Node 사이의 연결선
flow.result(...)Canvas에 공개된 result port
client.run(...)Run·Result 영역의 실행 기록

workspaceproject는 Project settings에서 확인한 값으로 바꿉니다. Report까지 같은 파일에서 작성해 report.connect_flow(...)로 연결하는 전체 예제는 아래 문서에 있습니다.

Python으로 Flow와 Report 함께 만들기

어느 경로에서 시작해도 다음 단계는 같습니다

Flow는 PXFLOW Studio 또는 Python SDK 중 편한 방식으로 구성합니다. Report도 Report Workbench 또는 Python SDK 중 편한 방식으로 작성합니다. 저장된 .pxflow.pxreport는 어느 작성 방식을 사용했는지와 관계없이 같은 Project에서 열립니다.

  • Flow를 실행하기 전에는 Validate → Save로 계산 구조를 확인합니다.
  • Report에 Flow를 연결했다면 Report를 Save한 뒤 해당 connection을 Run합니다.
  • Report가 필요 없는 Flow는 PXFLOW Studio의 Run 또는 SDK의 client.run(flow, ...)으로 바로 실행합니다.
  • 완료된 계산은 Project Activity와 Result 영역에서 확인합니다.

Run·Result 화면과 문제 확인 위치 보기

선택: Component 추가

문서, 해석 API 같은 업무 기능이 필요하면 현재 Components에서 built-in 기능을 검색합니다. third-party Component의 Available → Add to project, Project-scoped 검색과 Canvas 배치는 V2 계약 구현 뒤 production 절차로 제공합니다.

작업하면서 확인할 핵심 이름

이름쉬운 뜻화면에서 보이는 곳
ProjectReport, Flow, Component dependency와 Result를 함께 찾는 작업 공간Project Home
Report작성값·표와 Flow Result를 문서 위치에 정리하는 보고서Report Workbench
PXFLOWFlow를 만들고 살펴보는 제품 화면Project Home의 PXFLOW
Flowinput을 받아 연결된 Node로 계산하고 result를 만드는 실행 단위PXFLOW 화면
Flow keyProject 안에서 이 Flow만 가리키는 고유한 이름. Report 연결과 코드·CLI·AI 자동화가 이 이름으로 Flow를 찾습니다 (girder_utilization_flow)New Flow의 자동 제안값
Function여러 Flow에서 다시 쓰는 계산 기능Definitions → Functions
ComponentFlow에 배치하는 기능 카드. 현재는 built-in을 배치하고, 설치 package가 제공하는 Component는 계획입니다Components dock
Component package필요한 Component를 Project에 한 번에 설치하는 묶음. 현재 저장된 exact target은 unsupported이며 V2 구현 뒤 Canvas 배치를 제공합니다Project → Dependencies
NodeFlow에 놓인 한 단계PXFLOW의 상자
Run저장된 Flow를 입력값으로 한 번 계산한 실행 기록Run·Result 영역
ResultRun이 저장한 계산값과 사용한 Flow·입력값의 근거Result 영역

더 많은 용어는 처음 보는 용어에서 확인하세요.

Run과 Result 화면 보기

첫 Flow에서는 기본 Manual 실행 방식을 사용합니다. Run을 눌러 계산을 시작하고, 진행 표시가 Succeeded로 바뀌면 Result의 값과 생성 정보를 확인하세요.

화면 표시와 이용 권한

버튼이나 항목이 화면에 보이는 것과 실제로 사용할 수 있는 것은 다를 수 있습니다. 로그인, Project 접근 권한, 설치된 기능과 입력 상태에 따라 사용할 수 있는 동작이 달라집니다. 화면에 안내가 나오면 해당 Project와 입력을 먼저 확인하세요.

Save와 Run은 언제 누르나

Save는 만들어 둔 구성을 남기는 버튼이고, Run은 계산을 시작하는 버튼입니다. Save만 하면 계산값은 생기지 않습니다.

하려는 일누를 것그 결과
Node·연결·입력을 지금 상태로 남기기SaveFlow revision이 하나 저장됩니다. 계산은 아직 하지 않습니다
계산값 얻기Run저장된 revision과 입력값으로 계산이 시작되고, 끝나면 Result가 생깁니다
구성을 바꾼 뒤 새 값 얻기Save → Run바꾼 구성이 저장된 뒤 그 상태로 계산합니다

Result는 Run이 끝나면 남는 계산값입니다. 값과 함께 어떤 Flow revision과 입력값으로 나온 값인지가 같이 저장되므로, 결과를 사용하기 전에 Run 상태와 그 revision을 확인합니다. Component Node가 만드는 artifact도 Result에서 확인합니다.

작업 전에 확인할 표시

표시사용자가 할 일
Valid입력과 연결을 확인한 화면 상태빠진 입력이나 경고가 없는지 확인
Draft아직 적용하지 않은 편집 내용이 있음Apply 또는 Cancel 선택
Stale입력이나 Flow가 결과 표시 뒤 바뀜Flow를 저장하고 새 Run 시작
RunningRun이 진행 중임을 나타내는 표시진행 상태 확인 또는 필요할 때 Cancel
Partial여러 계산 중 일부만 끝났음을 나타내는 표시실패 항목과 안내 확인
Blocked입력이나 권한 때문에 진행할 수 없음화면에 제시된 조치 확인

다음: PXFLOW에서 첫 Flow 만들기

준비된 Function과 Component로 첫 Flow 따라 만들기 →

그다음 참고할 문서

개발자용 SDK 경로

Python으로 Flow나 Report를 작성·자동화하거나 재사용 Function과 Component를 개발하려면 SDK 경로를 사용하세요. 화면에서 작성하는 작업은 Report Workbench와 PXFLOW Studio에서 시작합니다.