테마
고객에게 부품 식별 정보 보내기
이 안내서는 현재 저장소에 구현된 Infirium 화면과 수신 처리를 기준으로 작성했습니다.
어떤 때 쓰나요?
우리 회사가 부품을 납품한 뒤, 고객에게 “이번에 납품한 부품은 이 디지털 트윈입니다”라고 알려줄 때 씁니다. 고객은 식별 정보를 자신의 제품 구성에 연결할 때 참고할 수 있습니다.
예를 들어 모터 공급사가 완성품 제조사에 모터를 납품했다면, 모터의 제조사 품번과 고유 식별 정보를 보냅니다. 고객은 어느 모터가 도착했는지 확인한 뒤, 자신이 책임지는 제품의 BOM(부품 구성표)에 연결할지 결정합니다.
전송 성공은 고객의 BOM 반영 완료가 아닙니다. 이 기능은 제품 데이터 전체를 다운로드하거나 고객 제품의 부품 구성을 대신 편집하는 작업도 아닙니다.
보내기 전 확인
- 자사에서 생성한 제품 또는 생산 인스턴스를 선택합니다. 다운로드한 타사 트윈에는 보내기 버튼이 표시되지 않습니다.
- 부품의 고유 식별자(
catenaXId, 화면의 Global Asset ID)와 제조사 품번이 있어야 합니다. 제조사 식별자가 없으면 발신 조직의 BPNL을 사용합니다. - 받는 고객의 기업 식별자(BPNL)와 커넥터 주소를 확인합니다.
- 고객 시스템도 Unique ID Push 수신 기능을 지원해야 합니다. 상대가 Infirium을 쓰는지보다 해당 수신 채널과 접근 계약이 준비되어 있는지가 중요합니다.
- 고객이 쓰는 품번을 알고 있으면 준비합니다. 보내기 창에서 입력하며 다음 전송에 자동으로 재사용되지 않습니다.
어디서 시작하나요?
| 보내려는 대상 | 화면 경로 |
|---|---|
| 제품 설계의 부품 식별 정보 | 제품 상세 → 설계 데이터 → 고객에게 부품 식별 정보 보내기 |
| 개별 생산 인스턴스의 식별 정보 | 해당 제품의 생산 인스턴스 상세 → 상단 고객에게 부품 식별 정보 보내기 |
설계 데이터 주소는 /ko/product/{productId}?tab=design-data, 인스턴스 상세 주소는 /ko/product/{productId}/instance/{instanceId}입니다. 중괄호 부분은 실제 제품·인스턴스 ID입니다.
보내는 순서
- 보낼 부품의 이름과 건수를 확인합니다. 인스턴스 화면에서는 제품명과 식별번호도 확인합니다.
- 실제로 이 부품을 납품한 고객 기업을 선택합니다. 고객은 전송할 때마다 지정합니다.
- 고객의 수신 준비 확인을 누릅니다. 이 확인은 상대 채널의 계약 준비 과정도 실행할 수 있습니다.
- 전송할 수 있다는 안내가 나오면 고객 품번과 메모를 입력합니다. 고객 품번을 알고 있다면 입력하고, 메모는 필요한 설명만 255자 이내로 작성합니다.
- 부품과 고객을 다시 확인한 뒤 전송을 누릅니다.
- 완료 또는 제외 사유를 확인합니다. 고객의 BOM 연결이 필요한 업무라면 고객 담당자에게 반영 여부를 별도로 확인합니다.
어떤 정보가 가나요?
| 정보 | 설명 |
|---|---|
| 부품의 고유 식별자 | 어떤 디지털 트윈인지 가리키는 catenaXId |
| 제조사 식별자·제조사 품번 | 누가 만든 어떤 부품인지 구분하는 정보 |
| 생산 식별번호 | 해당 유형과 값이 있으면 일련번호, 배치번호 또는 JIS 번호 |
| 고객 품번 | 보내기 창에 입력한 고객 측 품번 |
| 메모 | 보내기 창에 입력한 설명 |
현재 화면은 부모 제품, 투입 수량, 사용 위치를 지정하지 않습니다. 고객이 자기 BOM에 넣을 제품과 수량을 확정한 것으로 해석하면 안 됩니다.
결과에 따라 무엇을 하나요?
| 안내 | 의미와 다음 행동 |
|---|---|
| 수신 준비 완료 | 전송 가능한 채널이 준비되었습니다. 아직 보낸 상태는 아니므로 대상 확인 후 전송합니다. |
| 계약 진행 중 | 채널 준비가 끝나지 않았습니다. 잠시 후 다시 확인합니다. |
| 수신 기능 미지원 | 현재 상대 카탈로그에서 사용 가능한 수신 자산을 확보하지 못했습니다. 고객 담당자에게 수신 기능·자산·접근 권한을 확인해 달라고 요청합니다. |
| 상대 커넥터 주소를 알 수 없음 | 기업을 다시 선택하거나 정확한 DSP endpoint를 입력합니다. |
| 전송 성공 | 발신 측 전송이 완료되었습니다. 수신 시스템의 개별 항목 유효성이나 BOM 반영까지 보증하지 않습니다. |
| 일부만 전송 | 표시된 제외 항목과 사유를 확인합니다. 이미 보낸 항목도 있으므로 전체를 바로 재전송하지 말고 누락 항목의 식별자를 먼저 수정합니다. |
| 전송 실패 | 오류 메시지를 확인합니다. 통신 중단이라면 상대가 이미 받았는지 확인한 뒤 재시도합니다. |
제외 사유에는 조직 내에서 대상 트윈을 찾지 못함, 고유 식별자 또는 제조사 품번 누락, 동일 식별자의 중복 등이 있습니다. 현재 두 진입 화면은 한 트윈씩 보내지만, 송신 API와 대화상자는 여러 대상의 부분 전송 결과도 처리합니다. 보낼 수 있는 항목이 하나도 없으면 성공으로 표시하지 않습니다.
고객이 Infirium을 쓴다면
수신 시 실제 처리
유효한 항목은 수신 통지 원장에 **보관(STORED)**됩니다. 유효 항목이 있으면 통지 상태는 RECEIVED이며, 수신 단계의 BOM 반영 건수는 0건입니다. 항목 형식이 잘못되면 해당 사유를 기록합니다. 모든 항목을 보관하지 못하면 UNMATCHED 상태가 됩니다.
현재 웹에는 이 통지를 열어 보는 전용 수신함·전송 이력 화면이나 보관된 통지를 바로 고르는 BOM 후보 선택기가 구현되어 있지 않습니다. 따라서 “수신함에서 승인” 같은 메뉴를 찾을 필요는 없습니다. 통지 목록·상세 조회 API는 있으므로 담당 운영자에게 수신 기업, 보낸 시점, 부품 식별자를 전달해 수신 원장을 확인해 달라고 요청하세요.
공유 → 고유 ID 전송 API(/ko/sharing/unique-id-push-api)는 수신 채널 자산과 계약을 관리하는 화면입니다. 수신 통지 목록이 아닙니다.
지금 가능한 BOM 연결 경로
수신 사실 확인과 BOM 편집은 별도 작업입니다. 고객 담당자가 식별자를 확인했다면, 일반 외부 제품 연결 화면을 이용할 수 있습니다.
- 고객이 소유한 부모 제품 상세 → BOM → 편집으로 이동합니다. 다운로드한 제품은 이 편집 대상이 아닙니다.
- 외부 제품 탭을 선택합니다.
- DTR 탐색에서는 공급자의 BPNL로 연결한 뒤 목록 또는 제조사 품번으로 부품을 찾습니다. DTR 탐색에는 별도의 DTR 계약이 필요하며, Unique ID Push 수신 준비만으로 검색 권한이 생기지는 않습니다.
- DTR 탐색을 사용할 수 없으면 직접 입력을 선택합니다. 전달받은 자식 트윈
catenaXId, 공급자 BPNL, 표시명 등 화면에서 요구하는 값을 입력합니다. 직접 입력은 형식만 검사하므로 실제 트윈 존재 여부는 별도로 확인합니다. - 부품 유형과 수량·단위를 확인해 자식으로 추가합니다. 제품 설계 BOM에는 PartType을 연결합니다.
- 기존 자식까지 포함한 전체 구성을 확인하고 저장합니다. 이때 고객이 BOM 구성을 변경합니다.
이 경로는 통지에서 후보를 직접 선택하는 기능이 아닙니다. 연결 출처도 DTR 탐색 또는 직접 입력으로 남으며, 수신 통지의 적용 완료 상태로 자동 연결되지 않습니다. 인스턴스 상세의 송신 버튼과 제품 설계 BOM 편집은 서로 다른 기능입니다. 생산 인스턴스의 BOM 업무는 해당 인스턴스/자산의 지원 화면과 권한을 따로 확인하세요.
고객이 다른 솔루션을 쓴다면
같은 표준의 수신 기능과 계약이 준비되면 전송 대상이 될 수 있습니다. 다만 받은 통지를 어디에 보관하는지, 승인 화면이 있는지, 자동 연결하는지는 상대 솔루션 구현에 따라 다릅니다. Infirium의 후보 보관 방식을 타사에도 동일하게 적용해 설명하지 마세요. 고객 담당자와 수신 위치, 오류 확인 방법, BOM 반영 책임자를 미리 정하세요.
화면 이미지와 검증 범위
이 문서는 코드에서 확인한 현재 화면 경로와 처리 결과를 설명합니다. 전용 수신함과 통지 후보 선택 화면은 존재하지 않아 화면 이미지를 제공할 수 없습니다. 아래 이미지는 실제 UniqueIdPushSendDialog 컴포넌트와 최종 한국어 사전을 로컬 브라우저에서 렌더링한 안내용 캡처입니다. 예시 부품을 사용하고 조직/API 연결을 mock으로 대체했으며 외부 네트워크 요청을 차단했습니다. 운영 화면 로그인이나 실제 고객에게 전송한 결과를 촬영한 것은 아닙니다.
데스크톱 — 보내기 창

모바일 — 보내기 창

1280×1080과 390×844 화면에서 제목·설명·입력란·버튼이 보이는지 확인했습니다. 작은 화면에서 내용이 길어지면 대화상자 내부를 스크롤할 수 있습니다.
구현 근거 (개발·운영 담당자용)
- 송신 진입점:
apps/web/src/app/[lang]/(home)/product/[id]/page.tsx,apps/web/src/app/[lang]/(home)/product/[id]/instance/[instanceId]/page.tsx - 입력·준비 확인·부분 전송 표시:
apps/web/src/components/traceability/unique-id-push/UniqueIdPushSendDialog.tsx - 송신 항목 구성·제외 사유:
apps/api/src/module/unique-id-push/domain/build-connect-to-parent-items.ts,apps/api/src/module/unique-id-push/usecase/send-connect-to-parent.usecase.ts - 수신 형식 검사·후보 보관 결과:
apps/api/src/module/unique-id-push/usecase/receive-connect-to-parent.usecase.ts - 수신 원장 저장:
apps/api/src/module/integration/unique-id-push/unique-id-push.service.ts - 원장 조회 API:
GET /unique-id-push/messages,GET /unique-id-push/messages/:id(API 기본 주소 아래, 조직 인증 필요). 정의:packages/shared/interfaces/unique-id-push/unique-id-push.route.ts - 일반 BOM 편집·외부 연결:
apps/web/src/components/passport/detail/BomEditPanel.tsx,apps/web/src/components/passport/creation/ExternalBomChildPicker.tsx - 수신 채널 관리 화면:
apps/web/src/app/[lang]/(home)/sharing/unique-id-push-api/page.tsx

