모든 ERP와 연결

SkyPlanner의 개방형 REST API는 사내 ERP를 포함한 ERP, MES 및 운영 시스템과 연결됩니다. 직접 구축하거나 저희 팀의 도움을 받을 수 있습니다.

독립 실행도 가능 — ERP 연동은 선택사항이며 필수가 아닙니다.

연동 프로젝트 논의

다음과 같은 ERP 및 MES 시스템과 연결

연동 / ERP / ProShop ERP

ProShop ERP 연동 가이드 SkyPlanner APS로 생산 스케줄링하기

이 ProShop 연동 가이드는 관리자, 컨설턴트, IT 팀을 위해 ProShop ERP와 SkyPlanner APS를 연결하는 방법을 설명합니다. SkyPlanner는 ProShop의 자체 API를 사용해 양방향으로 연동합니다.

  • Work Orders와 해당 공정, Parts, Work Order BOM 레코드, Work Cells, Users, Tools, Fixtures, Purchase Orders를 가져옵니다.
  • 계획 시작일과 종료일을 작업지시에 다시 반영합니다.
  • 선택에 따라 작업자의 작업 시간을 ProShop Time Tracking으로 다시 전송할 수 있습니다.
  • SkyPlanner 웹훅은 일정이 변경되는 즉시 변경 사항을 전송합니다.
작업장별로 작업이 배정된 SkyPlanner APS Gantt 타임라인과 그 아래의 오더 목록.

SkyPlanner 팀은 온보딩 중에 고객의 ProShop 환경에 맞게 연동을 구성하고, 가동 후에도 지원합니다. 이 가이드는 연동에 참여하거나, 문서화된 SkyPlanner REST API(API 참조 문서)를 활용해 직접 개발하려는 파트너와 개발자를 위한 안내서입니다.

ProShop 연동 인터페이스

ProShop은 외부 스케줄러에 두 가지 연동 경로를 제공합니다. 각 경로는 ProShop API 개발자 문서에 설명되어 있습니다.

  1. ProShop GraphQL API. “ProShop provides a GraphQL API, available via HTTP(S).”(ProShop은 HTTP(S)로 이용할 수 있는 GraphQL API를 제공합니다.) 엔드포인트는 하나입니다. 모든 호출은 <proshop root>/api/graphql로 보내는 HTTP POST이며, JSON 본문에 query, variables, operationName을 포함합니다. 각 모듈에는 레코드 하나를 조회하는 단수 쿼리와 목록을 조회하는 복수 쿼리가 있습니다. 목록은 pageSize(기본값 20)와 pageStart로 페이지를 나누며, records와 totalRecords를 반환합니다. 또한 각 모듈의 Advanced Search와 동일한 검색 조건을 사용하는 filter 및 query 인수를 받습니다. 스키마는 인트로스펙션으로 조회할 수 있습니다. (ProShop API 소개)
  2. Recently Updated Records API. “A simple REST interface allows external integrations to request information between arbitrary points in time.”(간단한 REST 인터페이스로 외부 연동 시스템이 임의의 두 시점 사이의 정보를 요청할 수 있습니다.) <proshop root>/recentlyupdatedrecords를 호출할 때 start(ISO 8601)를 지정하고, 필요하면 end와 filterby를 추가합니다. 예를 들어 workorders,workcells,purchaseorders,timetracking,deletions로 필터링할 수 있습니다. 먼저 ProShop 팀이 인덱스를 활성화해야 합니다. (Recently Updated Records API)

데이터 쓰기는 GraphQL mutation으로 처리합니다. 문서에는 Time Tracking Login이 예제로 제시되어 있으며, 쓰기 권한은 권한 범위(scope)를 통해 모듈별로 부여합니다.

인증과 권한 범위

  • 모든 호출에 액세스 토큰을 포함합니다. Authorization: Bearer <token> 헤더 또는 token 쿼리 매개변수로 전송합니다.
  • OAuth 2.0 Client Credentials(ProShop 5.2.3 이상). ProShop 시스템 관리자가 System Config > Manage Authorizations를 열고 Name과 Maximum Scope를 지정해 Authorization을 생성한 뒤, Direct Login과 Active를 선택합니다. Unique ID와 Shared Secret은 각각 client_id와 client_secret으로 사용합니다. 앱은 <proshop root>/home/member/oauth/accesstoken에 grant_type=client_credentials를 POST로 전송하고, expires_in과 함께 Bearer 토큰을 받습니다. 갱신 토큰은 없으므로 만료 시 새 토큰을 요청해야 합니다. (클라이언트 자격 증명 흐름)
  • Time Tracking Login처럼 사용자 컨텍스트가 필요한 호출에는 OAuth 2.0 Authorization Flow를 사용합니다.
  • 권한 범위. 형식은 SCOPE_NAME:[{r|w|d|p}]이며, 각 문자는 읽기, 쓰기, 삭제, 환경설정을 뜻합니다. 스케줄러는 일반적으로 workorders:rw parts:r purchaseorders:r users:r tools:r을 요청하며, 작업 시간을 다시 전송한다면 Time Tracking 권한도 추가합니다. ProShop 5.1.9부터는 “a scope grant request is now required on all connections to the API.”(모든 API 연결에 권한 범위 부여 요청이 필수입니다.) (인증 권한 범위)
  • 감사 추적. 클라이언트 자격 증명으로 호출하면 사용자 대신 애플리케이션 이름이 표시됩니다.

SkyPlanner의 REST API는 Authorization-Token 헤더의 API 토큰으로 인증하며(SkyPlanner Settings > API), Swagger/OpenAPI 문서가 제공됩니다. 연동 튜토리얼에서 첫 API 호출 과정을 단계별로 안내합니다.

이벤트와 폴링

ProShop 개발자 문서에는 외부로 보내는 웹훅이나 GraphQL 구독이 설명되어 있지 않습니다. 따라서 ProShop 쪽은 폴링으로 조회하며, Recently Updated Records API를 사용하면 이때 드는 부하를 줄일 수 있습니다. 마지막 실행 이후 생성·수정·삭제된 모든 레코드를 요청하되, 스케줄에 필요한 레코드 유형으로 필터링합니다. 그런 다음 GraphQL로 변경된 작업지시를 번호별로 조회합니다. ProShop에 따르면 이 방식은 lastModifiedTime으로 조회하는 것보다 빠릅니다.

일반적으로 작업지시와 작업 시간은 다섯 분마다, 부품과 구매발주는 한 시간마다 조회합니다. SkyPlanner는 상태나 스케줄이 변경되면 웹훅을 전송하므로, 데이터를 다시 전송하는 쪽은 이벤트 기반으로 동작합니다.

데이터 매핑

ProShop 객체(API)SkyPlanner 객체방향주기
Parts, COTS(GraphQL parts 권한 범위)제품 및 자재ProShop → SkyPlanner최초 적재 후 변경 시
Work Order BOM 레코드제품 구조, 주문별 자재ProShop → SkyPlanner각 작업지시와 함께
작업지시 공정: 작업 셀, 예상 준비 시간 및 사이클 타임(목표 시간)공정별 소요 시간, 준비 시간 및 정리 시간ProShop → SkyPlanner각 작업지시와 함께
Work Cells(기계, 작업대, 장비)작업장, 작업장 그룹, 효율ProShop → SkyPlanner최초 적재 후에는 드물게
사람에게 배정된 Work Cells, Users인력 및 작업자 배정ProShop → SkyPlanner최초 적재 후 변경 시
작업 셀 일정(가용 시간, 교대근무)교대근무 및 비근무일ProShop → SkyPlanner매일 동기화하거나 SkyPlanner에서 교대근무 직접 관리
Work Orders(수량, 납기일, 상태)납기일과 우선순위가 지정된 주문 및 작업ProShop → SkyPlanner몇 분 간격으로 폴링
Tools, Toolpots, Fixtures, RTAs수량이 한정된 공유 자원으로 사용하는 공구ProShop → SkyPlanner최초 적재 후 변경 시
납기일이 지정된 Purchase Orders구매발주, 납품일별 입고 예정 자재ProShop → SkyPlanner한 시간마다 또는 스케줄링 실행 시 폴링
작업지시의 계획 시작일 및 종료일(GraphQL mutation, workorders:w)작업별 계획 시작 및 종료 시점SkyPlanner → ProShop스케줄 변경 시 SkyPlanner 웹훅으로 전송
Time Tracking: 작업지시 공정별 준비 시간, 가동 시간, 완료 부품 수량시간 기록 및 작업자 실적 등록SkyPlanner → ProShop선택 시 실적 등록 건별 또는 교대근무별
ProShop에 없음준비 시간 매트릭스, 여러 작업자가 필요한 작업, 대체 기계 및 인력SkyPlanner에서 관리온보딩 중 설정

연동 구현 방식

1. 기준정보 최초 적재. GraphQL 복수 쿼리로 Parts, Work Cells, Users, Tools, Fixtures를 페이지별로 조회합니다. 최초 적재 시에는 pageSize를 크게 설정하고 totalRecords를 기준으로 반복 조회합니다. 작업 셀의 매핑 방식도 정합니다. 기계를 나타내는 작업 셀은 작업장으로, 사람을 나타내는 작업 셀은 인력으로 매핑하면 동일한 공정에 기계와 작업자를 함께 배정할 수 있습니다.

2. 작업지시 동기화. 활성 작업지시와 해당 공정, 목표 시간, BOM 레코드 및 미결 구매발주를 조회합니다. SkyPlanner는 발주한 자재를 구매발주 납품일에 사용 가능한 것으로 처리하고, 구매발주가 Delivered로 표시되면 재고를 갱신합니다. 변경 사항은 Recently Updated Records에서 filterby=workorders,purchaseorders,deletions로 감지합니다.

3. 스케줄 역전송. 엔진이 작업을 배치하거나 이동하면 SkyPlanner 웹훅이 GraphQL mutation을 실행합니다. 이때 workorders:w가 부여된 Authorization으로 작업지시의 계획 일자를 설정합니다. 이후 ProShop의 납기 준수 예측과 구매 자재의 필요 일자는 SkyPlanner의 일자를 기준으로 산정됩니다.

4. 현장 실적 등록. 작업자는 SkyPlanner Mobile Confirmations 또는 Production Timer로 작업을 기록하며, 이 시간 기록이 스케줄을 최신 상태로 유지합니다. 실제 작업 시간을 작업지시의 해당 공정에 연결해 ProShop Time Tracking으로 다시 전송할지는 선택할 수 있습니다. 전송하지 않는 경우에는 작업자가 기존처럼 ProShop에서 시간을 기록하고, SkyPlanner가 timetracking을 통해 이를 읽어옵니다.

5. 데이터 관리 주체와 충돌 처리 규칙. 가동 전에 다음 사항을 문서로 정리하세요.

데이터관리 주체
Parts, 공정, 목표 시간, 수량, 작업지시 상태ProShop
공정 순서, 시작 및 종료 시각, 기계 및 작업자 배정SkyPlanner
작업 전환 시간 매트릭스, 공구 및 작업자 요건, 대체 자원SkyPlanner
교대조 및 비근무일범위 산정 시 선택한 단일 시스템
Time Tracking, 재고, 구매, 작업별 원가 계산ProShop에서 관리. 직접 입력하거나 SkyPlanner 시간 기록에서 전송

작업지시 일자를 기록할 시스템은 하나로 정하세요. SkyPlanner가 작업 셀의 스케줄을 관리하기 시작하면, 계획 담당자는 ProShop에서 해당 작업 셀의 목록 순서를 더 이상 변경하지 않습니다. 이렇게 해야 두 스케줄이 서로 충돌하지 않습니다.

일반적인 프로젝트 진행 단계

구축은 보통 온보딩 시작 후 몇 주 이내에 완료됩니다. 그전에 ProShop에서 작업 셀, 공정, 미결 작업지시를 CSV나 Excel로 내보내 30일 무료 체험에서 스케줄을 검증하세요.

  1. 매핑. 매핑 표, 데이터 관리 주체에 관한 규칙, 동기화 주기, 작업 시간 역전송 여부를 확정합니다.
  2. ProShop 접근 권한. 관리자가 합의된 Maximum Scope로 Authorization을 생성하고 ProShop 팀에 Recently Updated Records 활성화를 요청합니다.
  3. 최초 적재. Parts, Work Cells, Users, Tools, Fixtures, 작업 셀 일정을 가져옵니다.
  4. 작업지시 및 구매발주 동기화. 페이지 처리와 재시도를 적용해 변경 사항을 폴링합니다.
  5. SkyPlanner 제약 조건 설정. 준비 시간 매트릭스, 공구, 공정별 작업자 수, 대체 기계 또는 인력을 설정합니다.
  6. 스케줄 역전송. SkyPlanner 웹훅으로 mutation을 실행하며, 선택한 경우 Time Tracking도 포함합니다.
  7. 병행 테스트. 기존 ProShop 일정과 SkyPlanner를 병행 운영하며 날짜를 비교하고 목표 시간을 수정합니다.
  8. 정식 운영 전환. 데이터가 일치하면 역전송을 활성화합니다.

ProShop 연동 시 미리 검토할 사항

  • 목표 시간이 모든 것을 좌우합니다. ProShop은 예상 준비 시간과 사이클 시간을 바탕으로 소요 시간을 계산합니다. 최초 추정값이 아닌 현재 목표 시간을 가져오고, 준비 시간과 가동 시간을 분리하세요. 그래야 준비 시간 매트릭스로 단일 준비 시간 값을 대체할 수 있습니다.
  • 사람을 나타내는 작업 셀. 작업 셀은 사람일 수도 있습니다. 이런 작업 셀은 SkyPlanner의 기계가 아닌 인력에 매핑하세요. 그렇지 않으면 모든 작업자가 병렬로 가동되는 기계로 처리됩니다.
  • Time Tracking에는 사용자가 필요합니다. 2026년 4월부터 Time Tracking Login mutation은 “requires user context”(사용자 컨텍스트가 필요함)라는 요건에 따라 Client Credentials로는 실행할 수 없습니다. OAuth 2.0 Authorization Flow를 통해 작업자의 작업 시간을 전송하거나, ProShop에서 계속 시간을 기록하고 그 데이터를 읽어 오세요.
  • 변경 인덱스를 활성화하세요. Recently Updated Records는 ProShop 팀이 활성화한 후에만 작동합니다. 첫 주에 활성화를 요청하세요.
  • ITAR 적용 레코드. ProShop은 연결별로 ITAR 제한 대상 레코드를 필터링합니다. 해당 레코드를 null로 반환할지 결과에서 제외할지는 Developer System Config 옵션에 따라 결정됩니다. 연동에서 접근할 작업지시를 합의하고, 데이터를 읽을 때마다 null을 처리하도록 구현하세요.
  • 외주 가공. 외주업체의 공정은 소요 시간으로 반영해야 하며, 사내 생산능력을 사용하는 공정이 아닙니다. 시간만 반영하는 단계로 모델링하세요.

ProShop 연동 설정 및 지원 담당

  1. SkyPlanner 팀이 온보딩 중 연동을 설정하고 가동 후에도 지원합니다. 지원 범위는 합의된 GraphQL 쿼리, mutations 및 변경 사항 폴링입니다. 업체마다 ProShop 운영 방식이 다르므로, 그에 맞는 노하우를 설정에 반영합니다.
  2. 귀사의 ProShop 관리자 또는 컨설턴트도 참여합니다. 이들은 Authorization을 생성하고 권한 범위를 설정하며 변경 인덱스 활성화를 요청합니다. 귀사의 작업 셀 구성도 파악하고 있습니다.
  3. 사내 개발자가 연동을 확장할 수도 있습니다. API 토큰으로 SkyPlanner의 REST API를 사용하면 됩니다. API 토큰만 있으면 시작할 수 있으며, 필요할 때 SkyPlanner 팀이 지원합니다. 자세한 내용은 SkyPlanner 연동 문서에서 확인하세요.

SkyPlanner는 작업장 5개를 포함해 월 199 €부터 시작하며 매월 청구됩니다. 귀사의 프로세스와 요구사항에 맞춘 연동 견적을 요금제와 함께 사전에 제공합니다. 요금, ProShop의 실제 설비·인력 생산능력을 고려한 생산 스케줄링, ProShop ERP 페이지, SkyPlanner 기능, ERP 연동 안내를 확인하세요.

제조업체의 SkyPlanner 사용 후기

울빌라의 배전반 생산 현장에 있는 UTU 공급망 전문가 Kalle Kalliomäki

2시간매주 절약

“SkyPlanner 덕분에 Excel 스프레드시트로 생산 계획을 세우던 방식에서 벗어나 실시간으로 생산을 최적화하고 있습니다.”

Kalle Kalliomäki, 공급망 전문가
UTU · 배전반 및 개폐장치

생산 계획 업무에서 매주 2시간을 절약하며, 새로운 작업 대기열이 몇 초 만에 생산 라인에 전달됩니다.

UTU 후기 읽기

나이로비 소재 Laboratory & Allied 제약 공장의 병 충전 라인에서 방진복을 입고 일하는 작업자들

+90%생산 효율

“생산 효율이 90% 향상되었습니다.”

Abdul Rucyinga, IT 책임자
Laboratory & Allied · 의약품 제조

생산 효율이 90% 향상되었으며, 모든 작업장에 걸쳐 석 달 분량의 최적화된 계획을 세우는 데 30분도 걸리지 않습니다.

Laboratory & Allied 후기 읽기

알라해르매 공장에서 용접한 철골 구조물을 연마하는 KJH-Comp 용접사

98%납기 준수율, 약 50%에서 상승

“SkyPlanner는 납기 준수율을 유지하는 데 결정적인 역할을 합니다.”

Hannu Lahtinen, 대표이사
KJH-Comp · 판금 가공 및 위탁 제조

납기 준수율이 약 50%에서 최대 98%로 올랐고, 두 명이 필요했던 스케줄링 업무를 이제 관리자 한 명이 담당합니다.

KJH-Comp 후기 읽기

로흐야 소재 Mamec 생산 현장에 있는 Hannu Ryynänen 대표이사

수천 건(1,000s)작업지시 일정 자동 편성

“생산을 관리하는 방식이 달라졌고, 생산능력을 파악하는 수준도 완전히 달라졌습니다.”

Hannu Ryynänen, 대표이사
Mamec · 산업용 믹서, 펌프 및 첨단 위탁 제조

수천 건의 작업지시 일정이 자동으로 편성되며, 조직 전체가 생산 현황을 실시간으로 파악합니다.

Mamec 후기 읽기

자주 묻는 질문

ProShop에 API가 있나요?

네. ProShop은 <proshop root>/api/graphql에서 GraphQL API를 제공하며, OAuth 2.0 또는 Basic Authentication과 모듈별 권한 범위를 사용합니다. REST 엔드포인트인 Recently Updated Records는 지정한 기간에 생성, 수정 또는 삭제된 레코드를 반환합니다.

ProShop은 웹훅을 지원하나요?

ProShop 개발자 문서에는 아웃바운드 웹훅에 대한 설명이 없습니다. 연동에서는 업체별로 설정한 주기에 따라 Recently Updated Records API를 폴링합니다. SkyPlanner 자체 웹훅은 일정이 변경되는 즉시 변경 사항을 전송합니다.

계획 날짜는 ProShop에 어떻게 다시 반영되나요?

workorders에 대한 쓰기 권한 범위가 있는 Authorization을 사용해 작업지시에 GraphQL 뮤테이션을 실행합니다. SkyPlanner는 일정이 변경될 때마다 웹훅을 통해 이 뮤테이션을 트리거합니다.

ProShop API 인증 정보는 누가 생성하나요?

ProShop 시스템 관리자가 System Config > Manage Authorizations에서 생성합니다. Direct Login은 Client Credentials 흐름을 활성화하고, Maximum Scope는 연동에서 읽고 쓸 수 있는 범위를 제한합니다.

ProShop 컨설턴트는 ProShop 스케줄링과 SkyPlanner 중 무엇을 제안해야 하나요?

고객사의 작업 순서가 납기를 좌우한다면 SkyPlanner를 제안하세요. ProShop 일정에는 작업 셀별 우선순위와 납기 준수 예측이 표시되며, 계획 담당자가 우선순위를 조정합니다. SkyPlanner는 GraphQL API로 연결해 전체 계획을 자동으로 최적화하고, 교체 작업, 작업자, 공구 및 자재를 계획합니다. 월 199 €부터 사용자 수 제한 없이 이용할 수 있습니다.

연동을 구축하기 전에 SkyPlanner를 테스트할 수 있나요?

네. 30일 무료 체험에서는 ProShop의 CSV 또는 Excel 데이터를 가져와 최대 20개 작업장을 사용할 수 있으며, 신용카드는 필요하지 않습니다. 무료 체험을 시작하거나 영업팀에 문의해 연동 범위를 산정하세요.