Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

sales order schedule line - additional fields

Former Member
0 Likes
1,925

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.

7 REPLIES 7
Read only

Former Member
0 Likes
1,506

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

Read only

0 Likes
1,506

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.

Read only

0 Likes
1,506

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

Read only

0 Likes
1,506

Ravi,

I need screen exit at schedule line level in sales order to add custom fields.

Thanks for your inputs though.

Read only

0 Likes
1,506

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.

Read only

0 Likes
1,506

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.

Read only

0 Likes
1,506

Thanks for confirmation, Ravi. It helps.