物料价格分析取未分摊和未分配价格差异

本文介绍了物料价差分析的事务码使用方法,并通过自定义报告ZTEST展示具体操作流程,包括选择屏幕设置、获取数据、布局构建、字段定义及显示数据等关键步骤。

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

物料价格分析的事务码是:CKM3和CKMVFM 

 

*&---------------------------------------------------------------------*
*& Report  ZTEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZTEST.
TYPE-POOLSSLIS.
DATAI_FIELDCAT_ALV TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          I_LAYOUT   TYPE SLIS_LAYOUT_ALV,   "alv的格式
          I_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
          TMP_TITLE(70),
          W_REPID   LIKE SY-REPID.
**---------------------------------------------------------------------*
*** Types
**---------------------------------------------------------------------*
DATA :  POS TYPE I,
        LW_TITLE(150TYPE C,
        S_mat TYPE CKMLHD-MATNR.
*选择屏幕
data:BEGIN OF itab OCCURS 0,
      matnr like mara-matnr,
      KALNR like CKMLHD-kalnr,
      BDATJ like ckmlcr-bdatj,
      POPER like ckmlcr-poper,
      VNPRD_EA like ckmlcr-VNPRD_EA,
      vnprd_ma like ckmlcr-vnprd_ma,
   ABPRD_O  LIKE CKMLCR-ABPRD_O,
   ZUPRD_O  LIKE CKMLCR-ZUPRD_O,
   EBPRD_EA  LIKE CKMLCR-EBPRD_EA,
     ABPRD_mO  LIKE CKMLCR-ABPRD_mO,
   ZUPRD_mO  LIKE CKMLCR-ZUPRD_mO,
   EBPRD_mA  LIKE CKMLCR-EBPRD_mA,
      ESTPRD like mlcd-ESTPRD,
      mstprd like mlcd-mstprd,
      testprd like mlcd-estprd,
      WFPCY  LIKE CKMLCR-ABPRD_O,
end of itab.
SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN SKIP.
PARAMETERS P_BDATJ  LIKE CKMLCR-BDATJ OBLIGATORY DEFAULT '2011'.
SELECTION-SCREEN SKIP.
PARAMETERSP_POPER LIKE CKMLCR-POPER OBLIGATORY DEFAULT '12'.
SELECTION-SCREEN SKIP.
PARAMETERS P_WERKS LIKE CKMLHD-BWKEY OBLIGATORY DEFAULT 'PS01'.
SELECTION-SCREEN SKIP.
SELECT-OPTIONSS_MATNR FOR S_mat.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK BLK1.



CONCATENATE  '                                      '  P_BDATJ '年' P_POPER

'月'
'未分配差异表' INTO LW_TITLE.


START-OF-SELECTION.
  PERFORM GETDATA.      "
  PERFORM LAYOUT_BUILD.  "
  PERFORM FIELDS"
  PERFORM DISPLAY_DATA"
*&---------------------------------------------------------------------*
*&      Form  getdata
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM GETDATA.
  select CKMLHD~matnr
      CKMLHD~KALNR
      ckmlcr~BDATJ
      ckmlcr~POPER
      ckmlcr~VNPRD_EA
      ckmlcr~vnprd_ma
       ckmlcr~ABPRD_O
       ckmlcr~ZUPRD_O
       ckmlcr~EBPRD_EA
       ckmlcr~ABPRD_mO
       ckmlcr~ZUPRD_mO
       ckmlcr~EBPRD_mA
  INTO CORRESPONDING FIELDS OF TABLE itab
  from ckmlhd
  join ckmlcr on ckmlhd~kalnr ckmlcr~kalnr
  where ckmlhd~matnr in s_matnr
    and ckmlhd~bwkey p_werks
    and ckmlcr~BDATJ p_BDATJ
    and ckmlcr~POPER p_poper.

  loop at itab.
    select sumESTPRD summstprd into (itab-tESTPRD,itab-mstprd)
    from mlcd
    where kalnr itab-kalnr
      and bdatj itab-bdatj
      and poper itab-poper
      and CATEG 'VN'.

    itab-estprd itab-vnprd_ea + itab-vnprd_ma itab-testprd + itab-mstprd ).
    itab-WFPCY itab-EBPRD_EA + + itab-VNPRD_EA itab-ZUPRD_O itab-ABPRD_O
                   + itab-EBPRD_mA + + itab-VNPRD_mA itab-ZUPRD_mO itab-ABPRD_mO.

    modify itab.
  endloop.

ENDFORM.                    "GETDATA
*&---------------------------------------------------------------------*
*&      Form  layout_build
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM LAYOUT_BUILD.
  I_LAYOUT-ZEBRA 'X'.
  I_LAYOUT-DETAIL_POPUP 'X'"
  W_REPID SY-REPID.    "
  I_LAYOUT-F2CODE '&ETA'."
  I_LAYOUT-NO_VLINE             'X'."
  I_LAYOUT-COLWIDTH_OPTIMIZE    'X'"
  I_LAYOUT-DETAIL_INITIAL_LINES 'X'.
  I_LAYOUT-DETAIL_TITLEBAR      '详细内容'."
ENDFORM.                    "layout_build

*&---------------------------------------------------------------------*
*&      Form  fields
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM FIELDS.
  REFRESH I_FIELDCAT_ALV.
  POS 0.
  CLEAR I_FIELDCAT.
  TMP_TITLE LW_TITLE."
  I_FIELDCAT-COL_POS POS.      "
  I_FIELDCAT-FIELDNAME 'MATNR'.
  I_FIELDCAT-SELTEXT_L '物料号'"
  APPEND I_FIELDCAT TO I_FIELDCAT_ALV.
  POS POS + 1.
  I_FIELDCAT-COL_POS       =  POS.
  I_FIELDCAT-FIELDNAME     'WFPCY'.
  I_FIELDCAT-SELTEXT_L     '没有被分摊'.
  APPEND I_FIELDCAT TO  I_FIELDCAT_ALV.
  POS POS + 1.
  I_FIELDCAT-COL_POS       =  POS.
  I_FIELDCAT-FIELDNAME     'ESTPRD'.
  I_FIELDCAT-SELTEXT_L     '未分配价格差异'.
  APPEND I_FIELDCAT TO  I_FIELDCAT_ALV.
  CLEAR I_FIELDCAT.
ENDFORM.                    "fields
*&---------------------------------------------------------------------*
*&      Form  display_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM DISPLAY_DATA.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_CALLBACK_PROGRAM W_REPID   "
      I_SAVE             ''
      IS_LAYOUT          I_LAYOUT  "
      IT_FIELDCAT        I_FIELDCAT_ALV[] "
      I_GRID_TITLE       TMP_TITLE
    TABLES
      T_OUTTAB           itab.  "
ENDFORM.                    "display_data

### SAP 物料价格差异的原因分析 物料分类账的逻辑涉及期初价差与本期标准价格实际价格之间的差异汇总,并在消耗量库存间按比例分配这些差异。然而,在某些情况下,可能会遇到差异被计算出来但能成功分摊的问题[^2]。 #### 差异产生的常见原因 1. **会计期间关闭** 如果当前会计期间已经关闭,则无法再对该期间内的数据进行任何修改或调整操作,这可能导致新发生的成本变动无法及时反映到财务报表中去,进而造成分摊现象的发生。 2. **评估类别的设置不当** 不同类型的物品可能具有不同的评估类别(如原材料、产成品),如果系统中的配置不匹配实际情况,就会影响后续的成本核算流程,使得部分费用不能正常计入相应的产品成本结构内。 3. **移动平均价法的应用错误** 对于采用移动平均定价策略的企业来说,每次收发货都会引起单价的变化;但如果在此过程中出现了异常情况——比如某次交易记录丢失或是录入时间顺序颠倒——那么就会破坏原有的平衡关系,最终表现为一些特定批次的商品存在平账目。 4. **特殊业务场景下的处理失误** 当涉及到退货入库、跨部门调拨等复杂事务时,如果没有严格按照既定规则执行相应的账务处理动作,也可能引发类似的矛盾状况。 --- ### 解决策略 针对上述提到的各种可能性,可以采以下措施来解决问题: - 定期审查并维护好基础资料库,确保所有参数设定都符合最新的企业运营需求; - 加强日常监控力度,一旦发现潜在风险信号立即着手调查根源所在; - 制订详细的应急预案指南,以便快速响应突发性的技术难题; - 组织员工培训课程,提升团队成员对于整个供应链管理体系的认知水平以及实操技能。 具体而言,当面对具体的分摊案例时,应当先确认该笔业务所属的时间范围是否处于开放状态,接着检查相关联的对象属性定义是否有误,最后排查是否存在人为因素干扰正常的作业程序。 ```sql -- 查询分摊差异的具体明细 SELECT * FROM MKPF p JOIN MSEG s ON p.MANDT = s.MANDT AND p.MBLNR = s.MBLNR WHERE p.BUDAT >= 'YYYYMMDD' -- 替换为起始日期 AND (s.WERKS IN ('1010', '1015')) AND NOT EXISTS ( SELECT 1 FROM MARC r WHERE r.MANDT = s.MANDT AND r.MATNR = s.MATNR AND r.LGORT = s.LGORT); ``` 此查询语句可以帮助定位哪些仓库位置上的货物发生了价值波动却尚完成结算手续。 --- ### 配置建议 为了预防来再次发生类似事件,有必要重新审视现有的SAP环境配置选项,特别是以下几个方面: - **启用严格的权限控制系统**:仅允许授权人员访问敏感功能区域能有效减少意外输入带来的负面影响。 - **实施全面的日志审计机制**:全程跟踪每一次重要变更活动有助于事后追溯责任归属的同时也为持续改进提供宝贵依据。 - **引入自动化测试工具集**:利用脚本定期模拟真实世界的交互情景从而提前暴露隐藏缺陷点位。 此外,还可以考虑参照官方文档说明进一步细化内部管理制度框架,例如查阅[SAP DMS的帮助页面](http://help.sap.com/saphelp_nw04/Helpdata/EN/30/08a037b9e62417e10000009b38f889/content.htm)[^3]获更多有关如何优化文件存储架构方面的指导方针。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值