How to stop a production order processing when a delivey block is placed
Hi,
Mine is a MTO scenario. I am using planning strategy 50. So a planned order ---> production order will be created against MRP run against each sales order.
When i am placing a delivery block at the header the system is working fine. Its deleting the planned order(converted production order).
when I am placing a delivery block at the schedulle line its not working fine. its not deleting the underlined planned order or production order.
what configuration should I do to make this work.......
Deepu,
Unfortunately as per SAP documentation below you cannot have this function at schedule line level.
"If you enter the delivery block at header level, the system transfers the desired delivery quantity for all schedule lines in the requirement. The confirmed quantity is deleted. This function is not available when you enter the delivery block at schedule line level."
I have tried in my system & it works the same way. Hope this helps.
Thanks,
Ram
Similar Messages
-
How to stop the prodution order creating when the product is not valued?
Hi guyes:
How to stop the prodution order creating when the product is not valued using CO01?
I hope that when i create the production order,the system will check the product is valued or not,if not
the system will show an error or warning message!
How to config for this?
Thank you!Dear Zhao Gang,
Check with this user Exits mentioned in this link,
Prevent Production Order from "Release" if there is no Cost Estimate
Re: User Exit at Production Order Release
Check and revert back.
Regards
Mangalraj.S -
How to block production order creation when maintenance order is generated.
Hi All,
Kindly share how to block production order generation when maintenance order is generated.Integration between PP module and PM module
PP/PM Workcenter Integration
There are many threads & documents available. Please do some search. -
Question - how i can prevent assembly order rescheduling when in VA02 ?
Hi ( ECC 6.0)
I am working with assembly orders. In sales order create - the system creates an assembly order - requirements type = dynamic order.
If i amend the sales order a few days later - the system reschedules the assembly order - even when the assembly order is started and has status REL = released. I get error CO061 - start date in past.. as the system first backwards reschedules and then reschedules forwards.
Question - any ideas how i can prevent assembly order rescheduling when in sales order change VA02 ? I need the system to check the production order status and if = REL then prevent the rescheduling. Putting a change block on the production order does not work as it ultimately breaks the link between sales:assembly order.
I am thinking i need to use an SD user exit to read the assembly order and prevent order changes if the assembly order is = REL.
thanks in advance
Graham.Hi Ram
We are using dynamic link. My original solution was to set the 'nochange' on release- however if the sales order qty changed - or the dates changed - or indeed any ATP check was performed - the link was sometimes lost - dependant on user keystrokes. VA02 still calls assembly order change in this scenario - and the user gets the mesage that no change is present - and ATP returns 0 qty.
What I think i can use is user exit EXIT_SAPLCOEXT_001 in conjunction with a user status. I plant to set the status 'block' on release - although configure it to have no action. In the user exit - called in the interface between sales / assembly order - I plan to check the assembly order for this status and set the error condition if the status is set. In debug mode - setting the eror manually - this appears to work as the system never calls assembly order change and accepts the assembly order date/qty as 'supply' in the atp check.
thanks for you assistance.
regards
Graham -
How can mass creating production orders???
In SAP ,we can use CO01,CO09,CO07 to create production order. But by these TOCDES,we only can create one production order for one finished product once a time.
But we now need to create more then one ,may be more then 50 production orders once a time?
It is possible in SAP?
I know we could conver the production orders from plan orders after MRP run.But sometimes
for some reasons we must create produciton orders manually.And I also know in SAP some TCODE can process many production orders once a time ,like COHV,CORM, can release ,TECO many production orders once a time.
But how can mass creating production orders once a time,not by mrp run?
How can batch create produciton orders in SAP?
Thanks for any reply!Hi,
Use the BAPI - BAPI_PRODORD_CREATE or for internal orders BAPI_INTERNALORDER_CREATE
Take the help of your abaper, he / she can use the above BAPI to write a custom program to mass create production order.
Hope the above helps.
Regards,
Vivek
Added
You can also use the below BAPI's in your custom program:
BAPI_PRODORD_RELEASE to release the orders
BAPI_PRODORD_CHECK_MAT_AVAIL for carrying out material availability
Edited by: Vivek on Mar 22, 2009 8:27 PM -
Reverse the production order even when some quantity has been invoiced
Dear Sapgurus,
How to reverse the production order when the some quantity of that production order has been sent through invoice.
regards
muralidhar.tDear,
In that case you can not reverse the the full order quantity you can only reverse the quantity which are in unrestricted storage loaction as a stock.
You can cancle it through MB31 with 102 movement. If auto GR is there then you need to cancle it through CO13. After that also check the COGI and CO1P.
Hope clear to you.
Regards,
R.Brahmankar -
How to get open production orders by plant wise
Hi,
How to get open production orders by plant wise.
i know from tcode COOIS, is it possible to get from this. if so what are the parameters we have to give to get open production orders by plant wise.
is there any tcode or tables available , please provide details .
regards,
Hari priyaHi,
What is your definition of Open Production Orders?
Definetly you will get the report from COOIS for Plant wise.
Whther you want to consider all the Orders having the Status REL but not DLV?
Then there is a chance of having the Orders, still with PDLV status but GR is done for the full Qty. May be you don't want to consider the TECO status, eventhough the Order is short closed??
Better to ommit the Orders with CRTD status also..
So, based on this which status to consider and which status not to consider..
You can define the "Selection profile status" in BS42.
Use this selection profile in COOIS, so that the rsults will be accurate..
Best Regards,
Siva -
Change in Production order/ process order
Can anyone tell me where are the changes being stored for the Production order/ process order? I mean in what table?
Regards,
SubhasishHey,
Any change made to the order data is logged using change documents. These changes are recorded in the tables CDHDR and CDPOS. The change document object for orders is ORDER.
For information on change documents click this link
<a href="http://help.sap.com/saphelp_47x200/helpdata/en/2a/fa0175493111d182b70000e829fbfe/content.htm">Overview</a>
To read the change documents use functions CHANGEDOCUMENT_READ_HEADERS and CHANGEDOCUMENT_READ_POSITIONS.
You can find the change document objects using transaction SCD0.
-Kiran -
How to delete the production order in mass?
Dear Experts
Please tell me how to delete the old production orders?Raja,
CO78 is a one stop transaction for production order setting deletion flag, deletion indicator, archiving and finally deleting.
Generally we schedule the following programs in background in the sequence below,
1. PPARCHP1 for Setting Deletion Flag
2. PPARCHP1 for Setting Deletion Indicator (Once set cannot be revoked- so care should be taken in selection of orders)
3. PPARCHA1 for archiving the production order with Deletion Indicator active. Basis should set the database/storage space for archiving/storing the records.
4. PPARCHD1 for Deleting the records from SAP database.
Regards,
Prasobh -
How to get all production orders for a workcenter
Hello ...
I have a requirement to create a report of all production orders for a given workcenter. The user enters the workcenter (CRHD-ARBPL), plant (CRHD-WERKS) and a date range, and wants to see a list of orders (AUFNR) that fall within that date range along with some other data from AFKO and AFPO.
I can't figure out a good, consistent way to get from workcenter to production orders.
Any ideas?
Thanks!
SharonHi there check this program for relation between SO PO and Production order
REPORT z_so_info.
TABLES: vbak, vbap, afko, afpo.
*Field catalog
TYPE-POOLS: slis.
DATA: lv_repid TYPE sy-repid VALUE sy-repid,
xfield TYPE slis_t_fieldcat_alv,
afield TYPE slis_fieldcat_alv.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(25) text-002.
SELECT-OPTIONS: so_so FOR vbak-vbeln OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-003.
PARAMETERS:
p_kunnr LIKE vbak-kunnr, " sold-to
p_kunwe LIKE vbak-kunnr. " ship-to
SELECTION-SCREEN END OF BLOCK b2.
*Constants
CONSTANTS: c_zor TYPE vbak-auart VALUE 'ZOR',
c_we TYPE vbpa-parvw VALUE 'WE',
c_ag TYPE vbpa-parvw VALUE 'AG'.
* c_space TYPE space.
*Ranges
RANGES: ra_parvw FOR vbpa-parvw,
ra_kunnr FOR vbpa-kunnr.
*Tables
DATA: BEGIN OF gt_output OCCURS 0,
vbeln LIKE vbak-vbeln, " sales order number
posnr LIKE vbap-posnr, " SO item number
matnr LIKE vbap-matnr, " material number
sh LIKE vbpa-kunnr, " Ship-to
sp LIKE vbpa-kunnr, " Sold-to
lifnr LIKE ekko-lifnr, " Vendor
bstnk LIKE vbak-bstnk, " PO number
banfn LIKE vbep-banfn, " Purchase requi
po_st TYPE char30, " PO status text
pstyv TYPE vbap-pstyv, " Item catagory
aufnr LIKE afpo-aufnr, " Production Order
prd_stat TYPE string, " Prd order status
END OF gt_output.
DATA: wa_output LIKE gt_output.
FIELD-SYMBOLS: <fs_output> LIKE gt_output.
*Table for sales order and PO
TYPES : BEGIN OF gs_data,
vbeln TYPE vbak-vbeln,
posnr TYPE vbap-posnr,
pstyv TYPE vbap-pstyv,
matnr TYPE vbap-matnr,
END OF gs_data.
DATA: gt_data TYPE STANDARD TABLE OF gs_data,
wa_data TYPE gs_data.
*Table for Production Orders
TYPES: BEGIN OF gs_prd,
aufnr TYPE afpo-aufnr,
posnr TYPE afpo-posnr,
kdauf TYPE afpo-kdauf,
kdpos TYPE afpo-kdpos,
wepos TYPE afpo-wepos, "Goods Receipt Indicator
elikz TYPE afpo-elikz, "Delivery Completed Indicator
objnr TYPE aufk-objnr, "Object number
* getri TYPE afko-getri, "Confirmed Order Finish Date
* gltri TYPE afko-gltri, "Actual finish date
END OF gs_prd.
DATA: gt_prd TYPE STANDARD TABLE OF gs_prd,
wa_prd TYPE gs_prd.
*Table for partner data
TYPES: BEGIN OF gs_partner,
vbeln TYPE vbak-vbeln,
posnr TYPE vbap-posnr,
parvw TYPE vbpa-parvw,
kunnr TYPE vbpa-kunnr,
END OF gs_partner.
DATA: gt_partner TYPE STANDARD TABLE OF gs_partner,
wa_partner TYPE gs_partner.
TYPES: BEGIN OF gs_po,
ebeln TYPE ekkn-ebeln,
ebelp TYPE ekkn-ebelp,
vbeln TYPE ekkn-vbeln,
vbelp TYPE ekkn-vbelp,
END OF gs_po.
DATA: gt_po TYPE STANDARD TABLE OF gs_po,
wa_po TYPE gs_po.
TYPES: BEGIN OF gs_preq,
vbeln TYPE vbep-vbeln,
posnr TYPE vbep-posnr,
banfn TYPE vbep-banfn,
END OF gs_preq.
DATA: gt_preq TYPE STANDARD TABLE OF gs_preq,
wa_preq TYPE gs_preq.
TYPES: BEGIN OF gs_po_stat,
ebeln TYPE ekko-ebeln,
procstat TYPE ekko-procstat,
lifnr TYPE ekko-lifnr,
END OF gs_po_stat.
DATA: gt_po_stat TYPE STANDARD TABLE OF gs_po_stat,
wa_po_stat TYPE gs_po_stat.
*Field symbols
FIELD-SYMBOLS: <fs> TYPE tj02t-txt04,
<fs_temp> TYPE tj02t-txt04,
<fs_stat> TYPE char30.
START-OF-SELECTION.
PERFORM fr_build_range.
PERFORM fr_get_data.
PERFORM fr_build_fc.
PERFORM fr_output.
*& Form fr_get_data
* text
* --> p1 text
* <-- p2 text
FORM fr_get_data.
*Get SO
SELECT a~vbeln a~posnr a~pstyv a~matnr
FROM vbap AS a
JOIN vbak AS b
ON a~vbeln = b~vbeln
JOIN vbpa AS c
ON b~vbeln = c~vbeln
INTO TABLE gt_data
WHERE b~vbeln IN so_so
AND b~auart EQ c_zor "Only Sales Orders
AND c~kunnr IN ra_kunnr. "from selection screen
DELETE ADJACENT DUPLICATES FROM gt_data COMPARING vbeln posnr.
*get data of the production order
IF NOT gt_data[] IS INITIAL.
SELECT a~aufnr a~posnr a~kdauf a~kdpos a~wepos a~elikz
b~objnr
FROM afpo AS a
JOIN aufk AS b
ON a~aufnr = b~aufnr
INTO TABLE gt_prd
FOR ALL ENTRIES IN gt_data
WHERE a~kdauf EQ gt_data-vbeln
AND a~kdpos EQ gt_data-posnr.
ENDIF.
*Get partner data
IF NOT gt_data[] IS INITIAL.
SELECT vbeln posnr parvw kunnr
FROM vbpa
INTO TABLE gt_partner
FOR ALL ENTRIES IN gt_data
WHERE vbeln EQ gt_data-vbeln.
ENDIF.
*Get Purchase Order
IF NOT gt_data[] IS INITIAL.
SELECT ebeln ebelp vbeln vbelp
FROM ekkn
INTO TABLE gt_po
FOR ALL ENTRIES IN gt_data
WHERE vbeln EQ gt_data-vbeln
AND vbelp EQ gt_data-posnr.
SELECT vbeln posnr banfn
FROM vbep
INTO TABLE gt_preq
FOR ALL ENTRIES IN gt_data
WHERE vbeln EQ gt_data-vbeln
AND posnr EQ gt_data-posnr.
ENDIF.
IF NOT gt_po[] IS INITIAL.
SELECT a~ebeln a~procstat a~lifnr
FROM ekko AS a
JOIN ekpo AS b
ON a~ebeln = b~ebeln
INTO TABLE gt_po_stat
FOR ALL ENTRIES IN gt_po
WHERE b~ebeln EQ gt_po-ebeln
AND b~ebelp EQ gt_po-ebelp.
ENDIF.
*Move data to output table
LOOP AT gt_data INTO wa_data.
wa_output-vbeln = wa_data-vbeln.
wa_output-posnr = wa_data-posnr.
wa_output-pstyv = wa_data-pstyv.
wa_output-matnr = wa_data-matnr.
READ TABLE gt_po INTO wa_po WITH KEY vbeln = wa_data-vbeln
vbelp = wa_data-posnr.
IF sy-subrc EQ 0.
wa_output-bstnk = wa_po-ebeln.
READ TABLE gt_po_stat INTO wa_po_stat WITH KEY ebeln = wa_po-ebeln.
IF sy-subrc EQ 0.
wa_output-lifnr = wa_po_stat-lifnr.
CASE wa_po_stat-procstat.
WHEN '01'.
wa_output-po_st = 'Version in process'.
WHEN '02'.
wa_output-po_st = 'Active'.
WHEN '03'.
wa_output-po_st = 'In release'.
WHEN '04'.
wa_output-po_st = 'Partially released'.
WHEN '05'.
wa_output-po_st = 'Released Completely'.
WHEN '08'.
wa_output-po_st = 'Rejected'.
ENDCASE.
ENDIF. "inner read subrc
ENDIF. "outer read subrc
READ TABLE gt_preq INTO wa_preq WITH KEY vbeln = wa_data-vbeln
posnr = wa_data-posnr.
IF sy-subrc EQ 0.
wa_output-banfn = wa_preq-banfn.
ENDIF.
READ TABLE gt_prd INTO wa_prd WITH KEY kdauf = wa_data-vbeln
kdpos = wa_data-posnr.
IF sy-subrc EQ 0.
wa_output-aufnr = wa_prd-aufnr.
*get the purchase requisition for production order as well
SELECT SINGLE banfn
FROM ebkn
INTO wa_output-banfn
WHERE aufnr EQ wa_prd-aufnr.
*Get the status of the production order
PERFORM fr_get_prd_stat USING wa_prd-objnr
CHANGING wa_output-prd_stat.
ENDIF. " sy-subrc
READ TABLE gt_partner INTO wa_partner WITH KEY vbeln = wa_data-vbeln
parvw = c_we.
IF sy-subrc EQ 0.
wa_output-sh = wa_partner-kunnr.
ENDIF.
READ TABLE gt_partner INTO wa_partner WITH KEY vbeln = wa_data-vbeln
parvw = c_ag.
IF sy-subrc EQ 0.
wa_output-sp = wa_partner-kunnr.
ENDIF.
APPEND wa_output TO gt_output.
CLEAR: wa_data, wa_prd,wa_partner,wa_output.
ENDLOOP.
ENDFORM. " fr_get_data
*& Form fr_build_range
* text
* --> p1 text
* <-- p2 text
FORM fr_build_range .
*Range for partner function
MOVE 'I' TO ra_parvw-sign.
MOVE 'EQ' TO ra_parvw-option.
MOVE 'SH' TO ra_parvw-low. " we
APPEND ra_parvw.
CLEAR ra_parvw.
MOVE 'I' TO ra_parvw-sign.
MOVE 'EQ' TO ra_parvw-option.
MOVE 'SP' TO ra_parvw-low. " ag
APPEND ra_parvw.
CLEAR ra_parvw.
*Range for ship-to and sold-to
MOVE 'I' TO ra_kunnr-sign.
MOVE 'EQ' TO ra_kunnr-option.
MOVE p_kunnr TO ra_kunnr-low.
APPEND ra_kunnr.
CLEAR ra_kunnr.
MOVE 'I' TO ra_kunnr-sign.
MOVE 'EQ' TO ra_kunnr-option.
MOVE p_kunwe TO ra_kunnr-low.
APPEND ra_kunnr.
CLEAR ra_kunnr.
ENDFORM. " fr_build_range
*& Form fr_build_fc
* text
* --> p1 text
* <-- p2 text
FORM fr_build_fc .
* sales order number
afield-fieldname = 'VBELN'.
afield-seltext_s = 'Sales #'.
afield-ref_tabname = 'VBAK'.
APPEND afield TO xfield. CLEAR afield.
* sales ITEM number
afield-fieldname = 'POSNR'.
afield-seltext_s = 'Item #'.
afield-ref_tabname = 'VBAP'.
APPEND afield TO xfield. CLEAR afield.
* Material Number
afield-fieldname = 'MATNR'.
afield-seltext_s = 'Material #'.
afield-ref_tabname = 'VBAP'.
afield-outputlen = 10.
APPEND afield TO xfield. CLEAR afield.
*Vendor Number
afield-fieldname = 'LIFNR'.
afield-seltext_s = 'Vendor Num.'.
afield-ref_tabname = 'EKKO'.
APPEND afield TO xfield. CLEAR afield.
* ship-to-party
afield-fieldname = 'SH'.
afield-seltext_s = 'Ship-to'.
afield-ref_tabname = 'VBPA'.
APPEND afield TO xfield. CLEAR afield.
* sold-to-party
afield-fieldname = 'SP'.
afield-seltext_s = 'Sold-to'.
afield-ref_tabname = 'VBPA'.
APPEND afield TO xfield. CLEAR afield.
*PO number
afield-fieldname = 'BSTNK'.
afield-seltext_s = 'PO NUM'.
afield-ref_tabname = 'EKKO'.
APPEND afield TO xfield. CLEAR afield.
*PO status
* afield-fieldname = 'PO_STAT'.
* afield-seltext_s = 'Step'.
* afield-ref_tabname = 'zbacklog_v2'.
* APPEND afield TO xfield. CLEAR afield.
*PO step status
afield-fieldname = 'PO_ST'.
afield-seltext_s = 'PO.Status'.
afield-ref_tabname = 'zbacklog_v2'.
APPEND afield TO xfield. CLEAR afield.
*Purchase requisition
afield-fieldname = 'BANFN'.
afield-seltext_s = 'Pur. Req.'.
afield-ref_tabname = 'VBEP'.
APPEND afield TO xfield. CLEAR afield.
*Item catagory
afield-fieldname = 'PSTYV'.
afield-seltext_s = 'Itm. Catg'.
afield-ref_tabname = 'VBAP'.
APPEND afield TO xfield. CLEAR afield.
*Prodcution Order number
afield-fieldname = 'AUFNR'.
afield-seltext_m = 'Prod.Order'.
afield-ref_tabname = 'AFKO'.
APPEND afield TO xfield. CLEAR afield.
*PRODCUTION status
afield-fieldname = 'PRD_STAT'.
afield-seltext_s = 'Prd. Step'.
afield-ref_tabname = 'zbacklog_v2'.
afield-outputlen = 20.
APPEND afield TO xfield. CLEAR afield.
*PRODUCTION step status
* afield-fieldname = 'PRD_ST'.
* afield-seltext_s = 'Prd. Status'.
* afield-ref_tabname = 'zbacklog_v2'.
* APPEND afield TO xfield. CLEAR afield.
ENDFORM. " fr_build_fc
*& Form fr_output
* text
* --> p1 text
* <-- p2 text
FORM fr_output .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_STRUCTURE_NAME =
* IS_LAYOUT =
it_fieldcat = xfield[]
i_default = 'X'
i_save = 'A'
TABLES
t_outtab = gt_output
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " fr_output
*& Form fr_get_prd_stat
* text
* -->P_WA_PRD_OBJNR text
FORM fr_get_prd_stat USING p_objnr CHANGING p_prd_stat.
DATA: lt_status TYPE STANDARD TABLE OF jstat,
wa_status TYPE jstat,
lv_status TYPE tj02t-txt04,
lv_temp2 TYPE char5,
lv_buff TYPE string.
CALL FUNCTION 'STATUS_READ'
EXPORTING
client = sy-mandt
objnr = p_objnr
only_active = 'X'
TABLES
status = lt_status
EXCEPTIONS
object_not_found = 1
OTHERS = 2.
LOOP AT lt_status INTO wa_status.
IF wa_status-stat(1) EQ 'I'.
SELECT txt04 FROM tj02t
INTO lv_status
WHERE istat EQ wa_status-stat
AND spras EQ 'E'.
ENDSELECT.
lv_temp2 = lv_status.
CONCATENATE lv_temp2 p_prd_stat INTO p_prd_stat
SEPARATED BY ','.
ENDIF.
CLEAR: wa_status, lv_status, lv_temp2.
ENDLOOP.
lv_buff = p_prd_stat.
*Status of Production Order
IF lv_buff CS 'CRTD'.
p_prd_stat = 'Not Active'.
ENDIF.
IF lv_buff CS 'REL'.
IF lv_buff CS 'GMPS'.
p_prd_stat = 'Printed In Prod'.
ELSE.
p_prd_stat = 'Printed'.
ENDIF.
ENDIF.
IF lv_buff CS 'TECO'.
p_prd_stat = 'Technically Compt.'.
ENDIF.
ENDFORM. " fr_get_prd_stat -
How to check the Production order exits
Hi Experts
Modification to processing of Command Orders & Tickets
We require a modification to the processing being performed on sales data originating from the Command Concrete system and potentially from other systems yet to come online (e.g. Pinkenba Cement plant).
The Sap process involved is ZINT_INBOUND_POLLING and within that, ZINT_CSTPORD_ROUTINES.
The problem
Currently there is an assumption that every sales order (and its deliveries) will include a product which is made to order, i.e. for which a production order will be required.
In ZINT_CSTPORD_ROUTINES, a check is made to identify the production order linked to the sales order. If there is no such production order (usually because of the customeru2019s credit status) then processing of the ticket is terminated.
This assumption would fall down if an order was to be raised (in Command) on which there is no concrete material. For example, if we sold a bag of pigment or a screed to a customer. In this case the item would be sold from stock and there would be no need for a production order.
The solution
In the routine which checks for the existence of a production order, modify the code as follows:
Inspect each item on the sales order
If (and only if) there is at least one item with a category of u201CZTACu201D then check for a production order, otherwise process the order in the usual manner.
---- ZINT_CSTPORD_ROUTINES -
*& Form process_inbound_data
Create prod. orders from ticket data extracted from the COMMAND
system. Note that large portions of the code in this routine
have been copied from the retired ZPPU_COMMAND_PRODUCTION
interface program. This was done (1) because the old code works
and (2) to save development time.
-->T_ZINT_IDATA Internal table of interface data
-->T_ZINT_PARAM Internal table of interface parameters
-->T_ZINT_MSLOG Internal table of messages
-->P_ZINT_ID Interface ID
-->P_ZINT_TY Inteface type
-->P_ZINT_IS IDOC group for interface
-->P_ZINT_DL Flag: delete IDOC group when complete
-->P_ZINT_AL Flag: run in standalone mode
-->P_ZINT_NW Flag: do not log warning messages
-->P_ZINT_SQ Interface sequence number
<--P_ZINT_RC Return code (<>0=>error)
form process_inbound_data tables t_zint_idata structure zint_idata
t_zint_param structure zint_param
t_zint_mslog structure zint_mslog
using p_zint_id type zint_id
p_zint_ty type zint_ty
p_zint_is type zint_is
p_zint_dl type zint_dl
p_zint_al type zint_al
p_zint_nw type zint_nw
p_zint_sq type zint_sq
changing p_zint_rc type zint_rc.
program is continuing .............
I WANT TO WRITE A CODING HERE **********************
CHECK IF PRODUCTION ORDER REQUIRED
IF NOT THEN GO TO PERFORM UPDATE DATA
if production order required then check
for each item on sales order item list
with item category = 'ZTAC' then
return true
next
end function
if there is no production code
these has to be check from VBAP TABLE field VBELN and PSTYV (ZTAC,ZTAN Etc)
select * from Vbap WHERE VBELN = '00000269951' and VBAP.PSTYV = 'ZTAC','ZTAN' Etc
No production order?
elseif lva_prodord is initial.
clear v_messg.
call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
exporting
input = lva_filemat
importing
output = lva_filemat.
No production order found - log a warning message.
concatenate 'Production Order not be found for'
'Command order' lva_cmdord
'Material' lva_filemat
'Customer' lwa_02-customer
into v_messg separated by space.
perform write_log_entry
tables t_zint_mslog
using 'E' 'ZINT_CSTPORD_ROUTINES'
'FIND_SAP_PRODORD'
v_messg
p_zint_nw
lwa_01-ticketnumber. " RJS
continue.
endif.
Production Order WAS found... Continue creating IDOCS
lwa_hdrlevel-postg_date = lwa_01-ticketdate.
Obtain the storage location parameter value.
read table t_zint_param with key zint_fn = 'LGORT'.
if sy-subrc ne c_noerr.
perform write_log_entry
tables t_zint_mslog
using 'E' 'ZINT_CSTPORD_ROUTINES'
'PROCESS_INBOUND_DATA'
'Parameter LGORT is missing from ZINT_PARAM'
p_zint_nw
lwa_01-ticketnumber. " RJS
exit.
endif.
loop at l_it_05 into lwa_05
where ticketnumber = lwa_01-ticketnumber.
clear lwa_gm_item_create.
lva_filemat = lwa_05-material.
if lva_filemat eq lva_prodmat.
concatenate 'Command ticket-' lwa_05-ticketnumber
into lwa_hdrlevel-conf_text.
lwa_hdrlevel-conf_quan_unit = lwa_05-unitofmeasure.
lwa_hdrlevel-yield = lwa_05-quantity.
check whether the confirmed value + current delivery value is equal *
the production order qty. If the production order value is less
than the total delivered value, set final conf indicator and clear
reservations
lva_wemng = lva_wemng + lwa_05-quantity.
if lva_wemng < lva_psmng.
lwa_hdrlevel-clear_res = c_false.
lwa_hdrlevel-fin_conf = ' '.
else.
lwa_hdrlevel-clear_res = c_true.
lwa_hdrlevel-fin_conf = 'X'.
endif.
move: 'Z1BP_PP_HDRLEVEL' to t_idoc_data-segnam,
lwa_hdrlevel to t_idoc_data-sdata.
append t_idoc_data.
clear lva_formmat.
lva_formmat = lwa_05-material.
lwa_gm_item_create-material = lva_formmat.
lwa_gm_item_create-plant = lwa_03-plant.
lwa_gm_item_create-ref_date = lwa_01-ticketdate.
lwa_gm_item_create-prod_date = lwa_01-ticketdate.
lwa_gm_item_create-move_type = '101'.
lwa_gm_item_create-spec_stock = 'E'.
lwa_gm_item_create-sales_ord = lva_saleord.
lwa_gm_item_create-entry_qnt = lwa_05-quantity.
lwa_gm_item_create-entry_uom = lwa_05-unitofmeasure.
lwa_gm_item_create-orderid = lva_prodord.
lwa_gm_item_create-move_mat = lva_formmat.
lwa_gm_item_create-move_plant = lwa_03-plant.
lwa_gm_item_create-mvt_ind = 'F'.
clear t_idoc_data.
move: 'E1BP2017_GM_ITEM_CREATE' to t_idoc_data-segnam,
lwa_gm_item_create to t_idoc_data-sdata.
append t_idoc_data.
else.
clear: lva_loggr,
lva_formmat.
lva_formmat = lwa_05-material.
select single loggr into lva_loggr from marc
where matnr = lva_formmat
and werks = lwa_03-plant.
if sy-subrc ne 0.
clear v_messg.
No logistics handling group - log a warning message.
concatenate 'No logistics handling group for material'
lva_formmat
'in plant'
lwa_03-plant
into v_messg separated by space.
perform write_log_entry
tables t_ldata
using 'W' 'ZINT_CSTPORD_ROUTINES'
'PROCESS_INBOUND_DATA'
v_messg
p_zint_nw
lwa_01-ticketnumber. " RJS
clear lva_loggr.
endif.
if lwa_03-satsur eq 'T'.
lwa_e1edl21-lprio = 30.
else.
lwa_e1edl21-lprio = 20.
endif.
else.
if lwa_03-satsur eq 'T'.
lwa_e1edl21-lprio = 10.
else.
lwa_e1edl21-lprio = ' '.
endif.
endif.
lwa_e1edl21-berot = lwa_04-driver.
move: 'E1EDL21' to t_idoc_data-segnam,
lwa_e1edl21 to t_idoc_data-sdata.
append t_idoc_data.
lwa_e1edl55-qualf = '001'.
lwa_e1edl55-refnr = lva_saleord.
move: 'E1EDL55' to t_idoc_data-segnam,
lwa_e1edl55 to t_idoc_data-sdata.
append t_idoc_data.
Loop at materials - create delivery entry for each
loop at l_it_05 into lwa_05
where ticketnumber = lwa_01-ticketnumber.
clear t_idoc_data.
lwa_e1edl24-matnr = lwa_05-material.
lwa_e1edl24-werks = lwa_03-plant.
lwa_e1edl24-vfdat = lwa_01-ticketdate.
lwa_e1edl24-lfimg = lwa_05-quantity.
lwa_e1edl24-vrkme = lwa_05-unitofmeasure.
lwa_e1edl24-lgort = t_zint_param-zint_fv.
clear lva_loggr.
lva_formmat = lwa_05-material.
clear lva_loggr.
select single loggr into lva_loggr from marc
where matnr = lva_formmat
and werks = lwa_03-plant.
if sy-subrc ne 0.
No logistics handling group - log a warning message.
concatenate 'No logistics handling group for material'
lva_formmat
'in plant'
lwa_03-plant
into v_messg separated by space.
perform write_log_entry
tables t_ldata
using 'W' 'ZINT_CSTPORD_ROUTINES'
'PROCESS_INBOUND_DATA'
v_messg
p_zint_nw
lwa_01-ticketnumber. " RJS
lva_loggr = 'BBIN'.
endif.
if lva_loggr is initial.
move: 'E1EDL24' to t_idoc_data-segnam,
lwa_e1edl24 to t_idoc_data-sdata.
append t_idoc_data.
endif.
endloop.
clear: lva_xabln,
lva_vbeln,
l_vbfa.
Matching ticket against a Delivery?
select single xabln vbeln into (lva_xabln,lva_vbeln) from likp
where xabln = lwa_01-ticketnumber.
if sy-subrc = 0.
If found, does this delivery match the sales order?
select * from vbfa into l_vbfa
where vbelv = lva_saleord
and vbeln = lva_vbeln.
exit.
endselect.
endif.
No matching delivery found, or Matching delivery, but for other Sls Ord
if lva_xabln is initial
or ( lva_vbeln <> space and l_vbfa is initial ).
if not lva_saleord is initial.
perform create_delivery_idocs tables t_zint_mslog
using s_idcgp
lwa_01-ticketnumber
p_zint_nw.
else.
concatenate 'Error finding a Sales Order for ticket "'
lwa_01-ticketnumber
'" reprocess the file AFTER'
' the sales order issues have been fixed'
into lva_outtext.
perform write_log_entry tables t_zint_mslog
using 'E'
'ZINT_CSTPORD_ROUTINES'
'PROCESS_INBOUND_DATA'
lva_outtext
p_zint_nw
lwa_01-ticketnumber. " RJS
endif.
else.
concatenate 'Command Ticket "'
lwa_01-ticketnumber
'" has already been processed into delivery "'
lva_vbeln
into lva_outtext.
perform write_log_entry tables t_zint_mslog
using 'I'
'ZINT_CSTPORD_ROUTINES'
'PROCESS_INBOUND_DATA'
lva_outtext
p_zint_nw
lwa_01-ticketnumber. " RJS
refresh t_idoc_data.
endif.
endif.
refresh t_idoc_data.
Write out all messages collected so far
perform update_data tables t_zint_mslog
using p_zint_id p_zint_ty.
endloop.
Write out all messages collected so far
perform update_data tables t_zint_mslog
using p_zint_id p_zint_ty.
endform. " process_inbound_data
Thnaks
RegardsThanks
Thread closed -
How to Upload WIP Production orders in production during Cutover.
How to Upload the Open Production orders in production system during cutover activities.
my client is having 1000 open production order(WIP), during cutover activies how to upload this in production.
Please guide me
Regards
Sunil Patil.Hi,
I somewhat agree with what Raj has to say. Something which is already in process how can that be uploaded, how can one compensate for the time which has been consumed in the production activity.
I hope Rupesh Brahamakar sir would throw light on this issue, as most of us are under the dillema at the time of Cut-Over activity.
Sir, hoping your valueable inputs.
Regards,
Harris -
Reprocessing of Production order/Process order
Hi friends,
Can anybody explain me what is reprocessing of production order.
Plz explain me in a step by step manner.
Thanks very much.
Kind RegardsHi Arun Kumar,
Reprocessing
Use
In the area of confirmation, you can separate confirmation entry from processing. As a result, errors may occur when confirmations, or the processes that follow them, are posted. You can eliminate these errors by reprocessing them. The following reprocessing functions are available:
Confirmations
Actual costs
Goods movements
Reprocessing Confirmations :
Use
You use this function to process confirmations for which errors occurred as they were being automatically processed. With this function, you can either delete or, if possible, eliminate the errors and post the confirmations again.
Confirmations with errors can arise if they were entered in one of the following ways:
Upload from a PDC system (see Upload)
Online entry ( Fast Entry or Mass Processing)
Entry via BAPI interface
Possible errors include:
Order does not exist (for entry via PDC system, BAPI interface)
Order was locked
Sequence of time events incorrect
Individual capacity does not exist
Work center or personnel number does not exist
Features
Reprocessing has the following advantages:
Selection
On the initial screen, you can enter your selection criteria for selecting the confirmations that you want to reprocess. Possible selection criteria are: Production order, plant, confirmation, WBS element, sales order, MRP controller, work center, created by, created on.
Navigation
The screen for reprocessing confirmations is split into two areas:
Overview list of the confirmations
Detail screen for the selected confirmation
In the standard setting, the overview list is on the left and the detail display of the confirmation is on the right. To change the position of the overview list, choose (move the list in an anti-clockwise direction, select the position of the overview list). This last setting is saved for the particular user who created it and is used again the next time the function is called up.
Reprocessing
The confirmation that you have chosen from the overview (cursor position) is displayed in the detail screen. In the detail screen, you can remove the error in the confirmation.
The following confirmations can be reprocessed:
Order confirmation
Operation confirmation
Time event confirmation
Activity confirmation
The layout of the detail screen is determined by the confirmation that you are currently processing. The layout can be set up flexibly for an operation confirmation (see Single Screen Entry).
Display error
To display a long text about the error for each confirmation, position the cursor on the confirmation and choose .
Check confirmation
You can check one or more confirmations. To check confirmations, select them and choose . In the Status field on the overview list, the result of the check is displayed with a symbol.
Delete confirmation
If a confirmation is not to be posted because, for example, it has entered the SAP System by mistake, you can delete it. To do this, select the confirmation and choose . The confirmation is flagged for deletion and is deleted when you save.
Delete a line
To delete confirmations from the overview that you do not want to process at the moment, choose . The confirmation is, however, retained for reprocessing at a later stage.
2.Cost Determination Error Processing
Use
You use this function to gather information about errors in cost determination and if necessary to repeat it.
If errors occurred when determining actual costs online, you can decide whether or not the confirmation and the error records are saved. If you are using Decoupling Confirmation Processes, the errors are recorded during the execution of the background job or during updating.
Features
This function includes:
An error log which displays the cost determination errors in detail
Errors are, for example: missing activity prices, invalid cost centers or incorrect assignment of an activity type to a cost center.
Rerunning cost determination
Starting a New Costing Run
1. Choose either
¡ Production orders: Logistics ® Production ® Shop Floor Control ® Confirmation ® Reprocessing ® Actual Costs
¡ Process orders: Logistics ® Production u2013 Process ® Process Order ® Confirmation ® Recalculate Actual Costs
2. Enter your selection criteria.
3. Choose (Execute).
4. Select the confirmation in question and choose (Error Log).
Analyze the errors.
5. If necessary remove the errors.
To remove the errors, you have to exit the reprocessing function.
6. Choose Production ® Shop Floor Control ® Confirmation ® Reprocessing ® Actual Costs or Production u2013 Process ® Process Order ® Confirmation ® Recalculate Actual Costs or open a new session.
7. Enter selection criteria for the confirmations for which you want to restart the actual cost calculation.
8. Choose (Execute).
9. Select the confirmation and choose (Save).
Failed Goods Movements Processing :
Use
This function allows you to process goods movements that failed when posting confirmations. After correcting any errors that occurred, you can then post the goods movements a second time.
Features
This function includes:
Detailed display of errors
Errors can be caused by insufficient information such as missing storage locations or missing batch numbers. Errors can also include locked material data, insufficient stock, or attempts to post goods movements in the wrong accounting period.
Opportunity to correct failed goods movements
Option of posting goods movements a second time
Reprocessing Goods Movements
1. Choose either
¡ Production orders: Logistics ® Production ® Shop Floor Control ® Confirmation ® Reprocessing ® Goods Movements
¡ Process orders: Logistics ® Production - Process ® Process Order ® Environment ® Material Movement ® Failed Goods Movements.
2. Enter your selection criteria:
3. Choose (Execute).
4. Select the goods movement that you want to reprocess.
5. Choose (Display Errors) to display the errors that have arisen, in detail. To leave the message, choose (Continue).
6. Select the required goods movements and make the necessary changes (for example, Edit ® Replace ® Storage location).
For example, you can delete incorrect goods movements.
When incorrect goods movements are deleted, the system does not carry out an automatic adjustment of reservations.
7. Choose (Save) to restart the execution of goods movements.
When you are reprocessing the goods movements for the confirmation, you can go to the goods movements overview. Choose Change Details, to change the goods movements.
Hope this details is enough for clearing your doubt.
Revert if any doubt and reward if useful.
Regards,
Tejas -
How to create Disassembly production order type.
Dear All,
I've been reading threads regarding disassemblyi type production order usage, but in my system (SAP ECC 6.0) i don't have an option to select this type of order.
So the question is how to create this disassembly type for production order, what other settiings are needed for disassembly processing. And could you pls shortly describe best practise for disassembly processing.
Thanks in advance,
Regards, Andrey
Edited by: Andrey Kruglov on Jul 15, 2010 3:45 PMHello
Such functionality does not exist on the standard system, however, there is a functionality called Order Combination for the industry solution DIMP.
Please take a look on the following document, which describes the order combination scenario:
https://help.sap.com/bp_fm603/BBLibrary/HTML/372_EN_FR.htm
BR
Caetano -
Changes in production order/Process order
Hi Experts,
Very much hopeful that I will get solutuion of below:
How or where to see changes done in production / process order.
e.g Suppose I have created one production order. Then release it in CO02. Then I changed order quantity from 100 to 200 ( Earlier it was 100 ). Then I delete one BOM component from order. Then I changed finish date of order.
Pls tell me how to track these changes. What configuration need to track these changes. Please tell me step by step procedure.
I have read related thread in sdn itself but not satisfied.
Please help.
Regards,
VipulHi,
For tracking in changes of Production / Process Order, you need to activate Order Change Management (OCM). After activating the same, you can view changes of Production order in CO02 / CO03.
for more details of OCM go through following link :
[Order Change Management (OCM)|http://help.sap.com/saphelp_erp60_sp/helpdata/en/a5/63198843a211d189410000e829fbbd/frameset.htm]
Hope this helps.
Regards,
Tejas
Maybe you are looking for
-
Registering a partner application with SSO SDK
Good day Since 2 days, I am struggling for the issue of registering a Servlet application as a partner application using the SSO Login Server. As per the suggested note id 182701.1 in metalink , I implement the following steps : - Step A : Create the
-
Creative MediaSource Organizer hangs while importing tracks to PC Music Libr
I purchased a NOMAD Jukebox Zen 60GB sometime ago and I finally got into putting my music into it. I downloaded and installed Creative Media Source version 2.03.29. I have all my music files in a folder in my roommates desktop computer available on o
-
Which is the best 15 Inch Macbook Pro choice for me?
So I am a currently attending college and studying at the moment CIM (Computer Information Management). I work a lot on my computer either on school work, personal projects, and some minor freelance work. I use a lot of Adobe CS4 software such as Pho
-
Creating icon shortcuts in Pages '09
Can the toolbar be modified to add tasks such as "Spell Check" or are you stuck with the 50 or so tasks that already have pre-configured shortcuts? I know this sounds trivial, but this is a major reason I have not shifted to using Pages '09 from Micr
-
I have acquired a new lap top and wish to transfer my use of the Creative Cloud from my old laptop. How do I uninstall and then reinstall on the new device ?