diff options
| author | joonhoekim <26rote@gmail.com> | 2025-07-18 08:15:14 +0000 |
|---|---|---|
| committer | joonhoekim <26rote@gmail.com> | 2025-07-18 08:15:14 +0000 |
| commit | d8e0c42836690ddbf91b9a78d487993b22669f81 (patch) | |
| tree | 14d11305a98ac4f5da3789a43d33a83a8dcd75e6 /db/schema | |
| parent | a3b5cc9250978080a3ad269cf6c66d15de72355a (diff) | |
ECC 인터페이스 3건 WSDL(수신1, 송신2) 및 스키마(수신1) 추가
Diffstat (limited to 'db/schema')
| -rw-r--r-- | db/schema/ECC/ecc.ts | 74 | ||||
| -rw-r--r-- | db/schema/index.ts | 5 |
2 files changed, 78 insertions, 1 deletions
diff --git a/db/schema/ECC/ecc.ts b/db/schema/ECC/ecc.ts new file mode 100644 index 00000000..e836909e --- /dev/null +++ b/db/schema/ECC/ecc.ts @@ -0,0 +1,74 @@ +import { + integer, + varchar, + timestamp, + decimal, + pgSchema, +} from 'drizzle-orm/pg-core'; + +// 적용된 WSDL 파일: IF_ECC_EVCP_PR_INFORMATION.wsdl + +// WSDL 정의에서 CHG_GB, 응답할 메시지 타입(성공/실패) 및 내용은 메타데이터이다. +// 따라서 로깅 테이블에 저장하고, 별도 스키마를 생성하지는 않는다. + +// S-ERP에서 받는 ECC 데이터를 MDG와 구분하기 위해 스키마를 새로 생성한다. +export const ECCSchema = pgSchema('ecc'); + +// Table: PR_INFORMATION_T_BID_HEADER +export const PR_INFORMATION_T_BID_HEADER = ECCSchema.table( + 'PR_INFORMATION_T_BID_HEADER', + { + id: integer('id').primaryKey().generatedByDefaultAsIdentity(), + ANFNR: varchar({ length: 10 }).notNull(), // Bidding/RFQ Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl // Required + EKGRP: varchar({ length: 10 }), // Purchaing Group // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + EKORG: varchar({ length: 10 }), // Purchasing Organization // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + WERKS: varchar({ length: 10 }), // Plant // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + ZBSART: varchar({ length: 10 }).notNull(), // Bidding // From: IF_ECC_EVCP_PR_INFORMATION.wsdl // Required + ZRFQ_TRS_DT: varchar({ length: 10 }), // Date on Creating Bidding // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + ZRFQ_TRS_TM: varchar({ length: 10 }), // Time of Creating Bidding // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + + createdAt: timestamp('created_at').defaultNow().notNull(), + updatedAt: timestamp('updated_at').defaultNow().notNull(), + } +); + +// Table: PR_INFORMATION_T_BID_ITEM +export const PR_INFORMATION_T_BID_ITEM = ECCSchema.table( + 'PR_INFORMATION_T_BID_ITEM', + { + id: integer('id').primaryKey().generatedByDefaultAsIdentity(), + ANFNR: varchar({ length: 10 }).notNull(), // Bidding/RFQ Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl // Required + ANFPS: varchar({ length: 10 }).notNull(), // Item Number of Bidding // From: IF_ECC_EVCP_PR_INFORMATION.wsdl // Required + AUFNR: varchar({ length: 12 }), // Order Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + BANFN: varchar({ length: 10 }).notNull(), // Purchase Requisition Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl // Required + BANPO: varchar({ length: 10 }).notNull(), // Item Number of Purchase Requisition // From: IF_ECC_EVCP_PR_INFORMATION.wsdl // Required + BPRME: varchar({ length: 10 }), // Order Price Unit (Purchasing) // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + BRGEW: decimal({ precision: 15, scale: 3 }), // Gross Weight // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + DISMM: varchar({ length: 10 }), // MRP Type // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + EBELP: varchar({ length: 10 }), // Series PO Item Seq // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + GEWEI: varchar({ length: 10 }), // Weight Unit // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + KNTTP: varchar({ length: 10 }), // Account Assignment Category // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + KOSTL: varchar({ length: 10 }), // Cost Center // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + LFDAT: varchar({ length: 10 }), // Delivery Date // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + MATKL: varchar({ length: 10 }), // Material Group // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + MATNR: varchar({ length: 18 }), // Material Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + MEINS: varchar({ length: 10 }), // Purchase Requisition Unit of Measure // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + MENGE: decimal({ precision: 15, scale: 3 }), // Purchase Requisition Quantity // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + PEINH: integer(), // Price Unit // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + PERNR: varchar({ length: 20 }), // Employee ID // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + POSID: varchar({ length: 24 }), // WBS No // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + PREIS: decimal({ precision: 15, scale: 2 }), // Price in Purchase Requisition // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + PSPID: varchar({ length: 24 }), // Project No // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + SAKTO: varchar({ length: 10 }), // G/L Account Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + TXZ01: varchar({ length: 40 }), // Short Text // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + WAERS1: varchar({ length: 10 }), // PR Currency Key // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + WAERS2: varchar({ length: 10 }), // Reference Price Currency Key // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + ZCON_NO_PO: varchar({ length: 15 }), // PR Consolidation Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + ZREQ_FN: varchar({ length: 10 }), // P/R Request Number // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + ZREQ_PO: varchar({ length: 10 }), // Item Number of P/R Request // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + ZRSLT_AMT: decimal({ precision: 17, scale: 2 }), // Reference Price // From: IF_ECC_EVCP_PR_INFORMATION.wsdl + + createdAt: timestamp('created_at').defaultNow().notNull(), + updatedAt: timestamp('updated_at').defaultNow().notNull(), + } +); diff --git a/db/schema/index.ts b/db/schema/index.ts index b1d9ee89..0b94d109 100644 --- a/db/schema/index.ts +++ b/db/schema/index.ts @@ -36,4 +36,7 @@ export * from './MDG/mdg' export * from './SOAP/soap'; // NONSAP Oracle DB 스키마 -export * from './NONSAP/nonsap';
\ No newline at end of file +export * from './NONSAP/nonsap'; + +// ECC SOAP 수신용 (RFQ, PO, PR 데이터) +export * from './ECC/ecc';
\ No newline at end of file |
