TMS / EDI / EDI 990
EDI 990
1. 기본 정보
| 항목 | 내용 |
|---|---|
| 작성자 | 이샘미 |
| 최초 작성일 | 2025-12-29 |
| 최종 변경일 | 2025-12-29 |
2. 요약 및 산출물
요약
고객이 전송한 EDI 990 정보를 저장하거나, 고객에게 재전송하는 기능을 제공합니다.
주요 산출물
-
배치 작업
배치 작업을 통해 EDI 990 정보가 포함된 JSON 파일을 다운로드하고, 해당 데이터를 DynamoDB에 저장합니다. -
파일 전송 함수
EDI 204에 대한 응답으로 Accept 또는 Decline 결과를 담은 EDI 990 메시지를 JSON 파일 형태로 구성하여 고객에게 전송합니다. 전송 후에는 해당 데이터를 DynamoDB에 저장합니다.
관련 EDI 204 API
PATCH edi/204/{wo_number}/{ts}/decline
PATCH edi/204/{wo_number}/{ts}/accept
3. 타당성
고객에게 EDI 990 메시지를 전송함으로써 EDI 204에 대한 응답으로 작업 수락 또는 거절 결과를 명확히 전달합니다. 또한, 고객으로부터 수신한 EDI 990 메시지를 통해 TMS에서 전송한 EDI 210에 대한 승인 여부를 확인할 수 있습니다.
4. 기술 설명
DynamoDB 설계
| 이름 | 설명 | 비고 |
|---|---|---|
| pk | sender/woNumber로 구성 |
Partition Key |
| ts | 데이터 생성 기준 Unix timestamp | Local Sort Key |
| created_by | 데이터 생성 주체 | |
| created_date | 데이터 생성 일시 | |
| div | Division 정보 | |
| edi_info | 수신 또는 생성된 EDI 정보 | |
| file_name | SFTP에서 수신하거나 SFTP로 전송한 파일명 |
배치 작업
- 배치 작업을 통해 사전에 합의된 SFTP 서버 정보에 기반하여 파일명이 990으로 시작하는 JSON 파일을 다운로드합니다.
- 다운로드된 파일 내용을 DynamoDB에 저장합니다.
EDI 990 전송 함수
def create_990(
self,
request: Request,
data_204: dict | None,
action: str,
division: Division
) -> None:
# 1) EDI 204 데이터를 기반으로 EDI 990 메시지 구성
# - action 값에 따라 Accept 또는 Decline 응답 생성
# - Decline 시 거절 코드 및 사유 포함
# 2) EDI 990 메시지를 JSON 파일로 생성하여 사전에 합의된 SFTP 서버로 전송
# 3) 전송된 EDI 990 정보를 DynamoDB에 저장
5. 위험성 평가
-
🧩 추가 정보
-