Cost Estimate Currency Display
Hi,
When I run cost estimate with 2 different currency settings in the system, how do I permanently make the display to always show cost estimate in USD (controlling area currency ) and not EURO (company code currency)?
Hi,
See the help
http://help.sap.com/saphelp_47x200/helpdata/en/08/51430943b511d182b30000e829fbfe/frameset.htm
Regards
Kiran Sure
Similar Messages
-
Hello Gurus,
Once the cost estimate is run for a material, we could see the values in controlling currency. But i need Company code currecny. Could any body let me know the configuration for this.
Thanks in advance,
SKHi,
Currencies in Costing
You can update and display the costing results (cost component split, and itemization) in both the company code currency and the controlling area currency. The cost component split is then rolled up in both currencies. The controlling area currency is only valid for the legal valuation level.
If the controlling area currency is different from the company code currency, the itemization will be updated in both currencies. The value in the company currency is converted into the controlling area currency.
The additional currency information is required in variance calculation to calculate the target costs.
If the material ledger is active, you can update raw material prices in the material master record in three currencies. You can transfer the material price in the controlling area currency directly into the cost estimate. For semi-finished products, the cost estimate is updated in both currencies.
If the material ledger is active, the marked and released costing results are updated in the company code currency and the controlling area currency in the material ledger master data, provided that the corresponding currency types are used in the material ledger. (In this case, release is carried out in material price determination.)
Costing can also access prices in company code currency and controlling area currency in the Material Ledger master data.
See also:
Actual Costing/Material Ledger
Implementation Guide for Product Cost Planning
Activities
You activate the cost component split in the controlling area currency in Customizing for Product Cost Planning.
Thanks,
Rau -
Material Cost estimate in foreign Currency
Hi all,
We are trying to run CK11N, mateiral cost estimate for a material and its showing the error that exchange rate not maintained for CNY to JPY for exchange rate type "P".
But in quality, even without maintaining the settings, we are able to run the cost estimate.
Please let me know what could be the reason for the same.
Thanks,
Sajan C PDear Sajan C P,
If exchange rate type "P" for CNY to JPY has not been maintained in your quality system, I would assume that a component has been valuated with a price from purchasing info record. In your quality system, this price is already in local currency. Due to this, the system does not need to convert this value during calculation.
In your other system, the situation is probably different. The price from purchasing info record needs to be converted. For this reason, an exchange rate has to be maintained in OB08. You can check the currency setting of the info record in table EINE.
Regards,
Antje -
Cost estimate display is confusing
I have a cost estimate scenario as under:
Finished product Y gets received at distribution plant N after external processing after leaving manufacturing plant M as a semi-finished product X.
Finished product (at the distribution center) costed on Day 1 = $ 90 (cost of X pulled from plant M's last cost estimate)
Semi-finished product X gets recosted again in plant M on Day 2 and gives cost $95
But finished product Y not recosted in plant N after that to reflect $95 instead of $90.
But when you do a CK13N on finished product Y in plant N.
It shows $90 in the multi-level costed BOM at the top total but underneath it, the semi-finished product displays the Day 2 cost of $95. Should it not be showing the cost of $90 as on the date of the Day 1 cost estimate which is what was used for the Day 1 cost estimate for the finished product?
Attached document contains screenshotHello Rajaram,
The report can be a confusing report.
One thing to understand is that the report is reading saved data and values in tables KEKO and CKIS. The report you see in CK13n is not doing any totaling, just displaying saved data.
If FP in DC was saved at 90
and SFP recosted and saved at 95
and this new cost was not rolled into DistCenter and saved, there is no way the report will reflect 95.
It is not like an EXCEL sheet totaling columns of numbers, it only reports what was saved.
hope this helps, please ask if you have another question about it
Althea -
Display Dept. amount in Std cost estimate cost component view
Dears,
During implementation of Repetitive manufacturing, my customer Requirement is to have 4 activity types:
1- Utilities : (Elect-water-GAS ... Etc)
2- Labor : (salary - bonus ..Etc)
3- Depreciation : (Depreciation exp)
4- other : like (maintenance .. Etc)
he wants that so he can know this classification of the above costs liek depreciation per material in the standard cost estimate so my question is:
Is it applicable to display the above requirement and using only 2 activity types
Labour and machine
and use the cost component structure to display the above req ?
as an example:
in CK11N : if i switch to cost component view to display the depreciation amount and Etc
Thanks and best Regards,
Ahmed SamirSalaam Ahmad
You have both choices.
You can go with 4 act types or go with 2 and use costing sheet for the other costs
I will prefer 4 act types
Br. Ajay M -
Display amount from Base Planning Object or Cost Estimate W/O Qt St in COPA
Dear all,
Can we display the amount we calculated in Base Planning Object or in Cost Estimate w/o Quantity Structure?
if Yes, How?
Many thanks,
EWTry with
<b>OPEN DATASET p_pfile FOR APPENDING IN BINARY MODE.</b>
Regds
Manohar -
Digits Of Significance/Rounding Issue-Cost Estimate With Quantity Structure
I have an Excel based BOM which includes Material (Yield) Qty, plus a scrap factor. This adjusted yield is then multiplied by the Unit Price to get the Extended Amount. An example from my file is:
Material 10-0766 = yield of 1.824 sq ft less 4% scrap 0.07 sq ft = adjusted yield 1.897 sq ft * 1.836 USD/sq ft = Ext. Amt of 3.483 USD.
In SAP, I created a BOM via CS01 with this material as a line item, 1.824 as the qty, UOM is FT2 (sq ft) and I added a Assembly Scrap of 4% with the Net ID indicator checked. When I create a cost estimate via CK11N (in our SAP AFS 6.0 sandbox), the itemization for this material reads: qty of 1.897, total cost of 3.48 USD.
The math all works, but the resultant USD amount in SAP is short by .003 USD. I realize that USD currency is configured to only 2 decimal places, and that is fine. But, I thought that the calculations that costing was doing was retaining all the digits of significance past the 2 decimal places being shown, rather than rounding off to 2 decimal places. There are 24 materials in this BOM, and the total delta between my Excel sheet total (17.647 USD) and my SAP estimate (17.63 USD) is 0.017 USD. If I look at each item, the cumulative difference is due to each line rounding off to 2 decimal places.
The units of measure (via tcode CUNI) are all configured to show display 3 decimal places (field DECAN) and round to 5 decimal places (field ANDEC).
Does anyone have any information/suggestions around the precision in my SAP cost estimate? Am I stuck with these differences, or is there something I can do differently to prevent them? I know I can increase digits of significance in Activity Price Calculation, but I can't find anything similar in Product Cost Planning. Any help would be greatly appreciated.Hi
To achieve you have to run the costing run twice once normally.
Secondly you create an alternate BOM 2 by having the same alternate BOM 1 and remove the 2 materials which you dont want.
Execute the costing run, provide the details required in the Costing data screen, press enter, go to the Qty structure screen give the details of the Alternate BOM 2 in the BOM details and execute the costing run.
Save the cost estimate, which would be have been costed without the values of two materials as you wanted by using the alternate BOM 2.
Then use CK24, select the option "other prices" to release the cost estimate for the commercial price only by selecting the indicator of commercial price 3 only.
Regards,
Suraj -
Material Cost estimate modification
Hi Experts
I want to modified this report and add cost estimate value from MBEW (field is STPRS) for each material to this report. I have used the table MBEW but unable to locate where to start.
Can anyone have a look and comment on this report
REPORT command_extract .
*CLASS cl_gui_control DEFINITION LOAD.
*CLASS cl_gui_frontend_services DEFINITION LOAD.
Tables
TABLES:
kna1,
knb1,
knvv,
mara,
mast, "JPC20061107
marc,
makt,
sscrfields.
CONSTANTS: BEGIN OF gc_status,
acc TYPE zcrstat1 VALUE ' ACC',
hol TYPE zcrstat1 VALUE ' HOL',
sto TYPE zcrstat1 VALUE ' STO',
ok TYPE zcrstat1 VALUE ' OK',
hold TYPE zcrstat1 VALUE 'HOLD',
END OF gc_status.
CONSTANTS: BEGIN OF gc_reason,
000 TYPE zreason VALUE '000',
001 TYPE zreason VALUE '001',
002 TYPE zreason VALUE '002',
003 TYPE zreason VALUE '003',
004 TYPE zreason VALUE '004',
005 TYPE zreason VALUE '005',
006 TYPE zreason VALUE '006',
007 TYPE zreason VALUE '007',
008 TYPE zreason VALUE '008',
010 TYPE zreason VALUE '010',
011 TYPE zreason VALUE '011',
021 TYPE zreason VALUE '021',
022 TYPE zreason VALUE '022',
023 TYPE zreason VALUE '023',
024 TYPE zreason VALUE '024',
025 TYPE zreason VALUE '025',
026 TYPE zreason VALUE '026',
999 TYPE zreason VALUE '999',
END OF gc_reason.
TYPES: BEGIN OF ty_kna1_fields,
kunnr TYPE kna1-kunnr,
sperr TYPE kna1-sperr,
aufsd TYPE kna1-aufsd,
lifsd TYPE kna1-lifsd,
faksd TYPE kna1-faksd,
loevm TYPE kna1-loevm,
END OF ty_kna1_fields.
TYPES: BEGIN OF ty_knb1_fields,
kunnr TYPE knb1-kunnr,
bukrs TYPE knb1-bukrs,
sperr TYPE knb1-sperr,
loevm TYPE knb1-loevm,
END OF ty_knb1_fields.
TYPES: BEGIN OF ty_knvv_fields,
kunnr TYPE knvv-kunnr,
vkorg TYPE knvv-vkorg,
vtweg TYPE knvv-vtweg,
spart TYPE knvv-spart,
aufsd TYPE knvv-aufsd,
lifsd TYPE knvv-lifsd,
faksd TYPE knvv-faksd,
END OF ty_knvv_fields.
TYPES: BEGIN OF ty_knkk_fields,
kunnr TYPE knkk-kunnr,
kkber TYPE knkk-kkber,
ctlpc TYPE knkk-ctlpc,
crblb TYPE knkk-crblb,
knkli TYPE knkk-knkli,
klimk TYPE knkk-klimk,
skfor TYPE knkk-skfor,
ssobl TYPE knkk-ssobl,
END OF ty_knkk_fields.
TYPES: BEGIN OF ty_cust_stat_output,
kunnr(10) TYPE c, "Customer #
stat(4) TYPE c, "Customer status
END OF ty_cust_stat_output.
TYPES:
BEGIN OF ty_customers,
kunnr(10) TYPE c, " Customer #
div1(1) TYPE c, " Pipe delimiter
name1(32) TYPE c, " Customer name
div2(1) TYPE c, " Pipe delimiter
altkn(8) TYPE c, " Old Customer #
div3(1) TYPE c, " Pipe delimiter
stras(30) TYPE c, " Street
div4(1) TYPE c, " Pipe delimiter
ort01(20) TYPE c, " City
div5(1) TYPE c, " Pipe delimiter
regio(3) TYPE c, " State
div6(1) TYPE c, " Pipe delimiter
pstlz(4) TYPE c, " Postcode
div7(1) TYPE c, " Pipe delimiter
telf1(14) TYPE c, " Phone 1
div8(1) TYPE c, " Pipe delimiter
telf2(14) TYPE c, " Phone 2
div9(1) TYPE c, " Pipe delimiter
erdat(10) TYPE c, " date
div10(1) TYPE c, " Pipe delimiter
splant(2) TYPE c, " plant
div11(1) TYPE c, " Pipe delimiter
END OF ty_customers,
it_ty_customers TYPE ty_customers OCCURS 0,
BEGIN OF ty_custstat,
kunnr(11) TYPE c, " Customer #
company(2) TYPE c, " #
status(3) TYPE c, " acc,cod,hol,
END OF ty_custstat,
it_ty_custstat TYPE ty_custstat OCCURS 0.
TYPES:
BEGIN OF ty_materialm,
matnr(12) TYPE c, " Material #
maktx2(40) TYPE c, " Command sales desc.
maktx(16) TYPE c, " Basic description
extwg(6) TYPE c, " External Material Group
flag1(1) TYPE c, "
flag2(1) TYPE c, "
flag3(1) TYPE c, "
flag4(1) TYPE c, "
END OF ty_materialm,
it_ty_materialm TYPE ty_materialm OCCURS 0,
BEGIN OF ty_materialp,
matnr(12) TYPE c, " Material #
werks(4) TYPE c, " plant
batch(1) TYPE c, " download to batch
END OF ty_materialp,
it_ty_materialp TYPE ty_materialp OCCURS 0.
TYPES:
BEGIN OF ty_bom,
matnr(12) TYPE c, " Material #
werks(4) TYPE c, " Plant
posnr(3) TYPE c, " position
idnrk(12) TYPE c, " BOM material #
menge(10) TYPE c, " Quantity
meins(3) TYPE c, " Unit of Measure
END OF ty_bom,
it_ty_bom TYPE ty_bom OCCURS 0,
*Start of block of changes for JPC20061107
BEGIN OF ty_bom_sapfmt,
matnr TYPE MAST-MATNR, " Material #
werks TYPE MAST-WERKS, " Plant
posnr TYPE STPO-POSNR, " position
idnrk TYPE STPO-IDNRK, " BOM material #
menge TYPE STPO-MENGE, " Quantity
meins TYPE STPO-MEINS, " Unit of Measure
potx1 TYPE STPO-POTX1, " Text description for BOM
END OF ty_bom_sapfmt.
BEGIN OF ty_bomlist,
matnr LIKE mast-matnr, " Material #
stlnr LIKE mast-stlnr, " BOM #
posnr LIKE stpo-posnr, " BOM item#
idnrk LIKE stpo-idnrk, " BOM material #
menge LIKE stpo-menge, " BOM material qty
meins LIKE stpo-meins, " BOM material uom
END OF ty_bomlist,
it_ty_bomlist TYPE ty_bomlist OCCURS 0.
*Ending block of changes for JPC20061107
Selection screen definition
SELECTION-SCREEN: BEGIN OF BLOCK gen WITH FRAME TITLE text-001.
PARAMETERS:
p_dir like rlgrap-filename obligatory, " extract directory
p_ccust TYPE c DEFAULT ' ' AS CHECKBOX, " Check box customers
p_cmatm TYPE c DEFAULT ' ' AS CHECKBOX, " Check box Materials
p_cbom TYPE c DEFAULT ' ' AS CHECKBOX, " Check box BOMs
p_ccst TYPE c DEFAULT ' ' AS CHECKBOX. " Check box credit stat
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-006.
PARAMETERS:
p_gui RADIOBUTTON GROUP rg1 USER-COMMAND u01,
p_svr RADIOBUTTON GROUP rg1 DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK a.
SELECTION-SCREEN: END OF BLOCK gen.
SELECTION-SCREEN: BEGIN OF BLOCK cust WITH FRAME TITLE text-002.
PARAMETERS:
p_dcust LIKE filepath-pathintern DEFAULT 'Z_COMMAND_CUST_EXTRACT',
p_fcust LIKE rlgrap-filename,
p_dcomp LIKE knb1-bukrs,
p_dsale LIKE knvv-vkorg,
p_dwerk(3) TYPE c.
SELECTION-SCREEN: END OF BLOCK cust.
SELECTION-SCREEN: BEGIN OF BLOCK matnr WITH FRAME TITLE text-003.
PARAMETERS:
p_dmatm LIKE filepath-pathintern
DEFAULT 'Z_COMMAND_MATERIAL_EXTRACT',
p_fmatm LIKE rlgrap-filename,
p_fmatp LIKE rlgrap-filename,
p_dwerks LIKE marc-werks,
p_dspras LIKE makt-spras,
p_dbatch(1) TYPE c,
p_dflag1(1) TYPE c,
p_dflag2(1) TYPE c,
p_dflag3(1) TYPE c,
p_dflag4(1) TYPE c.
SELECT-OPTIONS:
s_dextwg FOR mara-extwg.
SELECTION-SCREEN: END OF BLOCK matnr.
SELECTION-SCREEN: BEGIN OF BLOCK bom WITH FRAME TITLE text-004.
PARAMETERS:
p_dbom LIKE filepath-pathintern DEFAULT 'Z_COMMAND_BOM_EXTRACT',
p_fbom LIKE rlgrap-filename.
p_bwerks LIKE mast-werks. "Made a select-optoin JPC20061107
SELECT-OPTIONS:
s_bmatnr FOR MARA-MATNR, "JPC20061107
s_bwerks FOR MAST-WERKS no-extension no intervals, "JPC20061107
s_bextwg FOR mara-extwg.
SELECTION-SCREEN: END OF BLOCK bom.
SELECTION-SCREEN: BEGIN OF BLOCK ccst WITH FRAME TITLE text-005.
PARAMETERS:
p_dccst LIKE filepath-pathintern
DEFAULT 'Z_COMMAND_CUST_STAT_EXTRACT',
p_fccst LIKE rlgrap-filename,
p_fccst2 LIKE rlgrap-filename,
p_fccstl LIKE rlgrap-filename.
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-007.
PARAMETERS: p_csall RADIOBUTTON GROUP gp2.
PARAMETERS: p_csdlt RADIOBUTTON GROUP gp2 DEFAULT 'X'.
PARAMETERS: p_append RADIOBUTTON GROUP GP3 DEFAULT 'X', "Append files output to server for cust credit data ?
p_owrite RADIOBUTTON GROUP GP3.
SELECTION-SCREEN END OF BLOCK b.
SELECT-OPTIONS:
s_kunnr FOR kna1-kunnr.
SELECTION-SCREEN: END OF BLOCK ccst.
DATA: clsdir TYPE REF TO cl_gui_frontend_services.
DATA: strfolder TYPE string.
DATA: folderln TYPE i.
DATA: gva_error(1) TYPE c VALUE ' '.
Initial procedure on START ***************
INITIALIZATION.
p_fcust = 'CUST.prn'.
p_fmatm = 'MATM.prn'.
p_fmatp = 'MATP.prn'.
p_fbom = 'BOM.prn'.
p_fccst = 'CCSTAT.prn'.
p_fccst2 = 'CCSTATC.prn'.
p_fccstl = 'CCSTATL.prn'.
s_dextwg-option = 'BT'.
s_dextwg-low = '1'.
s_dextwg-high = '8'.
APPEND s_dextwg.
s_bextwg-option = 'BT'.
s_bextwg-low = '1'.
s_bextwg-high = '1'.
APPEND s_bextwg.
AT SELECTION-SCREEN.
IF p_ccust EQ 'X' AND ( p_fcust IS INITIAL OR p_dcust IS INITIAL ).
MESSAGE s000(zppu)
WITH 'You must specify the file details for the customer data'.
gva_error = 'X'.
ENDIF.
IF p_cmatm EQ 'X' AND ( p_fmatm IS INITIAL OR
p_fmatp IS INITIAL OR
p_dmatm IS INITIAL ).
MESSAGE s001(zppu)
WITH 'You must specify the file details for the material data'.
gva_error = 'X'.
ENDIF.
IF p_cbom EQ 'X' AND ( p_fbom IS INITIAL OR p_dbom IS INITIAL ).
MESSAGE s002(zppu)
WITH 'You must specify the file details for the BOM data'.
gva_error = 'X'.
ENDIF.
IF p_cbom EQ 'X'.
IF s_bwerks-low is initial.
MESSAGE s002(zppu)
WITH 'You must specify a plant to run BOM extract for'.
gva_error = 'X'.
ENDIF.
IF LINES( s_bwerks ) > 1.
MESSAGE s002(zppu)
WITH 'You can only specify 1 plant for BOM extract'.
gva_error = 'X'.
ENDIF.
ENDIF.
IF p_ccst EQ 'X' AND ( p_fccst IS INITIAL OR
p_fccst2 IS INITIAL OR
p_fccstl IS INITIAL OR
p_dccst IS INITIAL ).
MESSAGE s002(zppu)
WITH 'You must specify the file details for the customer'
'status data'.
gva_error = 'X'.
ENDIF.
AT SELECTION-SCREEN OUTPUT.
PERFORM user_command.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fcust.
PERFORM get_gui_filename USING p_dcust p_fcust.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fmatm.
PERFORM get_gui_filename USING p_dmatm p_fmatm.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fmatp.
PERFORM get_gui_filename USING p_dmatm p_fmatp.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fbom.
PERFORM get_gui_filename USING p_dbom p_fbom.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fccst.
PERFORM get_gui_filename USING p_dccst p_fccst.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fccst2.
PERFORM get_gui_filename USING p_dccst p_fccst2.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fccstl.
PERFORM get_gui_filename USING p_dccst p_fccstl.
END-OF-SELECTION.
Data selection execution.
DATA: lwa_kna1 TYPE kna1,
lwa_knb1 TYPE knb1,
lwa_knvv TYPE knvv.
DATA: lwa_marc TYPE marc,
lwa_mara TYPE marav,
lwa_makt TYPE makt.
DATA: lit_marav TYPE marav OCCURS 0.
DATA: lit_customers TYPE it_ty_customers,
lwa_customers TYPE ty_customers.
DATA: lit_custstat TYPE it_ty_custstat,
lwa_custstat TYPE ty_custstat.
DATA: lit_materialm TYPE it_ty_materialm,
lwa_materialm TYPE ty_materialm.
DATA: lit_materialp TYPE it_ty_materialp,
lwa_materialp TYPE ty_materialp.
*(del)DATA: lwa_bomlist TYPE ty_bomlist, "JPC20061107
*(del) lit_bomlist TYPE it_ty_bomlist. "JPC20061107
DATA: lwa_bom TYPE ty_bom_sapfmt,
lit_bom TYPE it_ty_bom WITH HEADER LINE. "JPC20061107
lit_bom TYPE it_ty_bom. "JPC20061107
DATA: output_file TYPE string.
DATA: lock_file TYPE string.
DATA: lva_mssage TYPE string.
DATA: lva_matnr(18) TYPE n.
DATA: lva_date TYPE datum.
DATA: txtper(3) TYPE c.
DATA: custper TYPE i.
DATA: custcount TYPE i.
DATA: itemnum TYPE i.
CHECK gva_error <> 'X'.
IF p_ccust EQ 'X'. " Do the customer file extract
PERFORM extract_customer_details.
ENDIF.
IF p_cmatm EQ 'X'. " Do the Material file extract
PERFORM extract_material_details.
ENDIF.
IF p_cbom EQ 'X'. " Do the BOM file extract
PERFORM extract_bom_details.
ENDIF.
IF p_ccst EQ 'X'. " Do the customer credit status file extract
PERFORM extract_credit_status_details.
ENDIF.
*& Form extract_customer_details
text
--> p1 text
<-- p2 text
FORM extract_customer_details.
SELECT * FROM knb1
INTO lwa_knb1
WHERE bukrs = p_dcomp.
MOVE-CORRESPONDING lwa_knb1 TO lwa_customers.
MOVE-CORRESPONDING lwa_knb1 TO lwa_custstat.
MOVE '#' TO lwa_custstat-company.
MOVE p_dwerk TO lwa_customers-splant.
WG1K903075: Start Delete---*
move: '|' to lwa_customers-div1,
'|' to lwa_customers-div2,
'|' to lwa_customers-div3,
'|' to lwa_customers-div4,
'|' to lwa_customers-div5,
'|' to lwa_customers-div6,
'|' to lwa_customers-div7,
'|' to lwa_customers-div8,
'|' to lwa_customers-div9,
'|' to lwa_customers-div10,
'|' to lwa_customers-div11.
WG1K903075: End Delete-----*
WG1K903075: Start Insert---*
MOVE: ' ' TO lwa_customers-div1,
' ' TO lwa_customers-div2,
' ' TO lwa_customers-div3,
' ' TO lwa_customers-div4,
' ' TO lwa_customers-div5,
' ' TO lwa_customers-div6,
' ' TO lwa_customers-div7,
' ' TO lwa_customers-div8,
' ' TO lwa_customers-div9,
' ' TO lwa_customers-div10,
' ' TO lwa_customers-div11.
WG1K903075: End Insert-----*
APPEND lwa_customers TO lit_customers.
APPEND lwa_custstat TO lit_custstat.
ENDSELECT.
DESCRIBE TABLE lit_customers LINES custcount.
LOOP AT lit_customers INTO lwa_customers.
txtper = 100 * sy-tabix / custcount.
custper = txtper.
SELECT SINGLE * FROM kna1
INTO lwa_kna1
WHERE kunnr = lwa_customers-kunnr.
MOVE-CORRESPONDING lwa_kna1 TO lwa_customers.
lva_date = lwa_customers-erdat.
CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
EXPORTING
date_internal = lva_date
IMPORTING
date_external = lwa_customers-erdat
EXCEPTIONS
date_internal_is_invalid = 1
OTHERS = 2.
REPLACE ALL OCCURRENCES OF '.'
IN lwa_customers-erdat WITH '/'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = lwa_customers-kunnr
IMPORTING
output = lwa_customers-kunnr.
WRITE: lwa_customers-kunnr RIGHT-JUSTIFIED TO lwa_customers-kunnr.
MODIFY lit_customers FROM lwa_customers.
Percentage indicator display
lva_mssage = 'Extracting customers'.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = custper
text = lva_mssage.
ENDLOOP.
IF p_gui IS INITIAL.
PERFORM get_file_path USING p_dcust p_fcust output_file.
OPEN DATASET output_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc EQ 0.
LOOP AT lit_customers INTO lwa_customers.
TRANSFER lwa_customers TO output_file.
ENDLOOP.
CLOSE DATASET output_file.
ELSE.
MESSAGE s002(zppu)
WITH 'Dataset' output_file 'cannot be opened on the server'.
ENDIF.
ELSE.
MOVE p_fcust TO output_file.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = output_file
filetype = 'ASC'
TABLES
data_tab = lit_customers
EXCEPTIONS
OTHERS = 11.
ENDIF.
output_file = custcount.
CONCATENATE
output_file
' Customers extracted'
INTO
lva_mssage.
message lva_mssage type 'I'.
ENDFORM. " extract_customer_details
*& Form extract_material_details
text
--> p1 text
<-- p2 text
FORM extract_material_details.
select maramatnr maramaktx
maramatkl marcwerks
SELECT *
FROM marav AS mara
INNER JOIN marc AS marc
ON marc~matnr EQ mara~matnr
INTO CORRESPONDING FIELDS OF lwa_mara
WHERE marc~werks = p_dwerks
AND mara~spras = 'EN'
AND mara~extwg IN s_dextwg.
MOVE-CORRESPONDING lwa_mara TO lwa_materialm.
WRITE: lwa_mara-matnr TO lwa_materialm-matnr.
MOVE: p_dflag1 TO lwa_materialm-flag1,
p_dflag2 TO lwa_materialm-flag2,
p_dflag3 TO lwa_materialm-flag3,
p_dflag4 TO lwa_materialm-flag4.
APPEND lwa_materialm TO lit_materialm.
ENDSELECT.
DESCRIBE TABLE lit_materialm LINES custcount.
LOOP AT lit_materialm INTO lwa_materialm.
txtper = 100 * sy-tabix / custcount.
custper = txtper.
CLEAR lwa_materialp.
CLEAR lwa_mara.
MOVE: lwa_materialm-matnr TO lwa_materialp-matnr,
p_dwerks TO lwa_materialp-werks,
p_dbatch TO lwa_materialp-batch.
APPEND lwa_materialp TO lit_materialp.
MOVE: lwa_materialm-matnr TO lva_matnr.
MOVE: lva_matnr TO lwa_mara-matnr.
SELECT SINGLE maktx FROM makt
INTO lwa_materialm-maktx2
WHERE matnr = lwa_mara-matnr
AND spras = p_dspras.
IF lwa_materialm-maktx2 IS INITIAL.
lwa_materialm-maktx2 = lwa_materialm-maktx.
ENDIF.
MODIFY lit_materialm FROM lwa_materialm.
Percentage indicator display
lva_mssage = 'Extracting materials'.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = custper
text = lva_mssage.
ENDLOOP.
IF p_gui IS INITIAL.
PERFORM get_file_path USING p_dmatm p_fmatm output_file.
OPEN DATASET output_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc EQ 0.
LOOP AT lit_materialm INTO lwa_materialm.
TRANSFER lwa_materialm TO output_file.
ENDLOOP.
CLOSE DATASET output_file.
ELSE.
MESSAGE s002(zppu)
WITH 'Dataset' output_file 'cannot be opened on the server'.
ENDIF.
ELSE.
MOVE p_fmatm TO output_file.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = output_file
filetype = 'ASC'
write_field_separator = ' '
TABLES
data_tab = lit_materialm
EXCEPTIONS
OTHERS = 11.
ENDIF.
IF p_gui IS INITIAL.
PERFORM get_file_path USING p_dmatm p_fmatp output_file.
OPEN DATASET output_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc EQ 0.
LOOP AT lit_materialp INTO lwa_materialp.
TRANSFER lwa_materialp TO output_file.
ENDLOOP.
CLOSE DATASET output_file.
ELSE.
MESSAGE s002(zppu)
WITH 'Dataset' output_file 'cannot be opened on the server'.
ENDIF.
ELSE.
MOVE p_fmatp TO output_file.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = output_file
filetype = 'ASC'
write_field_separator = ' '
TABLES
data_tab = lit_materialp
EXCEPTIONS
OTHERS = 11.
ENDIF.
REFRESH lit_materialm.
ENDFORM. " extract_material_details
*& Form extract_bom_details
text
--> p1 text
<-- p2 text
FORM extract_bom_details.
Lines below commented out and replaced with SELECT from ABAP Query run from
transaction ZBOM. Previously duplicate materials were selected. JPC20061107
REFRESH lit_materialm.
SELECT *
FROM marav AS mara
INNER JOIN marc AS marc
ON marcmatnr EQ maramatnr
INTO CORRESPONDING FIELDS OF lwa_mara
WHERE marc~werks = p_bwerks
AND mara~spras = 'EN'
AND mara~extwg IN s_bextwg.
APPEND lwa_mara TO lit_marav.
ENDSELECT.
DESCRIBE TABLE lit_marav LINES custcount.
LOOP AT lit_marav INTO lwa_mara.
Percentage indicator calculation
txtper = 100 * sy-tabix / custcount.
custper = txtper.
SELECT
mast~matnr
mast~stlnr
stpo~posnr
stpo~idnrk
stpo~menge
stpo~meins
FROM mast AS mast
LEFT OUTER JOIN stpo AS stpo
ON stpostlnr EQ maststlnr
INTO lwa_bomlist
WHERE mast~matnr = lwa_mara-matnr.
CLEAR lwa_bom.
MOVE-CORRESPONDING lwa_bomlist TO lwa_bom.
WRITE: lwa_bomlist-matnr TO lwa_bom-matnr.
IF lwa_bomlist-idnrk IS INITIAL.
WRITE: 'BACKBIN' TO lwa_bom-idnrk.
ELSE.
WRITE: lwa_bomlist-idnrk TO lwa_bom-idnrk.
ENDIF.
MOVE: lwa_bomlist-posnr TO itemnum.
WRITE: itemnum TO lwa_bom-posnr RIGHT-JUSTIFIED.
write: lwa_bomlist-menge
to lwa_bom-menge
decimals 2.
MOVE: p_bwerks TO lwa_bom-werks.
APPEND lwa_bom TO lit_bom.
ENDSELECT.
Percentage indicator display
lva_mssage = 'Extracting material B.O.Ms'.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = custper
text = lva_mssage.
ENDLOOP.
select MASTMATNR MASTWERKS STPOPOSNR STPOIDNRK STPOMENGE STPOMEINS "JPC20061220
select MAST~MATNR MAST~WERKS STPO~POSNR STPO~IDNRK STPO~MENGE STPO~MEINS STPO~POTX1 "JPC20061220
into lwa_bom
from ( MAST
inner join STKO
on STKO~STLAL = MAST~STLAL
and STKO~STLNR = MAST~STLNR
and STKO~WRKAN = MAST~WERKS
inner join MARA as MARA_H
on MARA_H~MATNR = MAST~MATNR
left outer join STAS
on STAS~STLAL = STKO~STLAL
and STAS~STLNR = STKO~STLNR
and STAS~STLTY = STKO~STLTY
inner join STPO
on STPO~STLKN = STAS~STLKN
and STPO~STLNR = STAS~STLNR
and STPO~STLTY = STAS~STLTY
inner join MARA JPC20061220
left outer join MARA "JPC20061220
on MARA~MATNR = STPO~IDNRK )
where MARA_H~MATNR in s_bmatnr
and MAST~WERKS in s_bwerks
and MARA_H~EXTWG in s_bextwg.
clear lit_bom.
WRITE lwa_bom-matnr TO lit_bom-matnr.
MOVE lwa_bom-werks TO lit_bom-werks.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = lwa_bom-posnr
IMPORTING
output = lit_bom-posnr.
SHIFT lit_bom-posnr right deleting trailing space.
IF lwa_bom-idnrk IS INITIAL.
WRITE 'BACKBIN' TO lit_bom-idnrk. JPC20061220
WRITE lwa_bom-potx1 TO lit_bom-idnrk. "JPC20061220
ELSE.
WRITE lwa_bom-idnrk TO lit_bom-idnrk.
ENDIF.
MOVE: lwa_bom-menge TO lit_bom-menge,
lwa_bom-meins TO lit_bom-meins.
APPEND lit_bom.
ENDSELECT.
SORT lit_bom ascending.
Ending for lines inserted for change 20061107
IF p_gui IS INITIAL. "write to server
PERFORM get_file_path USING p_dbom p_fbom output_file.
OPEN DATASET output_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc EQ 0.
custcount = lines( lit_bom ).
LOOP AT lit_bom.
txtper = 100 * sy-tabix / custcount.
custper = txtper.
lva_mssage = 'Extracting material B.O.Ms'.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING percentage = custper
text = lva_mssage.
TRANSFER lit_bom TO output_file.
ENDLOOP.
CLOSE DATASET output_file.
ELSE.
MESSAGE s002(zppu)
WITH 'Dataset' output_file 'cannot be opened on the server'.
ENDIF.
ELSE.
MOVE p_fbom TO output_file.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = output_file
filetype = 'ASC'
write_field_separator = ' '
TABLES
data_tab = lit_bom
EXCEPTIONS
OTHERS = 11.
ENDIF.
ENDFORM. " extract_bom_details
*& Form get_file_path
text
-->P_LOGICAL_PATH_NAME text
-->P_FILENAME text
-->P_FILENAME_WITH_PATH text
FORM get_file_path USING p_logical_path_name p_filename
p_filename_with_path.
DATA: l_opsys TYPE sy-opsys,
l_blank_filename TYPE c,
l_filename TYPE string.
IF p_gui IS INITIAL.
MOVE 'WN32' TO l_opsys.
ELSE.
MOVE 'WN' TO l_opsys.
ENDIF.
IF p_filename IS INITIAL.
MOVE 'XXX' TO l_filename.
MOVE 'X' TO l_blank_filename.
ELSE.
MOVE p_filename TO l_filename.
ENDIF.
CALL FUNCTION 'FILE_GET_NAME_USING_PATH'
EXPORTING
logical_path = p_logical_path_name
operating_system = l_opsys
file_name = l_filename
IMPORTING
file_name_with_path = p_filename_with_path
EXCEPTIONS
path_not_found = 1
missing_parameter = 2
operating_system_not_found = 3
file_system_not_found = 4
OTHERS = 5.
IF NOT l_blank_filename IS INITIAL.
REPLACE ALL OCCURRENCES OF 'XXX' IN p_filename_with_path WITH space.
ENDIF.
ENDFORM. "get_file_path
*& Form value_request_p_fcust
text
--> p1 text
<-- p2 text
FORM get_gui_filename USING p_path p_filename.
DATA: l_fdir TYPE string.
CHECK NOT p_gui IS INITIAL.
PERFORM get_file_path USING p_path space
l_fdir.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_path = l_fdir
mask = ',.prn,.prn.'
title = 'Select Excel file for download'
IMPORTING
filename = p_filename
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
ENDFORM. " value_request_p_fcust
*& Form extract_credit_status_details
text
--> p1 text
<-- p2 text
FORM extract_credit_status_details .
DATA: lt_credit_stat TYPE STANDARD TABLE OF zint_credit_stat,
l_credit_stat TYPE zint_credit_stat,
l_current_stat1 TYPE zcrstat1,
l_current_stat2 TYPE zcrstat2,
l_current_reason TYPE zreason,
lt_output_stat TYPE STANDARD TABLE OF zint_credit_stat,
l_output_stat TYPE zint_credit_stat,
lt_output1 TYPE STANDARD TABLE OF ty_cust_stat_output,
lt_output2 TYPE STANDARD TABLE OF ty_cust_stat_output,
l_output TYPE ty_cust_stat_output.
SELECT a~mandt a~kunnr a~name1 b~curstat1 b~curstat2 b~curtimestamp
b~curreason b~prevstat1 b~prevstat2 b~prvtimestamp
b~prevreason
INTO TABLE lt_credit_stat
FROM kna1 AS a
LEFT OUTER JOIN zint_credit_stat AS b
ON a~kunnr = b~kunnr
WHERE a~kunnr IN s_kunnr.
DESCRIBE TABLE lt_credit_stat LINES custcount.
LOOP AT lt_credit_stat INTO l_credit_stat.
txtper = 100 * sy-tabix / custcount.
custper = txtper.
PERFORM determine_current_status USING l_credit_stat-kunnr
l_current_stat1
l_current_stat2
l_current_reason.
IF NOT p_csdlt IS INITIAL.
Only do delta download
IF l_current_stat1 NE l_credit_stat-curstat1 OR
l_current_stat2 NE l_credit_stat-curstat2.
PERFORM add_record_to_output TABLES lt_output_stat
USING l_current_stat1
l_current_stat2
l_current_reason
l_credit_stat.
ENDIF.
ELSE.
Download all records
PERFORM add_record_to_output TABLES lt_output_stat
USING l_current_stat1
l_current_stat2
l_current_reason
l_credit_stat.
ENDIF.
Percentage indicator display
lva_mssage = 'Extracting customer status'.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = custper
text = lva_mssage.
ENDLOOP.
Create output table
LOOP AT lt_output_stat INTO l_output_stat.
CLEAR l_output.
WRITE l_output_stat-kunnr TO l_output-kunnr.
SHIFT l_output-kunnr RIGHT DELETING TRAILING space.
MOVE l_output_stat-curstat1 TO l_output-stat.
APPEND l_output TO lt_output1.
MOVE l_output_stat-curstat2 TO l_output-stat.
APPEND l_output TO lt_output2.
ENDLOOP.
SORT lt_output1.
SORT lt_output2.
IF p_gui IS INITIAL.
Lock File
PERFORM get_file_path USING p_dccst p_fccstl lock_file.
If the file already exists then abort processing
OPEN DATASET lock_file FOR INPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc NE 8.
MESSAGE s002(zppu)
WITH 'Lock file' lock_file 'already exists on server,'
'processing aborted'.
LEAVE PROGRAM.
ENDIF.
OPEN DATASET lock_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc NE 0.
MESSAGE s002(zppu)
WITH 'Lock file' lock_file 'cannot be opened on the server,'
'processing aborted'.
LEAVE PROGRAM.
ENDIF.
File 1
PERFORM get_file_path USING p_dccst p_fccst output_file.
If user requests cust status data to be appended use different OPEN
IF p_append is initial.
OPEN DATASET output_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
ELSE.
OPEN DATASET output_file FOR APPENDING IN TEXT MODE ENCODING DEFAULT.
ENDIF.
IF sy-subrc EQ 0.
LOOP AT lt_output1 INTO l_output.
TRANSFER l_output TO output_file.
ENDLOOP.
CLOSE DATASET output_file.
ELSE.
MESSAGE s002(zppu)
WITH 'Dataset' output_file 'cannot be opened on the server'.
ENDIF.
File 2
PERFORM get_file_path USING p_dccst p_fccst2 output_file.
If user requests cust status data to be appended use different OPEN
IF p_append is initial.
OPEN DATASET output_file FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
ELSE.
OPEN DATASET output_file FOR APPENDING IN TEXT MODE ENCODING DEFAULT.
ENDIF.
IF sy-subrc EQ 0.
LOOP AT lt_output2 INTO l_output.
TRANSFER l_output TO output_file.
ENDLOOP.
CLOSE DATASET output_file.
ELSE.
MESSAGE s002(zppu)
WITH 'Dataset' output_file 'cannot be opened on the server'.
ENDIF.
DELETE DATASET lock_file.
ELSE.
MOVE p_fccst TO output_file.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = output_file
filetype = 'ASC'
TABLES
data_tab = lt_output1
EXCEPTIONS
OTHERS = 11.
MOVE p_fccst2 TO output_file.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = output_file
filetype = 'ASC'
TABLES
data_tab = lt_output2
EXCEPTIONS
OTHERS = 11.
ENDIF.
IF NOT p_svr IS INITIAL.
PERFORM update_status_table TABLES lt_output_stat.
ENDIF.
output_file = custcount.
CONCATENATE
output_file
' Customers extracted'
INTO
lva_mssage.
ENDFORM. " extract_credit_status_details
*& Form user_command
text
--> p1 text
<-- p2 text
FORM user_command .
LOOP AT SCREEN.
IF screen-name EQ 'P_DCUST' OR
screen-name EQ '%_P_DCUST_%_APP_%-TEXT' OR
screen-name EQ 'P_DMATM' OR
screen-name EQ '%_P_DMATM_%_APP_%-TEXT' OR
screen-name EQ 'P_DBOM' OR
screen-name EQ '%_P_DBOM_%_APP_%-TEXT' OR
screen-name EQ 'P_DCCST' OR
screen-name EQ '%_P_DCCST_%_APP_%-TEXT' OR
screen-name EQ 'P_FCCSTL' OR
screen-name EQ '%_P_FCCSTL_%_APP_%-TEXT'.
IF p_gui IS INITIAL.
screen-input = 1.
screen-output = 1.
screen-invisible = 0.
screen-active = 1.
ELSE.
screen-input = 0.
screen-output = 0.
screen-invisible = 1.
screen-active = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDFORM. " user_command
*& Form determine_current_status
text
-->P_L_CREDIT_STAT_KUNNR text
-->P_L_CURRENT_STAT1 text
-->P_L_CURRENT_STAT2 text
FORM determine_current_status USING p_kunnr p_stat1 p_stat2 p_reason.
STATICS: lt_kna1 TYPE STANDARD TABLE OF ty_kna1_fields,
lt_knb1 TYPE STANDARD TABLE OF ty_knb1_fields,
lt_knvv TYPE STANDARD TABLE OF ty_knvv_fields,
lt_knkk TYPE STANDARD TABLE OF ty_knkk_fields.
DATA: l_kna1 TYPE ty_kna1_fields,
l_knb1 TYPE ty_knb1_fields,
l_knvv TYPE ty_knvv_fields,
l_knkk TYPE ty_knkk_fields,
l_faedt TYPE rfpos-faedt,
l_days TYPE p,
l_used TYPE rf02l-klprz.
IF lt_kna1[] IS INITIAL.
PERFORM load_kna1 TABLES lt_kna1.
ENDIF.
IF lt_knb1[] IS INITIAL.
PERFORM load_knb1 TABLES lt_knb1.
ENDIF.
IF lt_knvv[] IS INITIAL.
PERFORM load_knvv TABLES lt_knvv.
ENDIF.
IF lt_knkk[] IS INITIAL.
PERFORM load_knkk TABLES lt_knkk.
ENDIF.
MOVE gc_status-acc TO p_stat1.
MOVE gc_status-ok TO p_stat2.
MOVE gc_reason-000 TO p_reason.
Customer Block/Unblock
READ TABLE lt_kna1 INTO l_kna1 WITH KEY kunnr = p_kunnr BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT l_kna1-sperr IS INITIAL.
MOVE gc_status-sto TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-001 TO p_reason.
ENDIF.
IF l_kna1-aufsd EQ '01'.
MOVE gc_status-sto TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-002 TO p_reason.
ENDIF.
IF l_kna1-lifsd EQ '01'.
MOVE gc_status-sto TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-003 TO p_reason.
ENDIF.
IF l_kna1-faksd EQ '01'.
MOVE gc_status-sto TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-004 TO p_reason.
ENDIF.
IF NOT l_kna1-loevm IS INITIAL.
MOVE gc_status-sto TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-999 TO p_reason.
ENDIF.
ENDIF.
CHECK p_stat1 NE gc_status-sto.
LOOP AT lt_knb1 INTO l_knb1 WHERE kunnr EQ p_kunnr.
IF NOT l_kna1-sperr IS INITIAL.
MOVE gc_status-sto TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-005 TO p_reason.
ENDIF.
IF NOT l_knb1-loevm IS INITIAL.
MOVE gc_status-sto TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-999 TO p_reason.
ENDIF.
IF p_stat1 EQ gc_status-sto.
EXIT.
ENDIF.
ENDLOOP.
CHECK p_stat1 NE gc_status-sto.
LOOP AT lt_knvv INTO l_knvv WHERE kunnr EQ p_kunnr.
IF l_knvv-aufsd EQ '01'.
MOVE gc_status-sto TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-006 TO p_reason.
ENDIF.
IF l_knvv-lifsd EQ '01'.
MOVE gc_status-sto TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-007 TO p_reason.
ENDIF.
IF l_knvv-faksd EQ '01'.
MOVE gc_status-sto TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-008 TO p_reason.
ENDIF.
IF p_stat1 EQ gc_status-sto.
EXIT.
ENDIF.
ENDLOOP.
CHECK p_stat1 NE gc_status-sto.
READ TABLE lt_knkk INTO l_knkk WITH KEY kunnr = p_kunnr
kkber = 'BP01'
BINARY SEARCH.
IF sy-subrc EQ 0.
Exceeded Trading Terms
IF l_knkk-ctlpc EQ 'Z03' OR
l_knkk-ctlpc EQ 'Z04' OR
l_knkk-ctlpc EQ 'Z05'.
CALL FUNCTION 'CUSTOMER_OLDEST_OPEN_ITEM'
EXPORTING
i_kkber = l_knkk-kkber
i_kunnr = l_knkk-kunnr
IMPORTING
e_faedt = l_faedt
EXCEPTIONS
invalid_call = 1
no_bukrs = 2
no_items = 3
OTHERS = 4.
IF sy-subrc EQ 0.
l_days = sy-datum - l_faedt.
ELSE.
l_days = 0.
ENDIF.
IF l_knkk-ctlpc EQ 'Z03' AND l_knkk-crblb IS INITIAL AND
l_days GT 45.
MOVE gc_status-hol TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-021 TO p_reason.
ENDIF.
IF l_knkk-ctlpc EQ 'Z04' AND l_knkk-crblb IS INITIAL AND
l_days GT 40.
MOVE gc_status-hol TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-022 TO p_reason.
ENDIF.
IF l_knkk-ctlpc EQ 'Z05' AND l_knkk-crblb IS INITIAL AND
l_days GT 30.
MOVE gc_status-hol TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-023 TO p_reason.
ENDIF.
IF l_knkk-ctlpc EQ 'Z03' AND NOT l_knkk-crblb IS INITIAL AND
l_days GT 45.
MOVE gc_status-sto TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-024 TO p_reason.
ENDIF.
IF l_knkk-ctlpc EQ 'Z04' AND NOT l_knkk-crblb IS INITIAL AND
l_days GT 40.
MOVE gc_status-sto TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-025 TO p_reason.
ENDIF.
IF l_knkk-ctlpc EQ 'Z05' AND NOT l_knkk-crblb IS INITIAL AND
l_days GT 30.
MOVE gc_status-sto TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-026 TO p_reason.
ENDIF.
CHECK p_stat1 NE gc_status-sto.
Exceeded Credit Limit Checks
PERFORM get_credit_exposure USING l_knkk-knkli l_knkk-kkber
l_knkk-ctlpc l_knkk-klimk
l_knkk-skfor l_knkk-ssobl
l_used.
IF l_used GE 95 AND l_knkk-crblb IS INITIAL.
MOVE gc_status-hol TO p_stat1.
MOVE gc_status-hold TO p_stat2.
MOVE gc_reason-010 TO p_reason.
ENDIF.
IF l_used GE 95 AND NOT l_knkk-crblb IS INITIAL.
MOVE gc_status-Yes thread closed
Prioz -
Cost component in cost estimate
Hi all,
In cost estimate with quantity structure, costs assigned to one of my cost components do not appear in the correct group.
This only happens for a group that should include semi-finished costs. The correspondance in the customizing is correctly made between the cost element and the cost component and when looking at itemization, the correct cost element is displayed but no cost component is shown.
I assume the problem may arise from the fact that my finish product use elements from other cost component, e.g. raw material, packaging,...
Would someone have any idea on this issue?
Thanks in advance for your help.
RonanHi,
Pls. used tcode CKMCCCC - Manual Change of Actual Cost Comp Split.
Pls. assign points if it's helpful
regards
sel -
Material cost estimate using recursive BOM
Hello everybody.
I want create material cost estimate (CK11N) using a recipe with recursive BOM. When I execute the transaction CK11N the following message is display Costing of cycle 00001 does not converge
Do you know what is missing?
Thanks in advance.Dear,
Message no CK740?
Please do check the link below......
http://help.sap.com/erp2005_ehp_03/helpdata/EN/f8/a3e333bf3d11d189900000e8214595/content.htm
and OSS note : 858384
Regards,
R.Brahmankar -
Valuation with material cost estimate: error with product "117122"
Hi people,
We have the error:
=====================
Valuation with material cost estimate: error with product "117122"
Diagnosis
In Profitability Analysis (CO-PA), the system tried to valuate a line item using the current standard cost estimate.
In order to determine the current plan period, the system needs to read the valuation segment of the material master.
The system has found that the current plan period is not filled forproduct "117122" in plant "UBE1".
We have the follow configuration in trans.: KE40:
. Determine material cost estimate
. Transf. Standard Cost Estimate
. Costing Variant
. Control Data for Standard Cost Estimate
. Period Indicator = "Current Standard Cost Estimate acc. to entry in mat master
. Addiitonal data CO-PC
. Transfer cost estimate in controlling area currency "activated"
We think the reason about our error is because the field above is activated and some configuration more is necessary for this case. For examplo: Trans.: OKYW and this one was not configurated yet.
Do you know what happend?
If we need to configure some transation, or sonly process the cost estimate?
Thanks,
Rosana.Hello Guido
Thank you very much for your return.
It is happenning in a Client that some people are doing the configuration.
Before we didin't have in KE40, the fiel "Transfer cost estimate in controlling area currency" activated.
And now, the people activate that in this new Client and I don't know the impact about that.
I think we have to make the configuration in OKYW.
The other transation you told me, we don't have any information.
Could you tell me some other idea what happend?
Message error is just "Message no. KE350"
Abou claculate the cost:
It was calculated by trans.: CK11N for future planning and the real wasn't not possible to release because this material already have moviments.
Could you tell us is there is some thing more to do?
Thanks,
Rosana. -
Report showing labor and machine time based on standard cost estimate
Hi Friends,
Ours is an Manufacturing organisation & we have a requirement of report showing machine and labor time as per part wise & cost center wise. We need to run the report before saving standard cost estimate [CK11N] in order to see the part wise or cost center wise discrepancies in machine and labor time. If any one could help in creating such report in SAP it will be of great help.
Regards,
VarshaHi Varsha,
you can jump from CK11N to a own report by
Menu Function 'Costs -> User Exit Display'
Cost Report 1 / 2 / 3
The own report can be implemented via (SMOD) enhancement SAPLXCKA
The report will be handed over the currently displayed in the program interface.
some example coding is provided for the exit.
compare SAP Note No. 71146
best regards, Udo -
Cost Estimates taking raw material in CK40N
Dear Experts,
We are running Costing run using CK40n by selecting site & article
type:ZMTG. (Only Finished Product)
But Standard cost is displaying for ROH/VERP in CK13n/MM43.
We only want to carry out std cost run for only ZMTG article.
In Costing varinat Priority is set for "Valuation Price according to price control" so the value give is correct. But the standard price field is getting updated in material master for Raw Material.
I want to know usually whether it used to take like this, if not where i need to make changes so that it should not take while costing the finished product.
Please reply asap.Dear Abhisek,
It does not matter if the standard field updates with cost estimate, coz it does not effect financial results at all, reason behind the price control which is moving average for RAW materials.
Secodndly, it is helpful for you to find out the price of material when cost estimate was exucuted, coz it will not change until your further cost estimate run.
Raw Materials are part of BOM, so system always calculate their prices to reach at price of finish product, but system does not post any price change document for raw materials.
Further u can confirm using tcode CKMPCD
Regards,
M. Tayyab Aslam -
Exchange rate in cost estimate(ck11n)
Hello All,
Scenario: We have done cost estimate(ck11n) for material XYZ for September. The currency in info record is USD and the controlling area currency is EUR, now the old exchange rate from June has been picked up by the exchange rate type assigned to costing version. Can anyone please tell me on what parameters should I concentrate to pick the current exchange rate.
Thanks
NivasThanks for the answer,
Can you please let me know where should I set the exchange rate in cost accounting.
Thanks
Nivas -
KKF6N - Preliminary cost estimate- BOM explosion
Dear All,
When I try to cost a product cost collector on a finished product/production version with MF30 or KKF6N, the BOM is not exploded as if all the components were raw material - despite the BOM is multilevel. I don't understand why. Maybe i miss something...
On the other hand, when I cost the same finished product with CK11N, the BOM is exploded as expected.
The settings on cost variants and valuation variants used for cost collector and material cost estimate are similar.
Thank you very much if you can help !
ChrisHi,
The difference between CK13N / CK11N and KKF6N exists due to the method in which both of them calculate costs.
CK11N performs 'multi level costing' which means it considers the prices and the corresponding quantity structure for materials across the entire hierarchy of the BOM for the material and re-calculates it every time it is run based on current settings.
KKF6N performs 'single level' costing which means it considers only the price data for the input material and its immediate sub-components. It then displays the price according to the valuation strategy used in the costing variant.
CK11N also uses the valuation strategy, but the price is estimated based on a calculation of prices across the entire hierarchy of the BOM for the material also factoring in the quantity structure at the time the material is costed.
This is the reason why there is a difference in the price shown in CK13N and KKF6N, but it is the way the system is designed to work.
Kind Regards,
MLM
Maybe you are looking for
-
HP Photosmart C309a AiO Wireless on and working, can't find network!
My printer stopped printing a couple of days ago. It was fine, now it is not. The blue wireless radio light is on but when I run the network set up, it just runs and can not find my network. I have run the network diagnostic and it finds my networ
-
We have an iMac 24-inch Mid 2007 with maximum of 4G bytes of SDRAM, with OX X 10.9.4 Mavericks. It is routinely locking-up with the rainbow wheel. Especially with iTunes and Safari. I'm wondering it it that Mavericks simply uses more RA that the ma
-
My Swing is a little rusty atm. However I'm writing a large program where I need to extract the different visual buildingblocks of my gui into separate classess. A short example of an external JComponent: public class View extends JComponent{ JPa
-
Problem with exchange email policy race condition.
We are having an issue with the email address policy self resolving internal collisions by appending the number "2" to email addresses. Basically what we do is new employees receive contacts for the GAL automatically. The user can then choose to crea
-
When I try to slide my unlock bar to the right to unlock the phone, it doesn't slide. Also, if i would try setting my ringer from silent to loud or visversa, it's the same thing. I can't switch them. I pretty much can't click anything on my phone any