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

Program to post goods issue

Former Member
0 Likes
2,525

Hi, gurus

i created a program from sales order creation to transfer order creation now i want to post godds issue for tht i am giving my code plz help me wht FM i have to use and wht values i have to fill plzzz its urgent

plz help me

thanks in advance

***********************************************************************

  • SALES DOCUMENT CREATION

***********************************************************************

DATA: p_auart TYPE auart .

DATA: p_vkorg TYPE vkorg .

DATA: p_vtweg TYPE vtweg .

DATA: p_spart TYPE vtweg .

DATA: p_sold TYPE kunnr .

DATA: p_ship TYPE kunnr .

TABLES:

VBAK, LIKP.

*ITEM

data:

begin of it_item occurs 0,

p_matnr TYPE matnr,

p_menge TYPE kwmeng,

p_plant TYPE werks_d,

p_itcat TYPE pstyv,

end of it_item.

  • DATA DECLARATIONS.

DATA: v_vbeln LIKE vbak-vbeln.

DATA: header LIKE bapisdhead1.

DATA: headerx LIKE bapisdhead1x.

DATA: item LIKE bapisditem OCCURS 0 WITH HEADER LINE.

DATA: itemx LIKE bapisditemx OCCURS 0 WITH HEADER LINE.

DATA: partner LIKE bapipartnr OCCURS 0 WITH HEADER LINE.

DATA: return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.

DATA: lt_schedules_inx TYPE STANDARD TABLE OF bapischdlx

WITH HEADER LINE.

DATA: lt_schedules_in TYPE STANDARD TABLE OF bapischdl

WITH HEADER LINE.

DATA:

W_COUNTER TYPE I,

IT_NUM(6) TYPE C value '000010',

IT_LINE(4) TYPE C value '0001'.

CALL SCREEN 100.

  • HEADER DATA

header-doc_type = p_auart.

headerx-doc_type = 'X'.

header-sales_org = p_vkorg.

headerx-sales_org = 'X'.

header-distr_chan = p_vtweg.

headerx-distr_chan = 'X'.

header-division = p_spart.

headerx-division = 'X'.

headerx-updateflag = 'I'.

partner-partn_role = 'AG'.

partner-partn_numb = p_sold.

APPEND partner.

partner-partn_role = 'WE'.

partner-partn_numb = p_ship.

APPEND partner.

loop at it_item.

CLEAR ITEM.

item-material = it_item-p_matnr.

item-plant = it_item-p_plant.

item-target_qty = it_item-p_menge.

item-target_qu = 'ST'.

item-item_categ = it_item-p_itcat.

APPEND item.

W_COUNTER = W_COUNTER + 1.

endloop.

DO W_COUNTER TIMES.

itemx-updateflag = 'I'.

itemx-material = 'X'.

itemx-plant = 'X'.

itemx-target_qty = 'X'.

itemx-target_qu = 'X'.

itemx-item_categ = 'X'.

APPEND itemx.

ENDDO.

  • Fill schedule lines

LOOP AT IT_ITEM.

CLEAR lt_schedules_in.

lt_schedules_in-itm_number = IT_NUM.

lt_schedules_in-sched_line = IT_LINE.

lt_schedules_in-req_qty = IT_ITEM-p_menge.

APPEND lt_schedules_in.

IT_NUM = IT_NUM + 10.

IT_LINE = IT_LINE + 1.

ENDLOOP.

IT_NUM = '000010'.

IT_LINE = '0001'.

  • Fill schedule line flags

LOOP AT IT_ITEM.

CLEAR lt_schedules_inx.

lt_schedules_inx-itm_number = IT_NUM.

lt_schedules_inx-sched_line = IT_LINE.

lt_schedules_inx-updateflag = 'X'.

lt_schedules_inx-req_qty = 'X'.

APPEND lt_schedules_inx.

IT_NUM = IT_NUM + 10.

IT_LINE = IT_LINE + 1.

ENDLOOP.

  • Call the BAPI

CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'

EXPORTING

sales_header_in = header

sales_header_inx = headerx

IMPORTING

salesdocument_ex = v_vbeln

TABLES

return = return

sales_items_in = item

sales_items_inx = itemx

sales_schedules_in = lt_schedules_in

sales_schedules_inx = lt_schedules_inx

sales_partners = partner.

LOOP AT return WHERE type = 'E' OR type = 'A'.

EXIT.

ENDLOOP.

IF sy-subrc = 0.

WRITE / return-message.

WRITE: / 'Error in creating document'.

ELSE.

COMMIT WORK AND WAIT.

WRITE: / 'Document ', v_vbeln, ' created'.

ENDIF.

***********************************************************************

  • DELIVERY ORDER CREATION

***********************************************************************

*

*PARAMETERS: p_vbeln LIKE vbak-vbeln.

DATA: BEGIN OF t_vbap OCCURS 0,

vbeln LIKE vbap-vbeln,

posnr LIKE vbap-posnr,

kwmeng LIKE vbap-kwmeng,

matnr LIKE vbap-matnr,

werks LIKE vbap-werks,

END OF t_vbap.

DATA: t_request TYPE STANDARD TABLE OF bapideliciousrequest

WITH HEADER LINE.

DATA: t_created TYPE STANDARD TABLE OF bapideliciouscreateditems

WITH HEADER LINE.

DATA: t_return TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.

SELECT vbeln posnr kwmeng matnr werks

INTO TABLE t_vbap

FROM vbap

WHERE vbeln = v_vbeln

.

LOOP AT t_vbap.

t_request-document_numb = t_vbap-vbeln.

t_request-document_item = t_vbap-posnr.

t_request-quantity_sales_uom = t_vbap-kwmeng.

t_request-id = 1.

t_request-document_type = 'A'.

t_request-delivery_date = sy-datum.

t_request-material = t_vbap-matnr.

t_request-plant = t_vbap-werks.

t_request-date = sy-datum.

t_request-goods_issue_date = sy-datum.

t_request-goods_issue_time = sy-uzeit.

APPEND t_request.

ENDLOOP.

CALL FUNCTION 'BAPI_DELIVERYPROCESSING_EXEC'

TABLES

request = t_request

createditems = t_created

return = t_return.

READ TABLE t_return WITH KEY type = 'E'.

IF sy-subrc = 0.

MESSAGE e208(00) WITH 'Delivery creation error'.

ENDIF.

COMMIT WORK.

READ TABLE t_created INDEX 1.

WRITE: / 'Delivery Number : ',

t_created-document_numb.

************************************************************************

  • CREATE TRANSFER ORDER

************************************************************************

DATA: w_tanum TYPE ltak-tanum.

CALL FUNCTION 'L_TO_CREATE_DN'

EXPORTING

i_lgnum = '010'

i_vbeln = t_created-document_numb

IMPORTING

e_tanum = w_tanum

EXCEPTIONS

foreign_lock = 1

dn_completed = 2

partial_delivery_forbidden = 3

xfeld_wrong = 4

ldest_wrong = 5

drukz_wrong = 6

dn_wrong = 7

squit_forbidden = 8

no_to_created = 9

teilk_wrong = 10

update_without_commit = 11

no_authority = 12

no_picking_allowed = 13

dn_hu_not_choosable = 14

input_error = 15

OTHERS = 16

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

COMMIT WORK AND WAIT.

WRITE: / 'Transfer order number',

w_tanum.

*&SPWIZARD: DECLARATION OF TABLECONTROL 'TAB_CON1' ITSELF

CONTROLS: TAB_CON1 TYPE TABLEVIEW USING SCREEN 0100.

*&SPWIZARD: OUTPUT MODULE FOR TC 'TAB_CON1'. DO NOT CHANGE THIS LINE!

*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR

MODULE TAB_CON1_CHANGE_TC_ATTR OUTPUT.

DESCRIBE TABLE IT_ITEM LINES TAB_CON1-lines.

ENDMODULE.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


module STATUS_0100 output.

SET PF-STATUS 'MENU'.

  • SET TITLEBAR 'xxx'.

endmodule. " STATUS_0100 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


module USER_COMMAND_0100 input.

P_AUART = VBAK-AUART.

P_VKORG = VBAK-VKORG.

P_VTWEG = VBAK-VTWEG.

P_SPART = VBAK-SPART.

P_SOLD = LIKP-KUNAG.

P_SHIP = LIKP-KUNNR.

IF SY-UCOMM EQ 'START'.

LEAVE to screen 0 .

ENDIF.

endmodule. " USER_COMMAND_0100 INPUT

&----


*& Module APPEND_IT_ITEM INPUT

&----


  • text

----


module APPEND_IT_ITEM input.

APPEND IT_ITEM.

CLEAR IT_ITEM.

endmodule. " APPEND_IT_ITEM INPUT

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,159

Hi Sunil,

Try FM SD_SHIPMENT_POST_GOODS_ISSUE.

Hope it helps.

Lokesh

PS. please reward helpful posts

3 REPLIES 3
Read only

Former Member
0 Likes
1,160

Hi Sunil,

Try FM SD_SHIPMENT_POST_GOODS_ISSUE.

Hope it helps.

Lokesh

PS. please reward helpful posts

Read only

0 Likes
1,159

Hi,

wht fields i have to fill here i am not getting

Read only

HETEROCIGOTO
Participant
0 Likes
1,159
FORM post_delivery  USING lv_ebeln TYPE char10
CHANGING ch_error TYPE flag.

DATA: vbkok LIKE vbkok,
prot LIKE prott OCCURS 0 WITH HEADER LINE.
DATA: lin TYPE p.

vbkok-vbeln_vl = lv_ebeln.
vbkok-wabuc = 'X'.

CLEAR prot.
REFRESH prot.


CALL FUNCTION 'HU_PACKING_REFRESH'.

CALL FUNCTION 'LE_DELIVERY_REFRESH_BUFFER' "v_n_841001
EXPORTING
if_vbeln = lv_ebeln
EXCEPTIONS
no_key_specified = 1
OTHERS = 2. "^_n_841001

*.......Post delivery,update document flow....................
CALL FUNCTION 'WS_DELIVERY_UPDATE_2'
EXPORTING
vbkok_wa = vbkok
delivery = lv_ebeln
commit = 'X'
TABLES
prot = prot
EXCEPTIONS
error_message = 99.

IF sy-subrc <> 0.

MESSAGE s000(zmm) WITH 'Something went wrong!' DISPLAY LIKE 'E'.
ch_error = 'X'.

ENDIF.

ENDFORM.