COPA配置解读
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
COPA配置1、企业结构
1.1建立经营范围
建操作关系
按下
营范围,按下
述后,
1.2分配成本控制范围至经营范围
进入下一页.
2.1维护字段状态变式
按照右列路径
维护字段状态
变式, 按下
进入下
一页.
选取”CO01”
字段状态变
式,按下”字
段状态组进入
下一页.
连续按两下”
附加科目设
置”进入下一
页.
将”获利能力
区段”字段状
态设定为”可
选输入项.
注意:若”获
利能力区段”
已包含有”利
润中
心”(CO -PA 顺
位优于PCA),
建议前一个”
利润中心”的
字段设定为”
不显
示”(PCA),以
避免资料只流
入PCA ,而未同
时流入CO-PA 。
3、成本控制>获利能力分析
获利能力分析,除了需定义其组织设定外,主要会是依据销售,管理报表的需求定义出许多特性值与值字段,并分配其与各模块间资料流的关系,值得注意的一点是,获利能力分析内的组织,特性值,值字段设定,皆是跨客户端的设定,且设定过多的特性值与值字段时会影响系统效能!
3.1维护经营关注点
范围:”
、
按下
、
: 奇瑞公司只会
、按下
按下
6、 =
“B0”,代表所
有PA内的分析皆
用美元.勾上公
司代码本位币即
为RMB
7、目前是将所有币
别类型皆启用.
8、 =
“K4”, 跟随财
务会计的设定.
10 按下”环境”进入
下一页面进入此页可看
出目前经营范围在此客
户端及跨客户端的环境
状态为何,一旦灯号出
现红灯,代表环境不完
整 (通常是有新增/ 变
更特性值/ 值字段的情
况下) , 此时需要按下
,重新产生环境.
按下储存经营范
围设定,下一步需将欲
使用的特性值及值字段
抓进此经营范围.
3.2激活成本控制范围内的获利能力分析
照右列路径启用
3.3维护特性值
围的归属等
围”OC01”后,按下
,类别按下
4当有新的分析需求需要新增特性值
时,SAP提供一些方
式供建立.
5使用者可先观看目前系统可使用特性
值有哪些,进入右列
画面,Ticked
On ,并
按下
进入特性值细项设
定画面,观看是否有
可以使用的特性值.
6若既有的特性值即可满足需求,则下一
步按照步骤3.1将欲
选用的特性值包含
进经营范
围”OC01”.
若是无法满足需求,则需自行定义特性值,按下
,出
现警告讯息按进入下一页.
: 从数个可和CO-PA有连结的表格挑选字段来建立特性值,
按下 ,进入下一页.
右列画面为现行可用的表格,本例以选择”MVKE”,
按下进入特性分配画
面,再按下 ,进入下一页.
出现右列挑选字段窗口,本例以挑选”物料类型”,按
下进入下一页.
3进入特性值明细设定画面,如确认新增,按
下激活并储存特
性值.
4如此特性值需被使用至经营范围内, 则下
一步按照步骤3.1将
欲选用的特性值包含
进经营范
围”OC01”.
5返回新增特性值画
面, 建立特性值的另
一种方式
6自行定义的特性值需跟随SAP的命名规
则,一律需以”WW”
开头,且总字符长度
需介于4与5之间.
7自行定义特性值又细分为三种类型: 1.
: 新增一可输入值的
特性值. 2.
: 不含值,只当成一运
算结果. 3.
: 可根据现有的Data
Element为基础,将之
建立为一特性值.
8输入特性值名称后,
按下进入下一
页.
注意: 选择
的方式建立特性值,需先事前调查字段的正确Data Element名称,但有些字段
即使正确地被建立,但其值仍无法被正确地读取,因此,新增特性值时
度后,如确定新增下
3.4维护字段值
按照右列路径可观看每个值字段的详细设定,及与经营范围的归属等,按下 进入下一页.
本例请选择”经营范围中的值字段”,并输入经营范围”OC01”后,按下
进入下一页.
值或数量等,任选
按下
1 当有新的分析需
求需要新增值字
段时,SAP 提供
一些方式供建
立.
2 使用者可先观看
目前系统可使用
值字段有哪些,
进入右列画
面,Ticked On
,并按下
进入值字段细
项设定画面,观
看是否有可以使
用的值字段.
3 若既有的值字段
即可满足需求,
则下一步按照步
骤3.1将欲选用
的值字段包含进
经营范
围”OC01”. 4 若是无法满足需
求,则需自行定
义值字段,按下
,出现警告讯息
按下 进入
下一页. 输入预
定义的值字段名
称,注意:自行定
义的值字段必须
以”V V ”为起
始码,且总字符
宽度需介于4与
5间. 需决定此值字段为金
额或数量,确定后按下
进入下页.
5 进入值字段明细
设定页面,确认
所有必要字段
后,按下 储
存并激活此值字
段.
6 如果此值字段需
被使用至经营范
3.5维护销售订单实际值传送至PA>分配值字段按照右列路径按下
由于各模块与值字段
的连结是以条件类型
为基础,且目前根据需
求所定义出的值字段
中无与MM相关条件分
配,因此在此页中只需
维护与SD相关条件分
配,选择第一项后,按
下进入下
一页.
在此页中可以看出目
前所有销售相关条件
类型与值字段间的分
配,日后有新条件类型
产生时,必须以
方式,将SD新
条件类型分配至值字
段.
3.6维护销售订单实际值传送至PA>分配数量字段
的分配, 按照右列路径按下
在此页中可以看出
目前销售量=SD已
开票数量。
注意:APOL也可以将
销售量分为两个时
点,一是销售订单时
的销售量,二是
Billing时的出货量,
则必须另外建立出货
量的值字段,分别依
据SD数量条件分配至
数量值字段
3.7启用新进销售订单的传送
按照右列路径按下
在右页可以维护是
否启用销售订单的
传送
3.8维护开票文件传送至PA>分配值字段
按照右列路径
按下进入下一页.
在此页中只需维护与SD相关条件分配,选择第一项后,按下
进入下一页.
3.9维护开票文件传送至PA>分配数量字段
按照右列路径
按下进入下一页.
在此页中可以看出目前销售量=SD已开票数量。
注意:APOL也可以将销售量分为两个时点,一是销售订单时的销售量,二是Billing时的出货量,则必须另外建立出货量的值字段,分别依据SD数量条件分配至数量值字段。
3.10维护FI/MM的直接过帐>维护直接过帐的PA传送结构
维护完成分配屏幕的特性群组分配,下一步需维护FI会计科目过帐至CO-PA的值字段传送结构, 按照右列路径
按下进入下一页.
SAP标准已提供有FI的PA传送结构,选取”FI”结构,按
进入下一页
分配行,按
进
分配说明源文件固定可变/值字
段
10 其他费用OHPAOTHER 3/VV206
3/VV205
5101093003/VV201
4105000763/VV210
5101070053/VV207
3.11定义记录类型
CO-PA 记录类型,为CO-PA 凭证抬头必需输入字段,类似FI 中的凭证类型,可以定义为区分CO-PA 资料的来源类别,以及区分CO-PA 凭证号码范围区间。
(例如:SAP 标准功能提供SD 及FI 转入CO-PA 的记录类型分别为F 及B),照右列路径维护记录类型,按下 进入下
一页.
按进入下一
页.
3.12定义新记录类型的编号范围
按下进入下一页.
选取
,进入
下一页.
围”0C01
进入下一页
3.13定义派生规则
1、使用特征推导 Derivation 的意思是派生或推导,简单理解,就是一些特征的可以让用户根据需
求去定义自己的逻辑取值而已,
3.14定义评估策略
*----------------------------------------------------------------------* * INCLUDE ZXKKEU03 * *----------------------------------------------------------------------* * Add by liaowei,20060921
*{ INSERT PRDK900143
TABLES:mbew,zfipca4,ckmlhd,ckmlcr,zkdco02.
DATA:vmver LIKE mbew-vmver,
i_date1 LIKE sy-datum,
i_date2 LIKE sy-datum,
flag TYPE i.
DATA:monat1 LIKE zkdco02-monat.
DATA:BEGIN OF wa_item OCCURS 10,
werks LIKE mbew-bwkey,
vmver LIKE mbew-vmver,
END OF wa_item.
DATA: line_item_oc01 LIKE ce1oc01,
tmp_item_oc01 LIKE ce1oc01,
tmp_item_bukrs LIKE ce1oc01.
DATA:BEGIN OF item OCCURS 0,
matnr LIKE vbap-matnr,
werks LIKE vbap-werks,
kwmeng LIKE vbap-kwmeng,
stprs LIKE ckmlcr-stprs,
END OF item.
DATA:BEGIN OF item1 OCCURS 0,
vbeln LIKE zkdco02-vbeln,
bklas LIKE zkdco02-bklas,
pvprs LIKE zkdco02-pvprs,"实际成本
dmbtr1 LIKE zkdco02-dmbtr,"差异成本
END OF item1.
DATA stprs1 LIKE ckmlcr-stprs.
DATA stprs2 LIKE ckmlcr-stprs.
*&---------------------汇率------------------&* DATA:i_ukurs LIKE tcurr-ukurs,"汇率
t_ukurs LIKE i_ukurs,
x1 LIKE tcurr-ukurs,
x2 LIKE t001-waers ,
x3 LIKE t001-waers ,
m_ukurs TYPE f.
DATA:i_ukurs1 LIKE tcurr-ukurs,"汇率
t_ukurs1 LIKE i_ukurs,
m_ukurs1 TYPE f.
x1 = 1 .
x2 = 'USD' .
x3 = 'RMB' .
*&--------------------汇率------------------&* IMPORT i_ukurs TO t_ukurs FROM MEMORY ID sy-datum. IF sy-subrc <> 0.
*-取上期汇率
CALL FUNCTION 'J_1H_CAL_DATE_IN_INTERVAL'
EXPORTING
date = sy-datum
days = 00
months = 01
signum = '-'
years = 00
IMPORTING
calc_date = i_date1.
CONCATENATE i_date1+0(6) '15' INTO i_date2.
CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
EXPORTING
date = i_date2
foreign_amount = x1
foreign_currency = x2
local_currency = x3
type_of_rate = 'M'
IMPORTING
local_amount = i_ukurs
EXCEPTIONS
no_rate_found = 1
OTHERS = 2.
EXPORT i_ukurs TO MEMORY ID sy-datum.
t_ukurs = i_ukurs.
ENDIF.
m_ukurs = t_ukurs.
CLEAR i_date1.
CLEAR i_date2.
*--------------when 'U01'取开票记帐日期时系统的有效汇率---------* IMPORT i_ukurs1 TO t_ukurs1 FROM MEMORY ID 'WO'.
IF sy-subrc <> 0.
* i_date1 = sy-datum.
* CONCATENATE i_date1+0(6) '15' INTO i_date2.
tmp_item_oc01 = ep_source.
i_date2 = tmp_item_oc01-budat.
CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'
EXPORTING
date = i_date2
foreign_amount = x1
foreign_currency = x2
local_currency = x3
type_of_rate = 'M'
IMPORTING
local_amount = i_ukurs1
EXCEPTIONS
no_rate_found = 1
OTHERS = 2.
EXPORT i_ukurs1 TO MEMORY ID 'WO'.
t_ukurs1 = i_ukurs1.
CLEAR tmp_item_oc01.
ENDIF.
m_ukurs1 = t_ukurs1.
*-------------------------------------------*
*&--------------------END-------------------&*
* ERKRS : Operating Concern
CASE erkrs.
WHEN 'OC01'.
line_item_oc01 = ep_source.
tmp_item_bukrs = ep_source_bukrs.
CASE exit_nr.
WHEN 'U01'. " 实时Valuation
IF ( line_item_oc01-werks = '3000'
AND line_item_oc01-fkart = 'ZF2'
AND line_item_oc01-kdpos = '10' ).
SELECT matnr werks kwmeng INTO
(item-matnr,item-werks,item-kwmeng)
FROM vbap WHERE vbeln = line_item_oc01-kaufn
AND pstyv = 'ZCK2'.
SELECT SINGLE stprs INTO item-stprs FROM ckmlcr AS a
INNER JOIN ckmlhd AS b ON a~kalnr = b~kalnr
WHERE b~matnr = item-matnr AND b~bwkey = item-werks AND bdatj = line_item_oc01-gjahr
AND poper = line_item_oc01-perde.
IF item-stprs = ''.
SELECT SINGLE stprs INTO item-stprs FROM mbew
WHERE matnr = item-matnr AND bwkey = item-werks.
ENDIF.
APPEND item.
CLEAR item.
ENDSELECT.
LOOP AT item.
stprs2 = stprs2 + ( item-kwmeng * item-stprs ) .
ENDLOOP.
stprs1 = stprs2 / m_ukurs1.
line_item_oc01-vv102 = stprs1.
CLEAR stprs1.
CLEAR stprs2.
ENDIF.
WHEN 'U02'. " 期间Valuation
* 通过物料,销售范围,销售渠道查询得到佣金组
* 佣金组为 01 表示 1000 工厂, 02 表示 1200 工厂, 其他表示 3000 工厂
* 从 MBEWH 表中读取实际成本
*-如果是3000工厂:1)=ZF2,取ZKDCO02;2)<>ZF2,取3000工厂的实际价格
*-如果说不是3000工厂
*,则取先取1000工厂的实际价格,取不到则取1200工厂的实际价格
*-ADD BY QUK 2008/03/19
IF line_item_oc01-vrgar = 'F'.
IF ( line_item_oc01-werks = '3000'
AND line_item_oc01-fkart <> 'ZF2' ).
CLEAR vmver.
* CLEAR flag.
*&---------1取3000工厂的实际价格----&*
SELECT SINGLE ckmlcr~pvprs FROM ckmlhd INNER JOIN ckmlcr ON ckmlhd~kalnr = ckmlcr~kalnr
INTO vmver
WHERE ckmlhd~matnr = line_item_oc01-artnr
AND ckmlhd~bwkey = '3000'
AND ckmlcr~curtp = '10'
AND ckmlcr~bdatj = line_item_oc01-gjahr
AND ckmlcr~poper = line_item_oc01-perde+1(2). IF sy-subrc <> 0.
SELECT SINGLE vmver FROM mbew INTO vmver
WHERE matnr = line_item_oc01-artnr AND bwkey = '3000'.
ENDIF.
line_item_oc01-vv103 = vmver * line_item_oc01-vv114
/ tmp_item_bukrs-kursf.
IF line_item_oc01-kdpos = 10.
SELECT single dmbtr1 into line_item_oc01-vv117
FROM zkdco02
WHERE vbeln = line_item_oc01-kaufn
AND bklas = '8408'.
line_item_oc01-vv117 = line_item_oc01-vv117 /
tmp_item_bukrs-kursf.
ENDIF.
ELSEIF ( line_item_oc01-werks = '3000'
AND line_item_oc01-fkart = 'ZF2' ).
IF line_item_oc01-kdpos = 10.
SELECT vbeln bklas pvprs dmbtr1 APPENDING CORRESPONDING FIELDS OF
TABLE item1 FROM zkdco02
WHERE vbeln = line_item_oc01-kaufn.
SORT item1 BY vbeln bklas.
LOOP AT item1.
AT END OF bklas.
SUM.
IF item1-bklas = '8408'. "840
line_item_oc01-vv117 = line_item_oc01-vv117 + item1-dmbtr1 / tmp_item_bukrs-kursf.
ELSE.
line_item_oc01-vv116 = line_item_oc01-vv116 + item1-dmbtr1 / tmp_item_bukrs-kursf.
line_item_oc01-vv103 = line_item_oc01-vv103 + item1-pvprs / tmp_item_bukrs-kursf.
ENDIF.
ENDAT.
ENDLOOP.
REFRESH item1.
ENDIF.
* IF line_item_oc01-vv117 = 0 AND line_item_oc01-vv116 = 0. * zfipca4-belnr = line_item_oc01-belnr.
* zfipca4-werks = line_item_oc01-werks.
* zfipca4-matnr = line_item_oc01-artnr.
* zfipca4-kaufn = line_item_oc01-kaufn.
* zfipca4-erdat = sy-datum.
* zfipca4-cputm = sy-uzeit.
* zfipca4-flag = flag.
* MODIFY zfipca4.
* ENDIF.
ELSEIF line_item_oc01-werks <> '3000'.
CLEAR vmver.
CLEAR flag.
*&---------1000,1200上了物料帐,可以试取移动平均价----&*
SELECT SINGLE kalnr FROM ckmlhd INTO ckmlhd-kalnr
WHERE matnr = line_item_oc01-artnr
AND bwkey = '1000' .
IF sy-subrc = 0.
SELECT SINGLE pvprs FROM ckmlcr INTO vmver
WHERE kalnr = ckmlhd-kalnr
AND curtp = '10'
AND bdatj = line_item_oc01-gjahr
AND poper = line_item_oc01-perde+1(2). ENDIF.
IF vmver = 0.
SELECT SINGLE kalnr FROM ckmlhd INTO ckmlhd-kalnr WHERE matnr = line_item_oc01-artnr
AND bwkey = '1200' .
IF sy-subrc = 0.
SELECT SINGLE pvprs FROM ckmlcr INTO vmver
WHERE kalnr = ckmlhd-kalnr
AND curtp = '10'
AND bdatj = line_item_oc01-gjahr
AND poper = line_item_oc01-perde+1(2). ENDIF.
ENDIF.
*&----------如果取不到则去MBEW表中试试--------------&*
IF vmver = 0.
SELECT SINGLE vmver FROM mbew
INTO vmver
WHERE matnr = line_item_oc01-artnr AND bwkey = line_item_oc01-werks.
ELSE.
flag = 1.
ENDIF.
line_item_oc01-vv103 = vmver * line_item_oc01-vv114 / m_ukurs.
*&----------最后处理不了的更新到自定义表中---------&*
IF line_item_oc01-vv103 = 0.
zfipca4-belnr = line_item_oc01-belnr.
zfipca4-werks = line_item_oc01-werks.
zfipca4-matnr = line_item_oc01-artnr.
zfipca4-kaufn = line_item_oc01-kaufn.
zfipca4-erdat = sy-datum.
zfipca4-cputm = sy-uzeit.
zfipca4-flag = flag.
MODIFY zfipca4.
ENDIF.
ENDIF.
ENDIF.
ENDCASE.
ep_target = line_item_oc01.
ENDCASE.。