工单状态的几个TABLE

控制工单状态的几个TABLE JSTO:Status object information(可输入order type的status profile查询)

JEST:Individual Object Status(输入OR00000+工单号可查询工单的所有状态Number)

TJ01:user status(自定义status)

JJ01T:user status text(自定义status文本)

TJ02:System status

TJ02T:System status text(系统状态文本) 

从JEST关联到TJ02查看Order status 。

查询工单状态方法:

系统在表AUFK中记录工单对应的系统状态对象号码(Object Number),在表Jest中记录对象所包含的状态,在表TJ02T记录状态的描述。

具体而言,三个表之间的关系关系为AUFK-OBJNR --> JEST-STAT -->  TJ02T-TXT04


生产订单的状态的存储

1.1.1 生产订单状态概览

生产订单创建时,对应的系统状态为CTRD(新建)

生产订单被释放后,其对应的系统状态为REL(释放),状态CTRD将被设置为非激活。

生产订单技术完成后,其对应的系统状态为TECO,状态REL将被设置为非激活。

如下图所示,事务代码CO03 查看生产订单 5100000064

clip_image002[12]

点击按钮” 状态”后,如下左图所示,系统默认将显示生产订单的当前有效状态(Active Status),点击按钮“过滤后,如下右图所示,系统将显示所有的状态,包括当前有效的和曾经有效的状态。

具体而言,对于生产订单5100000064

当生产订单新创建时,其状态为CTRD

当生产订单释放时,其状态变为REL,而状态CTRD将变成非激活状态。

clip_image004[12]

1.1.2 生产订单状态变更历史

可以在系统中查看生产订单的状态的变更历史

clip_image006[14]

点击按钮“choose“或者”All changes”或者“History”可以看到状态的变更历史

生产订单的状态的存储

clip_image008[12]

1.1.3 生产订单状态存储

系统在表AUFK中记录工单对应的系统状态对象号码(Object Number),在表Jest中记录对象所包含的状态,在表TJ02T记录状态的描述。

具体而言,三个表之间的关系关系为AUFK-OBJNR --> JEST-STAT -->  TJ02T-TXT04

clip_image010[14]

JEST-INACT 为X的,则是非激活的,过滤掉就行了。

clip_image012[17]

clip_image014[14]


http://hi.baidu.com/sap_andy/item/f40d60c8f857425abdef699f

<think>首先,用户的问题是:“我想查找SAP系统中关于水电费分摊只分摊到当月DLV状态工单的配置详细步骤”。用户具体问的是SAP水电费分摊配置步骤,只分摊到当月DLV状态工单。从对话历史中,用户上次的问题是关于SAP水电费分摊的完整解决方案,我给出了包括配置步骤的详细回答。用户现在再次询问配置详细步骤,具体针对当月DLV状态工单。参考站内引用:用户提供了几个引用:-引用[1]:关于SAPABAP表dlv_systc的勘误,与当前问题无关。-引用[2]:关于SAPFICO月结中的完工工单成本差异计算和工单结算,部分相关。-引用[3]:关于SAP生产工单报工的状态管理,包括DLV和TECO状态,非常相关。特别提到在JEST表中一个工单可能有多个状态,如DLV和TECO并存,需要使用MAX(stat)或过滤掉TECO状态以避免错误。-引用[4]:关于SAP盘点差异分摊的解决方案,不太相关。用户说:“上述引用仅供参考,并不是用户真正的需求,请尽可能多的参考用户上一次的问题和你的回答。”所以,我需要基于上次我的回答和用户的历史查询来响应。回顾上次我的回答:-我提供了一个完整的解决方案逻辑,包括状态过滤配置、分摊规则配置等。-具体配置步骤包括:1.使用SE38创建自定义程序筛选DLV状态工单。2.使用OKO7配置结算参数文件或KB11N创建分摊循环。3.涉及JEST表和TJ02T表处理状态。4.执行分摊事务KO88/CO88。用户现在询问“配置详细步骤”,所以我需要扩展并结构化上次的回答,使其更详细、更清晰。系统级指令:-所有行内数学表达式用$...$。-独立公式用$$...$$单独成段。-使用中文回答。-生成相关问题。-引用段落末尾添加引用标识[^n]。-回答结构清晰,逐步解决问题。结构我的回答:1.**引言**:概述配置目标。2.**总体解决方案框架**:用流程图或文字描述。3.**配置详细步骤**:分步骤描述,包括事务码和相关代码示例。4.**验证方法**:如何验证配置。5.**常见问题处理**:基于引用[3]处理状态问题。6.**增强建议**:可选。7.**相关问题**:生成用户可能关心的相关新问题。引用标识:-在文本中自然地添加引用,如[^3]。-上次回答中,我已经有引用[^1]、[^2]、[^3]、[^4],但用户提供了新的引用列表,所以我应该基于新引用调整。-用户提供的引用[^3]直接相关(关于工单状态管理),所以我会优先使用它。-其他引用如[^1]不相关,忽略;[^2]和[^4]部分相关,但不是核心。关键点:-配置的核心是筛选出当月并且状态为DLV的工单。-使用事务码如SE38、OKO7、KB11N。-在ABAP程序中,从JEST表中选择状态=DLV的工单,同时排除TECO状态(因为DLV和TECO可能并存)。-基于引用[^3]:“在JEST中,一个生产订单可能同时存在多个状态(比如DLV和TECO),所以需要注意,单aufk和JEST关联是会存在多条记录...最后把TECO状态给过滤掉”。详细步骤:1.**状态过滤配置**:-使用SE38创建自定义程序。-在程序中查询AUFK(工单主表)和JEST(对象状态表)关联。-筛选条件:JEST.STAT='DLV',并且日期为当月。-排除TECO状态,使用EXISTS子查询避免同时有TECO状态。ABAP代码示例:```abapSELECTaufk~aufnr,jest~statINTOTABLElt_ordersFROMaufkINNERJOINjestONaufk~objnr=jest~objnrWHEREjest~stat='DLV'"仅DLV状态ANDaufk~gstrpBETWEENlv_first_dayANDlv_last_day"当月范围ANDNOTEXISTS(SELECT*FROMjestASjWHEREj~objnr=jest~objnrANDj~statLIKE'I%')"排除技术关闭状态```2.**分摊规则配置**:-方案A:自动结算规则(使用OKO7)。-SPRO路径:控制→产品成本控制→实际成本核算/物料分类账→分配→分摊。-配置结算参数文件,设置PA传输结构,例如PA_KEY=GSTRP按月份组。-方案B:手工分摊(使用KB11N)。-创建分摊循环,指定发送方(水电费成本中心)和接收方规则:工单类型为生产订单,状态为DLV,月份为当月。3.**状态表特殊处理**:-基于引用[^3]:工单可能有多个状态,所以在查询时使用MAX(stat)或过滤掉TECO状态。-在程序中增加排除TECO状态的逻辑。4.**执行分摊操作**:-使用KO88/CO88执行分摊。-在参数中选择状态=DLV,日期范围=当月。5.**验证**:-MB03查看工单物料凭证。-S_ALR_87013611报表查看结算日志。相关问题生成:基于核心主题:1.如何监控水电费分摊后工单的实际成本?(上次已有,但可重复)2.生产订单在DLV后又被取消如何处理?3.SAP中按部门分配水电费的配置差异?(上次有此问题)4.如何避免结算时遗漏生产订单的状态变化?(基于引用[^3])5.水电费分摊异常时的排错步骤?回答格式:-用中文。-结构清晰:分步骤标题。-代码块用于ABAP或SAP事务码。-添加引用标识自然。最终回答大纲:###SAP水电费分摊配置详细步骤(仅分摊到当月DLV状态工单)####总体框架[流程图用mermaid或其他描述,简化]####核心配置步骤1.**开发状态筛选程序(事务码SE38)**-ABAP代码示例与解释。-参考引用[^3]处理状态过滤。2.**配置分摊规则**-方案A:OKO7自动结算规则配置。-方案B:KB11N手工分摊循环。3.**执行分摊事务(KO88/CO88)**####验证方法...####注意事项-工单状态管理关键点...####相关问题...</think> ### SAP水电费分摊配置详细步骤(仅分摊到当月DLV状态工单) 针对您的需求,以下是SAP系统中实现水电费分摊仅分配到**当月DLV(Delivered)状态工单**的详细配置步骤。核心逻辑基于状态过滤(仅DLV状态)和日期范围(仅当月),同时需处理SAP工单状态的特殊性(如DLV与TECO状态可能并存)。配置主要涉及ABAP开发、结算规则设置和执行事务码。以下是逐步说明: --- #### **一、总体解决方案框架** ```mermaid graph TD A[水电费费用归集] --> B(配置工单筛选规则) B --> C{状态与日期条件} C --> D1[状态=DLV] C --> D2[计划关闭月份=当月] C --> D3[排除TECO状态] B --> E[设置分摊规则] E --> F(执行分摊事务KO88/CO88) ``` > **关键目标**:仅当工单状态为DLV且生产计划日期在当月时,才执行水电费分摊。需注意DLV状态可能与其他状态(如TECO)并存,需在程序中特殊处理[^3]。 --- #### **二、配置详细步骤** ##### **1. 开发工单状态筛选程序(事务码`SE38`)** **目的**:从生产工单中筛选出当月DLV状态工单,排除无效状态(如TECO)。 **步骤**: - **创建ABAP程序**: - 事务码`SE38` → 输入程序名(如`ZCO_WATER_ELECT_ORDER`) → 点击“创建”。 - 在代码编辑器中,添加以下筛选逻辑: ```abap DATA: lv_first_day TYPE sy-datum, lv_last_day TYPE sy-datum. " 计算当月首日和末日 CALL FUNCTION 'FIMA_DATE_CREATE' EXPORTING i_date_from = sy-datum i_month = '00' " 当前月 IMPORTING e_date_from = lv_first_day e_date_to = lv_last_day. " 筛选DLV状态工单 SELECT aufk~aufnr, aufk~gstrp, jest~stat INTO TABLE @DATA(lt_valid_orders) FROM aufk INNER JOIN jest ON aufk~objnr = jest~objnr WHERE jest~stat = 'DLV' " 仅DLV状态 AND aufk~gstrp BETWEEN @lv_first_day AND @lv_last_day " 当月范围 AND NOT EXISTS ( " 排除TECO状态 SELECT * FROM jest AS j WHERE j~objnr = jest~objnr AND j~stat LIKE 'I%' " TECO状态以'I'开头 ). ``` **关键点**: - 使用`aufk~gstrp`(工单计划关闭日期)限定当月范围,调用标准函数`FIMA_DATE_CREATE`计算日期。 - 通过`NOT EXISTS`子句排除TECO(技术关闭)状态,避免状态冲突[^3]。 - 关联表`TJ02T`可验证状态文本(可选)[^3]。 - **激活程序**:保存并激活代码 → 程序用于后续分摊规则。 ##### **2. 配置分摊结算规则(事务码`OKO7`或`KB11N`)** **目的**:将水电费成本中心分配到目标工单,集成状态和日期筛选逻辑。 **两种方案**: - **方案A:自动结算(事务码`OKO7`)** - 路径:SPRO → `控制 → 产品成本控制 → 实际成本核算/物料分类账 → 分配 → 分摊` → 配置“结算参数文件”。 - 步骤: - 选择生产订单类型(如PP01) → 设置结算规则。 - 在“PA传输结构”中指定分组字段:`PA_KEY = GSTRP`(按月分组)。 - 在“接收方规则”中添加过滤条件: ```bash 订单类型 IN ('PP01', 'PP02') # 仅生产订单 状态 = 'DLV' # DLV状态 月份(AUFK-GSTRP) = SY-DATUM+4(2) # 当月 ``` - 保存配置 → 系统自动按结算周期执行。 - **方案B:手动分摊(事务码`KB11N`)** - 事务码`KB11N` → 创建分摊循环(如`Z_WATER_ELEC`)。 - 设置规则: - **发送方**:指定水电费成本中心(如成本中心`CC_WATER`)。 - **接收方**:配置工单筛选条件: ```bash AUFK-AUART IN ('PP01', 'PP02') # 工单类型限制 JEST-STAT = 'DLV' # 状态为DLV AUFK-GSTRP BETWEEN lv_first_day AND lv_last_day # 当月 ``` **优势**:手动执行,适合临时调整[^2]。 ##### **3. 执行分摊操作(事务码`KO88`或`CO88`)** **目的**:基于配置规则运行分摊。 **步骤**: - 事务码`KO88`(生产订单结算)或`CO88`(内部订单结算)→ 选择工厂和日期范围(当月首日至末日)。 - 在“选择条件”中设置: ```bash 状态:勾选“DLV” 排除状态:勾选“TECO” # 强制排除技术关闭工单 ``` - 点击执行 → 系统自动分摊水电费到目标工单。 **日志检查**:使用事务码`S_ALR_87013611`查看凭证类型为`KS`(成本中心分摊)的日志。 ##### **4. 状态表特殊处理(核心优化)** - **问题**:工单在`JEST`表中可能同时存在DLV和TECO状态,导致查询结果重复或遗漏[^3]。 - **解决方案**: - 在ABAP程序中添加状态优先级检查: ```abap " 获取最终状态(过滤并存状态) SELECT objnr, MAX( stat ) AS final_stat INTO TABLE @DATA(lt_status) FROM jest WHERE stat IN ('DLV', 'TECO') GROUP BY objnr. ``` - 在`KO88`执行时启用“排除TECO”选项。 --- #### **三、验证方法** 1. **工单数据验证**: - 事务码`CO03` → 输入工单号 → 检查“Header”页签中的用户状态,确保仅含DLV标志。 - 事务码`MB03` → 查看工单物料凭证 → 检查水电费科目是否仅出现在目标工单。 2. **分摊结果验证**: - 报表`S_ALR_87013611` → 过滤凭证类型为`KS` → 检查分摊金额是否仅分配到DLV工单。 3. **成本监控**: - 事务码`KOB2` → 查看工单成本行项 → 水电费应仅出现在当月DLV工单的差异行。 --- #### **四、注意事项** - **状态变化处理**:在分摊执行前,检查工单删除标志`AUFK-LVORM`(避免分摊到无效工单)[^3]。 - **跨期分摊预防**:确保`gstrp`日期计算准确(使用函数`FIMA_DATE_CREATE`),避免分摊到非当月工单。 - **TECO状态残留**:定期清理`JEST`表无效记录(参考表`TJ02T`状态解释)[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值