物料帐中Not included/not allocated and not distributed,来源分析

本文详细解析了ERP系统中物料成本差异的四种原因,包括价格限制逻辑、价格确定策略、事务CKMM的影响和后续价格变更。同时,讨论了物料成本差异未分配或未包含的情况,涉及多级消耗替代品的可能原因。通过分析这些原因,帮助企业更好地理解和管理其物料成本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Not included/not allocated and not distributed in ML[@more@]
Symptom

You would like to have further details about possible reasons which cause 'Not distributed' and 'Not included' variances.

Other terms

ACTCONS CNACT 'Not distributed' 'Not allocated' 'Not included'

Reason and Prerequisites


The 'Not distributed' differences are variances posted to the material during periodic transactions which are not carried to line 'cumulative inventory' and therefore not considered to calculate Periodic Unit Price.
In transaction CKM3 they are shown in an own line above 'cumulative inventory' line.
The 'Not included' or 'Not allocated' variances are variances rolled from 'cumulative inventory' line to category 'consumption' which are not rolled further to the single-level or multi-level consumption alternatives.
In transaction CKM3 these differences appear in an own line below category 'consumption' line.

Solution


**'Not distributed' price differences can be due to four reasons:

A) System applied a 'Price limiter' logic (stock coverage check).
You can analyse this case using the value flow monitor transaction:
- for release 4.7 , transaction CKMVFM
- for release 4.6C, program SAPRCKM_VERIFY_PRICE_DET (note 324754 is required).
- for release < 4.6C: Program ZVERIFY_PRICE_DET (included in the note 324754) Or directly checking the field CKMLPP-PBPOPO manually.
In this case the value CKMLPP-PBPOPO is bigger than cumulative inventory.
If you still want these price differences to be distributed , you can switch off price limiter logic. Then all price differences are posted to stock, and the price difference account is cleared. You should decide for each material if you want to switch off price limiter logic or not. So you can achieve a compromise between realistic prices and clearing the balance of the price different account.
Price limiter logic can be switched off in the following way:
* Resetting the price limiter quantity:
In release 4.7 this is done using transaction CKMVFM.
In release <= 46C using the program ZREMOVE_PRICE_LIMITER (see note 325406).
* Note 855387: Application of this note will create an additional selection parameter for step 'Single Level Price Determination' to switch on/off price limiter logic.
This option is the better way, as it simplifies the process and provides more flexibility (see the note for more information).


B) System applied a fallback strategy during price determination (see note 579216) to avoid a negative periodic unit price (PUP).
Please check the attached note 579216: If the regularly calculated PUP (based on 'Cumulative Inventory' line) would become negative, the system uses a different strategy to calculate the PUP:
The PUP is calculated with these priorities:
1. 'Cumulative Inventory' line (no fallback)
2. Receipts ('ZU') line (Info message C+ 135 in the log)
3. Beginning inventory ('AB') line (Info message C+ 138 in the log)
4. PUP-price of previous period (Info message C+ 136 in the log)
5. S-price (Info message C+ 137 in the log).
The fallback strategy is active by default for Single-Level price determination.
For multilevel price determination it must be activated with parameter 'Negative price: automatic error management'.

As a solution, you might check the postings of these materials if they really need to have such big negative price differences or if there is some kind of error in the posting or the production structure

If you find such errors, you might reverse the corresponding postings and post them in a correct way.
Or, you might use transaction MR22 (debit/credit material) in order to post an appropriate positive amount of differences to the concerned materials so that the resulting actual price would no longer be negative. This allows to perform the period closing regularly. In the next period, you might remove this manual posted value from the materials (again with MR22) in order to correct the overall stock values back to their original amounts.


C) Execution of transaction CKMM.
The above situation may be produced because transaction CKMM was executed during the corresponding period.
When transaction CKMM is processed the system deletes the price differences for the material in the period and these differences are not longer in the period record tables.
See note 384553 for further details.
The fact is that the price differences are still visible in CKM3 (as not distributed). This is due to the missing reset of summarization records (MLCD).
This error is just a problem of CKM3 display, because the differences shown as 'not distributed' do not exist in the periodic records. The PUPof the material is calculated correctly.
The error is solved with note 838989:
(Hotpackage 46C SAPKH46C51
470 SAPKH47025
500 SAPKH50010
600 SAPKH60001).


D) A subsequent price change (LTPC).
In transaction CKM3 when a subsequent price change (LTPC) is carried out, the preliminary valuation and all differences are rescaled at category level. Additionally, the corresponding lines for price change documents are sorted and flagged with the text "Subsequent price change".
If a late price change is run with transaction MR21 and there were not a previous reversal of the consumptions already posted in the period, these documents cannot be rescaled by transaction MR21.
Therefore transaction CKM3 will show a "Not distributed line" although the PRDs are rescaled correctly. This is then a display side-effect in CKM3.

**'Not included' or 'Not allocated' price differences:

A) The material has multilevel consumption alternatives (processes).

Possible causes:

- Multilevel price determination was not carried out yet.

- Not all subsequent materials were processed by multilevel price determination. If multilevel step has not been carried out (or resulted in an error etc.) the price differences remain on the input material in the 'not allocated' line.
You can verify the Actual BOM for all consumption processes to find all output materials. You should check the status for multilevel in all output materials

- the multi level document of one subsequent material is obsolet, because it is older than the single level or multi level document of the input material.
You can check this by comparing the time stamps in the documents' header data.
This situation occurs when the input material was reprocessed by single level and/or multi level price determination, but not all depending subsequent materials were reprocessed.
To avoid such error SAP recommends to run multi level price determination generally with the option: 'materials already processed: process again'.

- For some consumption processes there was no goods receipt of the output material in the period. In this case the price differences can not be rolled up by multi level price determination. They remain as 'not included' ('not allocated') at the input material.

- For some consumption processes, that have different output materials (joint production) for one of the joint products (the materials that receive costs according to the apportionment structure) the goods receipt has not been posted yet. In this case the differences to be allocated to this joint product remain as 'not included' ('not allocated') at the input material

- One output was calculated with reduced BOM. Typically this happens if input and output material are part of a cycle, and this cycle was cut off because it didn't converge. In this case the price differences of the input were not rolled-up along the cycle connections and therefore remain on the input material. To verify if this case applies check the multi level document of the output material. There must be a red light in the item line of the input material to indicate that no price differences have been rolled up. In the header data of the multi level document you can see the cycle number. Furthermore in the log of multi-level price determination there may be a message 'Cycle * cut off after * iterations'.


B) Material has Single level consumption alternatives

- For release 4.7 or higher, the step 'Revaluation of consumption' was not carried out. (This step is only available with Financials Extensions).

- For releases < = 4.6C.
The variances for single level consumption alternatives remain always as 'Not included'. In the standard there is no functionality to revaluate Single level consumption movements. Program ZSAPRCKML_COGS revaluates single level consumption movements but it does not create a Material Ledger document,therefore its postings are invisible in CKM3. So even after execution of program ZSAPRCKML_COGS the price differences posted by it are shown as, 'Not Included' in CKM3. Please see the note 722076 for more information.


C) The material has consumption to folder 'WIP Production' and the step 'WIP Revaluation' has not been carried out yet. (This case applies only if the functionality 'WIP Revaluation' is used.)

Note 908776 - Not included/not allocated and not distributed

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/46681/viewspace-1038108/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/46681/viewspace-1038108/

### 解决 `lgpio` 错误 `'gpio not allocated'` 在嵌入式开发中,遇到 `lgpio error 'gpio not allocated'` 的问题通常是因为目标 GPIO 引脚尚未被正确初始化或分配给当前进程。以下是可能的原因以及解决方案: #### 可能原因分析 1. **GPIO 配置未完成** 如果 GPIO 尚未通过驱动程序或其他方式配置,则会触发此错误。这可能是由于硬件抽象层未能成功注册该引脚所致[^2]。 2. **权限不足** 使用某些 GPIO 接口(例如 `/dev/gpiomem` 或者其他设备文件)时,如果运行的应用程序缺乏足够的权限来访问这些资源,也会引发类似的错误消息。 3. **竞争条件** 当多个线程或进程尝试同时操作同一个 GPIO 资源而没有适当同步机制的情况下,可能会发生冲突并抛出此类异常[^3]。 4. **固件设置不匹配** 某些情况下,操作系统内核与底层平台固件之间的期望存在差异也可能导致功能失效。例如,在引导过程中传递给内核的参数不当可以阻止特定外设正常启动[^4]。 #### 解决策略 ##### 方法一:验证并重新加载模块 确保相关联的 Linux 内核模块已正确安装并且处于活动状态。可以通过执行以下命令检查: ```bash lsmod | grep gpio ``` 如果没有找到对应的条目,则需手动载入必要的支持包比如 `gpiolib` 和任何专用于所选架构的具体实现版本。 另外还需确认是否存在针对具体芯片组优化过的补丁集;对于较新的处理器型号来说尤其重要因为它们往往需要额外定制化处理才能充分发挥潜力。 ##### 方法二:调整引导选项 修改 GRUB 启动菜单中的默认命令行字符串以包含更多调试信息或将控制权交给用户空间工具链以便进一步诊断潜在问题所在位置。例如可以在现有基础上追加如下内容从而启用大页内存管理特性进而改善性能表现的同时减少中断频率带来的干扰影响[^1]: ```plaintext GRUB_CMDLINE_LINUX_DEFAULT="quiet splash hugepages=4096" update-grub reboot now ``` ##### 方法三:实施互斥锁保护共享资源访问路径 为了避免多任务环境下的竞态状况出现,建议引入信号量或者其他形式的锁定协议来协调不同实体之间对公共资源的竞争关系。下面给出了一段伪代码示范如何利用 POSIX 标准定义下的 semaphores 来达成上述目的: ```c #include <semaphore.h> // 定义全局变量 semaphore sem_t mutex; void init() { // 初始化 semaphore 初始计数值为 1 表示可用 sem_init(&mutex, 0, 1); } void access_gpio(int pin_number){ // 请求获取锁之前先等待直到获得许可为止 sem_wait(&mutex); /* 执行实际读写 GPIO 的逻辑 */ // 释放锁允许下一个请求进入临界区 sem_post(&mutex); } ``` ##### 方法四:审查应用程序设计模式 最后但同样至关重要的一点是要仔细审视整个软件体系结构的设计思路是否合理高效。特别是涉及到实时性强的任务调度安排方面更应该格外注意避免不必要的延迟累积效应累及整体效率下降甚至崩溃等问题的发生几率增加. --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值