CR01创建工作中心

1、工作中心

1.1、核心概念

简单来说,工作中心在SAP中代表了一个具体的“工作地点”或“执行单位”。

你可以把它理解为:

生产车间里的一台机器或一条生产线。

一个负责特定作业的班组或团队(如质检小组、维修团队)。

一个工位或一个区域(如喷涂区域、装配工位)。

它的本质是一个“能力提供者”和“成本发生地”。

1.2、 工作中心的主要用途

工作中心在SAP系统中扮演着四个关键角色:

1、工艺路线中的能力单元

在为产品创建工艺路线(Routing)时,每一步操作(Operation)都必须指定一个工作中心。

系统通过工作中心来确定该步骤的标准作业时间(如准备时间、机器运行时间、人工时间),这是计算产品成本、生产提前期和能力需求计划的基础。

2、成本核算的成本中心

每个工作中心都会分配到一个成本中心。

所有发生在该工作中心的费用(如折旧、水电、操作工工资)都通过成本中心进行归集。

通过工作中心中定义的作业类型(如机器工时、人工工时),系统可以将成本中心归集的制造费用,准确地分摊到经过该工作中心生产的产品上,从而实现精细化的产品成本核算。

3、能力计划的能力载体

工作中心定义了可用能力的大小(例如:一台机器每天工作16小时,一个班组有5个人)。

系统在进行产能评估或排产时,会基于工作中心的能力和已经分配的任务(来自生产订单、计划订单等),来计算其负荷情况,从而帮助计划员发现瓶颈。

4、生产订单的执行对象

当生产订单下达后,具体的生产活动(如发料、确认、报工)都是针对某个工作中心来执行的。

工人通过向工作中心进行“确认”,来记录在特定工作中心上花费的实际工时、产量以及废品情况。

1.3、 工作中心的关键数据

创建和维护工作中心(事务码 CR01)时,需要维护以下几类核心数据:

1. 基本数据
工作中心描述: 清晰的名字,如“五号数控车床”、“最终装配线”。

工作中心类别: 这是一个关键分类,决定了工作中心的性质和可用功能,如:

0001 机器/设备

0002 装配线

0003 员工/班组

任务清单类型: 定义该工作中心可以用于哪些工艺路线。

2. 能力数据
这是进行能力计划的核心。

能力: 定义工作中心拥有多少种能力以及能力的数量。

能力类别: 最常见的是001(机器)和002(人工)。一个工作中心可以同时拥有多种能力(例如,一台需要人工操作的机器就同时拥有人工和机器能力)。

能力数: 和能力类别关联的可用数量。例如,能力类别“人工”的能力数为5,代表这个工位有5个工人。

开机时间: 定义工作中心每天的可用时间(如 08:00 - 20:00)。

利用率和效率: 用于对理论能力进行修正,以得到更符合实际的“可用能力”。

可用能力 = 理论能力 × 利用率 × 效率

3. 调度数据
用于计算生产作业的持续时间。

公式: 这里会分配一个计算公式,用于确定工序的加工时间、间隔时间和移动时间。

队列时间: 指作业在开始前的标准等待时间。

标准值码: 将工艺路线中定义的“标准值”(如加工数量是100个)通过公式转换为具体的时间。

4. 成本核算数据
这是连接PP和CO(控制)模块的桥梁。

成本中心: 必填项,指定该工作中心产生的成本由哪个成本中心承担。

作业类型: 与能力类别对应,是成本核算的单位。例如:

能力类别“机器”对应作业类型“机器工时”。

能力类别“人工”对应作业类型“直接人工”。

标准作业价格: 执行单位作业(如1个机器工时)的标准成本。产品成本计算时,就是用“标准工时”乘以“标准作业价格”来得出该工序的制造成本。

2、前台操作

事务代码CR01

image

基本信息

image

默认值页签

image

能力

image

抬头数据

image

 计划页签

image

成本核算页签

image

点击保存即可

3、代码实现

调用函数CRAP_WORKCENTER_CREATE创建工作中心

"--------------------@斌将军--------------------
DATA:ls_in_crhd_api01 TYPE crhd_api01,
     ls_in_crhd_api02 TYPE crhd_api02,
     ls_in_crhd_api03 TYPE crhd_api03,
     ls_in_crhd_api05 TYPE crhd_api05,
     lt_in_kapa_api01 TYPE TABLE OF kapa_api01,
     ls_in_kapa_api01 TYPE kapa_api01,
     lt_in_kapa_api02 TYPE TABLE OF kapa_api02,
     ls_in_kapa_api02 TYPE kapa_api02,
     lt_in_crhd_api04 TYPE TABLE OF crhd_api04,
     ls_in_crhd_api04 TYPE crhd_api04,
     lt_in_crco_api01 TYPE TABLE OF crco_api01,
     ls_in_crco_api01 TYPE crco_api01.

DATA:lv_arbpl_beg TYPE crhd-arbpl,
     lv_arbpl_end TYPE crhd-arbpl,
     lv_arbpl     TYPE crhd-arbpl,
     lv_num       TYPE char6,
     lv_beg_num   TYPE char6,
     lv_end_num   TYPE char6.

DATA: lv_extnum  TYPE balhdr-extnumber,
      lv_guid_22 TYPE sysuuid_22,
      lv_comment TYPE crtx-ktext.

DATA:lv_check   TYPE char1,
     lv_msg     TYPE char255,
     lv_message TYPE char255.


"工作中心抬头数据
CLEAR:ls_in_crhd_api01.
ls_in_crhd_api01-arbpl = 'PL000010'."工作中心
ls_in_crhd_api01-werks = '8800' ."工厂
ls_in_crhd_api01-verwe = '0001' ."工作中心类型
ls_in_crhd_api01-ktext = '工作中心描述'."工作中心描述

"工作中心基本数据
CLEAR:ls_in_crhd_api02.
ls_in_crhd_api02-veran = '001'."工作中心负责人
ls_in_crhd_api02-planv = '009'."用途
ls_in_crhd_api02-rgekz = ''."标识:反冲
ls_in_crhd_api02-ppskz = ''."提前计划标识
ls_in_crhd_api02-vgwts = 'SL10'."标准值码
ls_in_crhd_api02-vgm01 = '2'.
ls_in_crhd_api02-vgm02 = '3'.
ls_in_crhd_api02-vgm03 = '3'.
ls_in_crhd_api02-vgm04 = '1'.
ls_in_crhd_api02-vgm05 = '1'.
ls_in_crhd_api02-vgm06 = '1'.

"工作中心缺省值
CLEAR:ls_in_crhd_api03.
ls_in_crhd_api03-steus = 'PP99'."控制码
ls_in_crhd_api03-ktsch = '2220005'."标准文本码
ls_in_crhd_api03-vge01 = 'S'."标准值计量单位
ls_in_crhd_api03-vge02 = 'S'.
ls_in_crhd_api03-vge03 = 'KG'.

CLEAR:ls_in_crhd_api05.
ls_in_crhd_api05-kapart = '001'."能力类别
ls_in_crhd_api05-fort2 = 'SL98'."加工持续时间

CLEAR:ls_in_kapa_api01.
ls_in_kapa_api01-kapart = '001'."能力类别
ls_in_kapa_api01-werks = '8800'."工厂
ls_in_kapa_api01-ktext = '产能短文本'."产能短文本
APPEND ls_in_kapa_api01 TO lt_in_kapa_api01.

CLEAR:ls_in_kapa_api02.
ls_in_kapa_api02-planr = 'B01'."产能负责计划员组
ls_in_kapa_api02-kalid = 'Z1'."工厂日历标识
ls_in_kapa_api02-versa = '1'."可用产能的激活版本
ls_in_kapa_api02-meins = 'H'."产能基本计量单位
ls_in_kapa_api02-begzt = '000000'."开始时间
ls_in_kapa_api02-endzt = '240000'."结束时间
*  ls_in_kapa_api02-pause = gs_input-pause."每班次累计休息时间
ls_in_kapa_api02-ngrad = '97'."产能利用率(百分比)
ls_in_kapa_api02-aznor = '4'."单个产能数
ls_in_kapa_api02-kapter = 'X'."标识:产能与有限计划相关
ls_in_kapa_api02-kapavo = 'X'."指示符 : 数个工序能够使用能力
ls_in_kapa_api02-kaplpl = 'X'."指示符 : 长期计划考虑能力
APPEND ls_in_kapa_api02 TO lt_in_kapa_api02.

CLEAR:ls_in_crhd_api04.
ls_in_crhd_api04-fork1 = 'SL31'."设置产能需求的公式
ls_in_crhd_api04-fork2 = 'SL32'."用于处理产能需求的公式
APPEND ls_in_crhd_api04 TO lt_in_crhd_api04.

"成本核算
CLEAR:ls_in_crco_api01.
ls_in_crco_api01-kostl = '0088006005'. "成本中心
ls_in_crco_api01-begda = sy-datum."开始日期
ls_in_crco_api01-endda = '99991231'."结束日期
ls_in_crco_api01-kokrs = '8888'."控制范围
"1
ls_in_crco_api01-lstar1 = 'SL11'."活动类型
ls_in_crco_api01-leinh1 = 'MIN'."活动单位
ls_in_crco_api01-forml1 = 'SL32'."公式码
"2
ls_in_crco_api01-lstar2 = 'SL12'."活动类型
ls_in_crco_api01-leinh2 = 'MIN'."活动单位
ls_in_crco_api01-forml2 = 'SL32'."公式码
"3
ls_in_crco_api01-lstar3 = 'SL13'."活动类型
ls_in_crco_api01-leinh3 = 'MIN'."活动单位
ls_in_crco_api01-forml3 = 'SL32'."公式码
"4
ls_in_crco_api01-lstar4 = 'SL14'."活动类型
ls_in_crco_api01-leinh4 = 'MIN'."活动单位
ls_in_crco_api01-forml4 = 'SL32'."公式码
"5
ls_in_crco_api01-lstar5 = 'SL15'."活动类型
ls_in_crco_api01-leinh5 = 'MIN'."活动单位
ls_in_crco_api01-forml5 = 'SL32'."公式码
"6
ls_in_crco_api01-lstar6 = 'SL16'."活动类型
ls_in_crco_api01-leinh6 = 'MIN'."活动单位
ls_in_crco_api01-forml6 = 'SL32'."公式码
APPEND ls_in_crco_api01 TO lt_in_crco_api01 .

lv_guid_22 = cl_system_uuid=>if_system_uuid_static~create_uuid_c22( ).
lv_extnum  = lv_guid_22.
TRANSLATE  lv_extnum  TO UPPER CASE.
lv_comment = lv_extnum.

CALL FUNCTION 'CRAP_WORKCENTER_CREATE'
  EXPORTING
    in_crhd_api01 = ls_in_crhd_api01
    in_crhd_api02 = ls_in_crhd_api02
    in_crhd_api03 = ls_in_crhd_api03
    in_crhd_api05 = ls_in_crhd_api05
    comment       = lv_comment
    test          = ''
*   IN_CRHD_API07 =
*   IV_NO_COMMIT  =
  TABLES
    in_kapa_api01 = lt_in_kapa_api01
    in_kapa_api02 = lt_in_kapa_api02
    in_crhd_api04 = lt_in_crhd_api04
    in_crco_api01 = lt_in_crco_api01
*   IN_KAZY_API01 =
*   IN_KAPA_API04 =
  .

DATA:lt_message TYPE TABLE OF balm.

CALL FUNCTION 'APPL_LOG_READ_DB'
  EXPORTING
    object          = 'CRAP'
    subobject       = '*'
    external_number = lv_extnum
*   DATE_FROM       = '00000000'
*   DATE_TO         = SY-DATUM
*   TIME_FROM       = '000000'
*   TIME_TO         = SY-UZEIT
*   LOG_CLASS       = '4'
*   PROGRAM_NAME    = '*'
*   TRANSACTION_CODE         = '*'
*   USER_ID         = ' '
*   MODE            = '+'
*   PUT_INTO_MEMORY = ' '
*   IMPORTING
*   NUMBER_OF_LOGS  =
  TABLES
*   HEADER_DATA     =
*   HEADER_PARAMETERS        =
    messages        = lt_message
*   MESSAGE_PARAMETERS       =
*   CONTEXTS        =
*   T_EXCEPTIONS    =
  .
CLEAR:lv_check,lv_message.
LOOP AT lt_message INTO DATA(ls_message) WHERE msgty CA 'AEX'.
  CLEAR:lv_msg.
  MESSAGE ID ls_message-msgid TYPE ls_message-msgty NUMBER ls_message-msgno
        WITH ls_message-msgv1 ls_message-msgv2 ls_message-msgv3 ls_message-msgv4
        INTO lv_msg.
  lv_message = lv_message && lv_msg.
  lv_check = 'E'.
  CLEAR:ls_message.
ENDLOOP.

IF lv_check = 'E'.

ELSE.
  READ TABLE lt_message INTO ls_message WITH KEY msgid = 'CR' msgno = '281'.
  IF sy-subrc EQ 0.
*    MESSAGE ID ls_message-msgid TYPE ls_message-msgty NUMBER ls_message-msgno
*      WITH ls_message-msgv1 ls_message-msgv2 ls_message-msgv3 ls_message-msgv4
*      INTO ls_output-message.
  ELSE.
*    ls_output-type = 'E'.
*    ls_output-message = '查不到成功消息,创建失败'.
  ENDIF.

ENDIF.
"--------------------@斌将军--------------------

以上就是关于CR01创建工作中心的介绍,希望对你有所帮助

定期更文,欢迎关注

 

posted @ 2025-10-23 10:21  斌将军  阅读(5)  评论(0)    收藏  举报