BAPI SALES ORDER CREATION
REPORT zbapi_sales_order_creation.
INCLUDE zbapi_sales_order_top.
INCLUDE zbapi_sales_order_sel.
INCLUDE zbapi_sales_order_sub.
START-OF-SELECTION.
IF p_file IS NOT INITIAL.
PERFORM getdata.
PERFORM call_log.
REFRESH it_return_log.
PERFORM get_bapi.
PERFORM log_handle.
ELSE.
MESSAGE 'Please Select The File' TYPE 'S'.
ENDIF.
INCLUDE zbapi_sales_order_top.
INCLUDE zbapi_sales_order_sel.
INCLUDE zbapi_sales_order_sub.
START-OF-SELECTION.
IF p_file IS NOT INITIAL.
PERFORM getdata.
PERFORM call_log.
REFRESH it_return_log.
PERFORM get_bapi.
PERFORM log_handle.
ELSE.
MESSAGE 'Please Select The File' TYPE 'S'.
ENDIF.
TOP
*&---------------------------------------------------------------------*
*& Include ZBAPI_sales_order_TOP
*&---------------------------------------------------------------------*
TYPE-POOLS : truxs.
TYPES: BEGIN OF ty_final,
counter TYPE i ,
doc_type TYPE auart,
sales_org TYPE vkorg,
distr_chan TYPE vtweg,
division TYPE spart,
partn_role TYPE char6,
partn_numb TYPE kunnr,
po_itm_no TYPE posex,
material TYPE matnr,
req_qty TYPE wmeng,
target_qty TYPE dzmeng,
plant TYPE plant,
END OF ty_final.
DATA : lv_sonumber TYPE bapivbeln-vbeln.
DATA: it_final TYPE TABLE OF ty_final,
wa_final TYPE ty_final.
DATA: lv_ponumber LIKE bapimepoheader-po_number.
DATA: it_return TYPE STANDARD TABLE OF bapiret2,
wa_return TYPE bapiret2.
DATA: it_return1 TYPE STANDARD TABLE OF bapiret2,
wa_return1 TYPE bapiret2.
DATA : it_headdata TYPE STANDARD TABLE OF bapisdhd1,
wa_headdata TYPE bapisdhd1,
it_headdatax TYPE STANDARD TABLE OF bapisdhd1x,
wa_headdatax TYPE bapisdhd1x.
DATA :it_itemdata TYPE STANDARD TABLE OF bapisditm,
wa_itemdata TYPE bapisditm,
it_itemdatax TYPE STANDARD TABLE OF bapisditmx,
wa_itemdatax TYPE bapisditmx,
it_partner TYPE STANDARD TABLE OF bapiparnr,
wa_partner TYPE bapiparnr,
it_order_schedules_in TYPE STANDARD TABLE OF bapischdl,
wa_order_schedules_in TYPE bapischdl,
it_order_schedules_inx TYPE STANDARD TABLE OF bapischdlx,
wa_order_schedules_inx TYPE bapischdlx.
DATA: it_type TYPE truxs_t_text_data.
**** Declaration for application loG
DATA: it_return_log TYPE bapiret2_t.
* Class/Objects
DATA: gcl_app_log TYPE REF TO zca_cl_application_log,
* Internal Structure
gs_log_handle TYPE balloghndl.
*& Include ZBAPI_sales_order_TOP
*&---------------------------------------------------------------------*
TYPE-POOLS : truxs.
TYPES: BEGIN OF ty_final,
counter TYPE i ,
doc_type TYPE auart,
sales_org TYPE vkorg,
distr_chan TYPE vtweg,
division TYPE spart,
partn_role TYPE char6,
partn_numb TYPE kunnr,
po_itm_no TYPE posex,
material TYPE matnr,
req_qty TYPE wmeng,
target_qty TYPE dzmeng,
plant TYPE plant,
END OF ty_final.
DATA : lv_sonumber TYPE bapivbeln-vbeln.
DATA: it_final TYPE TABLE OF ty_final,
wa_final TYPE ty_final.
DATA: lv_ponumber LIKE bapimepoheader-po_number.
DATA: it_return TYPE STANDARD TABLE OF bapiret2,
wa_return TYPE bapiret2.
DATA: it_return1 TYPE STANDARD TABLE OF bapiret2,
wa_return1 TYPE bapiret2.
DATA : it_headdata TYPE STANDARD TABLE OF bapisdhd1,
wa_headdata TYPE bapisdhd1,
it_headdatax TYPE STANDARD TABLE OF bapisdhd1x,
wa_headdatax TYPE bapisdhd1x.
DATA :it_itemdata TYPE STANDARD TABLE OF bapisditm,
wa_itemdata TYPE bapisditm,
it_itemdatax TYPE STANDARD TABLE OF bapisditmx,
wa_itemdatax TYPE bapisditmx,
it_partner TYPE STANDARD TABLE OF bapiparnr,
wa_partner TYPE bapiparnr,
it_order_schedules_in TYPE STANDARD TABLE OF bapischdl,
wa_order_schedules_in TYPE bapischdl,
it_order_schedules_inx TYPE STANDARD TABLE OF bapischdlx,
wa_order_schedules_inx TYPE bapischdlx.
DATA: it_type TYPE truxs_t_text_data.
**** Declaration for application loG
DATA: it_return_log TYPE bapiret2_t.
* Class/Objects
DATA: gcl_app_log TYPE REF TO zca_cl_application_log,
* Internal Structure
gs_log_handle TYPE balloghndl.
SELECTION SCREEEN
*&---------------------------------------------------------------------*
*& Include ZBAPI_sales_order_SEL
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : p_file TYPE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM f4_help.
*& Include ZBAPI_sales_order_SEL
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : p_file TYPE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM f4_help.
SUB-----------------------------------
*&---------------------------------------------------------------------*
*& Include ZBAPI_sales_order_SUB
*&---------------------------------------------------------------------*
FORM f4_help .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
ENDFORM. " F4_HELP
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
FORM getdata .
DATA: loc_filename TYPE string.
loc_filename = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = loc_filename
filetype = 'DAT' "'ASC'
has_field_separator = 'X'
TABLES
data_tab = it_final[]
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
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. " GETDATA
*&---------------------------------------------------------------------*
*& Form CALL_LOG
*&---------------------------------------------------------------------*
FORM call_log .
CLEAR gcl_app_log.
*****Get Instance of Application Log
gcl_app_log = zca_cl_application_log=>get_instance( ).
******Create Application Log
CALL METHOD gcl_app_log->create_app_log_handle(
EXPORTING
i_object = 'ZAK_SO_HEADER' " Object In SLGO
i_subobject = 'ZAK_SO_SUB' " Sub Object In SLGO
i_tcode = sy-tcode
i_repid = sy-cprog
RECEIVING
r_log_handle = gs_log_handle ).
ENDFORM. " CALL_LOG
*&---------------------------------------------------------------------*
*& Form GET_BAPI
*&---------------------------------------------------------------------*
FORM get_bapi .
DATA : lv_x TYPE c VALUE 'X'.
IF it_final[] IS NOT INITIAL.
LOOP AT it_final[] INTO wa_final.
IF wa_headdata-doc_type IS INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_AUART_INPUT'
EXPORTING
input = wa_final-doc_type
IMPORTING
output = wa_final-doc_type.
wa_headdata-doc_type = wa_final-doc_type.
wa_headdatax-doc_type = 'X'.
wa_headdata-sales_org = wa_final-sales_org.
wa_headdatax-sales_org = 'X'.
wa_headdata-distr_chan = wa_final-distr_chan.
wa_headdatax-distr_chan = 'X'.
wa_headdata-division = wa_final-division.
wa_headdatax-division = 'X'.
ENDIF.
wa_itemdata-po_itm_no = wa_final-po_itm_no.
wa_itemdatax-po_itm_no = wa_final-po_itm_no.
wa_itemdatax-po_itm_no = 'X'.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = wa_final-material
IMPORTING
output = wa_final-material.
.
wa_itemdata-material = wa_final-material.
wa_itemdatax-material = 'X'.
wa_itemdata-target_qty = wa_final-target_qty.
wa_itemdatax-target_qty = 'X'.
wa_itemdata-plant = wa_final-plant.
wa_itemdatax-plant = 'X'.
APPEND wa_itemdata TO it_itemdata.
APPEND wa_itemdatax TO it_itemdatax.
CLEAR : wa_itemdata, wa_itemdatax.
*
CALL FUNCTION 'CONVERSION_EXIT_PARVW_INPUT'
EXPORTING
input = wa_final-partn_role
IMPORTING
output = wa_final-partn_role.
wa_partner-partn_role = wa_final-partn_role." Sold-To-Party
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_final-partn_numb
IMPORTING
output = wa_final-partn_numb.
wa_partner-partn_numb = wa_final-partn_numb." Ship-To-Party
APPEND wa_partner TO it_partner.
CLEAR : wa_partner.
wa_order_schedules_in-req_qty = wa_final-req_qty." Customer Number
wa_order_schedules_inx-req_qty = 'X'.
APPEND wa_order_schedules_in TO it_order_schedules_in.
APPEND wa_order_schedules_inx TO it_order_schedules_inx.
CLEAR : wa_order_schedules_in,wa_order_schedules_inx.
REFRESH : it_return[], it_return1[].
AT END OF counter .
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
order_header_in = wa_headdata
order_header_inx = wa_headdatax
IMPORTING
salesdocument = lv_sonumber
TABLES
return = it_return
order_items_in = it_itemdata
order_items_inx = it_itemdatax
order_partners = it_partner
order_schedules_in = it_order_schedules_in
order_schedules_inx = it_order_schedules_inx.
IF it_return[] IS NOT INITIAL.
READ TABLE it_return INTO wa_return WITH KEY type = 'S'
id = 'V1'.
IF sy-subrc = 0 .
APPEND wa_return TO it_return1.
CLEAR : wa_return1,wa_return.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
IMPORTING
return = wa_return.
APPEND wa_return TO it_return1.
CLEAR : wa_return1, wa_return.
ENDIF.
ENDIF.
IF it_return1[] IS NOT INITIAL. " this is for app_log
CALL METHOD gcl_app_log->add_message_to_app_log
EXPORTING
i_log_handle = gs_log_handle
i_tab_return = it_return1.
ENDIF.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. " GET_BAPI
*&---------------------------------------------------------------------*
*& Form LOG_HANDLE
*&---------------------------------------------------------------------*
FORM log_handle .
CALL METHOD gcl_app_log->save_and_display_app_log
EXPORTING
i_log_handle = gs_log_handle
i_flg_save = abap_false.
ENDFORM. " LOG_HANDLE
*& Include ZBAPI_sales_order_SUB
*&---------------------------------------------------------------------*
FORM f4_help .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
ENDFORM. " F4_HELP
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
FORM getdata .
DATA: loc_filename TYPE string.
loc_filename = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = loc_filename
filetype = 'DAT' "'ASC'
has_field_separator = 'X'
TABLES
data_tab = it_final[]
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
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. " GETDATA
*&---------------------------------------------------------------------*
*& Form CALL_LOG
*&---------------------------------------------------------------------*
FORM call_log .
CLEAR gcl_app_log.
*****Get Instance of Application Log
gcl_app_log = zca_cl_application_log=>get_instance( ).
******Create Application Log
CALL METHOD gcl_app_log->create_app_log_handle(
EXPORTING
i_object = 'ZAK_SO_HEADER' " Object In SLGO
i_subobject = 'ZAK_SO_SUB' " Sub Object In SLGO
i_tcode = sy-tcode
i_repid = sy-cprog
RECEIVING
r_log_handle = gs_log_handle ).
ENDFORM. " CALL_LOG
*&---------------------------------------------------------------------*
*& Form GET_BAPI
*&---------------------------------------------------------------------*
FORM get_bapi .
DATA : lv_x TYPE c VALUE 'X'.
IF it_final[] IS NOT INITIAL.
LOOP AT it_final[] INTO wa_final.
IF wa_headdata-doc_type IS INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_AUART_INPUT'
EXPORTING
input = wa_final-doc_type
IMPORTING
output = wa_final-doc_type.
wa_headdata-doc_type = wa_final-doc_type.
wa_headdatax-doc_type = 'X'.
wa_headdata-sales_org = wa_final-sales_org.
wa_headdatax-sales_org = 'X'.
wa_headdata-distr_chan = wa_final-distr_chan.
wa_headdatax-distr_chan = 'X'.
wa_headdata-division = wa_final-division.
wa_headdatax-division = 'X'.
ENDIF.
wa_itemdata-po_itm_no = wa_final-po_itm_no.
wa_itemdatax-po_itm_no = wa_final-po_itm_no.
wa_itemdatax-po_itm_no = 'X'.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = wa_final-material
IMPORTING
output = wa_final-material.
.
wa_itemdata-material = wa_final-material.
wa_itemdatax-material = 'X'.
wa_itemdata-target_qty = wa_final-target_qty.
wa_itemdatax-target_qty = 'X'.
wa_itemdata-plant = wa_final-plant.
wa_itemdatax-plant = 'X'.
APPEND wa_itemdata TO it_itemdata.
APPEND wa_itemdatax TO it_itemdatax.
CLEAR : wa_itemdata, wa_itemdatax.
*
CALL FUNCTION 'CONVERSION_EXIT_PARVW_INPUT'
EXPORTING
input = wa_final-partn_role
IMPORTING
output = wa_final-partn_role.
wa_partner-partn_role = wa_final-partn_role." Sold-To-Party
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_final-partn_numb
IMPORTING
output = wa_final-partn_numb.
wa_partner-partn_numb = wa_final-partn_numb." Ship-To-Party
APPEND wa_partner TO it_partner.
CLEAR : wa_partner.
wa_order_schedules_in-req_qty = wa_final-req_qty." Customer Number
wa_order_schedules_inx-req_qty = 'X'.
APPEND wa_order_schedules_in TO it_order_schedules_in.
APPEND wa_order_schedules_inx TO it_order_schedules_inx.
CLEAR : wa_order_schedules_in,wa_order_schedules_inx.
REFRESH : it_return[], it_return1[].
AT END OF counter .
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
order_header_in = wa_headdata
order_header_inx = wa_headdatax
IMPORTING
salesdocument = lv_sonumber
TABLES
return = it_return
order_items_in = it_itemdata
order_items_inx = it_itemdatax
order_partners = it_partner
order_schedules_in = it_order_schedules_in
order_schedules_inx = it_order_schedules_inx.
IF it_return[] IS NOT INITIAL.
READ TABLE it_return INTO wa_return WITH KEY type = 'S'
id = 'V1'.
IF sy-subrc = 0 .
APPEND wa_return TO it_return1.
CLEAR : wa_return1,wa_return.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
IMPORTING
return = wa_return.
APPEND wa_return TO it_return1.
CLEAR : wa_return1, wa_return.
ENDIF.
ENDIF.
IF it_return1[] IS NOT INITIAL. " this is for app_log
CALL METHOD gcl_app_log->add_message_to_app_log
EXPORTING
i_log_handle = gs_log_handle
i_tab_return = it_return1.
ENDIF.
ENDAT.
ENDLOOP.
ENDIF.
ENDFORM. " GET_BAPI
*&---------------------------------------------------------------------*
*& Form LOG_HANDLE
*&---------------------------------------------------------------------*
FORM log_handle .
CALL METHOD gcl_app_log->save_and_display_app_log
EXPORTING
i_log_handle = gs_log_handle
i_flg_save = abap_false.
ENDFORM. " LOG_HANDLE
Thanks for the given information. If you are looking for Unity 3d training in Hyderabad
ReplyDeleteThanks for a great information in your blog
ReplyDeleteSAP ABAP 7.4 Certification Preparation Guide
Best content and its very useful also Avina Technologies is one of the best SAP training institutes in Hyderabad, offering advanced SAP SuccessFactors Training in Hyderabad with real-time projects, expert faculty, and dedicated placement support. Our SAP SuccessFactors course is specially designed for freshers, HR professionals, graduates, and working employees who want to build a successful career in cloud-based HR solutions. Located in Ameerpet, Hyderabad, Avina Technologies provides practical-oriented SAP SuccessFactors online training and classroom training with hands-on experience in Employee Central, Recruitment, Performance Management, Onboarding, Payroll, and Workforce Analytics. We focus on industry-based training, live projects, certification guidance, interview preparation, and resume building to help students become job-ready. As a trusted institute for SAP SuccessFactors Training in Ameerpet Hyderabad, we ensure students gain strong technical and functional knowledge through experienced trainers and updated course content. Our flexible training schedules, affordable course fees, and placement assistance make us a preferred choice for SAP training in Hyderabad. Join Avina Technologies today to learn SAP SuccessFactors and grow your career in one of the most in-demand SAP HR modules in the global IT industry.
ReplyDeleteBest content and useful also If you're searching for top-rated SAP SD institutes in Hyderabad, Avina Technologies has built a strong reputation for delivering industry-focused SAP training. With our career-oriented approach, personalized mentoring, real-time project exposure, and dedicated placement support, we have helped hundreds of students secure SAP roles in leading companies.
ReplyDeleteAs one of the best SAP SD training institutes in Hyderabad, Avina Technologies doesn't just teach SAP SD concepts—we prepare you for real-world success through hands-on training, interview preparation, resume building, and continuous career guidance. Whether you're a fresher or a working professional, Avina Technologies is committed to helping you build a successful SAP career.
Avina Technologies is also known for its top-rated SAP ABAP coaching centers in Hyderabad, offering expert-led sessions, updated course materials, and one-on-one mentoring. We are located in Ameerpet – the heart of Hyderabad’s IT training hub – making access easy for students from across the city.
ReplyDeleteFor those seeking remote learning, we provide the best SAP ABAP online training in Hyderabad Ameerpet, with interactive live classes, recordings, and ongoing doubt-clearing sessions. Our trainers bring over a decade of real-time SAP industry experience, ensuring every student gets practical exposure.
Whether you aim to get placed in a top MNC or upgrade your current skill set, our SAP ABAP course is designed to deliver results.