Function Module Net Book Val - FI module
Dear All,
Are there any function modules to get the Net Book value for a particular Asset and for a partucular period.
yes Kamini,
try FI_AA_VALUES_CALCULATE
and value anlcv-lfd_bchwrt
hope that helps
Andreas
Similar Messages
-
Function Module for calculation of the net price of a configurable material
Hi,
I would like to know if a function module allows to calculate the purchasing /net price of a configurable material at a vendor and at a requested delivery date before the creation of a purchasing order.
For configurable materials, we have no PIR and no moving / standard price thus the valuation price in the PR is blank.
I would like to fill in the field "valuation price" in the PR with the net price we can find in the PO.
However the PR is created before the PO.
Thanks a lot in advance for yours reply.
regards,hi Pravenn,
I don't know about these functions, but u can try anything like this:
data:
strdate like sy-datum value '20070901',
enddate like sy-datum value '20070909',
date(10),
moddate(1).
date = enddate - strdate + 1.
moddate = date mod 7.
date = date div 7.
if moddate <> 0.
date = date + 1.
endif.
write: / date.
Regards
Allan Cristian
Message was edited by:
Allan Cristian -
Function module to update net price in purchase information record ???
hi all,
Is there any function module to update net price (PREIS) for each material in the purchase info record?
points will be rewarded for helpful answersHi,
Use below FM :
Clear : i_prot.
refresh : i_prot.
Delivery Update
CALL FUNCTION 'LE_MOB_DELIVERY_UPDATE'
EXPORTING
do_commit = 'X'
TABLES
t_delivery_items = i_lips
prot = i_prot
EXCEPTIONS
conversion_overflow = 1
essential_data_missing = 2
error = 3
nothing_to_update = 4
lock_after_update_failed = 5
error_in_delivery_update = 6
OTHERS = 7.
COMMIT WORK.
Pass lips-lgort..
Refer
https://forums.sdn.sap.com/click.jspa?searchID=4212688&messageID=3855382
Regards -
Function Module for book Training Program for an employee
Hi All,
As we are having the Standard function module "HR_INFOTYPE_OPERATION" for PA infotypes.
So is there any function module by using that function module in program we can Book,Cancel, Rebook , Prebook a training program for an employee as we can Book,Cancel, Rebook , Prebook through transaction code PSV1 in Training Module .
And i want to know the table names where the data insert / update when we book a training program for an employee through transaction code PSV1 in Training & event Module.
can anyone help...?
Regards,
Priya.Hi,
use FM 'RH_PARTICIPATION_INSERT' for Book attendance . -
Require function module for start and end bucket of planning book
Hello All,
I need to fetch the start and end bucket date of a planning book. Is there any function module which can directly give first and last bucket date of a planning book ?
Thanks & Regards,
VivekHello dear Sanjeev / Datta,
Thanks for your prompt response.
The problem resolved. The solution is as follows.
Step1) CALL FUNCTION '/SAPAPO/MSDP_PB_READ_DVIEW'
Input : Plng book and dataview
output: cs_pbdvwhdr = ls_header (in changing parameter)
Step2) CALL FUNCTION '/SAPAPO/SDP_TB_CREATE_COLS'
Input: bucket Profile of past and future, which we will get from step1.
And from date as space in a variable of type datum (As the parameter is mandatory)
Output: et_cols_ext (Importing table) which will give start and end date.
Hope, This solution will help others also.
Thanks & Regards,
Vivek -
Function Module to Execute BEx Query and Save as work book.
Hi
I have a requirement for executing the Query after the data is loaded into the cube and save as Workbook and emailing to the user. Is there any Function module to Execute the Query and saving as Work book? . Please suggest me the way how to approach the problem.
Thanks for your help in advance.Hi,
It is possible to execute the Query and send the result as workbook vial email to the user.
For that use should use Information Broadcaster.
Steps:
1. Goto information broadcaster.
2. Choose object type as "Query"
3.Click create new setting.
4. Give description and choose distribution type as "Broadcast E-mail"
5.Choose output format "XML(MS Excel)
6.In recipient tab Give valid e-mail addres which you want to send.
7.Save it. and give technical name
8.Click schedule.
9.choose "Execution with Data Change in the InfoProvider " correspondig infoprovider will be shown (check the check box)
10. that's it. whenever data loaded in your infocube, it will be automatically executed and send to user mail.
<removed> if u want more information let me know.
Regards,
Senthil Kumar.P -
How to get planning area if I have planning book - Function module/table
Hello All,
Our basic requirement is to find out whether the planning book we are using is DP relevant or SP relevant. (inside the custom program)
One way is to find out the relevant planning area and find out if the planning area is DP relevant or SP relevant.
But can anyone suggest if there are any tables or function modules to achieve the same?
Thanks a lot.
Regards,
ChandanDear Chandan,
You can use the table "/SAPAPO/PBMVW" for your issue. "APP_SNP" field tells if it SNP planning book or not. Thee tables gives all planning books present in the system.
If you want dataview's you can use table ""/SAPAPO/PBDVW"".
I hope the information solves your issue.
Thanks and Regards,
Nithin. -
Cash book printout - forms & function module
Hi SAP Gurus,
Please provide me for cash book the function modules involved and standard sap forms for printout in the following-
1. cash receipt tab
2. cash payment tab
3. check receipt
4. check issued
I want to attach my own form for this functions.
THANKSHi....
go to FBCJ transaction and check for output type. then got to NACE and find out what are the forms assigned or go to NAST table find entries based on output type. there u can find form and program name.
Regards,
KP. -
Need name of a function module or BAPI to update the Tax Classification val
Hi Guru's
Need name of a function module or BAPI to update the Tax Classification value for Material master.
Thanks in advance.Hi
U can try to use BAPI_MATERIAL_SAVEREPLICA
Max -
Function module to book one huge FI salary document?
Hello together,
following initial situation:
I get a file with various number of lines (e.g. over 3000 lines). All lines together describes one single FI document.
Is there a function module which can process an internal table (my source file) with various lines and create one single FI document???
Thanks in advance.
Regards1) you must split your file (here: into 4 documents) because of the line-restriction of ~950 lines per document
2) use fm AC_DOCUMENT_DIRECT_INPUT or report rfbibl00
3) can't you collect your data?
-e.g. per BUKRS/HKONT/KOSTL
A.
Edited by: Andreas Mann on Apr 13, 2010 8:07 AM -
Delta fo Generic extractor using function module
Hi,
I am using the following function module for generic extractor but its always showing me extraction error.Could anyone please suggest to resolve the issue.
Thanks in advance fo rsuggestion.
FUNCTION Z_BW_SALESDATA_EXTRACT_CHNG2.
""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 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
TABLES: VBFA,VBRK,tadir.
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.
user defined variables.
DATA : X_UPDMODE(1) Type c, " Update Type
X_LastUpdate Like Sy-Datum. " Last Update Date
X_LastUpdate TYPE RODELTAID. " Last Update Date "TCS_KAP
Select ranges
RANGES: L_R_VBELN FOR VBAK-VBELN,
L_R_AUDAT FOR VBAK-AUDAT.
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 'Z_BW_SDDATA_CREATEON'.
WHEN 'Y'.
WHEN 'Z'.
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 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
READ TABLE i_t_select INTO l_s_select WITH KEY fieldnm = 'VBELN'.
IF sy-subrc <> 0.
IF 1 = 2. MESSAGE e010(r3). ENDIF.
log_write 'E' "message type
'R3' "message class
'010' "message number
'PGMID' "message variable 1
' '. "message variable 2
RAISE error_passed_to_mess_handler.
ENDIF.
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.
Store Update mode in static variable...
X_UPDMODE = I_UPDMODE.
Select Single DELTAID
Into X_LastUpdate
From ROOSGENDLM
Where OLTPSOURCE = 'Z_BW_SDDATA_CREATEON'.
If X_LastUpdate Is Initial.
X_LastUpdate = '19800101'. " The oldest..., this should not happen
Endif.
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
X_UPDMODE = I_UPDMODE.
First data package -> OPEN CURSOR
IF g_counter_datapakid = 0.
Fill range tables for fixed InfoSources. In the case of generated
InfoSources, the usage of a dynamical SELECT statement might be
more reasonable. BIW will only pass down simple selection criteria
of the type SIGN = 'I' and OPTION = 'EQ' or OPTION = 'BT'.
LOOP AT g_t_select INTO l_s_select WHERE fieldnm = 'VBELN'.
MOVE-CORRESPONDING l_s_select TO L_R_VBELN.
APPEND L_R_VBELN.
ENDLOOP.
LOOP AT g_t_select INTO l_s_select WHERE fieldnm = 'AUDAT'.
MOVE-CORRESPONDING l_s_select TO L_R_AUDAT.
APPEND L_R_AUDAT.
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 InfoSource table lines and database entries, this is trivial.
In other cases, it may be impossible and some estimated value has to
be determined.
*added by Yogesh
DELETE FROM ZBWSALEDATA.
*ended by Yogesh
l_maxsize = g_s_interface-maxsize.
Check for supported update mode
CASE X_UPDMODE.
WHEN 'F' Or 'I'. " Full or Init
**get sales orders
SELECT *
INTO CORRESPONDING FIELDS OF TABLE I_SALESDATA
FROM VBAK AS K
INNER JOIN VBAP AS P
ON PVBELN = KVBELN
WHERE K~VBELN IN L_R_VBELN
AND K~AUDAT IN L_R_AUDAT
AND K~VBTYP = 'C'.
IF I_SALESDATA[] IS NOT INITIAL.
PERFORM F_GET_DATA. "get data
PERFORM F_DEL_VATCOND. "delete vat conditions
PERFORM F_GET_TAR_COSTUNIT. "get tariff cost unit
PERFORM F_GET_NETVAL TABLES IT_VBDPA1. "get net val of the item
PERFORM F_GET_SALESDATA.
*write perform with name F_INSERT_DB_ZBWSALEDATA.
PERFORM F_INSERT_DB_ZBWSALEDATA. "insert into table ZBWSALESDATA
LOOP AT I_SALESDATA WHERE NETPR = 0.
MOVE-CORRESPONDING I_SALESDATA TO I_SALESDATA_FIN.
APPEND I_SALESDATA_FIN.
ENDLOOP.
SORT I_SALESDATA_FIN BY VBELN POSNR KSCHL.
DELETE ADJACENT DUPLICATES FROM I_SALESDATA_FIN
COMPARING VBELN POSNR
KSCHL.
INSERT ZBWSALEDATA FROM TABLE I_SALESDATA_FIN.
ENDIF.
WHEN 'D'. " Delta
SELECT *
INTO CORRESPONDING FIELDS OF TABLE I_SALESDATA
FROM VBAK AS K
INNER JOIN VBAP AS P
ON PVBELN = KVBELN
WHERE K~ERDAT >= X_LastUpdate
WHERE K~ERDAT >= X_LastUpdate+0(8) "TCS_KAP
AND K~VBTYP = 'C'.
IF I_SALESDATA[] IS NOT INITIAL.
PERFORM F_GET_DATA. "get data
PERFORM F_DEL_VATCOND. "delete vat conditions
PERFORM F_GET_TAR_COSTUNIT. "get tariff cost unit
PERFORM F_GET_NETVAL TABLES IT_VBDPA1. "get net val of the item
PERFORM F_GET_SALESDATA.
*write perform with name F_INSERT_DB_ZBWSALEDATA.
PERFORM F_INSERT_DB_ZBWSALEDATA. "insert into table ZBWSALESDATA
LOOP AT I_SALESDATA WHERE NETPR = 0.
MOVE-CORRESPONDING I_SALESDATA TO I_SALESDATA_FIN.
APPEND I_SALESDATA_FIN.
ENDLOOP.
SORT I_SALESDATA_FIN BY VBELN POSNR KSCHL.
DELETE ADJACENT DUPLICATES FROM I_SALESDATA_FIN
COMPARING VBELN POSNR
KSCHL.
INSERT ZBWSALEDATA FROM TABLE I_SALESDATA_FIN.
ENDIF.
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.
**end get sales orders
OPEN CURSOR WITH HOLD g_cursor FOR
SELECT (g_t_fields) FROM ZBWSALEDATA.
WHERE pgmid IN l_r_pgmid AND
object IN l_r_object.
ENDIF. "First data package ?
Fetch records into interface table. There are two different options:
- fixed interface table structure for fixed InfoSources have to be
named E_T_'Name of assigned source structure in table ROIS'.
- for generating applications like LIS and CO-PA, the generic table
E_T_DATA has to be used.
Only one of these interface types should be implemented in one API !
FETCH NEXT CURSOR g_cursor
APPENDING CORRESPONDING FIELDS
OF TABLE E_T_DATA
PACKAGE SIZE l_maxsize.
IF sy-subrc <> 0.
CLOSE CURSOR g_cursor.
RAISE no_more_data.
ENDIF.
g_counter_datapakid = g_counter_datapakid + 1.
ENDIF. "Initialization mode or data extraction ?
Best regards,
YogeshDear Yogesh,
Try to debug the code by putting a break point at select statement...is the FM Syntactically correct ??
Check the Select statements..if all fields are not required avoid using Select * , and use always for all entries rather than JOINS..
Note : For Joins you have to specify the Fields in the Select...Dont use Select * ....
Hope it helps..
Thanks,
Krish -
Help needed - ABAP for function modules and routines.
Dear BW gurus,
Hope everyone is doing great.
I gotta project recently and we are going live in 3 weeks.My BWLead is getting rolled out in a week and he has to make the knowledge transfer to me ASAP.The bottle-necking thing is I need to have a good idea about the function modules and routines.So I request our SND community to help me out with good ABAP documents for function modules,routines and query.
my mail id is [email protected]
Thanks in advance
Have a nice day
Regards
sathiyaHello Sam,
You can create function module in ABAP using tcode SE37.
For more informations on ABAP:
http://help.sap.com/saphelp_47x200/helpdata/en/c9/5472f6787f11d194c90000e8353423/frameset.htm
Use http://help.sap.com
and also use <b>ABAPDOCU</b> transaction.
Check these links also...
<b>Online PDFs:</b>
http://easymarketplace.de/online-pdfs.php
<b>ABAP HELP</b>
If you check these links, you can find many example programs.
http://www.sap-img.com/abap.htm
http://www.sapdevelopment.co.uk/tips/tipshome.htm
http://help.sap.com/printdocu/core/Print46c/en/Data/Index_en.htm
http://sap.ittoolbox.com/nav/t.asp?t=322&p=322&h1=322
http://sappoint.com/abap/
FAQs in ABAP
http://www.sap-img.com/abap/more-than-100-abap-interview-faqs.htm
Smart forms
http://www.sap-basis-abap.com/sapsf001.htm
Workflow
<http://www.sap-img.com/workflow/sap-workflow.htm>
ALV
http://www.geocities.com/mpioud/Abap_programs.html
Mail
http://www.geocities.com/mpioud/Z_EMAIL_ABAP_REPORT.html
http://www.thespot4sap.com/Articles/SAP_Mail_SO_Object_Send.asp
Table control in BDC
http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
SAP Scripts:
http://sappoint.com/abap/
http://www.henrikfrank.dk/abapuk.html
Some useful ABAP Links for learning:
http://cma.zdnet.com/book/abap/index.htm
http://www.sapdevelopment.co.uk/
http://www.sap-img.com/
http://juliet.stfx.ca/people/fac/infosys/abap.htm
http://help.sap.com/saphelp_46c/helpdata/en/d3/2e974d35c511d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_46c/helpdata/en/d6/0db357494511d182b70000e829fbfe/frameset.htm
http://www.henrikfrank.dk/abapexamples/SapScript/sapscript.htm
http://www.sapgenie.com/abap/example_code.htm
http://www.geocities.com/SiliconValley/Campus/6345/abapindx.htm
http://help.sap.com/printdocu/core/Print46c/en/Data/Index_en.htm
http://help.sap.com/saphelp_40b/helpdata/en/4f/991f82446d11d189700000e8322d00/applet.htm
http://www.sap-img.com/abap-function.htm
http://www.sapgenie.com/abap/code/abap19.htm
http://www.sap-img.com/abap/more-than-100-abap-interview-faqs.htm
http://www.planetsap.com/Tips_and_Tricks.htm
http://help.sap.com/saphelp_40b/helpdata/ru/d6/0dc169494511d182b70000e829fbfe/applet.htm
http://www.henrikfrank.dk/abapexamples/SapScript/symbols.htm
http://www.henrikfrank.dk/abapexamples/index.html
http://sap.ittoolbox.com/documents/document.asp?i=752
http://members.aol.com/_ht_a/skarkada/sap/
http://sappoint.com/abap/
http://members.tripod.com/abap4/SAP_Functions.html
http://members.ozemail.com.au/~anmari/sap/index.html
http://www.planetsap.com/Userexit_List.htm
http://www.planetsap.com/Tips_and_Tricks.htm
http://www.kabai.com/abaps/q.htm
http://www.planetsap.com/Userexit_List.htm
http://help.sap.com/saphelp_bw21c/helpdata/en/c4/3a8090505211d189550000e829fbbd/frameset.htm
http://www.sapgenie.com/abap/bapi/example.htm
http://help.sap.com/saphelp_45b/helpdata/en/65/897415dc4ad111950d0060b03c6b76/content.htm
http://www.sap-basis-abap.com/index.htm
http://help.sap.com/saphelp_40b/helpdata/en/fc/eb2c46358411d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_46c/helpdata/en/aa/aeb23789e95378e10000009b38f8cf/frameset.htm
http://www.geocities.com/ResearchTriangle/1635/system.html
http://www.sapdesignguild.org/resources/MiniSG/3_Managing/3_Functions_Table_Control.htm
http://help.sap.com/saphelp_45b/helpdata/en/d1/801bdf454211d189710000e8322d00/content.htm
http://www.sapfans.com/sapfans/repos/saprep.htm
http://www.planetsap.com/howdo_a.htm
http://help.sap.com/saphelp_util464/helpdata/en/69/c2516e4ba111d189750000e8322d00/content.htm
http://www.sapgenie.com/abap/smartforms_detail.htm
http://www.sap-img.com/abap.htm
http://help.sap.com/saphelp_46c/helpdata/en/fc/eb2d67358411d1829f0000e829fbfe/content.htm
http://www.geocities.com/victorav15/sapr3/abap.html
http://www.henrikfrank.dk/abapexamples/SapScript/sapscript.htm
http://abap4.tripod.com/Other_Useful_Tips.html
http://help.sap.com/saphelp_45b/helpdata/en/cf/21ee2b446011d189700000e8322d00/content.htm
http://www.sap-basis-abap.com/sapmm.htm
http://sap.ittoolbox.com/nav/t.asp?t=303&p=448&h1=303&h2=322&h3=448
http://sapfans.com/
http://cma.zdnet.com/book/abap/ch03/ch03.htm
http://help.sap.com/saphelp_40b/helpdata/en/4f/991f82446d11d189700000e8322d00/applet.htm
http://sappoint.com/abap/
http://www.henrikfrank.dk/abapuk.html
http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
http://www.sapgenie.com/abap/index.htm
http://www.sap-img.com/abap.htm
http://www.sapdevelopment.co.uk/tips/tipshome.htm
http://help.sap.com/printdocu/core/Print46c/en/Data/Index_en.htm
http://sap.ittoolbox.com/nav/t.asp?t=322&p=322&h1=322
http://sap.ittoolbox.com/nav/t.asp?t=448&p=448&h1=448
http://www.thespot4sap.com/
http://www.kabai.com/abaps/q.htm
http://www.geocities.com/mpioud/Abap_programs.html
http://www.sapgenie.com/abap/tips_and_tricks.htm
http://www.sapassist.com/code/d.asp?whichpage=1&pagesize=10&i=10&a=c&o=&t=&q=&qt=
For FAQ
http://www.sap-img.com/abap/more-than-100-abap-interview-faqs.htm
http://www.sapgenie.com/faq/abap.htm
BAPI-step by step
http://www.sapgenie.com/abap/bapi/example.htm
http://www.sapgenie.com/abap/bapi/example.htm
Web log for receive email and processing it through ABAP
/people/thomas.jung3/blog/2004/09/09/receiving-e-mail-and-processing-it-with-abap--version-610-and-higher
For Logical database
http://help.sap.com/saphelp_46c/helpdata/en/9f/db9bed35c111d1829f0000e829fbfe/frameset.htm
http://help.sap.com/saphelp_46c/helpdata/EN/35/2cd77bd7705394e10000009b387c12/frameset.htm
Useful link to websites
http://www.hernangn.com.ar/sap.htm
Useful for background
http://www.sappoint.com/basis/bckprsng.pdf
http://help.sap.com/saphelp_nw04/helpdata/en/6f/08703713bf277ee10000009b38f8cf/frameset.htm
http://publib.boulder.ibm.com/infocenter/wbihelp/index.jsp?topic=/com.ibm.wbix_adapters.doc/doc/mysap4/sap4x41.htm
Table control in BDC
http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
For posting web log,
/people/sap.user72/blog/2005/06/28/sdn-weblogs-making-it-easier
Dynamic Internal table -web log in sdn
/people/subramanian.venkateswaran2/blog/2004/11/19/dynamic-internal-table
ALV
http://www.geocities.com/mpioud/Abap_programs.html
Mail
http://www.geocities.com/mpioud/Z_EMAIL_ABAP_REPORT.html
http://www.thespot4sap.com/Articles/SAP_Mail_SO_Object_Send.asp
http://www.sapdevelopment.co.uk/reporting/email/attach_xls.htm
BOM Explosion
/people/prakash.singh4/blog/2005/05/15/explode-boms-in-enterprise-portal-using-htmlb-tree--part-1-abap
BOM
http://help.sap.com/saphelp_erp2005/helpdata/en/ea/e9b7234c7211d189520000e829fbbd/frameset.htm
http://help.sap.com/saphelp_erp2005/helpdata/en/d1/2e4114a61711d2b423006094b9d648/frameset.htm
http://www.sap-img.com/sap-sd/sales-bom-implementation.htm
http://www.sap-basis-abap.com/sappp007.htm
OLE
http://www.sapgenie.com/abap/ole.htm
http://help.sap.com/saphelp_46c/helpdata/en/59/ae3f2e488f11d189490000e829fbbd/frameset.htm
ALVGRID with refresh
http://www.geocities.com/mpioud/Z_DEMO_ALV_REFRESH_BUTTON.html
For language setting and decimal separator
/people/horst.keller/blog/2004/11/16/abap-geek-7-150-babylonian-confusion
Oracle queries
http://sqlzoo.net/
To format SQL
http://www.sqlinform.com/
SCOT settings
http://www.sap-img.com/basis/basis-faq.htm
Status Icon [ALV,Table Control,Tab Strip]
http://www.sapdesignguild.org/resources/MiniSG-old/from_develop/norm_status_icons.htm#positioning_4
ALV Group Heading
http://www.sap-img.com/fu037.htm
For multiMedia
/people/thomas.jung3/blog/2005/05/11/using-classic-activex-controls-in-the-abap-control-framework
Uploading LOGO in SAP
http://www.sap-img.com/ts001.htm
LSMW
http://www.sap-img.com/sap-data-migration.htm
http://www.sapgenie.com/saptech/lsmw.htm
http://sapabap.iespana.es/sapabap/manuales/pdf/lsmw.pdf
http://www.sap.info/public/INT/int/glossary/int/glossaryletter/Word-17643ed1d6d658821_glossary/L#Word-17643ed1d6d658821_glossary
http://www.consolut.de/saphelp/sap_online_help.html
http://www.sap-img.com/
http://www.sappoint.com/
http://www.sapdevelopment.co.uk/
http://www.allsaplinks.com/idoc_search.html
Best Regards,
Thangesh -
How to attached class or function module in FD03
Hi Guys
I want to attached CL_ATTACHMENT_LIST for retriving attachment list from fd03 please help to attached the function module in my program?
regards
Piroz
report zfir_aged_debtors no standard page heading
line-size 255.
Type group
type-pools:
slis. " ALV types
Tables
tables:
adrc, " Addresses
bsad, " Accounting: Customer secondary index (Cleared)
bsid, " Accounting: Customer secondary index (Open)
kna1, " Customer master: General data
knkk, " Customer master: Credit management
knvk. " Customer master: Contact persons
Types
types:
begin of ty_bsadbsid,
bukrs like bsad-bukrs, " Company code
kunnr like bsad-kunnr, " Customer
gjahr like bsad-gjahr, " Fiscal year
belnr like bsad-belnr, " Accounting document number
buzei like bsad-buzei, " Line item
budat like bsad-budat, " Posting date
bldat like bsad-bldat, " Document date
waers like bsad-waers, " Currency
xblnr like bsad-xblnr, " Reference
shkzg like bsad-shkzg, " Debit/credit indicator
dmbtr like bsad-dmbtr, " Amount
zfbdt like bsad-zfbdt, " Baseline date for due date
" calculation
zbd1t like bsad-zbd1t, " Cash discount days 1
zbd2t like bsad-zbd2t, " Cash discount days 2
zbd3t like bsad-zbd3t, " Net payment terms period
rebzg like bsad-rebzg, " Number of the invoice
rebzt like bsad-rebzt, " Follow on document type
end of ty_bsadbsid,
ty_it_bsadbsid type ty_bsadbsid occurs 0,
begin of ty_merged,
kunnr like kna1-kunnr, " Customer number
name1 like adrc-name1, " Name
city1 like adrc-city1, " City
post_code1 like adrc-post_code1, " Post code
street like adrc-street, " Street
house_num1 like adrc-house_num1, " House number
tel_number like adrc-tel_number, " Telephone number
fax_number like adrc-fax_number, " Fax number
namev like knvk-namev, " First name
namew like knvk-name1, " Last name
telf1 like knvk-telf1, " Telephone number
klimk like knkk-klimk, " Credit limit
skfor like knkk-skfor, " Total receivables
total like bsad-dmbtr, " Total amount
rast1 like bsad-dmbtr, " Amount period 1
rast2 like bsad-dmbtr, " Amount period 2
rast3 like bsad-dmbtr, " Amount period 3
rast4 like bsad-dmbtr, " Amount period 4
rast5 like bsad-dmbtr, " Amount period 5
rast6 like bsad-dmbtr, " Amount period 6
end of ty_merged,
ty_it_merged type ty_merged occurs 0.
Internal tables
data:
Internal table to store customer line items from BSAD and BSID
it_bsadbsid type ty_it_bsadbsid,
Internal table to store field catalog for ALV function call
it_fieldcat type slis_t_fieldcat_alv,
Internal table to store summarised data for report output
it_merged type ty_it_merged.
Structures
data:
Display variant structures
st_tvariant like disvariant,
st_variant like disvariant.
Constants
constants:
co_delim_dash type c
value '-',
co_false type c " False
value space,
co_koart_d like faede-koart " Customer account type
value 'D',
co_save_u type c " User display variant
value 'U', " saving allowed.
co_shkzg_h like bsid-shkzg " Debit/Credit indicator
value 'H', " for credit
co_shkzg_s like bsid-shkzg " Debit/Credit indicator
value 'S', " for debit
co_selected type c " Value of selected radio
value 'X', " button or checkbox
co_true type c " True
value co_selected.
Variables
data:
va_exit type c.
Selection screen definition
selection-screen: begin of block b1 with frame title text-001.
select-options:
s_kunnr for bsad-kunnr. " Customer number
parameters:
p_kkber like knkk-kkber, " Credit control area
p_pafkt like knvk-pafkt, " Contact function
p_datum like sy-datum. " Report date
selection-screen: begin of line,
comment 01(30) text-006,
position pos_low.
parameters:
rastbis1 like rfpdo1-allgrogr " Due date sorted 1
default '000',
rastbis2 like rfpdo1-allgrogr " Due date sorted 2
default '000',
rastbis3 like rfpdo1-allgrogr " Due date sorted 3
default '000',
rastbis4 like rfpdo1-allgrogr " Due date sorted 4
default '000',
rastbis5 like rfpdo1-allgrogr " Due date sorted 5
default '000'.
selection-screen: end of line.
selection-screen: end of block b1,
begin of block b2 with frame title text-002.
parameters:
p_varint like disvariant-variant. " Display variant.
selection-screen: end of block b2.
Initialisation
initialization.
Provide default periods for due date sorted list.
rastbis1 = 0.
rastbis2 = 30.
rastbis3 = 60.
rastbis4 = 90.
rastbis5 = 120.
Default report date to current.
p_datum = sy-datlo.
Default credit control area to BP01.
p_kkber = 'BP01'.
At selection screen on value request for
at selection-screen on value-request for p_varint.
Provide display variant list for this program.
call function 'REUSE_ALV_VARIANT_F4'
exporting
is_variant = st_variant
i_save = co_save_u
importing
e_exit = va_exit
es_variant = st_tvariant
exceptions
not_found = 2.
if sy-subrc eq 2.
message id sy-msgid type 'S'
number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
else.
if va_exit eq space.
st_variant = st_tvariant.
p_varint = st_tvariant-variant.
endif.
endif.
At selection screen
at selection-screen.
Load display variant.
if not p_varint is initial.
move st_variant to st_tvariant.
move p_varint to st_tvariant-variant.
call function 'REUSE_ALV_VARIANT_EXISTENCE'
exporting
i_save = co_save_u
changing
cs_variant = st_tvariant.
st_variant = st_tvariant.
else.
clear st_variant.
st_variant-report = sy-repid.
endif.
if p_kkber is initial.
Ensure credit control area is specified.
message e000(zgen) with 'Credit control area must be specified'.
endif.
if p_pafkt is initial.
Ensure contact person function is specified.
message e000(zgen) with 'Contact person function must be specified'.
endif.
Start of selection
start-of-selection.
Extract open customer items from BSID
select bukrs kunnr gjahr belnr buzei budat bldat waers xblnr shkzg
dmbtr zfbdt zbd1t zbd2t zbd3t rebzg rebzt
from bsid
into table it_bsadbsid
where kunnr in s_kunnr
and budat le p_datum.
Extracct cleared customer items from BSAD
select bukrs kunnr gjahr belnr buzei budat bldat waers xblnr shkzg
dmbtr zfbdt zbd1t zbd2t zbd3t rebzg rebzt
from bsad
appending table it_bsadbsid
where kunnr in s_kunnr
and budat le p_datum
and augdt ge p_datum.
Ensure that items were not selected twice while getting data from the
open and cleared items tables (Only if transaction occured during
report run).
sort it_bsadbsid by bukrs belnr gjahr buzei.
delete adjacent duplicates from it_bsadbsid
comparing bukrs belnr gjahr buzei.
if it_bsadbsid[] is initial.
No data found for selection
message s001(zgen).
exit.
endif.
Merge data for report output
perform merge_data tables it_bsadbsid
it_merged.
Build field catalog
perform build_field_catalog tables it_fieldcat.
Output report via ALV
perform output_report_via_alv tables it_fieldcat
it_merged.
*& Form merge_data
text
form merge_data tables pa_it_bsadbsid type ty_it_bsadbsid
pa_it_merged type ty_it_merged.
Local work areas
data:
lwa_bsadbsid type ty_bsadbsid,
lwa_merged type ty_merged.
Local structures
data:
lst_faede like faede.
Local variables
data:
lva_daysover type i,
lva_merged_tabix like sy-tabix.
loop at pa_it_bsadbsid into lwa_bsadbsid.
Lookup merged entry for customer
clear lwa_merged.
read table pa_it_merged into lwa_merged
with key kunnr = lwa_bsadbsid-kunnr
binary search.
lva_merged_tabix = sy-tabix.
if sy-subrc ne 0.
Create new merged record for customer
lwa_merged-kunnr = lwa_bsadbsid-kunnr.
Get customer details from KNA1
clear kna1.
select single *
from kna1
where kunnr eq lwa_bsadbsid-kunnr.
Get customer address details from ADRC
clear adrc.
select single *
from adrc
where addrnumber eq kna1-adrnr
and date_from le p_datum.
lwa_merged-name1 = adrc-name1.
lwa_merged-city1 = adrc-city1.
lwa_merged-post_code1 = adrc-post_code1.
lwa_merged-street = adrc-street.
lwa_merged-house_num1 = adrc-house_num1.
lwa_merged-tel_number = adrc-tel_number.
lwa_merged-fax_number = adrc-fax_number.
Get credit limit details from KNKK
clear knkk.
select single *
from knkk
where kunnr eq lwa_bsadbsid-kunnr
and kkber eq p_kkber.
lwa_merged-klimk = knkk-klimk.
lwa_merged-skfor = knkk-skfor.
Get customer contact person details from KNVK
clear knvk.
select single *
from knvk
where kunnr eq lwa_bsadbsid-kunnr
and pafkt eq p_pafkt.
lwa_merged-namev = knvk-namev.
lwa_merged-namew = knvk-name1.
lwa_merged-telf1 = knvk-telf1.
insert lwa_merged into pa_it_merged index lva_merged_tabix.
endif.
Interpret debit/credit indicator
case lwa_bsadbsid-shkzg.
when co_shkzg_h.
Credit
lwa_bsadbsid-dmbtr = 0 - lwa_bsadbsid-dmbtr.
when co_shkzg_s.
Debit
endcase.
Perform ageing
clear lst_faede.
move-corresponding lwa_bsadbsid to lst_faede.
lst_faede-koart = co_koart_d.
call function 'DETERMINE_DUE_DATE'
exporting
i_faede = lst_faede
importing
e_faede = lst_faede
exceptions
others = 1.
lva_daysover = p_datum - lst_faede-netdt.
Accumulate total.
add lwa_bsadbsid-dmbtr to lwa_merged-total.
if lva_daysover le rastbis1.
add lwa_bsadbsid-dmbtr to lwa_merged-rast1.
else.
if lva_daysover le rastbis2 or
rastbis3 is initial.
add lwa_bsadbsid-dmbtr to lwa_merged-rast2.
else.
if lva_daysover le rastbis3 or
rastbis4 is initial.
add lwa_bsadbsid-dmbtr to lwa_merged-rast3.
else.
if lva_daysover le rastbis4 or
rastbis5 is initial.
add lwa_bsadbsid-dmbtr to lwa_merged-rast4.
else.
if lva_daysover le rastbis5.
add lwa_bsadbsid-dmbtr to lwa_merged-rast5.
else.
add lwa_bsadbsid-dmbtr to lwa_merged-rast6.
endif.
endif.
endif.
endif.
endif.
Update the merged record
modify pa_it_merged from lwa_merged index lva_merged_tabix.
endloop.
endform. " merge_data
*& Form build_field_catalog
text
form build_field_catalog tables pa_it_fieldcat type slis_t_fieldcat_alv.
Local work areas
data:
lwa_fieldcat type slis_fieldcat_alv.
--WG1K903216: Start Insert-
data: v_datum type datum,
v_mdmth type datum,
v_datxt type string,
v_noday type i.
--WG1K903216: End Insert---
refresh pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'KUNNR'.
lwa_fieldcat-ref_tabname = 'KNA1'.
lwa_fieldcat-ref_fieldname = 'KUNNR'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '1'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'NAME1'.
lwa_fieldcat-ref_tabname = 'ADRC'.
lwa_fieldcat-ref_fieldname = 'NAME1'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '2'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'CITY1'.
lwa_fieldcat-ref_tabname = 'ADRC'.
lwa_fieldcat-ref_fieldname = 'CITY1'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '3'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'POST_CODE1'.
lwa_fieldcat-ref_tabname = 'ADRC'.
lwa_fieldcat-ref_fieldname = 'POST_CODE1'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '4'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'STREET'.
lwa_fieldcat-ref_tabname = 'ADRC'.
lwa_fieldcat-ref_fieldname = 'STREET'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '5'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'HOUSE_NUM1'.
lwa_fieldcat-ref_tabname = 'ADRC'.
lwa_fieldcat-ref_fieldname = 'HOUSE_NUM1'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '6'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'TEL_NUMBER'.
lwa_fieldcat-ref_tabname = 'ADRC'.
lwa_fieldcat-ref_fieldname = 'TEL_NUMBER'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '7'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'FAX_NUMBER'.
lwa_fieldcat-ref_tabname = 'ADRC'.
lwa_fieldcat-ref_fieldname = 'FAX_NUMBER'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '8'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'NAMEV'.
lwa_fieldcat-ref_tabname = 'KNVK'.
lwa_fieldcat-ref_fieldname = 'NAMEV'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '9'.
lwa_fieldcat-seltext_l = 'Contact first name'.
lwa_fieldcat-seltext_m = 'Contact Fname'.
lwa_fieldcat-seltext_s = 'Ctct Fname'.
lwa_fieldcat-ddictxt = 'L'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'NAMEW'.
lwa_fieldcat-ref_tabname = 'KNVK'.
lwa_fieldcat-ref_fieldname = 'NAME1'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '10'.
lwa_fieldcat-seltext_l = 'Contact last name'.
lwa_fieldcat-seltext_m = 'Contact Lname'.
lwa_fieldcat-seltext_s = 'Ctxt Lname'.
lwa_fieldcat-ddictxt = 'L'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'TELF1'.
lwa_fieldcat-ref_tabname = 'KNVK'.
lwa_fieldcat-ref_fieldname = 'TELF1'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '11'.
lwa_fieldcat-seltext_l = 'Contact phone no.'.
lwa_fieldcat-seltext_m = 'Contact phone'.
lwa_fieldcat-seltext_s = 'Ctct Phne'.
lwa_fieldcat-ddictxt = 'L'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'KLIMK'.
lwa_fieldcat-ref_tabname = 'KNKK'.
lwa_fieldcat-ref_fieldname = 'KLIMK'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '12'.
lwa_fieldcat-seltext_l = 'Credit limit'.
lwa_fieldcat-seltext_m = 'Credit limit'.
lwa_fieldcat-seltext_s = 'Crdt limit'.
lwa_fieldcat-ddictxt = 'L'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'SKFOR'.
lwa_fieldcat-ref_tabname = 'KNKK'.
lwa_fieldcat-ref_fieldname = 'SKFOR'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '13'.
lwa_fieldcat-seltext_l = 'Credit used'.
lwa_fieldcat-seltext_m = 'Credit used'.
lwa_fieldcat-seltext_s = 'Crdt used'.
lwa_fieldcat-ddictxt = 'L'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'TOTAL'.
lwa_fieldcat-ref_tabname = 'BSAD'.
lwa_fieldcat-ref_fieldname = 'DMBTR'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '14'.
lwa_fieldcat-seltext_l = 'Total'.
lwa_fieldcat-seltext_m = 'Total'.
lwa_fieldcat-seltext_s = 'Total'.
lwa_fieldcat-ddictxt = 'L'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'RAST1'.
lwa_fieldcat-ref_tabname = 'BSAD'.
lwa_fieldcat-ref_fieldname = 'DMBTR'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '15'.
--WG1K903216: Start Delete-
concatenate '<'
rastbis2
into lwa_fieldcat-seltext_l
separated by space.
--WG1K903216: End Delete---
--WG1K903216: Start Insert-
clear: v_datum,
v_datxt.
v_noday = rastbis2.
Always use the middle of the report month as a heading reference date.
concatenate p_datum+0(6) '15' into v_mdmth.
call function 'ZWAG_DATE_CALCULATOR'
exporting i_datum = v_mdmth
i_noday = v_noday
i_oprnd = '+'
importing e_datum = v_datum
exceptions invalid_operand = 1.
call function 'ZWAG_END_MONTH'
exporting i_datum = v_datum
importing e_datum = v_datum
e_datxt = v_datxt
exceptions invalid_date = 1.
concatenate 'Due' v_datxt into lwa_fieldcat-seltext_l
separated by space.
--WG1K903216: End Insert---
lwa_fieldcat-seltext_m = lwa_fieldcat-seltext_l.
lwa_fieldcat-seltext_s = lwa_fieldcat-seltext_l.
lwa_fieldcat-ddictxt = 'L'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'RAST2'.
lwa_fieldcat-ref_tabname = 'BSAD'.
lwa_fieldcat-ref_fieldname = 'DMBTR'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '16'.
--WG1K903216: Start Delete-
concatenate rastbis1
rastbis2
into lwa_fieldcat-seltext_l
separated by co_delim_dash.
--WG1K903216: End Delete---
--WG1K903216: Start Insert-
clear: v_datum,
v_datxt.
v_noday = rastbis1.
call function 'ZWAG_DATE_CALCULATOR'
exporting i_datum = v_mdmth
i_noday = v_noday
i_oprnd = '+'
importing e_datum = v_datum
exceptions invalid_operand = 1.
call function 'ZWAG_END_MONTH'
exporting i_datum = v_datum
importing e_datum = v_datum
e_datxt = v_datxt
exceptions invalid_date = 1.
concatenate 'Due' v_datxt into lwa_fieldcat-seltext_l
separated by space.
--WG1K903216: End Insert---
lwa_fieldcat-seltext_m = lwa_fieldcat-seltext_l.
lwa_fieldcat-seltext_s = lwa_fieldcat-seltext_l.
lwa_fieldcat-ddictxt = 'L'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'RAST3'.
lwa_fieldcat-ref_tabname = 'BSAD'.
lwa_fieldcat-ref_fieldname = 'DMBTR'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '17'.
--WG1K903216: Start Delete-
concatenate rastbis2
rastbis3
into lwa_fieldcat-seltext_l
separated by co_delim_dash.
--WG1K903216: End Delete---
--WG1K903216: Start Insert-
clear: v_datum,
v_datxt.
v_noday = rastbis2.
call function 'ZWAG_DATE_CALCULATOR'
exporting i_datum = v_mdmth
i_noday = v_noday
i_oprnd = '-'
importing e_datum = v_datum
exceptions invalid_operand = 1.
call function 'ZWAG_END_MONTH'
exporting i_datum = v_datum
importing e_datum = v_datum
e_datxt = v_datxt
exceptions invalid_date = 1.
concatenate 'Due' v_datxt into lwa_fieldcat-seltext_l
separated by space.
--WG1K903216: End Insert---
lwa_fieldcat-seltext_m = lwa_fieldcat-seltext_l.
lwa_fieldcat-seltext_s = lwa_fieldcat-seltext_l.
lwa_fieldcat-ddictxt = 'L'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'RAST4'.
lwa_fieldcat-ref_tabname = 'BSAD'.
lwa_fieldcat-ref_fieldname = 'DMBTR'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '18'.
--WG1K903216: Start Delete-
concatenate rastbis3
rastbis4
into lwa_fieldcat-seltext_l
separated by co_delim_dash.
--WG1K903216: End Delete---
--WG1K903216: Start Insert-
clear: v_datum,
v_datxt.
v_noday = rastbis3.
call function 'ZWAG_DATE_CALCULATOR'
exporting i_datum = v_mdmth
i_noday = v_noday
i_oprnd = '-'
importing e_datum = v_datum
exceptions invalid_operand = 1.
call function 'ZWAG_END_MONTH'
exporting i_datum = v_datum
importing e_datum = v_datum
e_datxt = v_datxt
exceptions invalid_date = 1.
concatenate 'Due' v_datxt into lwa_fieldcat-seltext_l
separated by space.
--WG1K903216: End Insert---
lwa_fieldcat-seltext_m = lwa_fieldcat-seltext_l.
lwa_fieldcat-seltext_s = lwa_fieldcat-seltext_l.
lwa_fieldcat-ddictxt = 'L'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'RAST5'.
lwa_fieldcat-ref_tabname = 'BSAD'.
lwa_fieldcat-ref_fieldname = 'DMBTR'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '19'.
--WG1K903216: Start Delete-
concatenate rastbis4
rastbis5
into lwa_fieldcat-seltext_l
separated by co_delim_dash.
--WG1K903216: End Delete---
--WG1K903216: Start Insert-
clear: v_datum,
v_datxt.
v_noday = rastbis4.
call function 'ZWAG_DATE_CALCULATOR'
exporting i_datum = v_mdmth
i_noday = v_noday
i_oprnd = '-'
importing e_datum = v_datum
exceptions invalid_operand = 1.
call function 'ZWAG_END_MONTH'
exporting i_datum = v_datum
importing e_datum = v_datum
e_datxt = v_datxt
exceptions invalid_date = 1.
concatenate 'Due' v_datxt into lwa_fieldcat-seltext_l
separated by space.
--WG1K903216: End Insert---
lwa_fieldcat-seltext_m = lwa_fieldcat-seltext_l.
lwa_fieldcat-seltext_s = lwa_fieldcat-seltext_l.
lwa_fieldcat-ddictxt = 'L'.
append lwa_fieldcat to pa_it_fieldcat.
clear lwa_fieldcat.
lwa_fieldcat-tabname = 'PA_IT_MERGED'.
lwa_fieldcat-fieldname = 'RAST6'.
lwa_fieldcat-ref_tabname = 'BSAD'.
lwa_fieldcat-ref_fieldname = 'DMBTR'.
lwa_fieldcat-row_pos = '1'.
lwa_fieldcat-col_pos = '20'.
--WG1K903216: Start Delete-
concatenate '>'
rastbis5
into lwa_fieldcat-seltext_l
separated by space.
--WG1K903216: End Delete---
--WG1K903216: Start Insert-
clear: v_datum,
v_datxt.
v_noday = rastbis5.
call function 'ZWAG_DATE_CALCULATOR'
exporting i_datum = v_mdmth
i_noday = v_noday
i_oprnd = '-'
importing e_datum = v_datum
exceptions invalid_operand = 1.
call function 'ZWAG_END_MONTH'
exporting i_datum = v_datum
importing e_datum = v_datum
e_datxt = v_datxt
exceptions invalid_date = 1.
concatenate 'Due By' v_datxt into lwa_fieldcat-seltext_l
separated by space.
--WG1K903216: End Insert---
lwa_fieldcat-seltext_m = lwa_fieldcat-seltext_l.
lwa_fieldcat-seltext_s = lwa_fieldcat-seltext_l.
lwa_fieldcat-ddictxt = 'L'.
append lwa_fieldcat to pa_it_fieldcat.
endform. " build_field_catalog
*& Form output_report_via_alv
text
form output_report_via_alv
tables pa_it_fieldcat type slis_t_fieldcat_alv
pa_it_merged type ty_it_merged.
Local variables
data:
lva_repid like sy-repid,
lva_formname type slis_formname.
lva_repid = sy-repid.
lva_formname = 'USER_COMMAND'.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = lva_repid
i_callback_user_command = lva_formname
i_save = 'A'
is_variant = st_variant
it_fieldcat = pa_it_fieldcat[]
tables
t_outtab = pa_it_merged
exceptions
program_error = 1
others = 2.
endform. " output_report_via_alvHi shiva
Thanks for your help,
Can you check this coding and revert me back ASAP Please.
REPORT BDS_GOS_CONNECTION.
DATA : logical_system LIKE BAPIBDS01-log_system.
CLASSNAME LIKE BAPIBDS01-CLASSNAME
OBJKEY LIKE SWOTOBJID-objkey.
PARAMETERS: pa_lo_sys BAPIBDS01-log_system,
pa_class like BPIBDS01-CLASSNAME,
pa_objkey like swotobjidobjkey.
AT SELECTION-SCREEN.
CALL FUNCTION 'BDS_GOS_CONNECTIONS_GET'
EXPORTING
bor_id = bor_id
IMPORTING
logical_sytem = pa_lo_sys.
classname = pa_class.
objkey = pa_objkey.
EXCEPTIONS
no_objects_found = 1
internal_error = 2
internal_gos_error = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
clear v_attno1.
i_object1-typeid = 'BUS2012'.
i_object1-catid = 'BO'.
i_object1-instid = i_yItem-docno.
call method cl_gos_attachment_query=>count_for_object
exporting
is_object = i_object1
ip_arl = space
receiving
rt_stat = i_stat1.
read table i_stat1 into wa_stat1 index 1.
if sy-subrc eq c_0.
move wa_stat1-counter to v_attno1.
endif.
CALL METHOD cl_gos_attachment_query=>count_for_object
EXPORTING
is_object = object
ip_arl = space
RECEIVING
rt_stat = lt_stat.
READ TABLE lt_stat INDEX 1 into ls_stat.
count = ls_stat-counter.
*The object has to be a concatenation of your document, like this:
CONCATENATE object-instid tab-gjahr INTO object-instid.
ELSE.
CONCATENATE tab-bukrs tab-belnr tab-gjahr INTO
object-instid.
ENDIF. -
What is the best way, while creating Function Module based extractor
Hi Friends,
I am Sreekanth.
I have created a Functio Module based Extractor,
To fetch data from COPA tables.
In this extracton 3 tables are getting involved.
1) CE3OP01 2) CE4OP01 and 3) CE1OP01.
Logic required is as follow:
1) get data from CE3OP01 and for all entries of this data set,
get data from CE4OP01 and CE1OP01 and finally send the data set to BW after few manupulations.
I have implemented the whole logic and its working fine in DEVELOPMENT box where data volume is less.
But the same code is timing out in Quality Box, due to huge volues of data.
Below I am copying the code that i am using . Any body can suggest me how to proceed further so that my code works with huge volumes of data.
Now I am getting the time out error while selection data from CE3IOP01 table itself.
FUNCTION /ds1/c_bw_zds_copa_recon.
""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 /DS1/FI_COPA_RECN OPTIONAL
*" EXCEPTIONS
*" NO_MORE_DATA
*" ERROR_PASSED_TO_MESS_HANDLER
PROGRAM INFORMATION *
RIEF ID.......: N/A *
PROGRAM.......: /DS1/C_BW_ZDS_COPA_RECON
PROGRAM FUNCTION: This Function Module Extracts Cost Center, Company *
Code, and all Amount fields form CE3OP01 table and sectaktbo "
* Current profitability segment (CO-PA) *
paobjnr " Profitability Segment Number (CO-PA) *
pasubnr " Profitability segment changes (CO-PA) *
bukrs " Company Code
kndnr " Customer from CE4Op01 table. *
Segrigate one record from CE3Op01 into 93 based on Value fields. *
PROGRAM TYPE..Function Module *
DEV. CLASS..../DS1/MI_01 *
LOGICAL DB.... N/A *
Conventions used in the Program *
* global variables --> g_* *
* local variables --> l_* *
* constants --> c_* *
* internal tables --> t_* *
* structures --> x_* *
* parameters --> p_* *
* select-options --> s_* *
* ranges --> r_* *
* workarea --> w_* *
* field symbol --> fs_* *
Declaration for Interface: Selection criteria
STATICS: s_s_if TYPE srsc_s_if_simple,
Maximum number of lines for DB table
ls_s_if TYPE srsc_s_if_simple, "Static Structure
counter
ls_counter_datapakid LIKE sy-tabix,"Static Counter
cursor
ls_cursor TYPE cursor,"Static Cursor.
ls_cursor1 TYPE cursor."Static Cursor.
*CONSTANTS
CONSTANTS: lc_datasource TYPE char14 VALUE 'ZDS_COPA_RECON',
" Data Source Name
lc_msgtype TYPE char1 VALUE 'E', "message type
lc_msgcls TYPE char2 VALUE 'R3', "message class
lc_msgnum TYPE char3 VALUE '009',"Message Number.
lc_001 TYPE char3 VALUE '001',
lc_b0 TYPE char2 VALUE 'B0',
lc_10 TYPE char2 VALUE '10',
lc_01 TYPE char2 VALUE '01',
lc_02 TYPE char2 VALUE '02',
lc_1 TYPE sy-tabix VALUE 1.
*Data Declaration.
DATA: lt_ce3op01 TYPE STANDARD TABLE OF x_ce3op01,
" Internal table for ce3op01
lt_ce3op02 TYPE STANDARD TABLE OF x_ce3op01,
lt_ce4op01 TYPE STANDARD TABLE OF x_ce4op01,
" Internal table for ce4op01
lw_ce3op01 TYPE x_ce3op01,
" Work area for ce3op01
lw_ce3op02 TYPE x_ce3op01, "MOD-002
lw_ce4op01 TYPE x_ce4op01,
" Work area for ce4op01
lw_e_t_data TYPE /ds1/fi_copa_recn,
" Work area for /ds1/fi_copa_recn.
*CE1op01
lt_ce1op01 TYPE STANDARD TABLE OF x_ce1op01,"Internaltable
lw_ce1op01 TYPE x_ce1op01,"Work area for CE1op01.
**CE1op01
lt_fldlist TYPE STANDARD TABLE OF lx_fldlist, "fields list
lw_fldlist TYPE lx_fldlist," FIELDS list work area
lt_flnmval TYPE STANDARD TABLE OF lx_flnmval,"table for splitting
lw_flnmval TYPE lx_flnmval,"work area for spilitting
l_index TYPE i VALUE 1, "to keep track of index.
l_len TYPE i,
l_s_no_recs TYPE sy-tabix VALUE 99,
l_s_loop_from TYPE sy-tabix, "from "MOD-002
l_s_loop_to TYPE sy-tabix, "to"MOD-002
l_norecs TYPE sy-tabix, "MOD-002
l_count TYPE sy-tabix. "MOD-002
*Field Symbols.
FIELD-SYMBOLS:
<fs_flnmval> TYPE lx_flnmval."Field symbol for fild values
Selection Ranges
RANGES: lr_bukrs FOR ce4op01-bukrs, " Range for company code
lr_versi FOR ce3op01-versi," Range for version
lr_paledger FOR ce3op01-paledger,"Range for paledger
lr_vrgar FOR ce3op01-vrgar,"Range for vrgar
lr_gjahr FOR ce3op01-gjahr,"Range for Fiscal year
lr_perbl FOR ce3op01-perbl."Range for perbl
Initialization mode (first call by SAPI) or data transfer mode
IF i_initflag = sbiwa_c_flag_on.
Initialization: check input parameters
buffer input parameters
prepare data selection
Check DataSource validity
IF ls_counter_datapakid = 0.
CASE i_dsource.
WHEN lc_datasource.
WHEN OTHERS.
IF 1 = 2. MESSAGE e009(r3). ENDIF. "#EC *
this is a typical log call. Please write every error message like this
log_write lc_msgtype "'E' "message type
lc_msgcls "'R3' "message class
lc_msgnum "'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.
APPEND LINES OF i_t_fields TO s_s_if-t_fields.
Fill parameter buffer for data extraction calls
ls_s_if-requnr = i_requnr.
ls_s_if-dsource = i_dsource.
ls_s_if-maxsize = i_maxsize.
ls_s_if-initflag = i_initflag.
Company Code
LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_bukrs.
MOVE: i_t_select-sign TO lr_bukrs-sign,
i_t_select-option TO lr_bukrs-option,
i_t_select-low TO lr_bukrs-low,
i_t_select-high TO lr_bukrs-high.
APPEND lr_bukrs.
ENDLOOP.
*Version (0)
*SRSC_S_IF_SIMPLE-T_SELECT
LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_versi.
LOOP AT i_t_select INTO s_s_if-t_select WHERE fieldnm = c_versi.
MOVE: i_t_select-sign TO lr_versi-sign,
i_t_select-option TO lr_versi-option,
i_t_select-low TO lr_versi-low,
i_t_select-high TO lr_versi-high.
APPEND lr_versi.
ENDLOOP.
*Currency Type (company code only)
LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_paledger.
MOVE: i_t_select-sign TO lr_paledger-sign,
i_t_select-option TO lr_paledger-option.
IF i_t_select-low = lc_b0.
MOVE lc_01 TO lr_paledger-low.
ELSEIF i_t_select-low = lc_10.
MOVE lc_02 TO lr_paledger-low.
ENDIF.
APPEND lr_paledger.
ENDLOOP.
*Record Type
LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_vrgar.
MOVE: i_t_select-sign TO lr_vrgar-sign,
i_t_select-option TO lr_vrgar-option,
i_t_select-low TO lr_vrgar-low,
i_t_select-high TO lr_vrgar-high.
APPEND lr_vrgar.
ENDLOOP.
*Fiscal Year
LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_gjahr.
MOVE: i_t_select-sign TO lr_gjahr-sign,
i_t_select-option TO lr_gjahr-option,
i_t_select-low TO lr_gjahr-low,
i_t_select-high TO lr_gjahr-high.
APPEND lr_gjahr.
ENDLOOP.
*Period Block/Year
LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_perbl.
MOVE: i_t_select-sign TO lr_perbl-sign,
i_t_select-option TO lr_perbl-option,
i_t_select-low TO lr_perbl-low,
i_t_select-high TO lr_perbl-high.
APPEND lr_perbl.
ENDLOOP.
*Value Field Name.
LOOP AT s_s_if-t_select INTO i_t_select WHERE fieldnm = c_fldnm.
MOVE:
i_t_select-sign TO gr_zfldnm-sign,
i_t_select-option TO gr_zfldnm-option,
i_t_select-low TO gr_zfldnm-low,
i_t_select-high TO gr_zfldnm-high.
APPEND gr_zfldnm.
ENDLOOP.
First data package -> OPEN CURSOR
IF ls_counter_datapakid = 0.
*Create 93 Field names in an internal table.
MOVE 'VV010' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV011' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV012' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV013' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV014' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV015' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV016' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV020' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV021' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV030' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV031' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV032' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV033' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV034' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV035' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV200' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV201' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV202' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV203' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV036' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV037' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV038' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV039' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV040' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV041' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV042' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV043' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV204' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV205' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV211' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV212' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV213' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV222' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV223' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV230' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV232' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV233' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV500' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV501' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV502' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV503' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV504' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV505' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV506' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV507' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV508' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV509' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV510' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV511' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV512' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV513' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV514' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV515' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV516' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV517' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV518' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV519' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV520' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV236' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV206' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV051' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV052' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV053' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV054' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV055' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV056' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV057' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV058' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV059' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV060' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV241' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV242' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV243' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV244' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV245' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV246' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV247' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV248' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV249' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV250' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV521' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV522' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV523' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV524' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV525' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV526' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV527' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV528' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV529' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV530' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV227' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV226' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
MOVE 'VV224' TO lw_fldlist-fldnam. APPEND lw_fldlist TO lt_fldlist.
OPEN CURSOR WITH HOLD ls_cursor FOR
SELECT
paobjnr " Profitability Segment Number (CO-PA)
paledger " Currency type for an operating concern
vrgar " Record Type
versi " Plan version (CO-PA)
gjahr " Fiscal Year
perbl " Fiscal year/period block
pasubnr
vv010001 " List Price
vv011001 " Formula Price
vv012001 " Customer Price
vv013001 " Manual Price
vv014001 " Retail Pump Price
vv015001 " Markup
vv016001 " Net Proceeds Other
vv020001 " Excise Duty Offset
vv021001 " Duties & Government
vv030001 " Sales Discounts
vv031001 " Sales Surcharges
vv032001 " Sales Rebates
vv033001 " Agents Comm Paid
vv034001 " RBA CR Royalties
vv035001 " Other Revenues
vv200001 " Transfer PriceSupply
vv201001 " Prim Tran Tariff Sup
vv202001 " S&Handling TariffDis
vv203001 " Sec Trans Tariff Dis
vv036001 " Proceeds from Servic
vv037001 " Exchanges
vv038001 " Throughput fees
vv039001 " Output Tax Offset
vv040001 " CR comm & Oth Oil Pr
vv041001 " Supplier fees
vv042001 " RBA Fairshare Adjust
vv043001 " Contr Comm Paid IG
vv204001 " Sec Tran Tariff Supp
vv205001 " Comp Stock Obligatio
vv211001 " Prim Tran Tar Transf
vv212001 " S&Handling Tar Trans
vv213001 " Sec Trans TariffTran
vv222001 " DIS:S&Handl Tar OvUn
vv223001 " DIS:Sec Tr TarifOvUn
vv230001 " Transfer Price LSC
vv232001 " S&Handling Tar LSC
vv233001 " Sec Trans Tariff LSC
vv500001 " 3rd Party Purchases
vv501001 " Transf from Oth Sect
vv502001 " Purchases IG
vv503001 " Inter-Seg Transf Pur
vv504001 " Import Freight
vv505001 " Stock Variations
vv506001 " Other Product Cost
vv507001 " Pipeline Operat Exp
vv508001 " Primary Transp Expen
vv509001 " Manufacturing Expens
vv510001 " Supply /Process Exp
vv511001 " MK Processing Plants
vv512001 " S&Handling Expenses
vv513001 " Sec Transp Expenses
vv514001 " Point of Sale Expens
vv515001 " Contr Comm Rec IG
vv516001 " Assoc Inc Dividend
vv517001 " Marketing & Sell Exp
vv518001 " Other Rev from Dist
vv519001 " Other Rev Transferrd
vv520001 " Stock Write-Off
vv236001 " Oth cost Tar LSC SMP
vv206001 " Prim Trp tariff Dist
vv051001 " CR Net Turnover
vv052001 " Dummy Price 2
vv053001 " Dummy Price 3
vv054001 " Dummy Price 4
vv055001 " Dummy Price 5
vv056001 " Dummy Price 6
vv057001 " Dummy Price 7
vv058001 " Dummy Price 8
vv059001 " Dummy Price 9
vv060001 " Dummy Price10
vv241001 " DummyTariff 1
vv242001 " DummyTariff 2
vv243001 " DummyTariff 3
vv244001 " DummyTariff 4
vv245001 " DummyTariff 5
vv246001 " DummyTariff 6
vv247001 " DummyTariff 7
vv248001 " DummyTariff 8
vv249001 " DummyTariff 9
vv250001 " DummyTariff10
vv521001 " SD&A Rebates
vv522001 " Dummy Cost 2
vv523001 " Dummy Cost 3
vv524001 " Dummy Cost 4
vv525001 " Dummy Cost 5
vv526001 " Dummy Cost 6
vv527001 " Dummy Cost 7
vv528001 " Dummy Cost 8
vv529001 " Dummy Cost 9
vv530001 " Dummy Cost 10
vv227001 " Sec Tr TarifOvUn LSC
vv226001 " S&Handl Tar OvUn LSC
vv224001 " Pr Tra TariffOvU DIS
FROM ce3op01
WHERE paledger = lc_02 AND
vrgar IN lr_vrgar AND
versi IN lr_versi AND
perbl IN lr_perbl AND
gjahr IN lr_gjahr.
ENDIF.
For all other cursors.
FETCH NEXT CURSOR ls_cursor
APPENDING TABLE lt_ce3op02
PACKAGE SIZE ls_s_if-maxsize.
IF sy-subrc <> 0.
EXIT.
ENDIF.
SORT lt_ce3op02 BY paobjnr pasubnr paledger vrgar versi gjahr
perbl.
DELETE ADJACENT DUPLICATES FROM lt_ce3op02 COMPARING paobjnr.
*Begin of MODE-002
DESCRIBE TABLE lt_ce3op02 LINES l_norecs.
l_s_loop_from = lc_1.
DO.
l_s_loop_to = l_s_loop_from + l_s_no_recs.
LOOP AT lt_ce3op02 INTO lw_ce3op02
FROM l_s_loop_from TO l_s_loop_to .
APPEND lw_ce3op02 TO lt_ce3op01.
ENDLOOP.
SORT lt_ce3op01 BY paobjnr.
*End of MOS-002
SELECT
aktbo " Current profitability segment (CO-PA)
paobjnr " Profitability Segment Number (CO-PA)
pasubnr " Profitability segment changes (CO-PA)
kndnr " Customer
artnr
bukrs " Company Code
prctr
kokrs
FROM ce4op01
INTO TABLE lt_ce4op01
FOR ALL ENTRIES IN lt_ce3op01
WHERE paobjnr = lt_ce3op01-paobjnr AND
pasubnr = lt_ce3op01-pasubnr AND
bukrs IN lr_bukrs.
*CE1op01
SELECT
paledger
vrgar
versi
perio
paobjnr
pasubnr
belnr
posnr
rbeln
rposn
FROM ce1op01
INTO TABLE lt_ce1op01
FOR ALL ENTRIES IN lt_ce3op01
WHERE paledger = lt_ce3op01-paledger AND
vrgar = lt_ce3op01-vrgar AND
versi = lt_ce3op01-versi AND
perio = lt_ce3op01-perbl AND
paobjnr = lt_ce3op01-paobjnr AND
pasubnr = lt_ce3op01-pasubnr.
**CE1op01
LOOP AT lt_ce3op01 INTO lw_ce3op01.
MOVE:
lw_ce3op01-paobjnr TO lw_flnmval-paobjnr,
lw_ce3op01-paledger TO lw_flnmval-paledger,
lw_ce3op01-vrgar TO lw_flnmval-vrgar,
lw_ce3op01-versi TO lw_flnmval-versi,
lw_ce3op01-gjahr TO lw_flnmval-gjahr,
lw_ce3op01-perbl TO lw_flnmval-perbl.
*appending all 93 fields as records
MOVE lw_ce3op01-vv010001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv011001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv012001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv013001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv014001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv015001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv016001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv020001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv021001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv030001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv031001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv032001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv033001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv034001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv035001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv200001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv201001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv202001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv203001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv036001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv037001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv038001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv039001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv040001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv041001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv042001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv043001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv204001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv205001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv211001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv212001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv213001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv222001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv223001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv230001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv232001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv233001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv500001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv501001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv502001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv503001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv504001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv505001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv506001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv507001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv508001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv509001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv510001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv511001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv512001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv513001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv514001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv515001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv516001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv517001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv518001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv519001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv520001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv236001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv206001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv051001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv052001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv053001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv054001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv055001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv056001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv057001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv058001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv059001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv060001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv241001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv242001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv243001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv244001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv245001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv246001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv247001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv248001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv249001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv250001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv521001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv522001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv523001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv524001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv525001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv526001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv527001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv528001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv529001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv530001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv227001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv226001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
MOVE lw_ce3op01-vv224001 TO lw_flnmval-zamunt.
APPEND lw_flnmval TO lt_flnmval.
*Segrigating all one record into 102 records is complete
ENDLOOP.
LOOP AT lt_flnmval ASSIGNING <fs_flnmval>.
IF l_index > 93.
l_index = 1.
ENDIF.
READ TABLE lt_fldlist INTO lw_fldlist INDEX l_index.
IF sy-subrc = 0.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lw_fldlist-fldnam
IMPORTING
output = <fs_flnmval>-fldnam.
ENDIF.
l_index = l_index + 1.
ENDLOOP.
SORT lt_ce4op01 BY paobjnr.
SORT lt_ce1op01 BY paobjnr paledger vrgar versi.
SORT gr_zfldnm BY low.
DELETE lt_flnmval WHERE fldnam NOT IN gr_zfldnm.
LOOP AT lt_flnmval INTO lw_flnmval.
READ TABLE lt_ce4op01 INTO lw_ce4op01 WITH KEY
paobjnr = lw_flnmval-paobjnr BINARY SEARCH.
IF sy-subrc = 0.
MOVE : lw_flnmval-paledger TO lw_e_t_data-paledger,
lw_flnmval-vrgar TO lw_e_t_data-vrgar,
lw_flnmval-versi TO lw_e_t_data-versi ,
lw_flnmval-gjahr TO lw_e_t_data-gjahr,
lw_flnmval-perbl TO lw_e_t_data-perbl,
lw_ce4op01-bukrs TO lw_e_t_data-bukrs,
lw_ce4op01-kndnr TO lw_e_t_data-kndnr,
lw_ce4op01-artnr TO lw_e_t_data-artnr,
lw_ce4op01-prctr TO lw_e_t_data-prctr,
lw_ce4op01-kokrs TO lw_e_t_data-kokrs,
lw_flnmval-fldnam TO lw_e_t_data-zfldnm,
lw_flnmval-zamunt TO lw_e_t_data-zamount.
CE1op01
READ TABLE lt_ce1op01 INTO lw_ce1op01 WITH KEY
paobjnr = lw_flnmval-paobjnr
paledger = lw_flnmval-paledger
vrgar = lw_flnmval-vrgar
versi = lw_flnmval-versi BINARY SEARCH.
IF sy-subrc = 0.
MOVE: lw_ce1op01-rbeln TO lw_e_t_data-rbeln,
lw_ce1op01-rposn TO lw_e_t_data-rposn.
ENDIF.
CE1op01
APPEND lw_e_t_data TO gt_out_data.
ENDIF.
ENDLOOP.
*Begin of MOD-002
FREE lt_flnmval.
REFRESH :lt_ce3op01,lt_ce4op01,lt_ce1op01.
e_t_data[] = gt_out_data[].
DELETE e_t_data WHERE zfldnm NOT IN gr_zfldnm.
l_s_loop_from = l_s_loop_to + lc_1.
l_count = l_count + 20.
IF l_count GE l_norecs.
EXIT.
ENDIF.
ENDDO.
*End of MOD-002
ls_counter_datapakid = ls_counter_datapakid + 1.
ENDIF. "IF S_COUNTER_DATAPAKID = 0
ELSE.
IF i_maxsize IS INITIAL.
RAISE error_passed_to_mess_handler.
ENDIF.
IF g_start IS INITIAL.
g_start = 1.
ELSE.
g_start = g_end + 1.
ENDIF.
g_end = g_start + i_maxsize - 1.
Population of E_T_DATA based on Data records size
APPEND LINES OF gt_out_data FROM g_start TO g_end TO e_t_data.
DELETE e_t_data WHERE zfldnm NOT IN gr_zfldnm.
IF e_t_data[] IS INITIAL.
RAISE no_more_data.
ENDIF.
ls_counter_datapakid = ls_counter_datapakid + 1.
ENDIF.
ENDFUNCTION.
Thanks & regards,
Sreekanth
+91 9740091981Hello Sreekanth,
See this blog [Generic Extraction via Function Module|/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module]
Also see this
[Line Item Level Data Extraction for Financial Accounting and Controlling|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/a7f2f294-0501-0010-11bb-80e0d67c3e4a]
Thanks
Chandran -
How to log input parameters for Function Modules?
Hi,
I need to create a Logging system to trace input parameters for function modules.
The log functionality could be done by developing a class method or a function module (For example 'write_log'), and calling it within each function module that I want to log. The 'write_log' code should be independent from the interface of the Function Module that I want to log.
For example, I'd like to write a function/class method that can log both these functions modules:
Function DummyA
Input parameters: A1 type char10, A2 type char10.
Function DummyB
Input parameters: B1 type char20, B2 type char20, B3 type char20, B4 type Z_MYSTRUCTURE
Now the questions...
- Is there a "standard SAP" function that provide this functionality?
- If not, is there a system variable in which I can access runtime all parameters name, type and value for a particular function module?
- If not, how can I loop at Input parameters in a way that is independent from the function module interface?
Thank you in advance for helping!check this sample code. here i am capturing only parameters (import) values. you can extend this to capture tables, changin, etc.
FUNCTION y_test_fm.
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(PARAM1) TYPE CHAR10
*" REFERENCE(PARAM2) TYPE CHAR10
*" REFERENCE(PARAM3) TYPE CHAR10
DATA: ep TYPE STANDARD TABLE OF rsexp ,
ip TYPE STANDARD TABLE OF rsimp ,
tp TYPE STANDARD TABLE OF rstbl ,
el TYPE STANDARD TABLE OF rsexc ,
vals TYPE tihttpnvp ,
wa_vals TYPE ihttpnvp ,
wa_ip TYPE rsimp .
FIELD-SYMBOLS: <temp> TYPE ANY .
CALL FUNCTION 'FUNCTION_IMPORT_INTERFACE'
EXPORTING
funcname = 'Y_TEST_FM'
* INACTIVE_VERSION = ' '
* WITH_ENHANCEMENTS = 'X'
* IGNORE_SWITCHES = ' '
* IMPORTING
* GLOBAL_FLAG =
* REMOTE_CALL =
* UPDATE_TASK =
* EXCEPTION_CLASSES =
TABLES
exception_list = el
export_parameter = ep
import_parameter = ip
* CHANGING_PARAMETER =
tables_parameter = tp
* P_DOCU =
* ENHA_EXP_PARAMETER =
* ENHA_IMP_PARAMETER =
* ENHA_CHA_PARAMETER =
* ENHA_TBL_PARAMETER =
* ENHA_DOCU =
EXCEPTIONS
error_message = 1
function_not_found = 2
invalid_name = 3
OTHERS = 4
IF sy-subrc = 0.
LOOP AT ip INTO wa_ip .
MOVE: wa_ip-parameter TO wa_vals-name .
ASSIGN (wa_vals-name) TO <temp> .
IF <temp> IS ASSIGNED .
wa_vals-value = <temp> .
ENDIF .
APPEND wa_vals TO vals .
ENDLOOP .
ENDIF.
ENDFUNCTION.
Maybe you are looking for
-
Serious bootcamp problem please help.
I already installed boot camp once, everything was fine. But my windows had a virus, so i decided to delete the partition and make another one. well after i formatted the windows partition and isntalled it, my mac partition was deleted. it had very i
-
"The disk you inserted is not readable"
I recently ordered some CDs with business information on them and I am having trouble reading the disks. When I insert either one, I get the message: "The disk you inserted was not readable by this computer." They seem to be ordinary homemade CDs, pr
-
Forgot my security questions answers
I need to download from iTunes but they are asking to answer a couple of security questions but I forgot the answers.
-
One Config Window to Color-Manage them all
Hi there! I'm not sure if this is the right place to post it, but since there seems to be no Adobe Bridge Forum, here it goes: I think Adobe should give Bridge a complete and unique window to manage Color Settings for all the Softwares when synchron
-
DPI & PIXELS/ INCHES OR CENTIMETERS
Hi guys , I am new to illustrator and photoshop I don't have the DPI on my Illustrator and photoshop I only have Pixels/inches and centimeters, How can I have a good resolution equal to 300 DPI that is required for my project?