Function module for copying transformations

Hello,
Can anybody name me a function module which is able to copy an existing transformation?
I want to copy a transformation to an Info Objekt for multiple Data Sources.
Best Regards,
Andreas

Hi Andreas,
First Decide the Target and the Source and then copy the Transformation which u want to be copied.
U can copy the transformation just by Right Clicking and mentioning the Source and Data Target.
Rgds
SVU
Edited by: svu123 on Aug 26, 2009 7:17 PM

Similar Messages

  • Calling Function Module for upper case to lower case in Transformation

    Hi all,
    We have the data load happening everyday for the Account Receivables data. The DSO activation is failing because of the invalid characters. It gives the messages as below
    "Value 'bdmg0808dm' (hex. '620064006D006700300038003000380064006D00') of characteristic ZINVNUM contains invalid characters"
    We understood that the character ZINVNUM is maintained only for uppercase letter wherein the lower case check box is not ticked. We have a function module which is build within BI which can be used to permit non permitted characters including space. Just want to know how can I call this function module in a transformation and which is the best option to call the function module(start routine/end routine).
    Regards
    Vijay

    You can use statement in end routine to convert text to upper case. No need of calling any function module. Just loop through records of RESULT_PACKAGE and for that particular field convert text using below statement.
    LOOP AT RESULT_PACKAGE.
    TRANSLATE RESULT_PACAKGE-/BIC/ZNAME TO UPPER CASE.
    ENDLOOP.
    Edited by: ABHIJIT TEMBHEKAR on Nov 14, 2008 2:22 PM

  • How to create the INBOUND Function Module for INBOUND IDOCs

    Hi Friends,
    Can any Suggest me How to proceed to Create an INBOUND Function Module for Processing the INBOUND IDOCS
    which are recieved from XI Server ?
    I am working in SAP-ISU
    Here i will recieve the INBOUND IDOCs for the Meter Reading Orders.
    We have a Standard INBOUND FUNCTION MODULE
    IDOC_INPUT_ISU_MR_UPLOAD
    which Uploads the Meter Reading Results.
    I copied the Same function Module into ZIDOC_INPUT_
    and working on it.
    Can any one suggest me, whether i am going in correct way or not.
    In IDOC_INPUT_ISU_MR_UPLOAD Inbound fun module,
    BAPI_MTRREADDOC_UPLOAD is used to Update or Insert the Meter Reading Results,
    My requirment is to Insert and Update the Meter Reading Orders which are Inbounded from XI.
    Can I Use the Same BAPI
    BAPI_MTRREADDOC_UPLOAD
    to Update the below fields,
    EABL-SERNR
    EABL-ZWNUMMER
    EABLG-ABLESGR
    EABL-V_ZWSTAND
    EABL-N_ZWSTAND
    EABL-ABLHINW
    EABL-ZSKIPC
    EABL-ADAT
    EABL-ATIMTATS
    EABL-ADATTATS
    EABL-ATIM
    EABL-ZMESSAGE
    EABL-ABLESER(Meter reader number)
    Kindly Suggest me,
    Thanks in Advance,
    Ganesh

    Hello Ganesh
    I think you are going completely astray with you z-function module for IDoc processing.
    If you look at TABLES parameter METERREADINGRESULTS (type BAPIEABLU ) of BAPI_MTRREADDOC_UPLOAD you will find many of the requested fields already:
    EABL-SERNR => BAPIEABLU-SERIALNO
    EABL-ZWNUMMER =>REGISTER
    EABLG-ABLESGR
    EABL-V_ZWSTAND
    EABL-N_ZWSTAND
    EABL-ABLHINW
    EABL-ZSKIPC
    EABL-ADAT
    EABL-ATIMTATS => ACTUALMRTIME
    EABL-ADATTATS => ACTUALMRDATE
    EABL-ATIM
    EABL-ZMESSAGE
    EABL-ABLESER(Meter reader number)
    Field EABL-ZMESSAGE appears to be custom field (at least I cannot find it on ECC 6.0). If this field was added using include CI_EABL then you probably can get these values into the BAPI using the EXTENSIONIN parameter.
    Check routine CHECK_UPLOADRECORDS in the BAPI which allows two extension structures:
    - BAPI_TE_EABL
    - BAPI_TE_EOSB
    Not surprisingly BAPI_TE_EABL contains the include CI_EABL.
    Regards
      Uwe

  • Function module for sundays in a month

    hai all,
    i need a function module for calculating noof sundays in a month

    Hi Satya,
    Please check this code which is checked for syntax also. Just copy and paste the same in abap editor and check the output.
    Calculation of number of sundays ****
    DAta : month1(2) type c,
           week1 type i,
           date1 type sy-datum,
           val1 type sy-datum,
           day1 type SCAL-INDICATOR,
           no_sundays type i.
    week1 = 5.
    date1 = '20060502'.
    *- Function Module to fetch the Last day of the Month
    CALL FUNCTION 'LAST_DAY_OF_MONTHS'
    EXPORTING
    DAY_IN = date1
    IMPORTING
    LAST_DAY_OF_MONTH = VAL1.
    *- Function Module to get the day of the week
    CALL FUNCTION 'DATE_COMPUTE_DAY'
    EXPORTING
    DATE = VAL1
    IMPORTING
    DAY = DAY1.
    *- Calculation of number of sundays
    month1 = val1+6(2).
    write : / month1.
    if month1 = 31.
    if DAY1 <= 2 or DAY1 = 7.
    no_sundays = week1.
    else.
    no_sundays = week1 - 1.
    endif.
    elseif month1 = 30.
    if DAY1 = 1 or DAY1 = 7.
    no_sundays = week1.
    else.
    no_sundays = week1 - 1.
    endif.
    elseif month1 = 29.
    if DAY1 = 7.
    no_sundays = week1.
    else.
    no_sundays = week1 - 1.
    endif.
    elseif month1 = 28.
    no_sundays = 4.
    endif.
    write : / no_sundays.
    If found helpful, please do reward.

  • Generic function module for delta - which FM ?

    Hi all,
    I want to create a custom generic datasource in R3 which uses a function module for delta extraction. This is straight forward for full extract (copy FM RSAX_BIW_GET_DATA_SIMPLE - I already did this and have a full extraction working to BW). However I need to extract delta - and the above function module does not have example code for that (I have seen some forum posts that it 'can' be used - but this looks like a pseudo get around where the delta field name is passed in I_T_SELECT).
    FM RSVD_BW_GET_DELTA_DATA seems to be an example code of a FM which can allow delta (i.e. manually codes how to fill date/time stamp information). However when I code this and try test in RSA3 it seems to try to populate the delta selection field before calling my function module! I need it to call my function and allow the function to specifiy the date criteria.
    Can anyone help with an example of how this should best  be done ?
    Or can it only be done in a pseudo form using 'RSAX_BIW_GET_DATA_SIMPLE' example FM.
    Note: I have setup the RSO2 datasource to allow delta.
    Also - I have spent several hours searching the forum - but please answer with a link if you think it does answer exactly this problem.
    Thanks for any help
    Martin

    Hi again,
    Have had a few requests for the code I used - I created a new custom function copied from 'RSAX_BIW_GET_DATA_SIMPLE'. AEDAT has been set as the delta date for this data source in transaction RSO2.
    Main sample code is -
    1. Code to receive selection criteria and store in internal ranges -
    FUNCTION zbw_sodetail_get_detail.                                   
    ""Global interface:                                               
    *"   IMPORTING                                                  
    *"       VALUE(I_REQUNR) TYPE  SRSC_S_IF_SIMPLE-REQUNR        
    *"       VALUE(I_DSOURCE) TYPE  SRSC_S_IF_SIMPLE-DSOURCE      
    *"       VALUE(I_MAXSIZE) TYPE  SRSC_S_IF_SIMPLE-MAXSIZE      
    *"       VALUE(I_INITFLAG) TYPE  SRSC_S_IF_SIMPLE-INITFLAG    
    *"       VALUE(I_READ_ONLY) TYPE  SRSC_S_IF_SIMPLE-READONLY   
    *"       TABLES                                                     
    *"              I_T_SELECT TYPE  SRSC_S_IF_SIMPLE-T_SELECT OPTIONAL 
    *"              I_T_FIELDS TYPE  SRSC_S_IF_SIMPLE-T_FIELDS OPTIONAL 
    *"              E_T_DATA STRUCTURE  ZBW_SODETAIL OPTIONAL           
    *--- Sales order item create date                                      
       LOOP AT i_t_select INTO l_s_select WHERE fieldnm = 'ERDAT'.         
          MOVE-CORRESPONDING l_s_select TO r_erdat.                        
          APPEND r_erdat.                                                  
       ENDLOOP.                                                                               
    *--- Sales order item change date - DELTA only - auto filled before    
       this function is called.                                          
       C (Initialise Delta) - Low = blank, High = today - safety limit   
       D (Delta) - low = , High =   .       *from roosgendlm             
       LOOP AT i_t_select INTO l_s_select WHERE fieldnm = 'AEDAT'.         
          MOVE-CORRESPONDING l_s_select TO r_aedat.                        
          APPEND r_aedat.                                                  
       ENDLOOP.                                                                               
    2. Code to use selection criteria to get initial or delta. Note that for delta the delta date field to be used is automatically populated with the date of the last delta run (from table roosgendlm) -
       SELECT VBAK~KNUMV
              VBAPVBELN VBAPPOSNR VBAPMATNR VBAPARKTX VBAP~SPART
              VBAPWERKS VBAPERDAT VBAPAEDAT VBAPNETWR VBAP~WAERK
              VBAPABGRU VBAPZPROMISE VBAP~CUOBJ
              VBEP~EDATU
          INTO CORRESPONDING FIELDS OF TABLE ZBW_SODETAIL_ITAB
          FROM VBAK JOIN VBAP ON VBAKVBELN = VBAPVBELN
                    JOIN VBEP ON VBAPVBELN = VBEPVBELN
                             AND VBAPPOSNR = VBEPPOSNR
       WHERE VBAP~VBELN IN R_VBELN        "Order number
         AND VBAP~POSNR IN R_POSNR        "Order item number
         AND VBAP~ERDAT IN R_ERDAT        "Order item date created
        AND ( VBAP~ERDAT IN R_AEDAT OR   "Created date in      Delta range
                  VBAP~AEDAT IN R_AEDAT OR   "Order item change    Delta range
                  VBAK~AEDAT IN R_AEDAT ).   "Order header change  Delta range
    Note that if the data source is called in initial or full extract mode the delta change date (aedat) will automatically be blank.
    I have been using this successfully.
    I hope this helps
    Martin.

  • Inbound function module for IDoc type INFRECMASS01

    Hello everybody,
    What is the inbound function module for IDoc type INFRECMASS01?
    I tried IDOC_INPUT_INFREC (as for IDoc INFREC01), but I got the following message (B1 044): Incorrect function module IDOC_INPUT_INFREC called up
    Thanks in advance
    Roland

    The only difference between INFRECMASS01 and INFREC01 is that repitition of the same segments. However, the standard function module is hardcoded with IDOC type INFREC01, so if you want to use the MASS IDOC copy the standard one and put in the logic to loop around and process the info records one by one.
    There is no standard funtion that can process mass idoc of the info record.
    Regards,
    Ravi
    Note:  Please mark the helpful answers

  • Call Function not Generating Function Module for Smartform

    Hi Gurus,
    We have a work copy print program use to print deliveries (smartforms). This program works fine in Production but right now we are doing some testing and I found out that when we run this program in QUALITY environtment, it shortdumps with error saying "Function Module Not Found"
    Basically when it gets to the Function Module "SSF_FUNCTION_MODULE_NAME", it could not generate any function module for the form it Sy-Subrc = 2 Exception meaning NO_FUNCTION_MODULE.
    The problem is this only happens in our QUALITY environment.I compare the function module in the 2 systems, there was not diff as this is a Standard SAP module. I passed diff smartforms we have in QUALITY through the FM and it will not generating any FM for any of them. So this is not an error from the smartforms, bcos all the same smartforms generates FM in Prod.
    So what I did next is to Debug the FM "SSF_FUNCTION_MODULE_NAME" in the 2 systems to see where the diff is coming from. I noticed 2 views that the FM is using, they are STXFADM and D010SINF . So on the Production system, STXFADM-LASTDATE and D010SINF-UDAT fields are the same value, so it generates the FM. On the QUALITY systems, the values are different hence it skips the code to generate the FM.
    Thanks Guys.
    Points will greatly be awarded for this.

    Please guys, help me look into this, I really need a solution fast.
    Thanks

  • Function module for sending email

    Hi all,
    Can I know list of function modules for sending emails.
    Other than "SO_DOCUMENT_SEND_API1"
    pls let me know

    Hi Praveen,
    Below is the sample code to send the external mail.
    &**********Reward Points if helpful**********&
    DATA: ld_mtitle LIKE sodocchgi1-obj_descr,
            ld_format TYPE  so_obj_tp ,
            ld_attdescription TYPE  so_obj_nam ,
            ld_attfilename TYPE  so_obj_des .
           ld_receiver LIKE  sy-subrc.
      DATA:   it_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
              it_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,
              it_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
              w_cnt TYPE i,
              w_sent_all(1) TYPE c,                             "#EC NEEDED
              w_doc_data LIKE sodocchgi1.
      REFRESH it_receivers . CLEAR it_receivers .
      IF v_trip_send = 'X'.
        it_receivers-receiver = it_trip_dload-approver_email .
      ELSE .
        it_receivers-receiver = it_adv_dload-approver_email .
      ENDIF.
      it_receivers-rec_type = c_u .
      APPEND it_receivers. CLEAR it_receivers.
    it_receivers-receiver = " ------> pass your reciever email id.
      IF v_trip_send = 'X' .
        it_receivers-receiver = it_trip_dload-requester_email .
      ELSE .
        it_receivers-receiver = it_adv_dload-requester_email .
      ENDIF .
      it_receivers-rec_type = c_u .
      it_receivers-copy     = 'X' .
      APPEND it_receivers. CLEAR it_receivers.
      ld_mtitle = p_mtitle.
      ld_format              = p_format.
      ld_attdescription      = p_attdescription.
      ld_attfilename         = p_filename.
    Fill the document data.
      w_doc_data-doc_size = 1.
    Populate the subject/generic message attributes
      w_doc_data-obj_langu = sy-langu.
      w_doc_data-obj_name  = c_saprpt.
      w_doc_data-obj_descr = ld_mtitle .
      w_doc_data-sensitivty = 'F'.
    Fill the document data and get size of attachment
      CLEAR w_doc_data.
      READ TABLE it_attach INDEX w_cnt.
      w_doc_data-doc_size =
         ( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
      w_doc_data-obj_langu  = sy-langu.
      w_doc_data-obj_name   = c_saprpt.
      w_doc_data-obj_descr  = ld_mtitle.
      w_doc_data-sensitivty = c_f.
      CLEAR it_attachment.
      REFRESH it_attachment.
      it_attachment[] = it_attach[].
    Describe the body of the message
      CLEAR it_packing_list.
      REFRESH it_packing_list.
      it_packing_list-transf_bin = space.
      it_packing_list-head_start = 1.
      it_packing_list-head_num = 0.
      it_packing_list-body_start = 1.
      DESCRIBE TABLE it_message LINES it_packing_list-body_num.
      it_packing_list-doc_type = c_raw.
      APPEND it_packing_list.
    Create attachment notification
      it_packing_list-transf_bin = c_x.
      it_packing_list-head_start = 1.
      it_packing_list-head_num   = 1.
      it_packing_list-body_start = 1.
      DESCRIBE TABLE it_attachment LINES it_packing_list-body_num.
      it_packing_list-doc_type   =  ld_format.
      it_packing_list-obj_descr  =  ld_attdescription.
      it_packing_list-obj_name   =  ld_attfilename.
      it_packing_list-doc_size   =  it_packing_list-body_num * 255.
      APPEND it_packing_list.
      CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
        EXPORTING
          document_data = w_doc_data
          put_in_outbox = c_x
          commit_work   = c_x
        IMPORTING
          sent_to_all   = w_sent_all
        TABLES
          packing_list  = it_packing_list
          contents_bin  = it_attachment
          contents_txt  = it_message
          receivers     = it_receivers.

  • Function Module For Item Level Details of a Sales Order

    Hi Guys,
    I have to get the item level details for a particular sales document no ..I want to know if there is any function module existing for the same.
    Also I need any function module for getting the contact information such as contact form (KNVK-ANRED),contact name(KNVK-NAM1),contact name(KNVK-NAMEV),Contact number (KNVK-TELF1).
    Please let me know if anyone is aware of it.
    Thanks in Advance,
    Mayank

    <b>SD_SALES_DOCUMENT_READ</b> Reads sales document header and business data: tables VBAK, VBKD and VBPA (Sold-to (AG), Payer (RG) and Ship-to (WE) parties)
    <b>SD_SALES_DOCUMENT_READ_POS</b> Reads sales document header and item material: tables VBAK, VBAP-MATNR
    <b>SD_DOCUMENT_PARTNER_READ</b> partner information including address. Calls SD_PARTNER_READ
    <b>SD_PARTNER_READ</b> all the partners information and addresses
    <b>SD_DETERMINE_CONTRACT_TYPE</b>
    In: at least VBAK-VBELN
    Exceptions: NO CONTRACT | SERVICE_CONTRACT | QUANTITY_CONTRACT
    <b>SD_SALES_DOCUMENT_COPY</b>
    <b>RV_ORDER_FLOW_INFORMATION</b> Reads sales document flow of sales document after delivery and billing
    SD_SALES_DOCUMENT_SAVE create Sales Doc from the copied document
    SD_SALES_DOCUMENT_ENQUEUE to dequeue use DEQUEUE_EVVBAKE
    RV_DELIVERY_PRINT_VIEW Data provision for delivery note printing
    SD_PACKING_PRINT_VIEW
    SD_DELIVERY_VIEW Data collection for printing
    called from RV_DELIVERY_PRINT_VIEW, SD_PACKING_PRINT_VIEW
    RV_BILLING_PRINT_VIEW Data Provision for Billing Document Print
    regards
    vinod

  • Z function modules for OLE

    Hi all,
    Is there any Z function modules for OLE, which will download the data directly to Excel with 2 sheets.
    Regards,
    Shalini

    Hi Shalini Reddy
    there is no FM  but code is there... u can see...
    *& Report  YOLE_FOR_EXCEL
    REPORT  yole_for_excel.
    *REPORT ZTEST_BYW.
    OLE specific include file
    INCLUDE ole2incl.
    INCLUDE excel__c.
    data definitions of OLE objects with type ole2_object
    PARAMETERS: p_filenm(80) LOWER CASE OBLIGATORY
    DEFAULT 'd:\temp\report_tsl.xls'.
    DATA: g_tmp_workbook TYPE ole2_object.
    DATA: g_tmp_worksheets TYPE ole2_object.
    DATA: g_tmp_worksheet1 TYPE ole2_object.
    DATA: g_tmp_worksheet2 TYPE ole2_object.
    DATA: g_pc_template LIKE rcgfiletr-ftappl
    VALUE 'd:\temp\mmr_rpt_tsl_tmp.xls'.
    DATA: g_excel TYPE ole2_object.
    DATA: g_workbooks TYPE ole2_object.
    DATA: g_workbook TYPE ole2_object.
    DATA: g_worksheets TYPE ole2_object.
    DATA: g_worksheet TYPE ole2_object.
    DATA: g_cell TYPE ole2_object.
    DATA: g_cell1 TYPE ole2_object.
    DATA: g_cell2 TYPE ole2_object.
    DATA: g_cellrange TYPE ole2_object.
    DATA: g_font TYPE ole2_object.
    DATA: g_interior TYPE ole2_object.
    DATA: g_borders TYPE ole2_object.
    DATA: g_first_ws VALUE 'Y'.
    DATA: g_row TYPE i.
    DATA: g_col TYPE i.
    definition of loop counter
    DATA: i TYPE i VALUE '5'.
    DATA: BEGIN OF t_sheet1 OCCURS 1,
    col1(10),
    col2(20),
    END OF t_sheet1.
    DATA: BEGIN OF t_sheet2 OCCURS 1,
    col1(10),
    col2(20),
    END OF t_sheet2.
    START-OF-SELECTION.
      PERFORM prepare_data.
      PERFORM download_to_excel.
    END-OF-SELECTION.
    call method of excel 'QUIT'.
    it is now possible to leave the EXCEL application
    remark: you have to go to the EXCEL application and answer the
    popup dialog screen
    *& Form PREPARE_DATA
    FORM prepare_data.
      t_sheet1-col1 = 'A1'.
      t_sheet1-col2 = 'A2'.
      APPEND t_sheet1.
      t_sheet1-col1 = 'B1'.
      t_sheet1-col2 = 'B2'.
      APPEND t_sheet1.
      t_sheet2-col1 = 'Y1'.
      t_sheet2-col2 = 'Y2'.
      APPEND t_sheet2.
      t_sheet2-col1 = 'Z1'.
      t_sheet2-col2 = 'Z2'.
      APPEND t_sheet2.
    ENDFORM. " PREPARE_DATA
    *& Form DOWNLOAD_TO_EXCEL
    FORM download_to_excel.
      PERFORM open_excel.
      PERFORM add_worksheet1.
      PERFORM add_worksheet2.
      PERFORM open_template_file.
      PERFORM close_excel.
      WRITE: / 'End of program'.
    ENDFORM. " DOWNLOAD_TO_EXCEL
    *& Form FILL_CELL
    *& FORM routine, which fills the specified cell in the EXCEL sheet
    *& with the given value
    FORM fill_cell USING i_row TYPE i
    i_col TYPE i
    i_value
    i_fontbold
    i_digit
    i_wraptext
    i_horizon_align
    i_vertical_align.
      DATA: l_str TYPE string.
      CALL METHOD OF g_excel 'CELLS' = g_cell
        EXPORTING #1 = i_row
        #2 = i_col.
      SET PROPERTY OF g_cell 'VALUE' = i_value.
      IF i_fontbold = 'X'.
        GET PROPERTY OF g_cell 'Font' = g_font.
        SET PROPERTY OF g_font 'Bold' = 1.
      ENDIF.
      IF NOT i_wraptext IS INITIAL.
        SET PROPERTY OF g_cell 'WrapText' = 1.
      ENDIF.
      IF NOT i_horizon_align IS INITIAL.
        IF i_horizon_align = 'L'.
          SET PROPERTY OF g_cell 'HorizontalAlignment' = xlleft.
        ELSEIF i_horizon_align = 'R'.
          SET PROPERTY OF g_cell 'HorizontalAlignment' = xlright.
        ELSEIF i_horizon_align = 'C'.
          SET PROPERTY OF g_cell 'HorizontalAlignment' = xlcenter.
        ENDIF.
      ENDIF.
      IF NOT i_vertical_align IS INITIAL.
        IF i_vertical_align = 'T'.
          SET PROPERTY OF g_cell 'VerticalAlignment' = xltop.
        ELSEIF i_vertical_align = 'B'.
          SET PROPERTY OF g_cell 'VerticalAlignment' = xlbottom.
        ELSEIF i_vertical_align = 'C'.
          SET PROPERTY OF g_cell 'VerticalAlignment' = xlcenter.
        ENDIF.
      ENDIF.
    To set number format for cell
      IF i_digit <> ''.
        IF i_value IS INITIAL AND i_digit <> '%'.
          SET PROPERTY OF g_cell 'VALUE' = ''.
        ELSE.
    Set number format for cell with number
          IF i_digit = '1'.
            SET PROPERTY OF g_cell 'NumberFormat' = '#,###.0 '.
          ELSEIF i_digit = '2'.
            SET PROPERTY OF g_cell 'NumberFormat' = '#,##0.00 '.
          ELSEIF i_digit = '%'.
            SET PROPERTY OF g_cell 'NumberFormat' = '#,##0.00% '.
          ELSE.
            SET PROPERTY OF g_cell 'NumberFormat' = '#,### '.
          ENDIF.
        ENDIF.
      ENDIF.
      ADD 1 TO i_col.
    ENDFORM.                    "FILL_CELL
    *& Form OPEN_EXCEL
    FORM open_excel.
      DATA: l_cnt TYPE i.
    create object excel of OLE class 'EXCEL.APPLICATION'
      CREATE OBJECT g_excel 'EXCEL.APPLICATION'.
      CALL METHOD OF g_excel 'WORKBOOKS' = g_workbooks.
      CALL METHOD OF g_workbooks 'ADD' = g_workbook.
      GET PROPERTY OF g_workbook 'Worksheets' = g_worksheets.
      GET PROPERTY OF g_excel 'ACTIVESHEET' = g_worksheet.
      SET PROPERTY OF g_excel 'DISPLAYALERTS' = 0.
      GET PROPERTY OF g_worksheets 'Count' = l_cnt.
      l_cnt = l_cnt - 1.
    Delete unwanted worksheets
      DO l_cnt TIMES.
        GET PROPERTY OF g_excel 'ACTIVESHEET' = g_worksheet.
        CALL METHOD OF g_worksheet 'DELETE'.
      ENDDO.
    ENDFORM. " OPEN_EXCEL
    *& Form CLOSE_EXCEL
    FORM close_excel.
      SET PROPERTY OF g_excel 'VISIBLE' = 1.
      CALL METHOD OF g_workbook 'SAVEAS'
        EXPORTING #1 = p_filenm.
    quit Excel and free all OLE objects
    call method of g_excel 'QUIT'.
      FREE OBJECT g_interior.
      FREE OBJECT g_borders.
      FREE OBJECT g_font.
      FREE OBJECT g_cell.
      FREE OBJECT g_cell1.
      FREE OBJECT g_cell2.
      FREE OBJECT g_cellrange.
      FREE OBJECT g_excel.
      FREE OBJECT g_workbooks.
      FREE OBJECT g_workbook.
      FREE OBJECT g_worksheets.
      FREE OBJECT g_worksheet.
    ENDFORM. " CLOSE_EXCEL
    *& Form ADD_WORKSHEET
    FORM add_worksheet USING i_name.
    Add new worksheet
      IF g_first_ws <> 'N'.
        g_first_ws = 'N'.
        GET PROPERTY OF g_excel 'ACTIVESHEET' = g_worksheet.
      ELSE.
        CALL METHOD OF g_worksheets 'Add' = g_worksheet.
      ENDIF.
      SET PROPERTY OF g_worksheet 'NAME' = i_name.
      g_row = 1.
      g_col = 1.
    ENDFORM. " ADD_WORKSHEET
    *& Form ADD_WORKSHEET1
    FORM add_worksheet1.
      PERFORM add_worksheet USING 'Test 1'.
    fill line in EXCEL sheet with headerlines of table columns
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'My First Worksheet' 'X' ''
      PERFORM merge_cell USING g_row 1 g_row 4.
      PERFORM set_border USING g_row 1 g_row 4 4 ''.
      ADD 1 TO g_row.
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'ID'(001) 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col 'Name'(002) 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col 'Telephon'(003) 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col 'Rabatt'(004) 'X' '' '' '' ''.
    loop at customr table and print values into EXCEL sheet
      ADD 1 TO g_row.
      LOOP AT t_sheet1.
        g_col = 1.
        PERFORM fill_cell USING g_row g_col t_sheet1-col1 '' '' '' '' ''.
        PERFORM fill_cell USING g_row g_col t_sheet1-col2 '' '' '' '' ''.
        ADD 1 TO g_row.
      ENDLOOP.
      g_col = 4.
      PERFORM set_border USING 1 1 g_row g_col '' 4.
    ENDFORM. " ADD_WORKSHEET1
    *& Form ADD_WORKSHEET2
    FORM add_worksheet2.
      PERFORM add_worksheet USING 'Test 2'.
    fill line in EXCEL sheet with headerlines of table columns
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'My Second Worksheet' 'X' ''
      PERFORM merge_cell USING g_row 1 g_row 4.
      PERFORM set_border USING g_row 1 g_row 4 1 'X'.
      PERFORM set_color USING g_row 1 g_row 4 'LT'.
      ADD 1 TO g_row.
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'ID'(001) 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col 'Name'(002) 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col 'Telephon'(003) 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col 'Rabatt'(004) 'X' '' '' '' ''.
    loop at customr table and print values into EXCEL sheet
      ADD 1 TO g_row.
      LOOP AT t_sheet2.
        g_col = 1.
        PERFORM fill_cell USING g_row g_col t_sheet2-col1 '' '' '' '' ''.
        PERFORM fill_cell USING g_row g_col t_sheet2-col2 '' '' '' '' ''.
        ADD 1 TO g_row.
      ENDLOOP.
      g_col = 4.
      PERFORM set_border USING 1 1 g_row g_col 2 'X'.
      ADD 4 TO g_row.
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'This is a wrap text' 'X' ''
      'X' 'C' 'T'.
      PERFORM fill_cell USING g_row g_col 'Vertical - Bottom' 'X' ''
      '' 'L' 'T'.
      ADD 4 TO g_row.
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'Amount 1' 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col '100.04' '' 'X' '' '' ''.
      ADD 1 TO g_row.
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'Amount 2' 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col '200.01' '' 'X' '' '' ''.
      ADD 1 TO g_row.
      g_col = 1.
      PERFORM fill_cell USING g_row g_col 'Total' 'X' '' '' '' ''.
      PERFORM fill_cell USING g_row g_col '=SUM(B13:B14)' 'X' 'X' '' '' ''.
      PERFORM fill_cell USING g_row g_col '0.00' 'X' 'X' '' '' ''.
      PERFORM copy_cell USING g_row 2 17 5 25 8.
    ENDFORm. " ADD_WORKSHEET2
    *& Form MERGE_CELL
    FORM merge_cell USING i_row1 i_col1
    i_row2 i_col2.
      CALL METHOD OF g_excel 'Cells' = g_cell1
        EXPORTING #1 = i_row1
        #2 = i_col1.
      CALL METHOD OF g_excel 'Cells' = g_cell2
        EXPORTING #1 = i_row2
        #2 = i_col2.
      CALL METHOD OF g_excel 'Range' = g_cellrange
        EXPORTING #1 = g_cell1
        #2 = g_cell2.
      CALL METHOD OF g_cellrange 'Merge'.
    ENDFORM. " MERGE_CELL
    *& Form SET_BORDER
    FORM set_border USING i_row1 i_col1
    i_row2 i_col2
    i_thickness
    i_allborders.
      CALL METHOD OF g_excel 'Cells' = g_cell1
        EXPORTING #1 = i_row1
        #2 = i_col1.
      CALL METHOD OF g_excel 'Cells' = g_cell2
        EXPORTING #1 = i_row2
        #2 = i_col2.
      CALL METHOD OF g_excel 'Range' = g_cellrange
        EXPORTING #1 = g_cell1
        #2 = g_cell2.
      IF i_allborders IS INITIAL.
        CALL METHOD OF g_cellrange 'BorderAround'
        EXPORTING #1 = 1 "Continuous line
        #2 = i_thickness. "Thickness: 1 - Normal, 4 - Thick
      ELSE.
        GET PROPERTY OF g_cellrange 'Borders' = g_borders.
        SET PROPERTY OF g_borders 'LineStyle' = '1'.
        SET PROPERTY OF g_borders 'Weight' = i_thickness.
      ENDIF.
    ENDFORM. " SET_BORDER
    *& Form SET_COLOR
    FORM set_color USING i_row1 i_col1
    i_row2 i_col2
    i_color.
      DATA: l_colorindex TYPE i.
      CASE i_color.
        WHEN 'BK'.
          l_colorindex = 1. "Black
        WHEN 'BR'.
          l_colorindex = 53. "Brown
        WHEN 'OG'.
          l_colorindex = 52. "Olive Green
        WHEN 'DG'.
          l_colorindex = 51. "Dark Green
        WHEN 'DT'.
          l_colorindex = 49. "Dark Teal
        WHEN 'DB'.
          l_colorindex = 11. "Dark Blue
        WHEN 'ID'.
          l_colorindex = 55. "Indigo
        WHEN 'G4'.
          l_colorindex = 56.                                    "Gray 80%
        WHEN 'DR'.
          l_colorindex = 9. "Dark Red
        WHEN 'OR'.
          l_colorindex = 46. "Orange
        WHEN 'DY'.
          l_colorindex = 12. "Dark Yellow
        WHEN 'GR'.
          l_colorindex = 10. "Green
        WHEN 'TL'.
          l_colorindex = 14. "Teal
        WHEN 'BL'.
          l_colorindex = 5. "Blue
        WHEN 'BY'.
          l_colorindex = 47. "Blue Gray
        WHEN 'G3'.
          l_colorindex = 16.                                    "Gray 50%
        WHEN 'RD'.
          l_colorindex = 3. "Red
        WHEN 'LO'.
          l_colorindex = 45. "Light Orange
        WHEN 'LI'.
          l_colorindex = 43. "Lime
        WHEN 'SG'.
          l_colorindex = 50. "Sea Green
        WHEN 'AQ'.
          l_colorindex = 42. "Aqua
        WHEN 'LB'.
          l_colorindex = 41. "Light Blue
        WHEN 'VL'.
          l_colorindex = 13. "Violet
        WHEN 'G2'.
          l_colorindex = 48.                                    "Gray 40%
        WHEN 'PK'.
          l_colorindex = 7. "Pink
        WHEN 'GD'.
          l_colorindex = 44. "Gold
        WHEN 'YL'.
          l_colorindex = 6. "Yellow
        WHEN 'BG'.
          l_colorindex = 4. "Bright Green
        WHEN 'TQ'.
          l_colorindex = 8. "Turquoise
        WHEN 'SB'.
          l_colorindex = 33. "Sky Blue
        WHEN 'PL'.
          l_colorindex = 54. "Plum
        WHEN 'G1'.
          l_colorindex = 15.                                    "Gray 25%
        WHEN 'RS'.
          l_colorindex = 38. "Rose
        WHEN 'TN'.
          l_colorindex = 40. "Tan
        WHEN 'LY'.
          l_colorindex = 36. "Light Yellow
        WHEN 'LG'.
          l_colorindex = 35. "Light Green
        WHEN 'LT'.
          l_colorindex = 34. "Light Turquoise
        WHEN 'PB'.
          l_colorindex = 37. "Pale Blue
        WHEN 'LV'.
          l_colorindex = 39. "Lavender
        WHEN 'WH'.
          l_colorindex = 2. "White
        WHEN OTHERS.
          l_colorindex = 2. "White
      ENDCASE.
      CALL METHOD OF g_excel 'Cells' = g_cell1
        EXPORTING #1 = i_row1
        #2 = i_col1.
      CALL METHOD OF g_excel 'Cells' = g_cell2
        EXPORTING #1 = i_row2
        #2 = i_col2.
      CALL METHOD OF g_excel 'Range' = g_cellrange
        EXPORTING #1 = g_cell1
        #2 = g_cell2.
      GET PROPERTY OF g_cellrange 'Interior' = g_interior.
      SET PROPERTY OF g_interior 'ColorIndex' = l_colorindex.
    ENDFORM. " SET_COLOR
    *& Form COPY_CELL
    FORM copy_cell USING i_crow i_ccol
    i_prow1 i_pcol1
    i_prow2 i_pcol2.
      CALL METHOD OF g_excel 'Cells' = g_cell
        EXPORTING #1 = i_crow
        #2 = i_ccol.
      CALL METHOD OF g_cell 'Copy'.
      CALL METHOD OF g_excel 'Cells' = g_cell1
        EXPORTING #1 = i_prow1
        #2 = i_pcol1.
      CALL METHOD OF g_excel 'Cells' = g_cell2
        EXPORTING #1 = i_prow2
        #2 = i_pcol2.
      CALL METHOD OF g_excel 'Range' = g_cellrange
        EXPORTING #1 = g_cell1
        #2 = g_cell2.
      CALL METHOD OF g_worksheet 'Paste'
        EXPORTING #1 = g_cellrange.
    ENDFORM. " COPY_CELL
    *& Form OPEN_TEMPLATE_FILE
    FORM open_template_file.
      CALL METHOD OF g_workbooks 'Open' = g_tmp_workbook
        EXPORTING #1 = g_pc_template
        #2 = 2
        #3 = 0
        #4 = 1
        #5 = 0
        #6 = 0
        #7 = 1.
      CALL FUNCTION 'FLUSH'
        EXCEPTIONS
          OTHERS = 0.
      GET PROPERTY OF g_tmp_workbook 'Worksheets' = g_tmp_worksheets.
      GET PROPERTY OF g_tmp_worksheets 'Item' = g_tmp_worksheet1
      exporting #1 = 1.
      GET PROPERTY OF g_tmp_worksheets 'Item' = g_tmp_worksheet2
      exporting #1 = 2.
      CALL METHOD OF g_tmp_worksheet1 'Copy'
        EXPORTING #1 = g_worksheet.
      CALL METHOD OF g_tmp_worksheet2 'Copy'
        EXPORTING #1 = g_worksheet.
    call method of g_tmp_workbook 'Close'.
      CALL FUNCTION 'FLUSH'
        EXCEPTIONS
          OTHERS = 0.
    ENDFORM. " OPEN_TEMPLATE_FILE

  • Bapi/Function mod for copy

    Hi Friends
    We r implementing Workflow for cost cener and Profit center planning, as per our requirement we have to copy version (AP) to other version and this should be done in back ground,is there any BAPI or function module for this function.
    Thanks & Regards
    AK

    Hello
    Check these BAPI
    BAPI_APPREQUEST_ADDVARIANT     Add a Variant to an Appropriation Request
    BAPI_APPREQUEST_CHANGE         Change an Appropriation Request
    BAPI_APPREQUEST_CHANGEVARIANT  Change Appropriation Request Variant
    BAPI_APPREQUEST_CREATE         Create Appropriation Request
    BAPI_APPREQUEST_DELETE         Deletion of an Appropriation Request
    BAPI_APPREQUEST_GETDETAIL      Display of an Appropriation Request
    BAPI_APPREQUEST_GETSTATUS      Display Status of an Appropriation Request
    BAPI_APPREQUEST_REMOVEVARIANT  Delete an Appropriation Request Variant
    BAPI_APPREQUEST_SETSTATUS      Setting System and User Status of Appropriation Request
    BAPI_APPREQUEST_SETSTATUSVARNT Setting of User and System Status on Variants

  • Function Module for Discover Credit Card

    We have Payment Credit Card types set up in the SAP system as American Express, Master Card and Visa Card. These use the following Function Modules CCARD_CHECK_AMEX, CCARD_CHECK_MC and CCARD_CHECK_VISA respectively.
    We want to add Discover Credit Card. Does anybody know how to create a Function Module for it, or where do I get the specifications for the sme?
    Please advice.
    Thank You.

    Hello Sujeet,
    have a look at http://en.wikipedia.org/wiki/Credit_card for the checksum of Credit Card's. I think this function is implemented in CCARD_CHECK_LUHN_MOD_TEN. I think you should try to copy CCARD_CHECK_VISA to Z_CCARD_CHECK_DISCOVER and adapt this module to your needs.
    Regards
    Gregor

  • Functional module to Copy measurement points from one equipment to another

    HI,
    Please give some body function module to Copy measurement points from one equipment to another which is not assign to functional location.

    To Copy Measuring Points from one equipment to another , Go to transaction IE10 and copy all the relevant data that need to be copied Check the measuring point check box, it would copy the characteristic for measuring point to the newly created equipment and would create a system generated number for the measuring point. Both the measuring points would have the same characteristics and if they are attached to each other in a hierarchy then the measurement document readings could also be transferred from one measuring point to another.. You could use the following Function Module "EQUIPMENT_COPY" to copy the measuring point from one equipment to another if equipment has already been created.
    Regards...
    Edited by: Usman Kahoot on Jun 9, 2010 2:37 PM

  • Function Module for message "MBGMCR" in outbound process

    Hi all,
    I want to create an IDoc via EDI when I post a material document. I use messgae type MBGMCR and IDoc type MBGMCR02 and I already configured in partner profile and all about output determination in SAP-IM.
    And now I need a function module to process outbound IDoc of posting material document but I couldn't find a function module for processing.
    Pls let me know about that.
    Thanks for your time.

    Hi,
    You need to Code your own Z Function Module for this. Copy any standard outbound FM to create your own Z FM, so as to ensure that Interfaces are correct.  
    Refer to given below threads:
    Re: Standard IDOC for Goods Receipt
    Re: Idoc type for Goods Receipt
    Goods Receipt MIGO IDOC

  • Function module for table control

    Hi experts,
    I am creating the BDC program, In that I need to select the particular item from the table control say for example item 0010 or 0020 based on the input file and need to process from there.
    Is there any function module to select the particular item by passing item no say 0010 or 0020.
    Thanks in advance
    sai

    Hi
    I suppose there is no function module for table control.
    below solution might be useful to you.
    1) Do BDC recording for the table control with each condition you would like to incorporate in your program.
    2) copy the code of Table Control recording in your program and place the code in Loop of internal table.
    3) based on the condition  call the respective BDC recording of the table control
    4) By the above steps  you can manage the table control based on the condition.
    Regards
    Santosh Kumaar.M

Maybe you are looking for

  • Pages, printing: still problem with drop shadows . Frustrated.  :

    Hi - I've spent most of the afternoon trying to get my Pages document to print properly. I am experiencing the drop-shadow issue :heavy black clump instead of artfully placed& delicate. Printouts do not resemble what is onscreen or in preview etc. Ha

  • Server editions of sql server and specialised editions of sql server

    hi, iam new to sql server. i have started reading an article in MSDN regarding the editions of sql server.the article says with the different headings as "server editions of sql server 2008r2" which includes (datacenter,standard and eneterprise) and

  • AS 2.0 help with transitions

    i'm wondering what the best method is to apply the same transtion to multiple images in a photo based site. i've created a fade in as my transition (see attached code) and would like to apply the same effect to all images in the site. thanks in advan

  • A different audio problem

    I have a problem with my Video Ipod where certain songs, not all, are pretty low in volume. But in the last second of the song, the volume makes a sudden jump to being loud. This is very annoying and happens to quite a few of the songs...and it happe

  • Where is javax.swing.GroupLayout Class....?

    In the Java 6 Doc I am getting the information about javax.swing.GroupLayout class. But I cpuld not find the class in Jar. Am I missing something? It will be appriciated If you help me to finding the Jar file for this class. Thanks.