Tuesday, May 8, 2018

SAP ABAP-BAPI SALES ORDER CREATION REPORT

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.

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.

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.
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

5 comments:

  1. Thanks for the given information. If you are looking for Unity 3d training in Hyderabad

    ReplyDelete
  2. 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.

    ReplyDelete
  3. Best 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.

    As 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.

    ReplyDelete
  4. 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.
    For 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.

    ReplyDelete