2008 Feb 06 11:47 PM
Folks,
Need to add some custom fields sales order - at schedule line level.
Does anyone know any screen exit/ BADI etc for this?
ECC6.0
Thanks in advance.
Folks,
Need to add some custom fields sales order - at schedule line level.
Does anyone know any screen exit/ BADI etc for this?
ECC6.0
Thanks in advance.
2008 Feb 07 6:31 AM
Hai.
check this example.
&----
*& Report ZSAN_BAPI_PURCHASE_ORDER *
*& *
&----
*& *
*& *
&----
REPORT ZSAN_BAPI_PURCHASE_ORDER .
DATA: HEADER LIKE BAPIMEPOHEADER,
" Header
HEADER_IND LIKE BAPIMEPOHEADERX,
" Header index
PO_ITEMS LIKE BAPIMEPOITEM OCCURS 0 WITH HEADER LINE,
" Item table
ITEMS_IND LIKE BAPIMEPOITEMX OCCURS 0 WITH HEADER LINE,
" Item index table
RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE
" Message Return table
.
SET PF-STATUS 'SANKET'.
**Initialize Header values
*HEADER-DOC_TYPE = 'NB'.
*HEADER-ITEM_INTVL = '00001'.
*HEADER-VENDOR = '0000001000'.
*HEADER-PURCH_ORG = '1000'.
*HEADER-PUR_GROUP = '001'.
*HEADER-CURRENCY = 'EUR'.
*HEADER-COMP_CODE = '1000'.
*HEADER-PMNTTRMS = '00001'.
*
**Initialize Index values
*HEADER_IND-DOC_TYPE = 'X'.
*HEADER_IND-ITEM_INTVL = 'X'.
*HEADER_IND-VENDOR = 'X'.
*HEADER_IND-PURCH_ORG = 'X'.
*HEADER_IND-PUR_GROUP = 'X'.
*HEADER_IND-CURRENCY = 'X'.
*HEADER_IND-COMP_CODE = 'X'.
*HEADER_IND-PMNTTRMS = 'X'.
*Initialize Header values
HEADER-DOC_TYPE = 'NB'.
HEADER-ITEM_INTVL = '00001'.
HEADER-VENDOR = '0000003020'.
HEADER-PURCH_ORG = '3000'.
HEADER-PUR_GROUP = '000'.
HEADER-CURRENCY = 'USD'.
*Initialize Index values
HEADER_IND-DOC_TYPE = 'X'.
HEADER_IND-ITEM_INTVL = 'X'.
HEADER_IND-VENDOR = 'X'.
HEADER_IND-PURCH_ORG = 'X'.
HEADER_IND-PUR_GROUP = 'X'.
HEADER_IND-CURRENCY = 'X'.
*Initialize Item values
PO_ITEMS-PO_ITEM = '00001'.
PO_ITEMS-MATERIAL = '100-100'.
PO_ITEMS-PLANT = '3000'.
PO_ITEMS-QUANTITY = '4'.
PO_ITEMS-NET_PRICE = '1'.
APPEND PO_ITEMS.
*Initialize Item index values
ITEMS_IND-PO_ITEM = '00001'.
ITEMS_IND-MATERIAL = 'X'.
ITEMS_IND-PLANT = 'X'.
ITEMS_IND-QUANTITY = 'X'.
PO_ITEMS-NET_PRICE = '1'.
APPEND ITEMS_IND.
*Initialize Item values
PO_ITEMS-PO_ITEM = '00002'.
PO_ITEMS-MATERIAL = '200-200'.
PO_ITEMS-PLANT = '3100'.
PO_ITEMS-QUANTITY = '20'.
PO_ITEMS-NET_PRICE = '3'.
APPEND PO_ITEMS.
*Initialize Item index values
ITEMS_IND-PO_ITEM = '00002'.
ITEMS_IND-MATERIAL = 'X'.
ITEMS_IND-PLANT = 'X'.
ITEMS_IND-QUANTITY = 'X'.
ITEMS_IND-NET_PRICE = 'X'.
APPEND ITEMS_IND.
*Initialize Item values
PO_ITEMS-PO_ITEM = '00003'.
PO_ITEMS-MATERIAL = '102-510'.
PO_ITEMS-PLANT = '3000'.
PO_ITEMS-QUANTITY = '20'.
PO_ITEMS-NET_PRICE = '246'.
APPEND PO_ITEMS.
*Initialize Item index values
ITEMS_IND-PO_ITEM = '00003'.
ITEMS_IND-MATERIAL = 'X'.
ITEMS_IND-PLANT = 'X'.
ITEMS_IND-QUANTITY = 'X'.
ITEMS_IND-NET_PRICE = 'X'.
APPEND ITEMS_IND.
*Create Production order
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = HEADER
POHEADERX = HEADER_IND
TABLES
RETURN = RETURN
POITEM = PO_ITEMS
POITEMX = ITEMS_IND.
*Commit BAPI
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
*Display PO number
FORMAT COLOR 6 INVERSE ON.
READ TABLE RETURN WITH KEY TYPE = 'S'.
IF SY-SUBRC <> 0.
WRITE: /,'Purchase Order not created'.
ELSE.
WRITE: /, RETURN-MESSAGE.
ENDIF.
FORMAT COLOR OFF INVERSE OFF.
2----
&----
*& Report ZSAN_BAPI_TEST1 *
*& *
&----
*& *
*& *
&----
REPORT ZSAN_BAPI_TEST1.
DATA: ORDER_HEADER LIKE BAPISDHEAD,
" Sales and Distribution Document Header
ORDERPARTNER LIKE BAPIPARTNR OCCURS 0 WITH HEADER LINE,
" SD Document Partner
ORDER_ITEM_IN LIKE BAPIITEMIN OCCURS 0 WITH HEADER LINE,
" Create SD Document Item
HEADER_IND LIKE BAPISDHEADX,
" Checkbox Fields for Sales and Distribution Document Header
RETURN LIKE BAPIRETURN1 OCCURS 0 WITH HEADER LINE,
" Return Parameter
W_ORDER LIKE BAPIVBELN-VBELN.
" Sales Document
*Initialize values
ORDER_HEADER-DOC_TYPE = 'TA'.
ORDER_HEADER-SALES_ORG = '5555'.
ORDER_HEADER-DISTR_CHAN = '55'.
ORDER_HEADER-DIVISION = '55'.
ORDERPARTNER-PARTN_NUMB = '0000003002'.
ORDERPARTNER-PARTN_ROLE = 'SP'.
APPEND ORDERPARTNER.
CLEAR ORDERPARTNER.
ORDER_ITEM_IN-MATERIAL = 'MAT1'.
ORDER_ITEM_IN-REQ_QTY = '2.000'.
APPEND ORDER_ITEM_IN.
CLEAR ORDER_ITEM_IN.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT1'
EXPORTING
ORDER_HEADER_IN = ORDER_HEADER
CONVERT_PARVW_AUART = 'X'
IMPORTING
SALESDOCUMENT = W_ORDER
RETURN = RETURN
TABLES
ORDER_ITEMS_IN = ORDER_ITEM_IN
ORDER_PARTNERS = ORDERPARTNER.
*Commit BAPI's process
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
FORMAT COLOR 6 INVERSE ON.
READ TABLE RETURN WITH KEY TYPE = 'E'.
IF SY-SUBRC = 0.
WRITE: 'Sales order not created' .
ELSE.
WRITE: ' Sales order NO.',W_ORDER COLOR 5, 'created successfully'.
ENDIF.
FORMAT COLOR OFF INVERSE OFF.
3----
&----
*& Report ZSAN_BAPI_PROFIT_CTR *
*& *
&----
*& *
*& *
&----
REPORT ZSAN_BAPI_PROFIT_CTR .
PARAMETERS: PR_CTR LIKE BAPI0015ID2-PROFIT_CTR,
VLD_TO LIKE BAPI0015_3-DATE.
DATA: PROFITCENTERID LIKE BAPI0015ID2 OCCURS 0 WITH HEADER LINE,
VALID_FORM LIKE BAPI0015_3-DATE,
VALID_TO LIKE BAPI0015_3-DATE,
BASICDATA LIKE BAPI0015_4 OCCURS 0 WITH HEADER LINE,
RETURN LIKE BAPIRET2 ,
PROFITCENTER LIKE BAPI0015ID2-PROFIT_CTR,
CONTROLLINGAREA LIKE BAPI0015ID2-CO_AREA.
*Fill PROFITCENTERID
PROFITCENTERID-PROFIT_CTR = PR_CTR.
PROFITCENTERID-CO_AREA = '1000'.
APPEND PROFITCENTERID.
*Fill VALID_FORM
VALID_FORM = '19940101'.
*Fill VALID_TO
VALID_TO = VLD_TO.
*Fill BASICDATA
BASICDATA-PRCTR_NAME = 'Sanket'.
BASICDATA-PRCTR_HIER_GRP = 'H1010'.
BASICDATA-IN_CHARGE = 'Sanket'.
APPEND BASICDATA.
*Get Profit center
CALL FUNCTION 'BAPI_PROFITCENTER_CREATE'
EXPORTING
PROFITCENTERID = PROFITCENTERID
VALIDFROM = VALID_FORM
VALIDTO = VALID_TO
BASICDATA = BASICDATA
IMPORTING
RETURN = RETURN
PROFITCENTER = PROFITCENTER
CONTROLLINGAREA = CONTROLLINGAREA.
*Commit BAPI
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
*Display profit center
FORMAT COLOR 6 INVERSE ON.
IF RETURN-TYPE = 'E'.
WRITE: /,RETURN-MESSAGE.
ELSE.
WRITE: /,RETURN-MESSAGE.
ENDIF.
FORMAT COLOR OFF INVERSE OFF.
-
REPORT ZVRDOC0 no standard page heading
line-size 300
line-count 50(5).
TABLES : vbak, "Sales Document Header Level
vbap, "Sales Document Header Level
kna1. "General Data in customer Master
*INTERNAL TABLE T_VBAP
DATA : Begin of t_vbap occurs 0,
vbeln like vbap-vbeln,
matnr like vbap-matnr,
posnr like vbap-posnr,
arktx like vbap-arktx,
kwmeng like vbap-kwmeng,
cmkua like vbap-cmkua,
end of t_vbap.
*INTERNAL TABLE T_TAB.
DATA : Begin of t_tab occurs 0,
vbeln like vbak-vbeln,
kunnr like vbak-kunnr,
audat like vbak-audat,
netwr like vbak-netwr,
vkorg like vbak-vkorg,
name1 like kna1-name1,
land1 like kna1-land1,
end of t_tab.
*INTERNAL TABLE T_FINAL.
DATA : Begin of t_final occurs 0,
vbeln like vbap-vbeln,
kunnr like vbak-kunnr,
matnr like vbap-matnr,
posnr like vbap-posnr,
arktx like vbap-arktx,
kwmeng like vbap-kwmeng,
cmkua like vbap-cmkua,
audat like vbak-audat,
netwr like vbak-netwr,
vkorg like vbak-vkorg,
name1 like kna1-name1,
land1 like kna1-land1,
end of t_final.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE text-bO3.
parameters : P_kunnr like vbak-kunnr.
select-options : S_vbeln for vbak-vbeln,
S_audat for vbak-audat.
SELECTION-SCREEN END OF BLOCK B1.
start-of-selection.
select vbeln matnr posnr arktx kwmeng cmkua from vbap
into corresponding fields of table t_vbap where vbeln in S_vbeln .
IF sy-subrc EQ 0.
select vbakkunnr vbakvbeln vbakaudat vbaknetwr vbak~vkorg
kna1name1 kna1land1 into table t_Tab from
vbak join kna1 on kna1kunnr = vbakkunnr
FOR ALL ENTRIES IN t_vbap
where vbak~vbeln = t_vbap-Vbeln and
vbak~kunnr = p_kunnr and
vbak~audat in S_audat .
ENDIF.
*end-of-selection.
loop at t_vbap.
read table t_tab with key vbeln = t_vbap-vbeln.
move :
t_vbap-vbeln to t_final-vbeln,
t_vbap-matnr to t_final-matnr,
t_vbap-posnr to t_final-posnr,
t_vbap-arktx to t_final-arktx,
t_vbap-kwmeng to t_final-kwmeng,
t_vbap-cmkua to t_final-cmkua,
t_tab-kunnr to t_final-kunnr,
t_tab-audat to t_final-audat,
t_tab-netwr to t_final-netwr,
t_tab-vkorg to t_final-vkorg,
t_tab-name1 to t_final-name1,
t_tab-land1 to t_final-land1.
append t_final.
clear t_Final.
endloop.
sort t_Final by vbeln Kunnr matnr posnr .
loop at t_final.
at new vbeln.
write : /1 SY-VLINE, 2 t_final-vbeln color 5 inverse.
ULINE /1(250).
endat.
write : /1 SY-VLINE, 2 t_final-vbeln color 5 inverse,
20 SY-VLINE, 21 t_final-posnr color 5 inverse,
40 SY-VLINE, 41 t_final-matnr color 5 inverse,
60 SY-VLINE, 61 t_final-arktx color 4 inverse,
80 SY-VLINE, 81 t_final-kwmeng color 4 inverse,
100 SY-VLINE, 101 t_final-cmkua color 4 inverse,
120 SY-VLINE, 121 t_final-kunnr color 3 inverse,
140 SY-VLINE, 141 t_final-audat color 3 inverse,
160 SY-VLINE, 161 t_final-netwr color 2 inverse,
180 SY-VLINE, 181 t_final-vkorg color 2 inverse,
210 SY-VLINE, 211 t_final-name1 color 1 inverse,
230 SY-VLINE, 231 t_final-land1 color 1 inverse,
250 SY-VLINE.
at end of vbeln.
sum.
ULINE /1(250).
write: /60 SY-VLINE, 'Total' ,
81 t_final-kwmeng color 4 inverse ,100 SY-VLINE,
101 t_final-cmkua color 4 inverse,120 SY-VLINE.
ULINE /1(250).
endat.
at last.
SKIP 2.
sum.
ULINE /1(250).
write: /1 SY-VLINE, 60 SY-VLINE, 'Grand Total' ,
81 t_final-kwmeng color 4 inverse , 100 SY-VLINE ,
101 t_final-cmkua color 4 inverse,120 SY-VLINE.
ULINE /1(250).
endat.
endloop.
TOP-OF-PAGE.
ULINE /50(24).
WRITE : /50 SY-VLINE , 52 'SALES ORDER DETAILS' COLOR 5,
73 SY-VLINE.
ULINE /50(24).
ULINE .
WRITE: /10 'CURRENT DATE :', 25 SY-DATUM COLOR 1 INVERSE,
100 'CURRENT TIME :', 115 SY-UZEIT color 5 INVERSE.
WRITE: /10 'USERNAME :', 25 SY-UNAME COLOR 1 INVERSE,
100 'PAGE NO :', 113 SY-PAGNO COLOR 5 INVERSE.
WRITE: /10 'LOGON CLIENT :', 25 SY-MANDT COLOR 1 INVERSE,
100 'COLON N0 :', 114 SY-COLNO COLOR 5 INVERSE.
WRITE: /10 'CURRENT REPROT:', 25 SY-REPID COLOR 1 INVERSE,
100 'LANGUAGE :', 116 SY-LANGU COLOR 5 INVERSE.
ULINE.
ULINE /1(250).
write : /1 SY-VLINE, 2 'SALES DOC NO' color 6 inverse,
20 SY-VLINE, 21 'SALES DOC ITEM' color 6 inverse,
40 SY-VLINE,41 'MATERIAL NO' color 6 inverse,
60 SY-VLINE, 61 'SHORT SALES TEXT' color 6 inverse,
80 SY-VLINE, 81 'CUMM ORDER SALES' color 6 inverse,
100 SY-VLINE, 101 'CREDIT DATA' color 6 inverse,
120 SY-VLINE, 121 'CUSTOMER NO' color 6 inverse,
140 SY-VLINE, 141 'DOC DATE' color 6 inverse,
160 SY-VLINE, 161 'NET VALUE SALES' color 6 inverse,
180 SY-VLINE, 181 'SALES ORG' color 6 inverse,
210 SY-VLINE, 211 'CUSTOMER NAME' color 6 inverse,
230 SY-VLINE, 231 'CUSTOMER CONTY' color 6 inverse,
250 SY-VLINE.
ULINE /1(250).
END-OF-PAGE.
ULINE.
WRITE: /45 ' THIS IS END OF PAGE FOR SALES DOCUMENT DETAILS'
COLOR 6 .
regards.
sowjanya.b
2008 Feb 07 5:08 PM
This won't serve the purpose.
I am looking for screen exit for adding some custom fields on the schedulel line level - procurement screen.
VA01/02/03.
ECC6.0
Thanks for your inputs though. Rgds.
2008 Feb 08 11:49 AM
hello,
i am still not very clear bout ur requirement.
If you need to add the fields in the standard VA01 transaction, then SAP has provided with Additional Data A and additional Data B screens which allow you to write the ABAP coding without any access key.
You can create your own PAI and PBO in that screen.
here is the user exit screen no for header details.
screen No : 8309 and 8310.
For item level, the screen nos are.
8459 and 8460.
Hope this helps.
Reward if useful.
Cheers,
Ravi Kiran
2008 Feb 11 8:31 PM
Ravi,
I need screen exit at schedule line level in sales order to add custom fields.
Thanks for your inputs though.
2008 Feb 12 5:44 PM
Ravi,
I am trying to explore your option - for 8459, programming without access key. But it is asking me access key. Is there any other way to do it?
Thanks in advance.
2008 Feb 13 5:47 AM
hello,
i am very sorry that i provided u with the wrong information.
i just checked it out with my seniors, they told me that u need an access key , which can be obtained from the Basis Consultant.
This is how you can implement your own customer fields in additiona data A and additional data B.
2008 Feb 14 10:48 PM
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |