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
VijayYou 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,
GaneshHello 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 monthHi 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
MartinHi 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
RolandThe 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 knowHi 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 -
Hi all,
Is there any Z function modules for OLE, which will download the data directly to Excel with 2 sheets.
Regards,
ShaliniHi 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
AKHello
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
saiHi
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
-
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.