GS1 barcode decode Function module issue
We are facing an issue with LE_EAN128_DECODE standard Function module .
standard gs1 barcode uses modulo 13 calculation method to decode check digit where as standard sap uses modulo 10 .
standard function module LE_EAN128_DECODE uses modulo 10 method to calculate check digit .
Is there a way to decode gs1 barccode in standard sap .
Is there a standard function module in sap which uses modulo 13 method to decode gs1 barcodes in sap.
Is there something we need to do in the SPRO configuration settings to enable this.
Hi
In FM check on which fields you have written delta logic, data will populate if we have changes to that field.
we have some good documents on step by step of creating FM based generic extractors. check if you miss any steps
http://explore-sapbw.blogspot.in/p/sdn-articles-extraction.html
Regards,
Venkatesh
Similar Messages
-
Generic Delta extraction by Function module issue
Hello Experts,
Please help !!!
I have problem for delta extraction by Function module. For the full load, I wrote function module based on RSAX_BIW_GET_DATA_SIMPLE. It works fine.
But I would like to have the delta load enabled. Therefore, I modified the datasource, add a delta specific field u2018ztimestampu2019, which type is calendar day.
Then I create a function module based on template u2018RSAX_BIW_GET_DATAu2019, as this support the upload mode. But when I test this datasource in RSA3, no matter itu2019s full load or initial delta load, it always send me an error, u201CErrors occurred during the extractionu201D.
I had some debug, and found that there is no value for i_isource when my function module is called. Therefore it raised the exception.
But I do not have the chance to debug my code for the delta logic, can somebody help to check?
I also check the entries in ROOSOURCE,
For my datasource ZTRNREC_FM_DELTA, The DELTA value is u2018AIEu2019, and extraction method is u2018F2u2019, should I change them to DELTA= u2018Du2019 and extraction method to u2018F1u2019? Where to change?
FUNCTION ZRSAX_TRAININGREC_DELTA.
""Local Interface:
*" IMPORTING
*" VALUE(I_REQUNR) TYPE SBIWA_S_INTERFACE-REQUNR
*" VALUE(I_ISOURCE) TYPE SBIWA_S_INTERFACE-ISOURCE OPTIONAL
*" VALUE(I_MAXSIZE) TYPE SBIWA_S_INTERFACE-MAXSIZE OPTIONAL
*" VALUE(I_INITFLAG) TYPE SBIWA_S_INTERFACE-INITFLAG OPTIONAL
*" VALUE(I_UPDMODE) TYPE SBIWA_S_INTERFACE-UPDMODE OPTIONAL
*" VALUE(I_DATAPAKID) TYPE SBIWA_S_INTERFACE-DATAPAKID OPTIONAL
*" VALUE(I_PRIVATE_MODE) OPTIONAL
*" VALUE(I_CALLMODE) LIKE ROARCHD200-CALLMODE OPTIONAL
*" VALUE(I_REMOTE_CALL) TYPE SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF
*" TABLES
*" I_T_SELECT TYPE SBIWA_T_SELECT OPTIONAL
*" I_T_FIELDS TYPE SBIWA_T_FIELDS OPTIONAL
*" E_T_DATA STRUCTURE ZTRN_REC_TIME OPTIONAL
*" E_T_SOURCE_STRUCTURE_NAME OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
The input parameter I_DATAPAKID is not supported yet !
Example: InfoSource containing TADIR objects
Auxiliary Selection criteria structure
DATA: l_s_select TYPE sbiwa_s_select.
Maximum number of lines for DB table
STATICS: l_maxsize TYPE sbiwa_s_interface-maxsize,
S_S_IF TYPE SRSC_S_IF_SIMPLE,
S_COUNTER_DATAPAKID LIKE SY-TABIX.
Parameter I_PRIVATE_MODE:
Some applications might want to use this function module for other
purposes as well (e.g. data supply for OLTP reporting tools). If the
processing logic has to be different in this case, use the optional
parameter I_PRIVATE_MODE (not supplied by BIW !) to distinguish
between BIW calls (I_PRIVATE_MODE = SPACE) and other calls
(I_PRIVATE_MODE = X).
If the message handling has to be different as well, define Your own
messaging macro which interprets parameter I_PRIVATE_MODE. When
called by BIW, it should use the LOG_WRITE macro, otherwise do what
You want.
Initialization mode (first call by SAPI) or data transfer mode
(following calls) ?
IF i_initflag = sbiwa_c_flag_on.
Initialization: check input parameters
buffer input parameters
prepare data selection
The input parameter I_DATAPAKID is not supported yet !
Invalid second initialization call -> error exit
IF NOT g_flag_interface_initialized IS INITIAL.
IF 1 = 2. MESSAGE e008(r3). ENDIF.
log_write 'E' "message type
'R3' "message class
'008' "message number
' ' "message variable 1
' '. "message variable 2
RAISE error_passed_to_mess_handler.
ENDIF.
Check InfoSource validity
CASE i_isource.
WHEN 'ZTRNREC_FM_DELTA'.
WHEN OTHERS.
IF 1 = 2. MESSAGE e009(r3). ENDIF.
log_write 'E' "message type
'R3' "message class
'009' "message number
i_isource "message variable 1
' '. "message variable 2
RAISE error_passed_to_mess_handler.
ENDCASE.
Check for supported update mode
CASE i_updmode.
WHEN 'F'.
WHEN 'D'.
WHEN 'R'.
WHEN OTHERS.
IF 1 = 2. MESSAGE e011(r3). ENDIF.
log_write 'E' "message type
'R3' "message class
'011' "message number
i_updmode "message variable 1
' '. "message variable 2
RAISE error_passed_to_mess_handler.
ENDCASE.
Check for obligatory selection criteria
APPEND LINES OF i_t_select TO g_t_select.
Fill parameter buffer for data extraction calls
g_s_interface-requnr = i_requnr.
g_s_interface-isource = i_isource.
g_s_interface-maxsize = i_maxsize.
g_s_interface-initflag = i_initflag.
g_s_interface-updmode = i_updmode.
g_s_interface-datapakid = i_datapakid.
g_flag_interface_initialized = sbiwa_c_flag_on.
Fill field list table for an optimized select statement
(in case that there is no 1:1 relation between InfoSource fields
and database table fields this may be far from beeing trivial)
APPEND LINES OF i_t_fields TO g_t_segfields.
ELSE. "Initialization mode or data extraction ?
Data transfer: First Call OPEN CURSOR + FETCH
Following Calls FETCH only
LOOP AT G_T_SELECT INTO L_S_SELECT
WHERE FIELDNM = 'ZTIMESTAMP'.
ENDLOOP.
IF G_COUNTER_DATAPAKID = 0.
IF L_S_SELECT-LOW = '' AND L_S_SELECT-HIGH = ''.
OPEN CURSOR WITH HOLD G_CURSOR FOR
SELECT (g_t_fields)
FROM ZTRN_REC_TIME.
ELSE.
OPEN CURSOR WITH HOLD G_CURSOR FOR
SELECT (g_t_fields)
FROM ZTRN_REC_TIME
WHERE ZTIMESTAMP >= L_S_SELECT-LOW
AND ZTIMESTAMP <= L_S_SELECT-HIGH.
ENDIF.
ENDIF.
FETCH NEXT CURSOR G_CURSOR
APPENDING CORRESPONDING FIELDS
OF TABLE E_T_DATA
PACKAGE SIZE S_S_IF-MAXSIZE.
IF SY-SUBRC <> 0.
CLOSE CURSOR G_CURSOR.
RAISE NO_MORE_DATA.
ENDIF.
S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
ENDIF.
ENDFUNCTION.
I found some similar issue in this forum by link
Generic Extractor Delta Function Module code, but still I could not get clear answer.
Can you please help me:
1) why there is no value for i_source , how to fix it?
2) For the delta logic for ztimestemp, is it correct?
3) Need I modify the entries in ROOSOURCE ?
Thanks a lot !!!Hello Andre,
Thanks a lot for your help. I did some change , but still does not work. Could you please help check.
Now the source code are the following, It's based on the RSAX_BIW_GET_DATA_SIMPLE, as you confirm that this also supply the update mode (full, initial delta, delta).
FUNCTION RSAX_BIW_GET_DATA_TRAININGREC1.
""Local Interface:
*" IMPORTING
*" VALUE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR
*" VALUE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
*" VALUE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
*" VALUE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
*" VALUE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY OPTIONAL
*" VALUE(I_REMOTE_CALL) TYPE SBIWA_FLAG DEFAULT SBIWA_C_FLAG_OFF
*" 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 ZTRN_REC_TIME OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
Auxiliary Selection criteria structure
DATA: L_S_SELECT TYPE SRSC_S_SELECT.
Maximum number of lines for DB table
STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
counter
S_COUNTER_DATAPAKID LIKE SY-TABIX,
cursor
S_CURSOR TYPE CURSOR.
Select ranges
RANGES:
L_R_ZTIMESTAMP FOR ZTRN_REC_TIME-ZTIMESTAMP.
Initialization mode (first call by SAPI) or data transfer mode
(following calls) ?
IF I_INITFLAG = SBIWA_C_FLAG_ON.
Initialization: check input parameters
buffer input parameters
prepare data selection
Check DataSource validity
CASE I_DSOURCE.
WHEN 'ZTRNREC_FM'.
WHEN OTHERS.
IF 1 = 2. MESSAGE E009(R3). ENDIF.
this is a typical log call. Please write every error message like this
LOG_WRITE 'E' "message type
'R3' "message class
'009' "message number
I_DSOURCE "message variable 1
' '. "message variable 2
RAISE ERROR_PASSED_TO_MESS_HANDLER.
ENDCASE.
APPEND LINES OF I_T_SELECT TO S_S_IF-T_SELECT.
Fill parameter buffer for data extraction calls
S_S_IF-REQUNR = I_REQUNR.
S_S_IF-DSOURCE = I_DSOURCE.
S_S_IF-MAXSIZE = I_MAXSIZE.
Fill field list table for an optimized select statement
(in case that there is no 1:1 relation between InfoSource fields
and database table fields this may be far from beeing trivial)
APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.
ELSE. "Initialization mode or data extraction ?
Data transfer: First Call OPEN CURSOR + FETCH
Following Calls FETCH only
First data package -> OPEN CURSOR
IF S_COUNTER_DATAPAKID = 0.
LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'ZTIMESTAMP'.
MOVE-CORRESPONDING L_S_SELECT TO L_R_ZTIMESTAMP.
APPEND L_R_ZTIMESTAMP.
ENDLOOP.
Determine number of database records to be read per FETCH statement
from input parameter I_MAXSIZE. If there is a one to one relation
between DataSource table lines and database entries, this is trivial.
In other cases, it may be impossible and some estimated value has to
be determined.
IF L_S_SELECT-LOW = '' AND L_S_SELECT-HIGH = ''.
OPEN CURSOR WITH HOLD S_CURSOR FOR
SELECT (S_S_IF-T_FIELDS)
FROM ZTRN_REC_TIME.
ELSE.
OPEN CURSOR WITH HOLD G_CURSOR FOR
SELECT (S_S_IF-T_FIELDS)
FROM ZTRN_REC_TIME
WHERE ZTIMESTAMP >= L_S_SELECT-LOW
AND ZTIMESTAMP <= L_S_SELECT-HIGH.
ENDIF.
ENDIF. "First data package ?
Fetch records into interface table.
named E_T_'Name of extract structure'.
FETCH NEXT CURSOR S_CURSOR
APPENDING CORRESPONDING FIELDS
OF TABLE E_T_DATA
PACKAGE SIZE S_S_IF-MAXSIZE.
IF SY-SUBRC <> 0.
CLOSE CURSOR S_CURSOR.
RAISE NO_MORE_DATA.
ENDIF.
S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
ENDIF. "Initialization mode or data extraction ?
ENDFUNCTION.
I think it already includes the important statements you suggested.
I test this FM in RSA3, for the Full load mode, it works fine. Also if I checked the debug mode in execution , it will stop in the code and let me debug.
But when I choose other mode, like 'initializion of the delta transfer' or simulation of initial delta, I always get error 'error occurs during the extraction' .. even I choose debug mode, but it could not enter the code for debug..
Till now I did not see any parameter or value for the upload mode..
Another questions is that, in RSO2, I define Ztimestamp as my delta field.. But , can I add other field as selection condition in the datasource definition, and has its range table in this function module ?
Should I change the entries in ROOSOURCE for this datasource ??
Please let me know your feedback, do you have some concret example for generic delta extraction ?
Thanks a lot ! -
RV_PRICE_PRINT_ITEM Function module issue?
Hi,
Can anybody let me know as to what exactly is returned to the structure TKOMVD in the function module RV_PRICE_PRINT_ITEM.
I know TKOMV is a table will contain condition records but what is TKOMVD?
Regards,
SmitheshIn the calculation schema you can customize your conditions. E.G: if they shall be printed or not.
So the FM gets you back two tables of conditions.
TKOMV (ALL of em)
TKOMVD (Just the ones that are marked as to be printed)
Those ones from TKOMVD are the ones you need for invoice printing.
But for calculation issues or whatever you may need to have a look at some conditions which are not marked as to be printed and so you get TKOMV back to be able to do so. -
Create customer function module issue
Dear All,
I wanted to created a customer master using the funcion module '/SAPNEA/SMAPI_CUSTOMER_CREATE' or BAPI_CUSTOMER_CREATEFROMDATA1
and I am passing PI_COMPANYDATA and pi_copyreference. But its throwing an error. I have debugged and found out the problem. It is saying the 'reference customer enter is not maintained in Tax table' (table: KNVI). Yes its true the reference customer is not existed in that table. But I dont want to maintain Tax details for my customer. Is there any other function module to create the customer with/without referencing a customer with the data I am passing. (or) atleast please let me know how to stop this function module stop checking this Tax table. One more point I would like to let u know here. I tried to create BDC but BDC does not have 'Email' field which is mandatory for us. Kindly let me know if u know any solution.
Regards
ShijaHi Shija,
I got the same tax juridiction problem while working with vendor creation.
we applied OSS notes to get rid of this tax juridiction verification. It will by passes some of the account groups fromt the tax juridiction verificaiton.
Please check the corresponding OSS notes to get rid of this problem. -
Vendor creation Function module - issue
hi guys,
i am trying to create a vendor using the Function module 'VENDOR_INSERT'' it is updating in the back ground.
The only problem is - it's not updating the address of the vendor.
i came to know from the forum that to update the same i should use FM - 'ADDR_SAVE_INTERN'.
kindly advise how to use the FM - 'ADDR_SAVE_INTERN'
regardsCheck this [Thread|Re: ADR6 and BP address;
Rhea. -
Hi Friends
I am having performance issue for this function-module(HR_TIM_REPORT_ABSENCE_DATA) and one my client got over 8 thousend employees . This function-module taking forever to read the data. is there any other function-module to read the absences data IT2001 .
I did use like this .if i take out this F.M 'HR_TIM_REPORT_ABSENCE_DATA_INI' its not working other Function-module.please Suggest me .
call function 'HR_TIM_REPORT_ABSENCE_DATA_INI'
exporting "Publishing to global memory
option_string = option_s "string of sel org fields
trig_string = trig_s "string of req data
alemp_flag = sw_alemp "all employee req
infot_flag = space "split per IT neccessary
sel_modus = sw_apa
importing
org_num = fdpos_lines "number of sel org fields
tables
fieldtab = fdtab "all org fields
field_sel = fieldnametab_m. "sel org fields
To Read all infotypes from Absences type.
RP_READ_ALL_TIME_ITY PN-BEGDA PN-ENDDA.
central function unit to provide internal tables: abse orgs empl
call function 'HR_TIM_REPORT_ABSENCE_DATA'
exporting
pernr = pernr-pernr
begda = pn-begda
endda = pn-endda
IMPORTING
SUBRC = SUBRC_RTA
tables
absences = absences_01
org_fields = orgs
emp_fields = empl
REFTAB =
APLTAB =
awart_sel_p = awart_s[]
awart_sel_a = awart_s[]
abstp_sel = abstp_s[]
i0000 = p0000
i0001 = p0001
i0002 = p0002
i0007 = p0007
i2001 = p2001
i2002 = p2002
i2003 = p2003.
Thanks & Regards
Reddyguessing will not help you much, check with SE30 to get a better insight
SE30
The ABAP Runtime Trace (SE30) - Quick and Easy
what is the total time, what are the Top 10 in the hitlist.
Siegfried -
Issue in EP: Function module throwing an exception
Hi Guys,
I have an Issue in EP.....which is a replica of the production system i am working on. I have an excel file to upload. I am using the function module 'text_convert_xls_to_sap' . This is working in Production sytem.
But i am getting an Error" File cannot be processed ".
in portal environment of the same program.
The exception is in the Function Module 'text_convert_xls_to_sap' in the " PERFORM get_spreadsheet_interface USING g_con_excel....".
Here sy-subrc = 1.
Can anyone tell me what exactly is going wrong here?
Thanks,
San
PS:Helpful answers will be rewardedHi!
The file is closed when i access. The issue is elsewhere and it is not reading the file...
Thanks,
San -
Issue with use of Function Module GUI_UPLOAD
Hi Experts,
I have an issue in using the Function Module GUI_UPLOAD for uploading the contents of an Excel file on the Presentation Server to an internal table in an ABAP Program.
My file consists of around 300 records but the FM succeeds in uploading only the first 6 lines to the Internal Table specified while calling the FM.
I dont have any idea why this happens. Any pointers in this direction will be helpful.
Thanks in advance.
Regards,
KeerthiHi,
Kindly go through this link below:
https://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=60655105
Hope it helps you
Regards
Mansi -
Issue with Delta in Function Module
Hi Team,
I have an issue with delta in Genric extraction using function module.Full load is working fine and i have taken post_date as delta field.plz chk the code if any delta related statements are missing.
FUNCTION ZRSAX_BIW_MANGEMENT_RAT .
""Local interface:
*" IMPORTING
*" VALUE(I_REQUNR) TYPE SRSC_S_IF_SIMPLE-REQUNR
*" VALUE(I_DSOURCE) TYPE SRSC_S_IF_SIMPLE-DSOURCE OPTIONAL
*" VALUE(I_MAXSIZE) TYPE SRSC_S_IF_SIMPLE-MAXSIZE OPTIONAL
*" VALUE(I_INITFLAG) TYPE SRSC_S_IF_SIMPLE-INITFLAG OPTIONAL
*" VALUE(I_READ_ONLY) TYPE SRSC_S_IF_SIMPLE-READONLY OPTIONAL
*" 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 ZQMBW_FUJ_MANAGEMENT OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
Example: DataSource for table MANAGEMENT RATING
TABLES: ZQMBW_MANAGEMENT.
Auxiliary Selection criteria structure
DATA: L_S_SELECT TYPE SRSC_S_SELECT.
Maximum number of lines for DB table
STATICS: S_S_IF TYPE SRSC_S_IF_SIMPLE,
counter
S_COUNTER_DATAPAKID LIKE SY-TABIX,
cursor
S_CURSOR TYPE CURSOR.
RANGES: POST_DATE FOR ZMMTVEND_RATING-POST_DATE,
VENDOR FOR ZMMTVEND_RATING-VENDOR.
Initialization mode (first call by SAPI) or data transfer mode
(following calls) ?
IF I_INITFLAG = SBIWA_C_FLAG_ON.
Initialization: check input parameters
buffer input parameters
prepare data selection
Check DataSource validity
CASE I_DSOURCE.
WHEN 'ZQMMANAGEMENT_DS'.
WHEN OTHERS.
IF 1 = 2. MESSAGE E009(R3). ENDIF.
this is a typical log call. Please write every error message like this
LOG_WRITE 'E' "message type
'R3' "message class
'009' "message number
I_DSOURCE "message variable 1
' '. "message variable 2
RAISE ERROR_PASSED_TO_MESS_HANDLER.
ENDCASE.
APPEND LINES OF I_T_SELECT TO S_S_IF-T_SELECT.
Fill parameter buffer for data extraction calls
S_S_IF-REQUNR = I_REQUNR.
S_S_IF-DSOURCE = I_DSOURCE.
S_S_IF-MAXSIZE = I_MAXSIZE.
Fill field list table for an optimized select statement
(in case that there is no 1:1 relation between InfoSource fields
and database table fields this may be far from beeing trivial)
APPEND LINES OF I_T_FIELDS TO S_S_IF-T_FIELDS.
ELSE. "Initialization mode or data extraction ?
IF S_COUNTER_DATAPAKID = 0.
Fill range tables BW will only pass down simple selection criteria
of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.
LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'VENDOR'.
MOVE-CORRESPONDING L_S_SELECT TO VENDOR.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = VENDOR-LOW
IMPORTING
OUTPUT = VENDOR-LOW.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = VENDOR-HIGH
IMPORTING
OUTPUT = VENDOR-HIGH.
APPEND VENDOR.
ENDLOOP.
LOOP AT S_S_IF-T_SELECT INTO L_S_SELECT WHERE FIELDNM = 'POST_DATE'.
MOVE-CORRESPONDING L_S_SELECT TO POST_DATE.
CONCATENATE L_S_SELECT-LOW6(4) L_S_SELECT-LOW3(2) L_S_SELECT-LOW+0(2) INTO POST_DATE-LOW.
CONCATENATE L_S_SELECT-HIGH6(4) L_S_SELECT-HIGH3(2) L_S_SELECT-HIGH+0(2) INTO POST_DATE-HIGH.
APPEND POST_DATE.
ENDLOOP.
**Get Management rating details
OPEN CURSOR WITH HOLD S_CURSOR FOR
SELECT VENDOR POST_DATE OVERALL_MNGT_RAT OVERALL_DEV_RAT FROM ZMMTVEND_RATING WHERE VENDOR IN VENDOR AND POST_DATE IN POST_DATE .
ENDIF.
Fetch records into interface table.
FETCH NEXT CURSOR S_CURSOR
APPENDING CORRESPONDING FIELDS
OF TABLE E_T_DATA
PACKAGE SIZE S_S_IF-MAXSIZE.
S_COUNTER_DATAPAKID = S_COUNTER_DATAPAKID + 1.
IF SY-SUBRC <> 0.
CLOSE CURSOR S_CURSOR.
RAISE NO_MORE_DATA.
ENDIF.
ENDIF. "Initialization mode or data extraction ?
ENDFUNCTION.Hi
Check URLs:
How to populate the ranges using FM for the SELECTs
Re: Generic Delta Function Module -
Issue with gui_download function module
Hi All,
I have an issue with gui_download function module that it is creating one extra line while downloading my internal table data into text file,which i donot want.i have searched for various threads but couldnot get the proper reply.Or please provide me some other Function Module which will not create one extra line.Please help.part 2
INCLUDE RPPPXD00.
DATA : BEGIN OF COMMON PART A.
INCLUDE RPPPXD10.
DATA : END OF COMMON PART.
INCLUDE PC2RXTW0.
INCLUDE RPC2RX00.
DATA : BEGIN OF COMMON PART B.
INCLUDE RPC2CD00.
DATA : END OF COMMON PART.
INCLUDE RPPPXM00.
INCLUDE RPCMGR00.
AT SELECTION-SCREEN OUTPUT.
CONCATENATE SY-DATUM2(6) SY-UZEIT0(4) INTO REF_NO.
LOOP AT SCREEN.
IF R1 = 'X'.
IF SCREEN-NAME = 'FLN' OR SCREEN-NAME = '%_FLN_%_APP_%-TEXT' OR
SCREEN-NAME = 'BTC' OR SCREEN-NAME = '%_BTC_%_APP_%-TEXT' OR
SCREEN-NAME = 'PY_DT' OR SCREEN-NAME = '%_PY_DT_%_APP_%-TEXT'"SOC BY ANKITA"
OR SCREEN-NAME = 'ORG_ID' OR SCREEN-NAME = '%_ORG_ID_%_APP_%-TEXT'
OR SCREEN-NAME = 'ORG_AC' OR SCREEN-NAME = '%_ORG_AC_%_APP_%-TEXT'
OR SCREEN-NAME = 'DEPT_CD' OR SCREEN-NAME = '%_DEPT_CD_%_APP_%-TEXT'
OR SCREEN-NAME = 'REF_NO' OR SCREEN-NAME = '%_REF_NO_%_APP_%-TEXT'
OR SCREEN-NAME = 'PRS_BNK' OR SCREEN-NAME = '%_PRS_BNK_%_APP_%-TEXT'
OR SCREEN-NAME = 'TRANS_TY' OR SCREEN-NAME = '%_TRANS_TY_%_APP_%-TEXT'
OR SCREEN-NAME = 'TRANS_ID' OR SCREEN-NAME = '%_TRANS_ID_%_APP_%-TEXT'
OR SCREEN-NAME = 'TRANS_RK' OR SCREEN-NAME = '%_TRANS_RK_%_APP_%-TEXT'."EOC BY ANKITA
SCREEN-ACTIVE = 0.
ENDIF.
ENDIF.
IF R2 = 'X'.
IF SCREEN-NAME = 'FLN' OR SCREEN-NAME = '%_FLN_%_APP_%-TEXT' OR
SCREEN-NAME = 'BTC' OR SCREEN-NAME = '%_BTC_%_APP_%-TEXT' OR
SCREEN-NAME = 'PREPBY' OR SCREEN-NAME = '%_PREPBY_%_APP_%-TEXT'
OR SCREEN-NAME = 'APROBY' OR SCREEN-NAME = '%_APROBY_%_APP_%-TEXT'
OR SCREEN-NAME = 'PY_DT' OR SCREEN-NAME = '%_PY_DT_%_APP_%-TEXT' "SOC BY ANKITA
OR SCREEN-NAME = 'ORG_ID' OR SCREEN-NAME = '%_ORG_ID_%_APP_%-TEXT'
OR SCREEN-NAME = 'ORG_AC' OR SCREEN-NAME = '%_ORG_AC_%_APP_%-TEXT'
OR SCREEN-NAME = 'DEPT_CD' OR SCREEN-NAME = '%_DEPT_CD_%_APP_%-TEXT'
OR SCREEN-NAME = 'REF_NO' OR SCREEN-NAME = '%_REF_NO_%_APP_%-TEXT'
OR SCREEN-NAME = 'PRS_BNK' OR SCREEN-NAME = '%_PRS_BNK_%_APP_%-TEXT'
OR SCREEN-NAME = 'TRANS_TY' OR SCREEN-NAME = '%_TRANS_TY_%_APP_%-TEXT'
OR SCREEN-NAME = 'TRANS_ID' OR SCREEN-NAME = '%_TRANS_ID_%_APP_%-TEXT'
OR SCREEN-NAME = 'TRANS_RK' OR SCREEN-NAME = '%_TRANS_RK_%_APP_%-TEXT'."EOC BY ANKITA
SCREEN-ACTIVE = 0.
ENDIF.
ENDIF.
IF R3 = 'X'.
IF SCREEN-NAME = 'PREPBY' OR SCREEN-NAME = '%_PREPBY_%_APP_%-TEXT'
OR SCREEN-NAME = 'APROBY' OR SCREEN-NAME = '%_APROBY_%_APP_%-TEXT'
OR SCREEN-NAME = 'PY_DT' OR SCREEN-NAME = '%_PY_DT_%_APP_%-TEXT' "SOC BY ANKITA
OR SCREEN-NAME = 'ORG_ID' OR SCREEN-NAME = '%_ORG_ID_%_APP_%-TEXT'
OR SCREEN-NAME = 'ORG_AC' OR SCREEN-NAME = '%_ORG_AC_%_APP_%-TEXT'
OR SCREEN-NAME = 'REF_NO' OR SCREEN-NAME = '%_REF_NO_%_APP_%-TEXT'
OR SCREEN-NAME = 'DEPT_CD' OR SCREEN-NAME = '%_DEPT_CD_%_APP_%-TEXT'
OR SCREEN-NAME = 'PRS_BNK' OR SCREEN-NAME = '%_PRS_BNK_%_APP_%-TEXT'
OR SCREEN-NAME = 'TRANS_TY' OR SCREEN-NAME = '%_TRANS_TY_%_APP_%-TEXT'
OR SCREEN-NAME = 'TRANS_ID' OR SCREEN-NAME = '%_TRANS_ID_%_APP_%-TEXT'
OR SCREEN-NAME = 'TRANS_RK' OR SCREEN-NAME = '%_TRANS_RK_%_APP_%-TEXT'."EOC BY ANKITA
SCREEN-ACTIVE = 0.
ENDIF.
ENDIF.
IF R4 = 'X'.
IF SCREEN-NAME = 'PREPBY' OR SCREEN-NAME = '%_PREPBY_%_APP_%-TEXT'"SOC BY ANKITA
OR SCREEN-NAME = 'APROBY' OR SCREEN-NAME = '%_APROBY_%_APP_%-TEXT'
OR SCREEN-NAME = 'BTC' OR SCREEN-NAME = '%_BTC_%_APP_%-TEXT'."EOC BY ANKITA
SCREEN-ACTIVE = 0.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
START-OF-SELECTION.
SELECT SINGLE * FROM T549Q WHERE PERMO = '01'
AND PABRJ = PRD+0(4)
AND PABRP = PRD+4(2).
FR_DT = T549Q-BEGDA.
TO_DT = T549Q-ENDDA.
CONCATENATE FR_DT0(4) FR_DT4(2) INTO FR_P.
CONCATENATE TO_DT0(4) TO_DT4(2) INTO TO_P.
PN-PAPER = PRD.
PN-PERMO = '01'.
GET PERNR.
RP-PROVIDE-FROM-LAST P0003 SPACE PN-BEGDA PN-ENDDA.
RP_PROVIDE_FROM_LAST P0001 SPACE PN-BEGDA PN-ENDDA.
IF PNP-SW-FOUND EQ 1.
SN = SN + 1.
ITAB1-SNO = SN.
ITCC-SNO = SN.
ITAB1-ENO = PERNR-PERNR.
ITAB1-NAM = PERNR-ENAME.
ELSE.
REJECT.
ENDIF.
RP-INIT-BUFFER.
RP-SEL-CALC.
CALL FUNCTION 'RP_EVALUATION_PERIODS'
EXPORTING
LAST_CALCULATED_DAY = P0003-ABRDT
LAST_DAY_IN_PERIOD = TO_DT
RETROCALCULATED_DAY = RP-SEL-CALC-RRDAT
TABLES
DIR = RGDIR
EVP = EVP
EXCEPTIONS
RGDIR_EMPTY = 1
INTERNAL_ERROR = 2
OTHERS = 3.
DESCRIBE TABLE EVP LINES LIN.
IF LIN > 0.
LOOP AT EVP.
IF EVP-IAPER = TO_P AND EVP-PAPER = TO_P.
RX-KEY-PERNR = PERNR-PERNR.
UNPACK EVP-SEQNR TO RX-KEY-SEQNO.
RP-IMP-C2-TN.
READ TABLE BT INDEX 1.
READ TABLE WPBP INDEX 1.
READ TABLE TAX INDEX 1."CHANGES BY ANKITA
ITAB1-BAC = BT-BANKN.
ITAB1-BKEY = BT-BANKL .
ITAB1-DEP = WPBP-KOSTL.
ITAB1-BETRG = BT-BETRG."CHANGES BY ANKITA
ITAB1-TAXID = TAX-TAXID."CHANGES BY ANKITA
YEAR = VERSC-PAYDT+0(4) - 11.
MONTH = VERSC-PAYDT+4(2).
DAY = VERSC-PAYDT+6(2).
CONCATENATE YEAR MONTH DAY INTO ITAB1-PDT.
ITAB1-PDT = VERSC-PAYDT - 110000.
ITCC-DEP = WPBP-KOSTL.
LOOP AT RT WHERE LGART = '/559'.
ITAB1-BTFR = RT-BETRG.
ITCC-BTFR = RT-BETRG.
IF EVP-SRTZA = 'P'.
ITAB1-BTFR = ITAB1-BTFR - RT-BETRG.
ELSE.
ITAB1-BTFR = ITAB1-BTFR + RT-BETRG.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDIF.
APPEND: ITAB1, ITCC.
CLEAR: ITAB1, ITCC.
END-OF-SELECTION.
CONCATENATE 'Prepared By:' ` ` PREPBY INTO PREPBY.
CONCATENATE 'Approved By:' ` ` APROBY INTO APROBY.
IF R1 = 'X'.
FORMAT COLOR 2.
ULINE (127).
NEW-LINE.
WRITE: 2 'Sr No.', 10 'Emp Num', 27 'Name'.
WRITE: 57 'Department'.
WRITE: 72 ' Transfer Amount' RIGHT-JUSTIFIED.
WRITE: 92 'Bank Key', 107 'Bank AC. Number'.
WRITE:1 '|', 8 '|', 25 '|', 55 '|', 70 '|', 90 '|', 105 '|', 127 '|'.
NEW-LINE.
ULINE (127).
NEW-LINE.
FORMAT COLOR OFF.
LOOP AT ITAB1.
SN = SY-TABIX.
WRITE: 2 SN, 10 ITAB1-ENO, 27 ITAB1-NAM.
WRITE: 57 ITAB1-DEP.
WRITE: 72 ITAB1-BTFR.
WRITE: 92 ITAB1-BKEY, 107 ITAB1-BAC.
WRITE: 1 '|', 8 '|', 25 '|', 55 '|', 70 '|', 90 '|', 105 '|', 127 '|'.
ULINE (127).
NEW-LINE.
ENDLOOP.
SKIP 4.
ULINE 90(32).
NEW-LINE.
WRITE: 90 PREPBY.
SKIP 4.
ULINE 90(32).
NEW-LINE.
WRITE: 90 APROBY.
ENDIF.
IF R2 = 'X'.
LOOP AT ITCC.
COLLECT ITCC INTO ITCOL.
ENDLOOP.
FORMAT COLOR 2.
ULINE (44).
NEW-LINE.
WRITE:2 'Sr No.', 9 'Department'.
WRITE: 27 'Transfer Amount ' RIGHT-JUSTIFIED.
WRITE:1 '|', 8 '|', 25 '|', 44 '|'.
NEW-LINE.
ULINE (44).
NEW-LINE.
FORMAT COLOR OFF.
LOOP AT ITCOL.
SN = SY-TABIX.
WRITE: 2 SN, 9 ITCOL-DEP, 27 ITCOL-BTFR.
WRITE:1 '|', 8 '|', 25 '|', 44 '|'.
NEW-LINE.
ULINE (44).
NEW-LINE.
ENDLOOP.
ENDIF.
IF R3 = 'X'.
LOOP AT ITAB1.
CLEAR: ITTF, P3, P11, P13, P6, V_BAC.
LEN = STRLEN( ITAB1-BKEY ).
IF LEN < 3.
CONCATENATE ITAB1-BKEY '***' INTO P3.
ELSE.
LEN = LEN - 3.
LEN = 3.
P3 = ITAB1-BKEY+LEN(3).
ENDIF.
CLEAR LEN.
V_BAC = ITAB1-BAC.
REPLACE ALL OCCURRENCES OF '-' IN ITAB1-BAC WITH ''.
CONDENSE ITAB1-BAC NO-GAPS.
LEN = STRLEN( ITAB1-BAC )."if length of acc num > limit
IF LEN > 11.
IT_FAIL-EN = ITAB1-ENO.
IT_FAIL-BA = V_BAC.
APPEND IT_FAIL.
CLEAR: IT_FAIL.
CONTINUE.
ENDIF.
P11 = ITAB1-BAC.
CONCATENATE P11 '***********' INTO P11.
above step is for putting '' in place of unfilled chars of P11.
P13 = ITAB1-BTFR * 100.
P6 = ITAB1-PDT+2(6).
CONCATENATE ` ` P3 P11 BTC P13 P6 INTO STR.
ITTF-ROW = STR.
APPEND ITTF.
ENDLOOP.
IF ITTF[] IS NOT INITIAL.
CONCATENATE FLN SY-DATUM SY-UZEIT '.txt' INTO FILEPATH.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = FILEPATH
FILETYPE = 'ASC'
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = ITTF
OTHERS = 22
SKIP 2.
IF SY-SUBRC <> 0.
WRITE:/ 'Unable to Download file at ', FILEPATH.
ELSE.
WRITE:/ 'File with following data downloaded at ', FILEPATH.
NEW-LINE.
SKIP 2.
LOOP AT ITTF.
WRITE:/ ITTF.
ENDLOOP.
ENDIF.
ELSE.
WRITE 'No Data, no file was downloaded'.
ENDIF.
IF IT_FAIL[] IS NOT INITIAL.
SKIP 2.
FORMAT COLOR 2.
WRITE 'Acc. No. of following employees exceeded the length limit'.
WRITE:/ 'So their entry was not created in the file'.
SKIP 1.
WRITE : 'Employee Number', 20 'Bank Acc. No.'.
FORMAT COLOR OFF.
LOOP AT IT_FAIL.
NEW-LINE.
WRITE : IT_FAIL-EN, 20 IT_FAIL-BA.
ENDLOOP.
ENDIF.
ENDIF.
IF R4 = 'X'."CHANGES BY ANKITA
WRITE:/ 'ERROR LOG - BANK A/C NO. CONTAINS ALPHANUMERIC'.
WRITE:/ 'EMPID' COLOR COL_POSITIVE,12 '|',15 'Receiving Bank Code' COLOR COL_POSITIVE,
40 '|','Receiver A/C No' COLOR COL_POSITIVE.
PERFORM EXTRACT_DATA.
SKIP 2.
ENDIF."EOC
RP-READ-PAYROLL-DIR.
Edited by: ANKITA BHARDWAJ on Dec 9, 2009 10:36 AM -
Function Module GUI_DOWNLOAD: Type String Issue
I am working in 4.6C. I have used this Function Module many times in the past without issue, but not at this site. It abends and gives me the error message:
The call to the function module "GUI_DOWNLOAD" is incorrect:
The function module interface allows you to specify only fields
of a particular type under "FILENAME". The field "FNAME" specified here
has a different field type.
Here is the field declaration in the code:
PARAMETER: fname type rlgrap-filename DEFAULT 'C:/New_PO_Format.xls'.
The import parameter in GUI_DOWNLOAD for FILENAME is type STRING. When I double click on STRING in the FM I get "Unable to find a tool to process request". And, TYPE STRING does not exist in the system? I started making a Z version of GUI_DOWNLOAD, but it started giving me headaches because I had to start copying other SAP function modules.
Am I missing something? Or, is there a new and improved version of GUI_DOWNLOAD to use?data : v_file type string.
PARAMETER: fname type rlgrap-filename DEFAULT 'C:/New_PO_Format.xls'.
start-of-selection.
v_file = fname.
use v_file in gui_download parameter.
Thanks
Seshu -
Issues in IDOC_XML_FILE function module in ECC5.0
Hi,
I used the function module IDOC_XML_FILE to upload and convert XML file from the application server to idoc. It was working fine in 4.6C. Howeverm when we recently upgraded to ECC5.0, the version of this function module changed. And we are facing issues with this.
- The FM is not reading the XML file correctly (There are some blank spaces while reading the file using the method, call method l_conv->read( importing data = g_xml_string ) and
- The parsing method is throwing error (CALL METHOD l_mini_parser->parse_string)
Can anybody tell whether any SAP notes available for the corrections.
Regards,
HariQuestion rephrased and asked again to improve clarity
-
Hi All,
Need some urgent help..
Iam facing some issue with the Function Module 'SKWF_FIND_BY_QUERY' in a BW ECC6.0 system.
As shown below, in the function module, the Table IT_PROPERTIES_RESULT gets populated with some values based on inputs like IT_CLASSES, IT_QUERY, and L.
This updation of IT_PROPERTIES_RESULT table is happening for some of the services sent through IT_QUERY and is not getting populated for some.
call function 'SKWF_FIND_BY_QUERY
exporting
CONNECTION_SPACE =
OBJ_TYPE = 'L'
PTYPE =
X_STRICT =
IMPORTING
ERROR =
tables
CLASSES = IT_CLASSES
QUERIES = IT_QUERY
RESULT_OBJECTS = IT_LOIO
PROPERTIES_REQUEST = PROPERTIES_RESULT = IT_PROPERTIES_RESULT.
The values are as follows:-
Values getting populated in IT_CLASSES BW_LO_TRAN Values getting populated in IT_QUERY 1) BW_QUERY, 2) /BIC/ZSERVICE
I would like to know whether any Standard Customizing BW transaction is present that is maintaining IT_PROPERTIES_RESULT table properties and fetching through this Function Module.
Also, suggest how this issue can be resolved
Thanks & Regards,
Shailesh nagarThanks Suhas. That definitely helped.
Also the following links helped.
http://help.sap.com/saphelp_nw70/helpdata/EN/86/1c8c3e94243446e10000000a114084/frameset.htm
/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
Cheers,
Preethi -
Issue in 'SO_NEW_DOCUMENT_SEND_API1' Function Module
Hi All,
I have a problem when using the Function Module 'SO_NEW_DOCUMENT_SEND_API1'.
I am able to send data to SAP Users Email ID's using this function module, but the issue here is when i am sending
the content and receivers lists all are working fine.
But In The 'From:' part of Email receiver is getting
My Name[SAP User [email protected]]
like Shaik Rayeezuddin[[email protected]]
But i want it to be shown as it is sent by SAP but not by me. If we can put any constant as 'SAP' also it is ok, But it should not show my details in 'FROM:' Part os Email.
Can anybody solve my problem as i need it urgent.
Thanks in advance.
Thanks & Regards,
Rayeezuddin.Hi All,
Thanks for all your replies.
I resolved the issue By passing parameter
originator = '[email protected]'
to F.M 'SO_OBJECT_SEND' that is in F.M
SO_NEW_DOCUMENT_SEND_API1.
we can pass anything we want here, that will come in 'From:' part of Email ID.
once again thanks for those replies.
Thanks & Regards,
Rayeezuddin. -
Hi Gurus
I have an issue with function module, i am passing a filepath to the function module which is like this /temp/folder/AFILE.csv.
to pull the data from application server. When ever it enters to the function module it is changing the file name as /TEMP/FOLDER/AFILE.CSV( it is changing the entire thing to capitol letters), I just want to know that there is any way where i can pass the file path as it is.
Regards
Kumar.If it is a custom Function module then goto the domain of the file parameter of the FM (if u r using std. domain then change it to a custom domain) and set the lowercase checkbox under Definition tab.
Regards,
Joy.
Maybe you are looking for
-
I have in my ipad icloud backup window open and I can't close and I can't do anything I tried to press OK and nothing happen is freezing
-
Why don't my Apple USB keyboard and mouse work in Win XP after bootcamp driver installed
Hey there, I just installed Win XP Pro + SP2 using Bootcamp 3.0 on my Mac Pro 1.1 (2006) which is running Snow Leopard (10.6.8). The Win XP installation went flawlessly and everything seemed to be working OK (mouse & keyboard were fine) until I inst
-
so I've been using my ipod touch for three months already. Then I noticed that the more I use my camera, which is not very often, I only use it to snapshot wonderful events in my life, the more "crashing" becomes often in my ipod. There are several t
-
Can someone show me how to use sorted/tree set
i have a server program, and i want to create a sortedset, then everytime a client connects an element(nickname) is added to the sortedset.. i have to create a syncronized one i need to know how to add elements, and read elements one-by-one into a st
-
Clock In Clock Out Report without running Time Evaluation
Hi Every1 Is it possible to get report on clock in clock out without running time evaluation?? Can we get a report on Time events after uploading Punch in punch out from other system thru BDC? Here requirement is as soon as punch in punch out is uplo