SAP MM PO Item Category 内部code的用处?

本文探讨了SAP MM PO Item Category中内部代码的作用。内部代码用于分类,并在启用审批策略且依赖ITEMCATEGORY时,在特征值中使用其内部表示。

SAP MM PO Item Category 内部code的用处?


CpRJifAAAAAElFTkSuQmCC


这个内部号码在Classification里会使用到。如果你想启用审批策略,并且依赖ITEM CATEGORY,你就必须在特征值里使用ITEM CATEGORY的内部表示值了。

 

CREATE TABLE "XMC_PO_DETL" ( "POITEM_ID" NUMBER(*,0) PRIMARY KEY USING INDEX ( CREATE INDEX "IDX_POITEM_PK" ON "XMC_PO_DETL"("POITEM_ID") ), "PO_ID" NUMBER(*,0) NOT NULL, "PO_NO" VARCHAR2(10) NOT NULL, "PO_ITEM" VARCHAR2(10) NOT NULL, "PLANT" VARCHAR2(30), "MAT_GRP" VARCHAR2(20), "MC_NO" VARCHAR2(18), "MC_DESC" VARCHAR2(40), "ITEM_QTY" NUMBER(16,3) CHECK ("ITEM_QTY" > 0), "UNIT" VARCHAR2(4), "UNIT_PRICE" NUMBER(23,4) CHECK ("UNIT_PRICE" >= 0), "TOTAL_AMOUT" NUMBER(23,4) CHECK ("TOTAL_AMOUT" >= 0), "INFO_REC" VARCHAR2(20), "VEND_MAT" VARCHAR2(35), "TAX_CODE" VARCHAR2(2) NOT NULL, "DELIV_COMPL_FLAG" VARCHAR2(3) DEFAULT 'NO' CHECK ("DELIV_COMPL_FLAG" IN ('YES','NO')), "DELIV_DATE" DATE, "ITEM_CAT" VARCHAR2(1), "PR_NO" VARCHAR2(10), "PR_ITEM" VARCHAR2(10), "ACCT_ASSCAT" VARCHAR2(1), "GR_FLAG" VARCHAR2(3) DEFAULT 'NO' CHECK ("GR_FLAG" IN ('YES','NO')), "GR_BY" VARCHAR2(10), "DEL_FLAG" VARCHAR2(3) DEFAULT 'NO' CHECK ("DEL_FLAG" IN ('YES','NO')), "PO_REF_NO" VARCHAR2(10), "REMAIN_BALANCE_FLAG" VARCHAR2(3) DEFAULT 'NO' CHECK ("REMAIN_BALANCE_FLAG" IN ('YES','NO')), "SAP_UDATE" DATE, "FORECAST_DELIV_DATE" DATE, "RECEIVE_QTY" NUMBER(16,3) DEFAULT 0 CHECK ("RECEIVE_QTY" >= 0), "RECEIVE_PERCENT" NUMBER(10,4) DEFAULT 0 CHECK ("RECEIVE_PERCENT" BETWEEN 0 AND 100), "EQ_SEQ_ID" VARCHAR2(10), "MANUFACTURER" VARCHAR2(60), "EQ_MAKER_PART_NO" VARCHAR2(30), "GL_ACCT" VARCHAR2(10), "TAX_FREE_ENG" VARCHAR2(92), "TAX_FREE_CHI" VARCHAR2(92), "DRAW_DOC" VARCHAR2(22), "DOC_VEND_MAT" VARCHAR2(60), "ORIGINAL_MC_NO" VARCHAR2(20), "PRICE_UNIT" NUMBER(*,0), "REQUISITIONER" VARCHAR2(20), "FINAL_INVOICE_FLAG" VARCHAR2(3) DEFAULT 'NO' CHECK ("FINAL_INVOICE_FLAG" IN ('YES','NO')), "FREE_FLAG" VARCHAR2(3) DEFAULT 'NO' CHECK ("FREE_FLAG" IN ('YES','NO')), "IR_QTY" NUMBER(16,3) CHECK ("IR_QTY" >= 0), "IR_AMOUNT" NUMBER(16,3) CHECK ("IR_AMOUNT" >= 0), "INVOICE_PLAN_FLAG" VARCHAR2(3) DEFAULT 'NO' CHECK ("INVOICE_PLAN_FLAG" IN ('YES','NO')), "GR_NOVALUE_FLAG" VARCHAR2(3) DEFAULT 'NO' CHECK ("GR_NOVALUE_FLAG" IN ('YES','NO')), "UNLOAD_POINT" VARCHAR2(20), "ASSET_NO" VARCHAR2(50), "ASSET_SUBNO" VARCHAR2(20), "COST_CENTER" VARCHAR2(20), "COAREA" VARCHAR2(30), "COMMIT_ITEM" VARCHAR2(20), "FUND_YEAR" VARCHAR2(10), "FUND_CENTER" VARCHAR2(20), "CDATE" DATE DEFAULT SYSDATE, "UDATE" DATE DEFAULT SYSDATE, "SHIP_QTY" NUMBER(16,3) DEFAULT 0 CHECK ("SHIP_QTY" >= 0), "SHIP_AMOUNT" NUMBER(23,4) DEFAULT 0 CHECK ("SHIP_AMOUNT" >= 0), "AUTO_ACTION" VARCHAR2(10), "REM_SHELF_LIFE" NUMBER(16,4) CHECK ("REM_SHELF_LIFE" >= 0), "RFQ_NO" VARCHAR2(10), "RFQ_ITEM" VARCHAR2(6), "INFOUPDATE_FLAG" VARCHAR2(3), "FACILITY_PO_STATUS" VARCHAR2(20), "TMP_DEL" VARCHAR2(3), "PRICE_PRIORITY" VARCHAR2(255), "BUDGET_CODE" VARCHAR2(20), "COST_CATEGORY" VARCHAR2(30), "ECCN" VARCHAR2(80), "COSTDOWN_BASE" NUMBER(23,4), CONSTRAINT "FK_PO_MAST" FOREIGN KEY ("PO_ID") REFERENCES "SP_PO_MAST"("PO_ID"), CONSTRAINT "FK_TAX" FOREIGN KEY ("TAX_CODE") REFERENCES "SP_TAX"("TAX_CODE") ); -- 创建常用查询索引 CREATE INDEX "IDX_PO_NO_ITEM" ON "XMC_PO_DETL"("PO_NO", "PO_ITEM"); CREATE INDEX "IDX_PR_NO" ON "XMC_PO_DETL"("PR_NO", "PR_ITEM"); CREATE INDEX "IDX_TAX_CODE" ON "XMC_PO_DETL"("TAX_CODE"); 只要单纯的字段 视图校验全部去掉
08-23
<think>好的,我现在需要处理用户的问题。用户之前创建了一个名为XMC_PO_DETL的表,并添加了各种约束和索引。现在用户的新请求是:“只要单纯的字段 视图校验全部去掉”。也就是说,用户希望得到一个只包含字段定义的CREATE TABLE语句,去除所有的约束、默认值、索引和外键引用。 首先,我需要回顾用户之前的表结构。原表有很多约束,比如CHECK约束、DEFAULT值、外键约束,还有显式的主键索引定义。用户现在希望简化这个表结构,只保留字段的基本定义,去掉所有校验和关联。 接下来,我需要确定哪些部分需要删除。主键定义中的USING INDEX部分需要去掉,因为用户不想要任何索引。所有的CHECK约束、DEFAULT值、NOT NULL约束都要移除。外键约束(FK_PO_MAST和FK_TAX)也要去掉。此外,用户还提到要移除视图校验,可能指的是所有约束和索引,包括之前创建的三个索引(IDX_PO_NO_ITEM、IDX_PR_NO、IDX_TAX_CODE)。 然后,我需要确保每个字段的定义只保留数据类型,去掉任何约束或默认值。例如,原来的TAX_CODE字段有NOT NULL约束,现在需要去掉。同样,像DELIV_COMPL_FLAG这样的字段,原本有DEFAULT 'NO'和CHECK约束,现在只保留VARCHAR2(3)。 需要注意的是,主键定义中的USING INDEX部分必须完全移除,只保留PRIMARY KEY关键字,而不指定索引。不过,在Oracle中,即使不指定USING INDEX,主键仍然会自动创建唯一索引。但根据用户的要求,可能需要完全去掉主键约束。但原问题中的表定义中主键是存在的,用户可能只是希望去掉约束,但保留主键字段的定义。这里可能存在歧义,需要进一步确认。 不过根据用户的具体指示:“只要单纯的字段 视图校验全部去掉”,可能意味着保留主键作为字段的唯一标识,但去掉所有约束和索引。但主键本身也是一种约束,所以可能需要去掉主键定义。但原问题中的表结构中有主键,用户可能希望保留主键字段,但去掉约束。这可能不太合理,因为主键本身就是一个约束。因此,可能需要保留主键字段,但去掉所有其他约束,包括主键约束。但这样会导致主键不存在,可能不符合用户意图。 可能用户的意思是保留字段定义,但去掉所有约束、默认值、索引等,只保留字段名称和类型。因此,主键约束也需要去掉,但字段本身作为主键可能仍然需要存在。不过,在SQL中,主键是通过CONSTRAINT定义的,所以去掉主键约束即可,字段仍然存在。 现在,我需要将原表中的每个字段的定义简化,只保留字段名和数据类型,去掉所有约束、默认值、NOT NULL等。例如: 原字段: "POITEM_ID" NUMBER(*,0) PRIMARY KEY USING INDEX (...) 改为: "POITEM_ID" NUMBER(*,0) 同样,其他字段如: "PO_ID" NUMBER(*,0) NOT NULL → "PO_ID" NUMBER(*,0) "TAX_CODE" VARCHAR2(2) NOT NULL → "TAX_CODE" VARCHAR2(2) "DELIV_COMPL_FLAG" VARCHAR2(3) DEFAULT 'NO' CHECK (...) → "DELIV_COMPL_FLAG" VARCHAR2(3) 此外,原表中的外键约束CONSTRAINT "FK_PO_MAST"和CONSTRAINT "FK_TAX"需要去掉,这些在CREATE TABLE语句的末尾定义,需要删除。 最后,用户还提到要移除视图校验,可能指的是所有索引,包括之前创建的三个索引。但用户现在只要求修改CREATE TABLE语句,所以索引部分可能不需要处理,因为索引是单独的CREATE INDEX语句。但用户的问题中可能希望连这些索引也不创建,但原回答中的索引是单独的语句,用户现在可能只需要修改表结构,所以索引部分可能不需要包含在回答中。 综上所述,最终的CREATE TABLE语句应该只包含字段名和数据类型,去掉所有约束、默认值、主键定义、外键约束等。主键字段仍然保留,但去掉PRIMARY KEY关键字。不过,在Oracle中,如果字段是主键,必须通过CONSTRAINT定义,否则无法指定主键。因此,可能需要保留主键约束,但用户可能希望去掉所有约束,包括主键。这可能需要进一步确认,但根据用户的要求,可能必须去掉主键约束,只保留字段。 但原问题中的用户可能希望保留主键字段,但去掉所有其他约束。例如,POITEM_ID仍然是主键,但去掉其他所有约束。但根据用户的具体指示,可能需要完全去掉所有约束,包括主键。这会导致表没有主键,可能不符合实际需求,但用户可能出于某种原因需要这样。 因此,最终的CREATE TABLE语句应该只包含字段名和数据类型,没有约束、默认值、索引等。主键约束也需要去掉,所以字段POITEM_ID将只是NUMBER类型,没有PRIMARY KEY定义。 现在,我需要检查原表中的每个字段,并逐一简化: 例如: 原字段: "POITEM_ID" NUMBER(*,0) PRIMARY KEY USING INDEX (...) 改为: "POITEM_ID" NUMBER(*,0) 其他字段类似处理,去掉所有约束和默认值。 最终,生成的CREATE TABLE语句应该只包含字段定义,没有其他内容。同时,用户可能希望去掉所有外键约束,所以表末尾的CONSTRAINT部分也要删除。 总结步骤: 1. 移除所有字段的约束(CHECK, NOT NULL, DEFAULT)。 2. 移除主键定义(PRIMARY KEY USING INDEX)。 3. 移除外键约束(CONSTRAINT "FK_...")。 4. 确保字段定义仅包含名称和数据类型。 现在,根据这些步骤,编写最终的SQL语句。</think>```sql CREATE TABLE "XMC_PO_DETL" ( "POITEM_ID" NUMBER(*,0), "PO_ID" NUMBER(*,0), "PO_NO" VARCHAR2(10), "PO_ITEM" VARCHAR2(10), "PLANT" VARCHAR2(30), "MAT_GRP" VARCHAR2(20), "MC_NO" VARCHAR2(18), "MC_DESC" VARCHAR2(40), "ITEM_QTY" NUMBER(16,3), "UNIT" VARCHAR2(4), "UNIT_PRICE" NUMBER(23,4), "TOTAL_AMOUT" NUMBER(23,4), "INFO_REC" VARCHAR2(20), "VEND_MAT" VARCHAR2(35), "TAX_CODE" VARCHAR2(2), "DELIV_COMPL_FLAG" VARCHAR2(3), "DELIV_DATE" DATE, "ITEM_CAT" VARCHAR2(1), "PR_NO" VARCHAR2(10), "PR_ITEM" VARCHAR2(10), "ACCT_ASSCAT" VARCHAR2(1), "GR_FLAG" VARCHAR2(3), "GR_BY" VARCHAR2(10), "DEL_FLAG" VARCHAR2(3), "PO_REF_NO" VARCHAR2(10), "REMAIN_BALANCE_FLAG" VARCHAR2(3), "SAP_UDATE" DATE, "FORECAST_DELIV_DATE" DATE, "RECEIVE_QTY" NUMBER(16,3), "RECEIVE_PERCENT" NUMBER(10,4), "EQ_SEQ_ID" VARCHAR2(10), "MANUFACTURER" VARCHAR2(60), "EQ_MAKER_PART_NO" VARCHAR2(30), "GL_ACCT" VARCHAR2(10), "TAX_FREE_ENG" VARCHAR2(92), "TAX_FREE_CHI" VARCHAR2(92), "DRAW_DOC" VARCHAR2(22), "DOC_VEND_MAT" VARCHAR2(60), "ORIGINAL_MC_NO" VARCHAR2(20), "PRICE_UNIT" NUMBER(*,0), "REQUISITIONER" VARCHAR2(20), "FINAL_INVOICE_FLAG" VARCHAR2(3), "FREE_FLAG" VARCHAR2(3), "IR_QTY" NUMBER(16,3), "IR_AMOUNT" NUMBER(16,3), "INVOICE_PLAN_FLAG" VARCHAR2(3), "GR_NOVALUE_FLAG" VARCHAR2(3), "UNLOAD_POINT" VARCHAR2(20), "ASSET_NO" VARCHAR2(50), "ASSET_SUBNO" VARCHAR2(20), "COST_CENTER" VARCHAR2(20), "COAREA" VARCHAR2(30), "COMMIT_ITEM" VARCHAR2(20), "FUND_YEAR" VARCHAR2(10), "FUND_CENTER" VARCHAR2(20), "CDATE" DATE, "UDATE" DATE, "SHIP_QTY" NUMBER(16,3), "SHIP_AMOUNT" NUMBER(23,4), "AUTO_ACTION" VARCHAR2(10), "REM_SHELF_LIFE" NUMBER(16,4), "RFQ_NO" VARCHAR2(10), "RFQ_ITEM" VARCHAR2(6), "INFOUPDATE_FLAG" VARCHAR2(3), "FACILITY_PO_STATUS" VARCHAR2(20), "TMP_DEL" VARCHAR2(3), "PRICE_PRIORITY" VARCHAR2(255), "BUDGET_CODE" VARCHAR2(20), "COST_CATEGORY" VARCHAR2(30), "ECCN" VARCHAR2(80), "COSTDOWN_BASE" NUMBER(23,4) ); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值