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 create

Former Member
0 Likes
1,990

Hi experts,

I'm using FM SD_SALESDOCUMENT_CREATE to create sales order. What parameter of the FM that I need to pass my reference contract to update VBAK-VGBEL? Thank you.

Hi experts,

I'm using FM SD_SALESDOCUMENT_CREATE to create sales order. What parameter of the FM that I need to pass my reference contract to update VBAK-VGBEL? Thank you.

6 REPLIES 6
Read only

Former Member
0 Likes
1,499

hi,

&----


*& Report ZSD_R_SALESORDER

&----


report zsd_r_salesorder1 line-size 132 message-id zmmbapi .

&----


*& Created By : shailaja

*& Created on : 13.10.2007

*& Requested By : vardhman

*& Description of program :

&----


----


  • Internal table definition *

----


data: gt_order_header_in like bapisdhead occurs 0 with header line,

gt_return like bapireturn1 occurs 0 with header line, " Return Messages

gt_order_items_in like bapiitemin occurs 0 with header line, " Item Data

gt_salesdocument like bapivbeln-vbeln , "Number of Generated Document

gt_order_partners like bapiparnr occurs 0 with header line, "Document Partner

gt_return1 like bapiret2 occurs 0 with header line.

----


  • Data definition *

----


types: begin of ty_gt_ft_sales ,

partn_numb(10) type n ,"Customer Number 1

partn_role(2) ,"Partner function

sales_org(4) , "Sales Organization

distr_chan(2) , "Distribution Channel

division(002), "DIVISION

doc_type(4) , "Sales Document Type

purch_no(020), "Purchase order

material(18), "MATERIAL

targetquantity(020),"Target quantity

reqqty(020), "Req quantity

reqdate(010), "req date

*REQ_DATE_H(010),

ref_1(012), "Ref

unload_pt(025),

*PARTN_ROLE(2) ,"Partner function

*PARTN_NUMB(10) ,"Customer Number 1

end of ty_gt_ft_sales,

begin of ty_header ,

partn_numb(10) ,"Customer Number 1

partn_role(2) ,"Partner function

sales_org(4) , "Sales Organization

distr_chan(2) , "Distribution Channel

division(002), "DIVISION

doc_type(4) , "Sales Document Type

purch_no(020), "Purchase order

unload_pt(025),

req_date_h(010),

end of ty_header,

begin of ty_item,

material(18), "MATERIAL

targetquantity(020),"Target quantity

reqqty(020), "Req quantity

reqdate(010), "req date

ref_1(012), "Ref

*UNLOAD(025),

end of ty_item.

data : msg(240) type c, " Return Message

e_rec(8) type c, " Error Records Counter

rec_no(8) type c, " Records Number Indicator

s_rec(8) type c, " Successful Records Counter

t_rec(8) type c, " Total Records Counter

v_matnr like mara-matnr,

v_parvw type parvw.

data : gt_ft_sales type standard table of ty_gt_ft_sales with header line.

data : wa_gt_ft_sales type ty_gt_ft_sales,

wa_order_items_in like gt_order_items_in,

wa_gt_ft_sales1 type ty_gt_ft_sales,

wa_header type ty_header,

salesdocument like bapivbeln-vbeln.

    • selection block for EXCEL UPLOAD FILE

selection-screen begin of block b1 with frame title text-000.

parameters file type ibipparms-path obligatory.

selection-screen end of block b1.

*<<<<AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILE .

at selection-screen on value-request for file .

perform getname.

form getname.

call function 'F4_FILENAME'

exporting

program_name = syst-cprog

dynpro_number = syst-dynnr

importing

file_name = file.

endform.

*TOP-OF-PAGE.

top-of-page.

skip 3.

format color col_heading inverse on.

write 40 text-001.

format color col_heading inverse off.

skip 1.

format color col_negative inverse on.

write 😕 text-002, 13 sy-mandt , 104 text-003, 121 sy-uname,

/ text-004, 13 sy-datum , 104 text-005, 121 sy-uzeit.

format color col_negative inverse off.

skip 3.

*START-OF-SELECTION.

start-of-selection.

perform get_data.

perform bapi.

*end-of-page.

perform result.

form result.

t_rec = e_rec + s_rec.

skip 3.

format color col_total inverse on.

write: /38 text-007, t_rec.

format color col_total inverse off.

format color col_negative inverse on.

write: /38 text-008, e_rec.

format color col_negative inverse off.

format color col_total inverse on.

write: /38 text-009, s_rec.

format color col_total inverse off.

endform.

&----


*& Form get_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_data .

call function 'WS_UPLOAD' "#EC *

exporting

filename = file

filetype = 'DAT'

tables

data_tab = gt_ft_sales

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

no_authority = 10

others = 11.

if sy-subrc <> 0 .

message e000.

endif.

endform. " get_data

&----


*& Form BAPI

&----


form bapi .

loop at gt_ft_sales into wa_gt_ft_sales.

wa_gt_ft_sales1 = wa_gt_ft_sales.

at new partn_numb.

wa_header-doc_type = wa_gt_ft_sales1-doc_type..

wa_header-sales_org = wa_gt_ft_sales1-sales_org . "'0001'

wa_header-distr_chan = wa_gt_ft_sales1-distr_chan. "'01'

wa_header-division = wa_gt_ft_sales1-division. " '01'

wa_header-purch_no = wa_gt_ft_sales1-purch_no.

wa_header-req_date_h = wa_gt_ft_sales1-reqdate.

call function 'CONVERSION_EXIT_PARVW_INPUT'

exporting

input = wa_gt_ft_sales1-partn_role

importing

output = v_parvw.

wa_header-partn_role = v_parvw.

wa_header-partn_numb = wa_gt_ft_sales1-partn_numb.

wa_header-unload_pt = wa_gt_ft_sales1-unload_pt.

move-corresponding wa_header to gt_order_partners.

move-corresponding wa_header to gt_order_header_in.

append gt_order_header_in.

append gt_order_partners.

endat.

call function 'CONVERSION_EXIT_CCMAT_INPUT'

exporting

input = wa_gt_ft_sales1-material

importing

output = v_matnr.

.

gt_order_items_in-material = v_matnr .

gt_order_items_in-target_qty = wa_gt_ft_sales1-targetquantity . "'1000'

gt_order_items_in-req_qty = wa_gt_ft_sales1-reqqty.

gt_order_items_in-req_date = wa_gt_ft_sales1-reqdate.

*GT_ORDER_ITEMS_IN-BILL_DATE = wa_GT_FT_SALES1-REQDATE.

gt_order_items_in-ref_1 = wa_gt_ft_sales1-ref_1.

append gt_order_items_in.

clear : wa_gt_ft_sales1,wa_header.

at end of partn_numb.

call function 'BAPI_SALESORDER_CREATEFROMDAT1'

exporting

order_header_in = gt_order_header_in

  • WITHOUT_COMMIT = ' '

  • CONVERT_PARVW_AUART = 'X'

importing

salesdocument = salesdocument

  • SOLD_TO_PARTY =

  • SHIP_TO_PARTY =

  • BILLING_PARTY =

return = gt_return

tables

order_items_in = gt_order_items_in

order_partners = gt_order_partners.

  • ORDER_ITEMS_OUT =

  • ORDER_CFGS_REF =

  • ORDER_CFGS_INST =

  • ORDER_CFGS_PART_OF =

  • ORDER_CFGS_VALUE =

  • ORDER_CCARD =

  • ORDER_CFGS_BLOB =

  • ORDER_SCHEDULE_EX =

if gt_return-type eq 'E' .

e_rec = e_rec + 1.

read table gt_return with key id = 'V1'.

format color col_negative inverse on.

rec_no = e_rec + s_rec.

concatenate text-006 rec_no ':'

gt_return-message into msg separated by space .

condense msg.

write: / msg.

format color col_negative inverse off.

elseif gt_return-number = '000'.

s_rec = s_rec + 1.

format color col_positive inverse on.

msg = 'SUCCESS'.

condense msg.

write: / msg .

format color col_positive inverse off.

write 😕 salesdocument, 'Has been created'.

perform commit_mm.

endif.

clear: gt_return[], msg.

endat.

endloop.

endform. " SLALE_UPLOAD_DATA

&----


*& Form COMMIT_MM

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form commit_mm .

call function 'BAPI_TRANSACTION_COMMIT'

exporting

wait = 'X'

importing

return = gt_return1.

clear: gt_order_items_in[]."GT_ORDER_CONDITIONS_IN[].

endform. " COMMIT_MM

inthis pass re_doc field in header...

Edited by: Shailaja Ainala on Jul 31, 2008 9:16 AM

Read only

Former Member
0 Likes
1,499

Hi Marc,

Check out the below code. this might help you to solve your problem


REPORT  z4san_create_credit_memo_test.
* Uses SD_SALESDOCUMENT_CREATE

PARAMETERS:
p_vgbel LIKE vbrk-vbeln DEFAULT ' ', "reference invoice
p_fkdat LIKE vbkd-fkdat DEFAULT sy-datum, "billing date
p_auart LIKE tvak-auart DEFAULT 'G2', "sales document type    L2 DEBIT MEMO
p_vkorg LIKE tvko-vkorg DEFAULT '0001', "sales org.
p_vtweg LIKE tvtw-vtweg DEFAULT '01', "distr. chan.
p_spart LIKE tspa-spart DEFAULT '01', "division
p_vkbur LIKE tvbur-vkbur DEFAULT ' ', "sales office
p_kunnr LIKE kna1-kunnr DEFAULT '11', "sold-to
p_bstnk LIKE vbak-bstnk DEFAULT 'pono00000017',
"PO number
p_bname LIKE vbak-bname DEFAULT 'Bartholomew Snodgrass',
"name of orderer
p_augru LIKE tvau-augru DEFAULT '006'. "order reason

SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK i1 WITH FRAME TITLE text-001.
PARAMETERS:
p_matnr LIKE mara-matnr DEFAULT 'T-F009', "material number
p_zmeng TYPE dzmengc DEFAULT '65', "target quantity
p_netwr LIKE vbap-netwr DEFAULT '1.20', "net amount
p_arktx LIKE vbap-arktx DEFAULT 'Afternoon tea',
"short text
p_fbuda LIKE vbkd-fbuda DEFAULT '20060109'."service-rendered date
SELECTION-SCREEN END OF BLOCK i1.

*----------------------------------------------------------------------*
DATA:
return LIKE bapiret2,
returns LIKE TABLE OF return,
salesdocument_ex LIKE bapivbeln-vbeln,
sales_header_in LIKE bapisdhd1,
sales_item_in LIKE bapisditm,
sales_items_in LIKE TABLE OF sales_item_in,
sales_condition_in LIKE bapicond,
sales_conditions_in LIKE TABLE OF sales_condition_in,
sales_partner LIKE bapiparnr,
sales_partners LIKE TABLE OF sales_partner,
incomplete_log LIKE bapiincomp,
incomplete_logs LIKE TABLE OF incomplete_log.

*----------------------------------------------------------------------*
PERFORM:
fill_sales_header_in,
fill_sales_items_in,
fill_sales_partners,
fill_sales_conditions_in,
call_bapi.

*----------------------------------------------------------------------*
FORM call_bapi .

  CALL FUNCTION 'SD_SALESDOCUMENT_CREATE'
  EXPORTING
* SALESDOCUMENT =
  sales_header_in = sales_header_in
* SALES_HEADER_INX =
* SENDER =
* BINARY_RELATIONSHIPTYPE = ' '
* INT_NUMBER_ASSIGNMENT = ' '
* BEHAVE_WHEN_ERROR = ' '
* LOGIC_SWITCH = ' '
  business_object = 'BUS2094' "cred. mem. req.  96 FOR DEBIT
* TESTRUN =
* CONVERT_PARVW_AUART = ' '
* STATUS_BUFFER_REFRESH = 'X'
  IMPORTING
  salesdocument_ex = salesdocument_ex
* SALES_HEADER_OUT =
* SALES_HEADER_STATUS =
  TABLES
  return = returns
  sales_items_in = sales_items_in
* SALES_ITEMS_INX =
  sales_partners = sales_partners
* SALES_SCHEDULES_IN =
* SALES_SCHEDULES_INX =
  sales_conditions_in = sales_conditions_in
  incomplete_log = incomplete_logs
  .

  PERFORM imcompletion_log.
  LOOP AT returns INTO return WHERE type NE 'S'.
    MESSAGE ID return-id TYPE 'I' NUMBER return-number
    WITH
    return-message_v1
    return-message_v2
    return-message_v3
    return-message_v4.
  ENDLOOP.

  IF salesdocument_ex IS INITIAL.
    WRITE: / 'Document not created'.
  ELSE.
    COMMIT WORK.
    WRITE: / 'Sales document number:', salesdocument_ex.
  ENDIF.

ENDFORM. " call_bapi

*----------------------------------------------------------------------*
FORM fill_sales_header_in .

  CLEAR sales_header_in.
  MOVE:
  p_fkdat TO sales_header_in-bill_date,
  p_vgbel TO sales_header_in-ref_doc, "invoice number
  'M' TO sales_header_in-refdoc_cat, "invoice
  p_auart TO sales_header_in-doc_type,
  p_vkorg TO sales_header_in-sales_org,
  p_vtweg TO sales_header_in-distr_chan,
  p_spart TO sales_header_in-division,
  p_vkbur TO sales_header_in-sales_off,
  p_bstnk TO sales_header_in-purch_no_c,
  p_bname TO sales_header_in-name,
  p_augru TO sales_header_in-ord_reason.

ENDFORM. " fill_sales_header_in

*----------------------------------------------------------------------*
FORM fill_sales_partners .

  CLEAR sales_partner.
  sales_partner-partn_role = 'AG'.
  sales_partner-partn_numb = p_kunnr.
  APPEND sales_partner TO sales_partners.

ENDFORM. " fill_sales_partners

*----------------------------------------------------------------------*
FORM fill_sales_items_in .

  PERFORM one_item_in USING:
  10
  p_matnr
  p_zmeng
  p_netwr
  'GBP'
  p_arktx
  p_fbuda.

ENDFORM. " fill_sales_items_in

*----------------------------------------------------------------------*
FORM one_item_in USING value(p_itm_number)
value(p_p_matnr)
value(p_p_zmeng)
value(p_p_netwr)
value(p_p_waerk)
value(p_p_arktx)
value(p_p_fbuda).

  CLEAR sales_item_in.
  MOVE:
  p_itm_number TO sales_item_in-itm_number,
  p_fkdat TO sales_item_in-bill_date,
  p_vgbel TO sales_item_in-ref_doc, "invoice number
  'M' TO sales_item_in-ref_doc_ca, "invoice
  p_p_matnr TO sales_item_in-material,
  p_p_zmeng TO sales_item_in-target_qty,
  p_p_netwr TO sales_item_in-target_val,
  p_p_waerk TO sales_item_in-currency,
  p_p_arktx TO sales_item_in-short_text,
  p_p_fbuda TO sales_item_in-serv_date.
  APPEND sales_item_in TO sales_items_in.

ENDFORM. " one_item_in

*----------------------------------------------------------------------*
FORM fill_sales_conditions_in .

  REFRESH sales_conditions_in.

  PERFORM one_sales_condition_in USING:
  10
  p_netwr
  'GBP'.
ENDFORM. " fill_sales_conditions_in


*----------------------------------------------------------------------*
FORM one_sales_condition_in USING value(p_itm_number)
value(p_p_netwr)
value(p_p_waerk).

  CLEAR sales_condition_in.
  MOVE:
  p_itm_number TO sales_condition_in-itm_number,
  'PR00' TO sales_condition_in-cond_type,
  p_p_netwr TO sales_condition_in-cond_value,
  p_p_waerk TO sales_condition_in-currency.
  APPEND sales_condition_in TO sales_conditions_in.

ENDFORM. " one_sales_condition_in

*----------------------------------------------------------------------*
FORM imcompletion_log .

  LOOP AT incomplete_logs INTO incomplete_log.
    WRITE: / incomplete_log-itm_number,
    incomplete_log-field_text,
    incomplete_log-table_name,
    incomplete_log-field_name.
  ENDLOOP.

ENDFORM. " imcompletion_log

Read only

Former Member
0 Likes
1,499

hiii

try using FM

BAPI_SALESORDER_CREATEFROMDAT2

then Use BAPI_TRANSACTION_COMMIT so that you can come to know where you are getting an error.

regards

twinkal

Read only

Former Member
0 Likes
1,499

Hi,

Try passing the refernce doc to SALES_HEADER_IN-REF_DOC in the import parameters of the FM and to update it pass the value 'X' to the import parameter SALES_HEADER_INX-REF_DOC.

Read only

Former Member
0 Likes
1,499

try to use the function module

BAPI_SALESDOCU_CREATEFROMDATA2

and user fm BAPI_TRANSACTION_COMMIT

Read only

Former Member
0 Likes
1,499

try to use the following fm BAPI_SALESORDER_CREATEFROMDAT2

and then use fm BAPI_TRANSACTION_COMMIT to save the sale order in data base