Report For BOM Amendment
Dear Sir,
We have Make-To-Order scenario . Our BOM is multilevel one . We are required to develop a Report showing the details related to Changes Made in the BOM during a Period .
The Report contain the information :
Item Code , Old Quantity , Amended Quantity , Amendment Date
I request SAP experts to kindly guide me as how to develop such a Report please .
With Thanks and Regards
S M Mittal
PL refer two tables CDHRD and CDPOS
Input for CDHRD is
Object name is client number,BOM type,BOM number - example 070M00000006.
You will get the details of BOM type and BOM number in MAST.
from CDHRD you will get Document number which you have to pass it to CDPOS to get the data of component changed.
In STPO if you enter the data, you will get the details of item
table key-XXXMYYYYYYAAAAAAABBBBBB
XXX client number
M - BOM type- STPO-STLTY
YYYYYY - STPO-STLNR
AAAAAAA - STPO-STLKN
BBBBBB - STPO-STPOZ
I hope you got it, if required come back
Similar Messages
-
The standard report for BOMs of a material with a selected period?
Hi Gurus
Is there any standard report for BOMs of a material with a selected period?Hi,
You will have to develop a report for your requirement,
The following tables will be used for the report
MAST-WERKS
STPO-MATNR
MARA-MAKTX
STPO-BMENG
STPO-POSNR
STPO-IDNRK
STPO-MAKTX
STPO-DATUV
STPO-MENGE
STKO-MEINS
STPO-AVOAU
Regards
Merwyn -
Customized report for BOM changes
Hi PP Gurus,
My client is not having ECM. he want to create one Z report for BOM changes. I checked tables MAST, STKO, STPO, CDPOS and CDHDR. In CDPOS I can see replaced component and replced quantity. But if I deleted any component or inserted any new component I can not see this in any table. Please suggest me how can I track such changes without ECM.
Jayesh Narvankar
SAP PPDear ,
You can try to develope a report with the help of you ABAPer with following FM /BAPI :
CSAP_MAT_BOM_MAINTAIN
CSAP_MAT_BOM_OPEN
CSAP_BOM_ITEM_MAINTAIN
CSAP_MAT_BOM_CLOSE
Refer this experts theards on this issues : Deletion of BOM item using BAPI/FM
If you need to go ahead with ECM , you refer our earlier posting in the same issue :
Changes in Production Orders
Regards
JH -
Dear Experts,
i have scenario which i need to capture but do not have any standard report and for that reason i am going in for Z development of the reports. please guide me so as to which field to be pulled to get the desired output.
Scenario:
We create Purchase order with a version control
1. First version has the data which act as baseline and we want to compare rest of the versions as variance
2. If the line item in PO is a subcontracting material with L- then the subcomponents will be present as a BOM
3. when i ammend the PO for the Qty the BOM items also get ammended but do not reflect in the version control - display changes
4. I want to capture the PO with each line item against which there is qty change and also the material BOM change due to qty change.
Is there any table from which i capture the data.
Pl. help me out it would be of great help
Thanks & Regards,
FarhanHi
the following tables might be useful
MAST
STKO - Header Table of BOM
STPO - Item Level for BOM
MAKT
regards
maniraj -
Std report for BOM : Reg.
Hi experts,
I need to display the materials along with the BOM of those materials with its quantity and its total price while user give the vendor name and date range as input.
Is there any std report for the same? Try to give apt solution on it.
Thanks and Regards
Raaam's...Hi,
CS12 is to get multi-level BOM report. You can insert satndard price field and vendor filed into the layout and you can filter it within the report itself.
But what if you have several sources of supply and several prices (in info records!) for your goods? And this report can display only the multi-level BOM of one single material...
If you want a transaction described by you, you should develop an own report in ABAP - I guess...
You can post this thread in PP forum as well but I'm afraid there's no such kind of standard report in SAP...
BR
Csaba -
can any body help me to do one bdc for
BOM master?? i m doing this first time so i need some input
thanks well in advance.
points ll be rewarded...
Message was edited by:
soumya shekharhi
good
When you try to create, you would find a pushbutton 'INSERT NEW LINES' or something simialr to enter your data in the next line. Say you're entering the Material inthe first row, its field position would be MARA-MATNR(01). Now when you click the Insert Pushbitton the cursor always is at positon 2. so you have to loop the remaining data to enter in MARA-MATNR(02). Yougenereally set a counter and pass that counter value (in this case the counter value is 2 always)
The other case when you don't have a push button to Insert. Enter all the rows and then do a Page down. Now your cursor would sit back at position 2 again. Say if there are 20 rows in the first screen. You would keep incrementing the counter and then when it is 21 you do a pagedown and then reset the counter to 2. You loop the pagedown and in it you loop the counter.
I have attached a BDC where I use the second case (no push button). Do a recording and then you would know all the answers by yourself.
*& REPORT ZPP0122 *
*& Module : PP |
*& Application : The program loads the Material Assignment of Routings |
*& |
REPORT zpp0122 NO STANDARD PAGE HEADING
MESSAGE-ID z0
LINE-SIZE 132
LINE-COUNT 65(2).
Internal Tables *
*Internal table for the Routing fields.
DATA: BEGIN OF i_rout OCCURS 0,
plnnr(8),
plnal(2),
matnr(18),
werks(4),
END OF i_rout.
DATA:
g_my_rec_in LIKE i_rout.
Declare internal table for Call Transaction and BDC Session
DATA: i_bdc_table LIKE bdcdata OCCURS 0 WITH HEADER LINE.
Global Variables *
DATA: g_counter(2) TYPE n,
g_field_name(18) TYPE c,
zc_yes TYPE syftype VALUE 'X'.
Selection Screen *
SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001.
PARAMETERS: p_fname1 TYPE localfile .
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-002.
PARAMETERS: p_rloc1 AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE text-005.
PARAMETERS p_group(12) OBLIGATORY DEFAULT 'ZROUTING'.
SELECTION-SCREEN END OF BLOCK c.
SELECTION-SCREEN END OF BLOCK b.
SELECTION-SCREEN END OF BLOCK a.
**WRITE the report header
TOP-OF-PAGE.
INCLUDE zheading.
Start of selection *
START-OF-SELECTION.
Load Input file
PERFORM f_load_input_file.
Create BDC records.
PERFORM create_bdc_records .
*& Form Create_BDC_records
perform the BDC for the records in the internal table
FORM create_bdc_records .
IF NOT i_rout[] IS INITIAL.
Open BDC session
PERFORM open_bdc_session.
LOOP AT i_rout.
g_my_rec_in = i_rout.
AT NEW plnnr.
CLEAR i_bdc_table[].
PERFORM insert_screen_header.
ENDAT.
CONCATENATE 'MAPL-PLNAL(' g_counter ')' INTO g_field_name.
PERFORM bdc_field USING g_field_name i_rout-plnal.
CONCATENATE 'MAPL-MATNR(' g_counter ')' INTO g_field_name.
PERFORM bdc_field USING g_field_name i_rout-matnr.
CONCATENATE 'MAPL-WERKS(' g_counter ')' INTO g_field_name.
PERFORM bdc_field USING g_field_name i_rout-werks.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
g_counter = g_counter + 1.
Page Down for further entries
IF g_counter = 19.
PERFORM bdc_field USING 'BDC_OKCODE' '=P+'.
PERFORM bdc_dynpro USING 'SAPLCZDI' '1010'.
g_counter = 2.
ENDIF.
AT END OF plnnr.
PERFORM bdc_field USING 'BDC_OKCODE' '=BACK'.
PERFORM bdc_dynpro USING 'SAPLCPDI' '1200'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
PERFORM insert_bdc_new.
ENDAT.
ENDLOOP.
CLEAR i_rout[].
PERFORM close_bdc_session.
Release the BDC sessions created
PERFORM release_bdc.
ENDIF.
ENDFORM. " open_group
*& Form bdc_dynpro_start
Call the screen for the input of fields
-->P_G_PROGRAM_1
-->P_G_SCREEN
FORM bdc_dynpro USING p_g_program_1
p_g_screen.
CLEAR i_bdc_table.
i_bdc_table-program = p_g_program_1.
i_bdc_table-dynpro = p_g_screen.
i_bdc_table-dynbegin = 'X'.
APPEND i_bdc_table.
ENDFORM. " bdc_dynpro_start
*& Form bdc_field
Insert field *
FORM bdc_field USING f_name f_value.
IF f_value <> space.
CLEAR i_bdc_table.
i_bdc_table-fnam = f_name.
i_bdc_table-fval = f_value.
APPEND i_bdc_table.
ENDIF.
ENDFORM. "bdc_insert_field
*& Form open_bdc_session
Create the BDC session
FORM open_bdc_session .
Open BDC session and creat and update condition records
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
DEST = FILLER8
group = p_group
HOLDDATE = FILLER8
keep = 'X'
user = sy-uname
RECORD = FILLER1
PROG = SY-CPROG
IMPORTING
QID =
EXCEPTIONS
client_invalid = 1
destination_invalid = 2
group_invalid = 3
group_is_locked = 4
holddate_invalid = 5
internal_error = 6
queue_error = 7
running = 8
system_lock_error = 9
user_invalid = 10
OTHERS = 11
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " create_bdc_session
*& Form insert_screen_header
Header Data inserted
FORM insert_screen_header .
g_counter = 1.
First screen
PERFORM bdc_dynpro USING 'SAPLCPDI' '1010'.
PERFORM bdc_field USING 'BDC_CURSOR' 'RC271-PLNNR'.
PERFORM bdc_field USING 'BDC_OKCODE' '=ALUE'.
PERFORM bdc_field USING 'RC271-PLNNR' g_my_rec_in-plnnr.
PERFORM bdc_field USING 'RC27M-MATNR' ' '.
PERFORM bdc_field USING 'RC27M-WERKS' ' '.
PERFORM bdc_field USING 'RC271-PLNAL' ' '.
*next screen
PERFORM bdc_dynpro USING 'SAPLCPDI' '1200'.
PERFORM bdc_field USING 'BDC_OKCODE' '=MTUE'.
*next screen
PERFORM bdc_dynpro USING 'SAPLCZDI' '1010'.
ENDFORM. " insert_screen_header
*& Form insert_bdc
Insert the BDC for the transaction
FORM insert_bdc_new .
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = 'CA02'
POST_LOCAL = NOVBLOCAL
PRINTING = NOPRINT
SIMUBATCH = ' '
CTUPARAMS = ' '
TABLES
dynprotab = i_bdc_table
EXCEPTIONS
internal_error = 1
not_open = 2
queue_error = 3
tcode_invalid = 4
printing_invalid = 5
posting_invalid = 6
OTHERS = 7
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CLEAR i_bdc_table[].
ENDFORM. " insert_bdc
*& Form close_bdc_session
Close the session
FORM close_bdc_session .
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
not_open = 1
queue_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " close_bdc_session
*& Form f_load_input_file
Load the data file
FORM f_load_input_file.
The data file is from Presentation server
IF p_rloc1 = zc_yes.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = p_fname1
filetype = 'DAT'
TABLES
data_tab = i_rout
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
OTHERS = 10.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
EXIT.
ENDIF.
ENDIF.
ENDFORM. " f_load_input_file
*& Form release_bdc
Release BDC session
FORM release_bdc.
SUBMIT rsbdcsub WITH mappe EQ p_group
WITH von EQ sy-datum
WITH bis EQ sy-datum
WITH fehler EQ '.'
EXPORTING LIST TO MEMORY
AND RETURN.
ENDFORM.
reward point if helpful.
thanks
mrutyun^ -
Report for bom wise target and actual cost as well as qty at line item
Dear Experts,
Is there any standard tcode for bom wise target and actual cost as well as qty at line item level for the month.
there is one tcode s_alr_87013127 but user has to double click in order to get line item details.
I want to see line item wise breakup/bom wise target and cost cost as well as qty.
Thanks in advance.
regards
RKDear experts,
I am still looking for a revert.
regards
RK -
Hi experts,
I need to take report for BOm based on the PR number.
My client is asking they have the PR number and they like to see the BOM.
Kindly advice
regards
arunHi Arun,
pls explain in details for your question
Regards,
Sankaran -
Report for Cost of Multiple products with Multilevel BOM explosion
Hi,
Our client has a requirement of a report showing standard cost estimate of multiple FG products, with multi-level BOM explosion.
In short, the requirement is to get a CK13N report for multiple products.
Has anyone come across such requirement? The requirements seems to be very normal.
But, I have not seen any standard report for the same. If there is any, please suggest.
or suggest a better solution for the same.
Thanks in advance. Pts guaranteed.Hi,
I totally agree with you that this is a totally vague requirement.
However, let me share the reason for such client requirement.
We have a customer, for which we produce certain parts for select models. Now, the arrangement with customer for pricing is based on the raw material and other production cost for all such parts. Based on the fluctuations in cost, the pricing would be finalised.. on a monthly or quarterly basis.
For this purpose, the customer requires to know the raw materials used in each of the part.
Individually it could have been managed. But the price change in terms of % is decided at global level and not for each part.
Please suggest -
Consumption Report for Production order(BOM)
Hi All
Is there any option to see consumption reports for any particular BOM.Hi Richa,
Unfortunately there is no such a report in SBO. But you can write a report to show the consumption of BOMs using the Query Generator or Wizard. (Thus no SDK work is required). -
Purchase reports for components of production BOM Based on Its Sales BOM
Hi all
I have sales BOM and the components of Sales BOM are production items having Production BOM and the components of production BOM are purchase items
My problem is when i create a sales order for my Sales BOM, i should be able to get a report for purchase items that is how much i have to purchase with out using MRP
pls anyone help me with approbriate queries
Thanks and Regards
Boopathi.THi Boopathi,
You may try this one:
SELECT Distinct T1.Code, SUM(T0.Quantity * T1.Quantity) 'PO Qty', T2.DocNum
FROM dbo.RDR1 T0
INNER JOIN dbo.OITT T3 ON T3.TreeType = 'S' AND T3.Code = T0.ItemCode
INNER JOIN dbo.ITT1 T1 ON T1.Father = T3.Code
INNER JOIN dbo.ORDR T2 ON T2.DocEntry = T0.DocEntry
WHERE T2.DocNum LIKE '[%0\]%'
GROUP BY T1.Code, T2.DocNum
Thanks,
Gordon -
I need help in Report for production orders for my customer.
Hi All
I have scenario where plant A needs the following report for Material XXX which has setting as Stock Trnasfer order from Plant B.
Need report withthe following details, Storage Unit number, Material No, Quantity, Planned Order Date in plant A, Date Produced in plant B, Date Received by Plant A.
Please tell me if there is any standard report to take the following details. Scenario is that the header material YYY in Plant A has one material XXX as BOM component. Now this material has setting as Stock transfer from Plant B. On creating a plan order for Header material it will create a Plan order in plant B for component XXX. The above said detail is required for component XXX in plant A.Dear
Did you explore the report in CO46-Order Progress Report based on Sales Order /Material /Production Order
Or COOIS/COHV for your requirement.Here you can get the Planned Order Details and also Production Order Details .
Regards
JH
Edited by: Jiaul Haque on Sep 27, 2010 2:57 PM -
Period Balance Report for Actual/ Commitment only
Hi,
Do we have any report for getting Periodic balance for cost Centre Actual and commitment Balances.
Regards,
VenkatIf there is not a specific YtD report, then it is easy to create one: Using the report painter, copy the existinf report, and amend the columns to reflect not the current month, but from the 1st period to the current month.
-
DEAR FRIENDS,
I am making a program for tracking the materials given (mb1b 541 movt.) for subcontracting and taken by me (101 for actual good receipt, 543 for the given material- stock type inward, 545 for the scrap returns). but while i made the program i am unable to pick up the materials BOM from the PO which is essential to take the difference between these and the supplied quantities taken-in by GR.
following is the program.
Please suggest the changes. Thanks,
Deepak
*& Report ZMM_SUBCONTRACTING_PO_REPORT
*& Author:
*& Date :
*& Reason: Sub Contracting PO Report.
*& Find Discreprancy in PO and BOM. according to 543 and 545
REPORT ZMM_SUBCONTRACTING_PO_REPORT NO STANDARD PAGE HEADING
LINE-SIZE 157.
*& TABLES DECLARATION
TABLES: EKKO,
EKPO,
EKBE,
ENT5303.
*& SELECTION-SCREEN.
SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_MATNR FOR EKPO-MATNR,
S_WERKS FOR EKBE-WERKS OBLIGATORY.
PARAMETERS: P_BUKRS LIKE EKKO-BUKRS OBLIGATORY.
SELECT-OPTIONS: S_BUDAT FOR EKBE-BUDAT OBLIGATORY,
S_EBELN FOR EKKO-EBELN,
S_BELNR FOR EKBE-BELNR,
S_GJAHR FOR EKBE-GJAHR.
SELECTION-SCREEN: END OF BLOCK B1.
*& INTERNAL TABLES DECLARATION.
DATA: BEGIN OF IT_EKKO OCCURS 0,
EBELN LIKE EKKO-EBELN,
END OF IT_EKKO.
DATA: BEGIN OF IT_EKBE OCCURS 0,
EBELN LIKE EKBE-EBELN,
EBELP LIKE EKBE-EBELP,
GJAHR LIKE EKBE-GJAHR,
BELNR LIKE EKBE-BELNR,
BUZEI LIKE EKBE-BUZEI,
BEWTP LIKE EKBE-BEWTP,
BWART LIKE EKBE-BWART,
BUDAT LIKE EKBE-BUDAT,
MENGE LIKE EKBE-MENGE,
DMBTR LIKE EKBE-DMBTR,
LFBNR LIKE EKBE-LFBNR,
MATNR LIKE EKBE-MATNR,
WERKS LIKE EKBE-WERKS,
BUKRS LIKE WB2_V_EKKO_EKPO2-BUKRS,
MENGE_I LIKE WB2_V_EKKO_EKPO2-MENGE_I,
LIFNR LIKE WB2_V_EKKO_EKPO2-LIFNR,
COUNT TYPE P DECIMALS 4,
BMENGE LIKE EKBE-MENGE,
MENGE101 LIKE EKBE-MENGE,
MENGE543 LIKE EKBE-MENGE,
MENGE545 LIKE EKBE-MENGE,
DIFFER LIKE EKBE-MENGE,
TMENGE LIKE EKBE-MENGE,
RATE LIKE EKBE-DMBTR,
NAME1 LIKE LFA1-NAME1,
LINE_COLOR(4),
END OF IT_EKBE.
DATA: WA LIKE IT_EKBE.
DATA: BEGIN OF IT_FINAL OCCURS 0.
INCLUDE STRUCTURE IT_EKBE.
DATA: END OF IT_FINAL.
DATA: BEGIN OF IT_FINAL_TEMP OCCURS 0.
INCLUDE STRUCTURE IT_EKBE.
DATA: END OF IT_FINAL_TEMP.
DATA: BEGIN OF IT_BOM OCCURS 0.
INCLUDE STRUCTURE CAPP_ITM.
DATA: END OF IT_BOM.
DATA: BEGIN OF IT_BOM_HEAD OCCURS 0.
INCLUDE STRUCTURE CAPP_BOM.
DATA: END OF IT_BOM_HEAD.
*& DATA DECLARATION.
DATA: COUNT TYPE P DECIMALS 4,
V_CNT TYPE P DECIMALS 4 VALUE '0.0001' ,
V_MENGE LIKE EKBE-MENGE,
V_DELETE.
TYPE-POOLS: slis.
DATA: l_date(12) TYPE c,
l_date1(12) TYPE c,
l_time(10) TYPE c,
l_list(60) TYPE c.
DATA: CATALOG TYPE SLIS_FIELDCAT_ALV, "FIELDCAT
TCATALOG TYPE SLIS_T_FIELDCAT_ALV, "IT FIELDCAT
EVENT TYPE SLIS_ALV_EVENT, "EVENT
TEVENT TYPE SLIS_T_EVENT, "IT EVENT
LAYOUT TYPE SLIS_LAYOUT_ALV, "LAYOUT
PG_TOP TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
PG_HEAD TYPE SLIS_T_LISTHEADER,
EXIT1 TYPE SLIS_EXIT_BY_USER,
VAR1 LIKE DISVARIANT,
VAR2 LIKE DISVARIANT.
*& START-OF-SELECTION.
START-OF-SELECTION.
PERFORM PROCESS_SELECTION.
PERFORM DELETE_CANCELLED_DOCUMENTS.
PERFORM EXPLODE_BOM_FOR_101.
SORT IT_FINAL BY COUNT.
PERFORM DISPLAY_OUTPUT.
FREE IT_FINAL_TEMP.
*& ALV FORMATTING
*& ALV DISPLAY
PERFORM GENERATE_ALV_FIELDCAT.
PERFORM EVENTS USING TEVENT.
PERFORM TEXT USING PG_HEAD.
PERFORM ALV_SHOW.
*& FORM PROCESS_SELECTION.
FORM PROCESS_SELECTION.
SELECT
A~EBELN
A~EBELP
A~GJAHR
A~BELNR
A~BUZEI
A~BEWTP
A~BWART
A~BUDAT
A~MENGE
A~DMBTR
A~LFBNR
A~MATNR
A~WERKS
B~BUKRS
B~MENGE_I
B~LIFNR
FROM
EKBE AS A
JOIN
WB2_V_EKKO_EKPO2 AS B
ON
AEBELN = BEBELN AND
AEBELP = BEBELP_I
INTO
CORRESPONDING FIELDS OF TABLE IT_EKBE
WHERE
A~MATNR IN S_MATNR AND
A~WERKS IN S_WERKS AND
A~BUDAT IN S_BUDAT AND
A~EBELN IN S_EBELN AND
A~BELNR IN S_BELNR AND
A~GJAHR IN S_GJAHR AND
A~VGABE IN ('1', '7') AND
A~BEWTP IN ('E', 'O') AND
( A~BWART IN ('101', '545', '543') OR
( ABWART = '102' AND ABEWTP = 'E' ) ) AND
B~BUKRS = P_BUKRS AND
B~BSTYP = 'F' AND
B~BSART = 'SUBC'."AND
B~LOEKZ <> 'X'.
SORT IT_EKBE BY EBELN EBELP GJAHR BELNR BUZEI.
ENDFORM.
*& FORM DELETE_CANCELLED_DOCUMENTS.
FORM DELETE_CANCELLED_DOCUMENTS.
DELETE IT_EKBE WHERE BWART = '102' AND BEWTP <> 'E'.
LOOP AT IT_EKBE WHERE BWART = '102'.
READ TABLE IT_EKBE INTO WA WITH KEY BELNR = IT_EKBE-LFBNR.
IF SY-SUBRC = 0.
DELETE IT_EKBE WHERE BELNR = WA-BELNR.
ENDIF.
ENDLOOP.
CLEAR WA.
DELETE IT_EKBE WHERE BWART = '102'.
ENDFORM.
*& FORM EXPLODE_BOM_FOR_101.
FORM EXPLODE_BOM_FOR_101.
CLEAR COUNT.
LOOP AT IT_EKBE WHERE BWART = '101' OR
BWART = '543'.
IF NOT IT_EKBE-MATNR IN S_MATNR.
V_DELETE = 'X'.
ELSE.
CLEAR V_DELETE.
ENDIF.
IF V_DELETE <> 'X'.
COUNT = COUNT + 1.
IT_EKBE-COUNT = COUNT.
V_MENGE = IT_EKBE-MENGE.
MODIFY IT_EKBE.
IT_FINAL = IT_EKBE.
APPEND IT_FINAL.
ENDIF.
call function 'CABM_READ_BOM'
exporting
I_MATNR = IT_EKBE-MATNR
I_WERKS = IT_EKBE-WERKS
I_STLAL = '01'
I_STLAN = '3'
I_DATUV = IT_EKBE-BUDAT
TABLES
EXP_BOM_DATA = IT_BOM_HEAD
EXP_ITM_DATA = IT_BOM
EXCEPTIONS
NO_RECORD_FOUND = 1
OTHERS = 2
if SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
*START RK 18.06.2007
DELETE IT_BOM WHERE DATUV > IT_EKBE-BUDAT.
END : 18.06.2007
IF V_DELETE = 'X'.
LOOP AT IT_BOM.
DELETE IT_EKBE WHERE MATNR = IT_BOM-IDNRK.
ENDLOOP.
REFRESH IT_BOM.
ELSE.
PERFORM CHECK_BOM_GR.
ENDIF.
endif.
ENDLOOP.
FREE IT_EKBE.
ENDFORM.
*& FORM CHECK_BOM_GR.
FORM CHECK_BOM_GR.
DATA: WACNT TYPE P DECIMALS 4.
WACNT = COUNT.
LOOP AT IT_BOM.
READ TABLE IT_EKBE INTO WA WITH KEY EBELN = IT_EKBE-EBELN
MATNR = IT_BOM-IDNRK.
IF SY-SUBRC = 0.
WACNT = WACNT + V_CNT.
WA-COUNT = WACNT.
WA-BMENGE = IT_BOM-MENGE.
WA-TMENGE = V_MENGE.
APPEND WA TO IT_FINAL.
DELETE IT_EKBE WHERE EBELN = WA-EBELN AND
EBELP = WA-EBELP AND
MATNR = WA-MATNR AND
BELNR = WA-BELNR AND
BUZEI = WA-BUZEI.
**START : ADDED BY .... KUMAR ON 14.06.2007
ELSE.
WACNT = WACNT + V_CNT.
WA-COUNT = WACNT.
WA-BMENGE = IT_BOM-MENGE.
WA-MATNR = IT_BOM-IDNRK.
WA-TMENGE = V_MENGE.
APPEND WA TO IT_FINAL.
**END ADDED BY .... KUMAR ON 14.06.2007
ENDIF.
CLEAR WA.
ENDLOOP.
REFRESH IT_BOM.
ENDFORM.
*& FORM DISPLAY_OUTPUT.
FORM DISPLAY_OUTPUT.
Populate color variable with colour properties
Char 1 = C (This is a color property)
Char 2 = 3 (Color codes: 1 - 7)
Char 3 = Intensified on/off ( 1 or 0 )
Char 4 = Inverse display on/off ( 1 or 0 )
i.e. wa_ekko-line_color = 'C410'
IT_FINAL_TEMP[] = IT_FINAL[].
LOOP AT IT_FINAL.
CLEAR IT_FINAL-DMBTR.
********added by .... .... on 17.02.2007
if it_final-bmenge < 0.
IT_FINAL-DIFFER = IT_FINAL-TMENGE * IT_FINAL-BMENGE * -1.
else.
*********end by .... .... on 17.02.2007
IT_FINAL-DIFFER = IT_FINAL-TMENGE * IT_FINAL-BMENGE.
********added by .... .... on 17.02.2007
endif.
*********end by .... .... on 17.02.2007
IF IT_FINAL-BWART = '101'.
IT_FINAL-LINE_COLOR = 'C210'.
IT_FINAL-MENGE101 = IT_FINAL-MENGE.
IT_FINAL-DIFFER = 0.
LOOP AT IT_FINAL_TEMP WHERE BELNR = IT_FINAL-BELNR AND
EBELN = IT_FINAL-EBELN AND
EBELP = IT_FINAL-EBELP.
IF IT_FINAL_TEMP-BWART <> '545'.
IT_FINAL-DMBTR = IT_FINAL-DMBTR + IT_FINAL_TEMP-DMBTR.
ELSE.
IT_FINAL-DMBTR = IT_FINAL-DMBTR - IT_FINAL_TEMP-DMBTR.
ENDIF.
ENDLOOP.
IT_FINAL-RATE = IT_FINAL-DMBTR / IT_FINAL-MENGE101.
SELECT SINGLE
NAME1
INTO
IT_FINAL-NAME1
FROM
LFA1
WHERE
LIFNR = IT_FINAL-LIFNR.
IF SY-SUBRC <> 0.
CLEAR IT_FINAL-NAME1.
ENDIF.
ELSEIF IT_FINAL-BWART = '543'.
IT_FINAL-MENGE543 = IT_FINAL-MENGE.
IT_FINAL-LINE_COLOR = 'C200'.
IT_FINAL-DIFFER = IT_FINAL-DIFFER - IT_FINAL-MENGE543.
CLEAR: IT_FINAL-LIFNR,
IT_FINAL-EBELN,
IT_FINAL-BELNR,
IT_FINAL-MENGE_I,
IT_FINAL-BUDAT.
ELSEIF IT_FINAL-BWART = '545'.
******added by .... on 17.02.2007
IT_FINAL-MENGE = IT_FINAL-MENGE * -1.
IT_FINAL-MENGE = IT_FINAL-MENGE.
*******end by .... on 17.02.2007
IT_FINAL-MENGE545 = IT_FINAL-MENGE.
IT_FINAL-LINE_COLOR = 'C200'.
IT_FINAL-DIFFER = IT_FINAL-DIFFER - IT_FINAL-MENGE545.
CLEAR: IT_FINAL-LIFNR,
IT_FINAL-EBELN,
IT_FINAL-BELNR,
IT_FINAL-MENGE_I,
IT_FINAL-BUDAT.
ELSE.
IT_FINAL-LINE_COLOR = 'C200'.
CLEAR: IT_FINAL-LIFNR,
IT_FINAL-EBELN,
IT_FINAL-BELNR,
IT_FINAL-MENGE_I,
IT_FINAL-BUDAT.
ENDIF.
MODIFY IT_FINAL.
ENDLOOP.
ENDFORM.
*& Form GENERATE_ALV_FIELDCAT
text
FORM GENERATE_ALV_FIELDCAT.
DATA: POS TYPE I.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'COUNT'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'S. No.'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'MATNR'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'Mat. No.'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'BMENGE'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'BOM Qty'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'EBELN'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'PO No.'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'MENGE_I'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'PO Qty'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'BELNR'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'Gr. No.'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
CATALOG-HOTSPOT = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'BUDAT'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'GR Date'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'MENGE101'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = '101 Gr Qty'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'MENGE543'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = '543 Gr Qty'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'MENGE545'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = '545 Gr Qty'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'DIFFER'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'Difference'.
CATALOG-NO_ZERO = ' '.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'LIFNR'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'Vendor'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'NAME1'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'Vendor Name'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'RATE'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'Rate'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
POS = POS + 1.
CLEAR: CATALOG.
CATALOG-COL_POS = POS.
CATALOG-FIELDNAME = 'DMBTR'.
CATALOG-TABNAME = 'IT_FINAL'.
CATALOG-SELTEXT_L = 'Value'.
CATALOG-NO_ZERO = 'X'.
CATALOG-FIX_COLUMN = 'X'.
APPEND CATALOG TO TCATALOG.
ENDFORM.
*& Form ALV_SHOW
text
FORM ALV_SHOW.
LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
LAYOUT-BOX_TABNAME = 'IT_FINAL'.
LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
LAYOUT-ZEBRA = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = LAYOUT
IT_FIELDCAT = TCATALOG
IS_VARIANT = VAR1
I_SAVE = 'A'
IT_EVENTS = TEVENT[]
TABLES
T_OUTTAB = IT_FINAL.
ENDFORM . "ALV_SHOW
*& FORM USER_COMMAND.
FORM USER_COMMAND USING
R_UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.
DATA: TABIX LIKE SY-TABIX,
WA LIKE IT_FINAL.
TABIX = SELFIELD-TABINDEX.
READ TABLE IT_FINAL INTO WA INDEX TABIX.
IF NOT WA-BELNR IS INITIAL.
set parameter id : 'MBN' FIELD WA-BELNR.
CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN .
ENDIF.
ENDFORM.Hi,
U can try this standard report for subcontracting:
J1IFR (Transaction name),
Not sure how much this will be useful to u.
regards,
Viji -
Report for issuing componets to subcontracting materials
Hi
I am trynig to develop a report for issung components to subcontacrting maerial
as per our scenerio... every day we are creating purchase orders item cat L for subcontract material
then issue the materials against to subcon. pur.order...then do GR with 101..
as per our requirement...
report input entries..like 1. subcon material code
2. from date --- to --- todate
out put..for report..like.... total consumption of components with line item wise (as per bom) with that pertical period..
for this any std. report is there ?
or if go for zreport....pls guide to me..
any one can suggest to me
thanku
regards
sesidharHI,
Certain set of inforamtion can be availed in MB51 and using 541 Mvt type..
But it is better that you develop a zreport to get the information what you wanted if you are not satisfied with the MB51 report from standard SAP.
Try MBLB also
Thanks & Regards,
Kiran
Maybe you are looking for
-
How can I see a list of the assets associated with a sequence?
How can I see a list of the assets, both online and offline, associated with a sequence?
-
BDC Problem about call T-CODE BUG2
hey every friends, I have a requirement about BDC process t-code BUG2. The requirement is as following: Update the value of the email address field reference to the bussiness partner in t-code BUG2. The issule I meet is that: 1 Whatever dismode( N,E,
-
VCs in Web: not showing (same file name)
Virual copies with the same file name don't show up when creating web pages. How can you show variations of the same image (ie, color and B&W) with this nameing issue? Thanks! Reid
-
I am proud to present the re-opening of the new Arch Linux Gallery! The Arch Linux Gallery is a site dedicated to screenshots of (guess what?) Arch Linux. It is meant to be a repository for screenshots, configs, artistic creations, and anything else
-
I can't download photoshop eveneI have the subscrition
I have had problems to installe creative cloud. I can't see any icon of apps. I have installes LR and paid the subscription. but I can't install photoshop. creative cloud open and nothing happens