EDI Inbound Idoc problem
Hi,
We are facing an issue with Inbound IDoc.
We have a PO inbound idoc which is in status '53' but the PO document did not get created.
Can you please help us if anyone faced similar issue.
Thanks,
Anil
Hello,
sounds strange.
1. check the status record of 53 Idocs you should find a message like: Standard oder nnnnnnnnnn has been saved.
2. If order number nnnnnnnnnnn does not exists check transaction SM13, ST22 for errors.
3. for testing change inbound options in WE20 to <trigger by background programm> and book the idoc in forground.
Similar Messages
-
Add segment to inbound idoc problem
Hi ,
I want to insert a segment in the middle of the segements inside a inbound idoc processing module.The problem is
i am able to pass the segmnet name and data but i don't now what should be populated to the segment number (SEGNUM). Its value is coming as the same value of the previous segment when i checked in debugging mode.Can any body tell me how to populate the segnum field.
Regards,
Soumya.Have you tried by just keeping it blank.I will work fine if the hierarchy is kept correctly.
-
Hi Friends,
Can anybody help me . I am facing a problem in IDOC inbound processing.
My scenario in SALES PER RECEIPT - POS like this: I have to read XML (From PC) file and i have to post it.
I am using Idoc - WPUBON01. After reading XML file i used Function module to distribute - MASTER_IDOC_DSTRIBUTE.
In we02 i checked Idoc is generating but status showing 29.
So run the report RSEOUT00. But i am getting message like 'No idoc is selected for processing'.
Plz help me what i have to do. I created port also.
Regards,
P. Kumar.Hi,
sarath has told valid point..don't use master_idoc_distribute,instead use the bapi
bapi_idoc_input1..
plz check the sample code how to do with inbound idoc,as u have got the data ,u just need to call the bapi and post it..
check the code and proceed..
FUNCTION zdtsint052f_gpoms_to_sap_gm.
""Local interface:
*" IMPORTING
*" VALUE(INPUT_METHOD) LIKE BDWFAP_PAR-INPUTMETHD
*" VALUE(MASS_PROCESSING) LIKE BDWFAP_PAR-MASS_PROC
*" EXPORTING
*" VALUE(WORKFLOW_RESULT) LIKE BDWF_PARAM-RESULT
*" VALUE(APPLICATION_VARIABLE) LIKE BDWF_PARAM-APPL_VAR
*" VALUE(IN_UPDATE_TASK) LIKE BDWFAP_PAR-UPDATETASK
*" VALUE(CALL_TRANSACTION_DONE) LIKE BDWFAP_PAR-CALLTRANS
*" TABLES
*" IDOC_CONTRL STRUCTURE EDIDC
*" IDOC_DATA STRUCTURE EDIDD
*" IDOC_STATUS STRUCTURE BDIDOCSTAT
*" RETURN_VARIABLES STRUCTURE BDWFRETVAR
*" SERIALIZATION_INFO STRUCTURE BDI_SER
*" EXCEPTIONS
*" WRONG_FUNCTION_CALLED
Purpose :On recording the material consumption from *
manufacturing tickets in GPOMS system, GPOMS *
will report the data to the SAP system.Based *
on this message, goods issue to the process order*
will be posted in SAP. This interface will *
used for storage location managed materials *
in SAP. *
Program Logic :Loop at the data records of IDOC and to get the *
Order number and SAP Movement type *
If the Material document already exists for this *
Order number and Movement type then give error *
else call standard FM 'BAPI_IDOC_INPUT1' to *
Material Documents in SAP. *
Declaration of Constants *
CONSTANTS :lc_item_create(25) TYPE c VALUE 'E1BP2017_GM_ITEM_CREATE',
lc_mbgmcr(6) TYPE c VALUE 'MBGMCR'.
Declaration of Variables *
DATA : lv_index TYPE sytabix,
lv_retcode type sy-subrc.
Declaration of Workareas *
DATA: lwa_e1bp2017_gm_item_create TYPE e1bp2017_gm_item_create,
lwa_data TYPE edidd, " Work area for IDOC
lwa_control TYPE edidc. " Work Area for control rec
Read the control data information of idoc.
loop at idoc_contrl INTO lwa_control Where mestyp = lc_mbgmcr.
Extract the data from the segments.
LOOP AT idoc_data INTO lwa_data
WHERE docnum = lwa_control-docnum and
segnam = lc_item_create.
*->> Set the tabix of the internal table
lv_index = sy-tabix.
Move the Material Document Item Segment data
MOVE lwa_data-sdata TO lwa_e1bp2017_gm_item_create.
Modify the material document item data internal table
PERFORM sub_modify_idocdata changing lwa_e1bp2017_gm_item_create.
*->> set the changed values to the IDOC SDATA
MOVE lwa_e1bp2017_gm_item_create TO lwa_data-sdata.
*->> Modify the table
MODIFY idoc_data FROM lwa_data index lv_index.
Clear the Work areas
CLEAR : lwa_data,
lwa_e1bp2017_gm_item_create.
ENDLOOP. "LOOP AT t_idoc_data
Call the BAPI function module to create the
appropriate Material Document
CALL FUNCTION 'BAPI_IDOC_INPUT1'
EXPORTING
input_method = input_method
mass_processing = mass_processing
IMPORTING
workflow_result = workflow_result
application_variable = application_variable
in_update_task = in_update_task
call_transaction_done = call_transaction_done
TABLES
idoc_contrl = idoc_contrl
idoc_data = idoc_data
idoc_status = idoc_status
return_variables = return_variables
serialization_info = serialization_info
EXCEPTIONS
wrong_function_called = 1
OTHERS = 2.
IF sy-subrc = 1.
RAISE wrong_function_called.
ENDIF.
endloop.
ENDFUNCTION.
***INCLUDE LZDTSINT052F_GPOMS_GMF01 .
*& Form sub_modify_idocdata
Modify the material document item data internal table
FORM sub_modify_idocdata
CHANGING pwa_e1bp2017_gm_item_create TYPE e1bp2017_gm_item_create.
contant declaration
CONSTANTS: lc_261(3) TYPE c VALUE '261'.
DATA : lv_aplzl LIKE resb-aplzl,
lv_aufpl LIKE resb-aufpl,
lv_subrc LIKE sy-subrc,
lv_charg LIKE resb-charg,
lv_uom LIKE pwa_e1bp2017_gm_item_create-entry_uom.
CLEAR: pwa_e1bp2017_gm_item_create-reserv_no,
pwa_e1bp2017_gm_item_create-res_item.
*->> Get SAP storage bin & Storage type from the Z table
SELECT lgtyp lgpla
INTO (pwa_e1bp2017_gm_item_create-stge_type,
pwa_e1bp2017_gm_item_create-stge_bin)
UP TO 1 ROWS
FROM zdtsint050_sttyp
WHERE zstorage_typ = pwa_e1bp2017_gm_item_create-stge_type
AND zstorage_bin = pwa_e1bp2017_gm_item_create-stge_bin.
ENDSELECT.
IF sy-subrc NE 0.
CLEAR: pwa_e1bp2017_gm_item_create-stge_type,
pwa_e1bp2017_gm_item_create-stge_bin.
ENDIF.
PERFORM get_oper CHANGING pwa_e1bp2017_gm_item_create.
Get the Reservation number and Reservation item number
basing on the idoc data.
SELECT rspos werks lgort
INTO (pwa_e1bp2017_gm_item_create-res_item,
pwa_e1bp2017_gm_item_create-plant,
pwa_e1bp2017_gm_item_create-stge_loc)
FROM resb
UP TO 1 ROWS
WHERE rsnum = pwa_e1bp2017_gm_item_create-reserv_no
AND matnr = pwa_e1bp2017_gm_item_create-material
AND charg = pwa_e1bp2017_gm_item_create-batch
AND aufnr = pwa_e1bp2017_gm_item_create-orderid
AND vornr = pwa_e1bp2017_gm_item_create-activity
AND bwart = lc_261.
ENDSELECT.
IF sy-subrc <> 0.
Start of insertion for R31K993797
CLEAR lv_charg.
SELECT rspos werks lgort
INTO (pwa_e1bp2017_gm_item_create-res_item,
pwa_e1bp2017_gm_item_create-plant,
pwa_e1bp2017_gm_item_create-stge_loc)
FROM resb
UP TO 1 ROWS
WHERE rsnum = pwa_e1bp2017_gm_item_create-reserv_no
AND matnr = pwa_e1bp2017_gm_item_create-material
AND charg = lv_charg
AND aufnr = pwa_e1bp2017_gm_item_create-orderid
AND vornr = pwa_e1bp2017_gm_item_create-activity
AND ( splkz = 'X' or
splkz = space )
AND bwart = lc_261.
ENDSELECT.
IF sy-subrc <> 0.
End of insertion for R31K993797
SELECT SINGLE werks lgort
INTO (pwa_e1bp2017_gm_item_create-plant,
pwa_e1bp2017_gm_item_create-stge_loc)
FROM resb
WHERE rsnum = pwa_e1bp2017_gm_item_create-reserv_no.
CLEAR : pwa_e1bp2017_gm_item_create-reserv_no,
pwa_e1bp2017_gm_item_create-res_item.
ENDIF.
ENDIF.
get SAP UOM
SELECT SINGLE zsap_uom
INTO lv_uom
FROM zca_uom_conv
WHERE zext_uom = pwa_e1bp2017_gm_item_create-entry_uom.
IF sy-subrc = 0.
pwa_e1bp2017_gm_item_create-entry_uom = lv_uom.
ENDIF.
ENDFORM. " sub_modify_idocdata
*& Form get_oper
Get the operation
<--P_PWA_E1BP2017_GM_ITEM_CREATE_RE Segment
FORM get_oper CHANGING p_pwa_e1bp2017_gm_item_create TYPE
e1bp2017_gm_item_create.
DATA : l_aufpl LIKE afko-aufpl,
l_aplzl LIKE afvc-aplzl.
REFRESH : i_op.
UNPACK p_pwa_e1bp2017_gm_item_create-orderid TO
p_pwa_e1bp2017_gm_item_create-orderid.
Get the reservation and routing number for the order
SELECT SINGLE
rsnum
aufpl
FROM afko
INTO (p_pwa_e1bp2017_gm_item_create-reserv_no,
l_aufpl)
WHERE aufnr = p_pwa_e1bp2017_gm_item_create-orderid.
IF sy-subrc = 0.
CALL FUNCTION 'CONVERSION_EXIT_NUMCV_INPUT'
EXPORTING
input = p_pwa_e1bp2017_gm_item_create-activity
IMPORTING
output = p_pwa_e1bp2017_gm_item_create-activity.
ENDIF.
ENDFORM. " get_oper
i have modifeid the incoming data,in ur case its not needed ,only first few lines until the bapi u have to see..if u have any query let me know..
Regards,
Nagaraj -
INVOICE EDI Inbound IDOC error
Hi,
We have implemented Support pack SAP_APPL SAPKH47027. And now we get
the Following error in IDOC inbound processing message type INVOIC during intercompany billing to post vendor invoices.
Error message: 'Field BSEG-BSCHL (1) (is not an input field)'.
I find that this is due to the OSS note: 960639 that has come along
with this Support pack.
Also SAP has mentioned a corection note to this problem. OSS note:
1032469.
But this Note 1032469 is not clear.
It is mentioned that..
"You explicitly enter the tax amounts in the IDoc
You can enter the tax information either at item level in
segment E1EDP04 or in header segment E1EDK04."
Is SAP suggesting to enter the TAx amounts (E1EDP04-MWSBT)?
And shud the coding be done during the Inbound processing function
module:
IDOC_INPUT_INVOIC_FI or during the outbound processing RSNASTED
(EDI_PROCESSING). We use SAP standard functionality.
Can anybody please explain what SAP has suggested to do techincally.
Regards,
Midhun.Hi,
I checked both OSS note 960639 & 1032469. I neither find anything in first note ( 960639 ) which could cause this probem nor in the second note ( 1032469 ) which solve this problem. The only way to check is by doing what note 1032469 is saying.
One more thing you can do is debug the code, put the break-pointe message statement and findout where this error message is coming. Then you can check the code to find out the reason for this.
Can you also check if you are getting the same message when you try to enter same data directly in SAP using FB01 or whatever the relavent transaction is.
Regards,
RS -
Inbound Idoc with T-code: BORGR ( Inbound delivery create) EDI cannection
Dear all,
Kindly help me to create inbound delivery with BORGR transaction.
Here the we have to create the inbound delivery in the system with the help of vendor number and material without using Scheduling agreement number in BORGR
Please suggest the processing code and the function module required for the BORGR document posting.
I have done the following steps u2026but not able to post the dummy idoc through WE19 .
1. Use standard message Type DESADV (T code: WE81).
2. Use standard IDOC type DELVRY05 (T code: WE30).
3. Assign message type to IDOC Type ( Tcode: WE82).Message Type:-DESADV, Basic Type:-DELVRY05,Release 700
4. Use standard assignment of process code DELS with the message type DESADV ( Tcode: WE42)
5. Inbound Function Module : IDOC_INPUT_DESADV1 ( T code : WE57)
6. Define Port type File (Tcode: WE21) Port u2013 EDI_ASN Inbound Delivery.
7. Define Partner Profile (Tcode: WE20) Inbound Parameters.
8. Enhancement can be done in inbound IDOC as per the business requirement. Business has confirmed Field name wise Inbound IDOC data which will be received from vendor and all fields are available in the standard IDOC type DELVRY05.
Please help if anything more required for posting dummy idoc .
Thanks and regards,
koshtiHi Dick,
just one additional hint as we had recently such problems :
It my happen that DESADV creates an inb.del <b>w/o</b> packing the HUs (idoc status is 'yellow' instead of 'red'). To avoid this OSS #912470 is the solution.
Kind Regards
Kay -
Hi friends,
I have a small problem, actually one of my inbound idoc successfuly processed. But there is one field called IBAN, its for vendor master bank details. its not populated in SAP. But the segment having the value. Its giving problem for one particular vendor. So how to find why its not populated in SAP? Where we need check. Because IDOC having proper values, one of field value only not populated in sap. Pls help this issue.
MohanaOpen include in SE38 LKD02F01 and put a break point on line 3943 or following piece of code:
IF e1lfbkm-iban <> c_nodata.
MOVE e1lfbkm-iban TO f_lfbk_iban-iban.
WRITE f_lfbk_iban-iban TO blfbk_iban-iban.
ENDIF.
and check what value is getting populated when processing IDOC for that particular vendor. -
Hi everybody.
I´ve got a problem with an inbound idoc. I've got a standard idoc INOTIF with an extension.
To receive this Idoc from external systema I´ve created a Z FM to process this idoc.
The problem is that when this idoc get to SAP the FM never is executed and the idoc appears with red flag and show me
the next error: No status record was passed to ALE by the application and the idoc is shown with the status 51.
¿¿How can I fix this??
Thanks a lot
Regardshi
and also give the funtion type is function module in we57 and in BD51 give ur ZFM and give 1 in input.t field.
now you can see ur FM in WE42 under Identification field F4 value.
The FM which is created by you it should be in F4 help list fo field Identification in we42.
and give the Message type and Process code in we20 in inbound parameters.
i am sure this will work .
regards,
Kiran Jagana -
EDI / IDoc : While posting inbound IDocs, IDocs gets into status 56
EDI / IDoc : While posting inbound IDocs, IDocs gets into status 56 with message "EDI: Sender port in control record is invalid".
But if I reprocess the same idoc without doing any changes using RBDINPUT and select radio button to processs idocs for status 56, then it gets successfully posted.
So not getting why this stucks for the first time.
Thanks in Advance..........i fixed this my self
-
Hi,
I have a problem with processing inbound IDocs from an external payroll system to infotype 0008. The process is quite simple; salary changes from the payroll system is recorded to the corresponding employee's infotype 0008. When testing I noticed that that the new record is recorded as is. For example if there is already an existing record with the validity dates 01.01.2010 - 31.12.9999 and the new record in the IDoc is 01.01.2011 - 31.12.9999, the new record is written as is. I would expect the system to delimit the old record correctly - similar to what would happen if you maintain records online. There is no error checking or any kind of processing done by the system.
I did some debugging and found out that the function module linked to process code HRMD writes the information directly to the database. If this is a standard way of doing this, it is really unusual.
Has anybody else encountered this? Any pointers?
Thanks.
Edited by: Theo Droste on Jan 20, 2011 11:56 AMHi
This is correct, the ale programme writes the data directly to the database, I have faced this isssue on occassion. I once raised an oss message on this as well, and sap confirms this is what happens. If it is a sap to sap ale, it somehow seems to work, - this could be because the outgoing idocs are created by sap itself but if it is a non sap to sap ale the onus is on us to ensure that the external system sends the correct data to sap in the way we intend it to be displayed.
that is how it has been in my experience. It is unusual, but apparently not impossible. Please let us know if you find out anything different. -
Changing IDOC Control Record for EDI inbound Orders Creatiion
Hi,
When I try to process the Inbound orders Idocs file through the GENTRAN EDI System.IDOC's were errored out, because of the Partner function was not defined for the Customer ( Legacy ) ( Type KU ) in the SAP.
Is there any user exit/badi/Configuration to change the Legacy Partner(Customer) to the SAP Partner(Customer) mapping and update the IDOC Control record with the SAP Partner. I am calling EDI_DATA_INCOMING Function module and IDOC_INPUT_ORDERS.IDOCs errored out with Message EO-332 ( Partner function not defined ).
Advance Thanks,
Balaji.It's been a long time since I have done any IDOC processing.
Go to SE37 and enter the function module IDOC_INPUT_ORDERS. Display the source code. Search for "CALL CUSTOMER". You should see several "CALL CUSTOMER-FUNCTION" lines. These are enhancements where you can manipulate the IDOC data. If you locate the correct one (where the data is read from the IDOC but not yet validated), you should be able to map the partner function value. Double-clicking on the number in quotes will bring you to an "EXIT_" function module. A "ZX" INCLUDE program is referenced. If you haven't used the exit yet, double-clicking on the ZX INCLUDE will create it. The values passed into the function module are available in the INCLUDE.
Ideally, you should create a project in transaction CMOD that references the chosen enhancement. This way you can activate/deactivate without commenting/uncommenting the code in the INCLUDE. -
Inbound IDoc(HRMD_A07) problem in delimiting the infotype records
Hi All,
I am using Inbound IDoc (HRMD_A07) approach to update infotypes. I found that I am able to create a record in an infotype, but there is a problem in delimiting the infotype.
Please help me out in case I am missing something.
Thanks,
ABAP_DEVHi,
Did you get this resolved. Even i'm facing this issue. Is it a config or do we have to do something in the IDOC.
Thanks,
Jilly -
EDI 823 - IDOC FINSTA01Mapping problem
While processing inbound IDOC for lockbox program i am able to create payment advice. but payment advice type is taking as '05'(Payment advice from Credit memo) it sholud be '06'(Payment advice for customer(EDI)) in AVIK table
i am not able to map this properly and suggestions please.
Regards
MuthappanHi Luis -
Another option to consider is <a href="http://help.sap.com/saphelp_nw04/helpdata/en/cf/406642ea59c753e10000000a1550b0/frameset.htm">Mapping Lookups</a>.... RFC based lookup in your case. You can do this in your mapping to complete the target IDOC without bpm.
However, I will say I personally prefer avoiding the use of mapping lookups within the source or target system of the same scenario (since this seems a bit redundant), but sometimes it's unavoidable. If you only have to do one or a few, it's acceptable... a series of lookups, I'd start considering and weighing other options since this could be costly in terms of performance.
If possible, if the remaining data to complete the message is in the target system, I'd also consider trying to complete it once the message arrives there. For the IDOC in ECC, have you found out if there's a preprocessing routine or exit that would give you a chance to complete the IDOC. There's also what Krishna suggested of converting the target interface into an async proxy, within which you can also complete the data. In either of these cases, there's custom application development to consider.
Regards,
Jin -
Error while posting Inbound Idocs-"EDI: Partner profile not available"
Hi,
I am getting the error "EDI: Partner profile not available" Status -56 while creating inboud Idocs.
I have done the following steps so far
1.Created IDOC basic Type and Message Type. (Custom)
2. Created process code to process the IDOC.
3. Use the FM IDOC_INBOUND_WRITE_TO_DB to create the inbound IDOC.
4. Use the FM IDOC_START_INBOUND to process the IDOC.
Is ther anything else that i have to do inorder to post the idoc sucessfully.
Thanks in advance
-Nishant
Edited by: nishant patel on Nov 13, 2009 10:35 AM
Edited by: nishant patel on Nov 13, 2009 10:41 AMHi,
Check in WE20 if the partner profile is configured for the idoc type and the message type. That might be the cause of the error.
Also make sure the same partner profile details are sent to the control record. Partner profile details are stored in the table EDP13.
Hope this helps
Regards
Shiva -
Sample files for inbound IDOC's( EDI)
Hi All,
I am trying to get idoc's into system using EDI , wanted sample files for inbound idocs using EDI.
If someone could send the files please.
rgds
Ajay SharmaHI,
Here one sample file.U need to change the sender/receiver ID's accordingly to the setup at ur EDI subsystem.This 850 i/b file will create an ORDERS idoc in SAP.
ISA³00³ ³00³ ³01³006906614GE ³01³040986076 ³060714³0640³U³00401³000012157³1³P³>~
GS³PO³006906614GE³040986076³20060714³0640³5008³X³004010~
ST³850³020700691~
BEG³00³NE³020700691³³20060714~
N1³BS³ABC PHOENIX DIVISION³11³RA0290837~
N1³SU³³11³II7930501~
PO1³1³12³EA³123.45³³ND³0469520260~
PO1³2³24³EA³190.23³³ND³0469520211~
CTT³2~
SE³8³020700691~
ST³850³057796284~
BEG³00³NE³057796284³³20060714~
N1³BS³ABC RALEIGH DIVISION³11³RA0289036~
N1³SU³³11³II7930501~
PO1³1³48³EA³61.72³³ND³0469520230~
PO1³2³12³EA³123.45³³ND³0469520260~
PO1³3³6³EA³190.23³³ND³0469520211~
CTT³3~
SE³9³057796284~
GE³2³5008~
IEA³1³000012157~
Also u can check in the system and find some ORDERS
idocs and u can retrigger that from WE19.
reward if helpfulll
ram -
Inbound iDoc for POS message WPUUMS problem
Hello all,
I encountered a strange thing with the inbound idoc for POS with the message WPUUMS.
I've created a new segment with we30 as an extension to the WPUUMS01 like this.
WPUUMS01
--E1WPU01
E1WPU02
ZNRLOT "this is my added segment
E1WPU03
E1WPU04
E1WPU05
E1WXX01
The idocs (external xml files) enter correctly in SAP, when I view them with WE02 al the segments are correctly populated with the right data and they are ready for processing with status 64.
After processing (with the program RBDAPP01 or with WE19 etc. doesn't matter, both uses IDOC_INPUT_POS_SALES_ACCOUNT ) comes the problem:
The Material Document and Billing Document (Invoice) ARE GENERATED WITH ONLY THE FIRST ITEM. I mean that the iDoc has more items(materials) and should generate the material document and billing document with all the items, not just with the first one.
As a conclusion:
1. iDoc is loaded correctly in SAP with all the data in the segments, also in the new segment, and of course has more items.
2. the problem is that after after processing, the generated document material and billing document have only 1 position, the first item from the iDoc.
Any help in fixing this issue will be welcomed.
Traian Mustata
SAP ABAP Consultantcheck for the qualifier QUALARTNR. Is it filled accordingly in the z segment? U may also check by debugin the f/n module in we19
Maybe you are looking for
-
Cannot install Office 2013 during task seqeunce after installing R2
Hi, Since we installed SCCM 2012 R2, I have not been able to install Office in my baseline captures using a task sequence (64-bit OS). Ronni Pederson suggested using an Application rather than a Package but in his example, the application is being pu
-
Open hub destination with datasource as the source
Hi, I am trying to use the new features of BI for open hub destination where you can use datasource as the source for extraction. I have created an infopackage, loaded data to PSA and from there to open hub destination via the DTP. When I try to exec
-
Grant execute on DBMS_CRYPTO package (11R1)
I figured out I needed to grant my user access to this SYS package using: SQL> grant execute on DBMS_CRYPTO to lob_demo; Grant succeeded. yet after doing this, I still get this error: SQL> select DBMS_CRYPTO.HASH(bytes, DBMS_CRYPTO.HASH_SH1) from blo
-
ICloud won't sync calendar both ways
I have iCloud syncing my calendars between 6 devices. If I add a new appointment on my Macbook Pro, the appointment shows up everywhere immediately. If I type in a new event on my iPhone, it shows up on all devices, EXCEPT my Macbook Pro. Any ideas a
-
How to get field name on Production Order
Dear All, I am going to make report on using items from production order. I'm facing problem to get following fields. These fields are on production ordersu2019 screen and tab is Summary. 1-Actual Component Cost 2-Actual Additional Cost 3-Actual Prod