Copy data between planning area with function module
Hi gurus!
I'm involved in a consumer products project
In my multiplaning area i copy "catalog code" from act to fct after a preliminary selection in a authorization layout..
Due to increase performance I'm in need to convert the FOX which copies data from actual plan area to fct plan area after the authorization check, into a formula exit...
This fox works fine but as you can imagine it takes a lot of time to execute cause it has to read every catalog code form the transactional data...
here follows gross summary of the code.
this FOX copies ACT catalog code into FCT catolg
code by CALQUARTER according to Catalog code
authorization stored in AUTH version
DATA PER TYPE 0CALQUARTER.
DATA ENDPER TYPE 0CALQUARTER.
DATA KEYF TYPE KEYFIG_NAME
PER = VARV(variable)
ENDPER = TMVL(per,4).
catalog code is present in the level selection
with no filter
AUTH is the version used for set up the
authorization in data copy (no quarte info is needed)
IF {KEYF,AUTH,#,PLAN1}>0.
PLAN1 I the FCT plan area, PLAN2 is the Act plan area
DO.
{KEYF,FCT,PER,PLAN1}={KEYF,ACT,PER,PLAN2}.
IF PER = ENDPER.EXIT.ENDIF.
PER=TMVL(PER,1).
ENDDO.
ENDIF.
I've found many example in the forum but nothing which refers to different planning areas data copy with exit.
I'll be gratefull to any of you who can help me to compile this function module.
Best regards
M91
Hi Rakesh,
You can use COPY/Version Management Function to do this.
Path: Demand Planning > Environment >Copy/ Version Management
The system takes into account only those periodicities that are common to both planning areas.
For example, if the data is saved in months in the source planning area (PA1) but in months and weeks in the target planning area (PA2)
the system copies to months in the target planning area and then Disaggregates the data to the storage buckets in accordance with the Time-based Disaggregation.
hope this wil help to understand the basic concept.
Kapil
Similar Messages
-
Copying data between two tables with different structures
I have two tables. second table has three extra fields at the end. How can I copy data from first table to the other? I tried the following but it does not seem to work:
INSERT INTO second_table ((select * from first_table),'text','text',5)
Please help. ThanksINSERT INTO second_table SELECT col1, col2, col3, .., 'text', 'text', 5 FROM first_table;
Cheers!
r@m@ -
Generic Data Source with Function Module data mismatch in BI
Hi All,
I'm using Generic Data Source with Function Module, When I execute the Function Module (Which I have Created), I'm getting 16000 records and when run extractor(in RSA3) im getting different no.of records(infact they are more no.).
when I run the InfoPackage in BI im Getting more no. of records than what i got executing the function module..
and single record is divided into 2 records in BI side(not all the records), how can it be possible???
is there anything Im missing to explain you my issue???
if understood please help me out.
Thanks n Regards,
ravi.the datasource frame work starts the function module several times.
1. the initialization
2. the serval times, until you "raise no_more_data".
check you coding: have you refreshed necessary internal tables.
Sven -
Generic Data Source with Function Module data mismatch
Hi All,
I'm using Generic Data Source with Function Module, When I execute the Function Module (Which I have Created), I'm getting 16000 records and when run extractor(in RSA3) im getting different no.of records(infact they are more no.).
when I run the InfoPackage in BI im Getting more no. of records than what i got executing the function module..
and single record is divided into 2 records in BI side(not all the records), how can it be possible???
is there anything Im missing to explain you my issue???
if understood please help me out.
Thanks n Regards,
ravi.HI rkiranbi,
1. FIrst you excute function module according to your paramers, you will get some records. then goto tcode RSA3 --> excute
Provide your Data source name and under setting we have options like Data records/calls, Display extractor calls and selections --> fields .
in that options you have to increase the values. and then you have to pass paramers in RSA3 according to your function module
selections in SE37. Now you will get equal values in both functin module selection and RSA3 Selection. if it fail means you need to
check coding logic in function module.
2. if your are getting wrong values in BI System then check with
1. compare with PSA data and data target data (here you need to check with characterstic as well as keyfigures)
if you find any mistake you need change the coding in function module according to client requirement.
2. compare data with RSA3 and bi report data or data target data.
check it properly above steps, you will get solution.
thanks and regards,
malli -
How to copy a generic extractor with function module into a new system?
Dear Gurus,
i would like to know how i can copy a gneric datasource with function module from one system to the target system.
Thank you
CheersHi Anesh,
thank you for replying.
Since the Datasource will have a new new in the new system, i will create a new one.
Create a generic datasource base on the table is not the problem.
My problem is how could i copy the FM in the new system?
If you can help me on that, it will be fine.
Thanks -
Data source Enhancement with Function Module
Hi all!
I have a requirement like I have to enhance my Generic Data source.
Let me make it clear!
I have 10 field in R/3 which I am able to get into extract structure using Generic Data Source on the corresponding Table.
I have another field on my extract structure, say ZEXMFLD1 which is updated by a function module ZZ_FUNC_MODULE_SAMPLE.
I came to know that Data source Enhancement can be done, but don't know how.
Request your guidance in this. Can u please let me know how I can achieve this?
Thanks,
SriHi Sri,
You can enhance generic datasources also.
For that you have to use below function modules based on your datasource type.
EXIT_SAPLRSAP_001 - Transactiona data
EXIT_SAPLRSAP_002 - Master
EXIT_SAPLRSAP_003 - text
EXIT_SAPLRSAP_004 - Hier
First check in CMOD(TCODE) whether component RSAP0001 is assigned to any project. If it is not assigned to any project(fresh system), assign it to a project by creating it.
Ex. ZBW. If it is already assigned, go SE37.
For transaction data go to function module EXIT_SAPLRSAP_001(Trans data) and start your logic.
CASE i_datasource.
WHEN 'your data source name'.
call you Function module - CALL 'ZZ_FUNC_MODULE_SAMPLE'.
pass the imported value from above FM to c_t_data.
close case with ENDCASE.
Let me know if you need more info.
- Kalyan. -
To update Employee Data with Function module
Hi
CRM employee master and HR employee master need to be mapped
for the labor cost posting function to work.
In BP transaction (Change in BP role : Employee),
I could update "Personnel number" and "User Name"
under Identification Tab
now I need to do same job with Function module in report program.
Anybody knows that what Function module should I use ?
I tryed to do it with Function "CRMXIF_PARTNER_SAVE"
but I only succesed to update imformations under Adress tab in BP transaction.
thank you.Use FM BAPI_BUPA_CREATE_FROM_DATA.
Rg,
Harshit -
Transfer variable values via ABAP betweenn planning areas
Hello,
I'm using an ABAP-coding (BPS How-To 'variables type user-exit) for transferring variable values between planning areas. It works fine for single-, multi- and interval-selection, but not for single hierarchie nodes.
I don't want to transfer the values beneath the nodes but the node itself. Has anyone experience with that or changed the ABAP-Coding.
Note, I'm using a variable type hierarchie as destination and get always a dump, when the ABAP is executed.
Appreciate your help, thanks in advance...Hello,
I am having the same problem. Can the function module Z_VARIABLE_GET_DETAIL from the "How to...BPS Variables of Type Exit" be modified to get the node value of a hierarchy node variable so it can be used as a global variable?
Thanks, Linda -
I need to copy data between two cubes (through a business rule). Can I do it using Partition/Replication? If so, does anyone have an example on how it is done? I'm currently using @XREF, but that does not transfer data for blocks that don't already exist in target database.
I'm very new to this so a detailed description will help.
Thanks for your help.Yes, partitions are great. I like to use replicated partitions because I can control the data, and deal with integrity issues etc. Your usage may vary.
Basically, you go to your "Source" database, go to the partitions menu, and "Create New Partition". You then walk through each of the tabs in the partition menu
Type Tab: Choose the type. Let's say a "replicated" partition.
Connection Tab: Choose what databases will be connected with the partition
Areas Tab: I like to check the "Use Text Editor" to just type out the formulas. Also check the "Show Cell Count" to have some confidence your formulas are working as planned. Here you define what data moves from source to target. For example I might setup the following
Source:
("Actuals Data"),
@LEVMBRS("Province",0),
@GENMBRS("Company",2)
Target:
("Actuals Data"),
@LEVMBRS("Province",0),
@GENMBRS("Company",2)
If the names don't match, you can adjust that in the advanced properties or mapping properties. (If you have multiple slices of data - use the advanced mapping).
Now validate and save -
Transfering Forecast between planning areas - /SAPAPO/TSCOPY
Hi,
I want to pull Forecast data from a DP planning area with the unit of measue ZUM. In my target I have another Planning area with the unit of measue EA.
When I use the tcode /SAPAPO/TSCOPY the data is copied successfully, however the quantity is not converted correctly.
Depending of the product the conversion rules should be:
12 ZUM = 1000 EA.
Does anybody knows how can I setup the conversion correctly?
Thanks,
LeonardoLeo,
A couple of points:
1). The data in the PA is ALWAYS stored in the UoM defined.
2). In DP the concept fo swithcing UoM doesnt exist as this is maintained in the product master. The data in DP is CVC dependent.
3). I would suggest the follwoing:
Take down the data from PA1 to a cube. From the cube load the PA2 while using a start routine/function in the update rules to switch the UoM along with a conversion factor to be read from the respective material master.
Hope this helps.
Cheers!
Abhi
Edited by: abhishek sharma on Apr 8, 2010 9:08 AM -
Unable to copy data in planning
Hi Gurus,
I am unable to copy data using "copy data" in planning web application.
getting an error "MSG_COPY_DATA_OPTIONS_FAILED: An error occurred while running the specified calc script. Check the log for details."
here are the steps I checked:
I checked whether planning and essbase are in sync.
The DBA team says that there was no spikes in memory.
when I take small data set it see data in target but the status in Job Console says processing for the past 45 min.
I was copying only one month of data.
please help.I see you must of read the two Oracle Support articles by what you wrote in your post.
Have you checked the essbase app log? also it sometimes help to restart the planning web app when it happens.
Also have a read of Re: Where is the calc script created when running the 'Copy Data' function ?
Cheers
John
http://john-goodwin.blogspot.com/ -
3 generic data sources or only one function module
Hi all,
I have 3 custom tables
1. ZCOUNTRY (giving the link between code entity and country)
1. ZCURR (giving the link between code entity and currency)
1. ZYTPE (giving the link between code entity and type entity)
I shall fill an info object which has as fields code entity, country,currency and type entity.
I have 2 solutions i suppose:
1. Create 3 generic data sources based on the 3 tables.
2. Create a generic data source by using the function module.The function module will populate an extract extracture from data from these 3 tables.
What is the best solution?What is the advantage of the chosen solution?
Thks a lot.Hi,
Generic Extractors are based on View/Table or Fn Module or Infoset Query i.e all the extractors created via RSO2. The extractors you create for the customers would generally be generic extractors only. SAP has some other extractors like your LIS, LO Cockpit which are based on different extraction method.
Generic extractors are of 3 types:
1. Based on table/view
2. Based on Infoset Query
3. Based on Function module
The first 2 are straight forward extraction where you would either use a standard SAP or custom table/view or Infoset query to extract data.
However if you have to get data from more than 1 table and also incorporate some logic then you would use a fn module extractor. It is like a program where you would code using ABAP and have all your logic incorporated.
Check this blog for more info on fn module extractor:
/people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
Raj -
What are the function modules used in CRM_ORDER_STATUS
Hi,
what are the function modules used in CRM_ORDER_STATUS(BADI) IN THIS METHOD AFTER_CHANGE...Hi,
http://scn.sap.com/thread/3202739
AFTER_CHANGE
ABAP ABAP Code
Follow-Up Action After Status Change
BEFORE_CHANGE
ABAP ABAP Code
Checks for Status Changeability
Sample code to set date on status change ------
INCLUDE crm_direct.
DATA : ls_status TYPE crmt_status_wrk.
DATA : lv_process_type TYPE crmt_process_type.
DATA : lit_appointment TYPE crmt_appointment_wrkt.
DATA : wa_appointment TYPE crmt_appointment_wrk.
DATA : ls_appoint TYPE crmt_appointment_com.
DATA : lt_appoint TYPE crmt_appointment_comt.
DATA : ls_input_field TYPE crmt_input_field.
DATA : lt_input_field TYPE crmt_input_field_tab.
DATA : ls_fieldnames TYPE crmt_input_field_names.
DATA : lt_fieldnames TYPE crmt_input_field_names_tab.
DATA : lt_exception TYPE crmt_exception_t.
DATA : lv_timestamp TYPE sc_tstfro.
DATA : lt_header_guid TYPE crmt_object_guid_tab.
DATA : lt_req_objects TYPE crmt_object_name_tab.
ls_status = is_status_wrk.
*Get process type
CALL FUNCTION 'CRM_INTLAY_GET_PROCESS_TYPE'
EXPORTING
iv_orderadm_h_guid = ls_status-guid
IMPORTING
ev_process_type = lv_process_type.
* Check process type
IF lv_process_type = 'ZZZ'.
INSERT ls_status-guid INTO TABLE lt_header_guid.
INSERT gc_object_name-appointment INTO TABLE lt_req_objects.
**Get appoinment data
CALL FUNCTION 'CRM_ORDER_READ'
EXPORTING
it_header_guid = lt_header_guid
iv_mode = gc_mode-display
it_requested_objects = lt_req_objects
IMPORTING
et_appointment = lit_appointment
EXCEPTIONS
document_not_found = 1
error_occurred = 2
document_locked = 3
no_change_authority = 4
no_display_authority = 5
no_change_allowed = 6
OTHERS = 7.
IF sy-subrc NE 0.
EXIT.
ENDIF.
*read item level data
READ TABLE lit_appointment INTO wa_appointment WITH KEY ref_kind = 'B'.
IF sy-subrc = 0.
* *Time-stamp set to as per current date and time.
CONVERT DATE sy-datum TIME sy-uzeit INTO TIME STAMP lv_timestamp
TIME ZONE sy-zonlo.
*Fill appoinment structure
ls_appoint-ref_guid = wa_appointment-ref_guid."appoinment gid
ls_appoint-ref_kind = 'B'."Item
ls_appoint-ref_handle = '0000000000'.
ls_appoint-appt_type = 'ZSERV_CLOSE'."c_appt_type .
ls_appoint-timestamp_from = lv_timestamp.
ls_appoint-timezone_from = 'GMTUK'."time zone
ls_appoint-mode = ''.
ls_appoint-rule_name = 'TODAY'.
INSERT ls_appoint INTO TABLE lt_appoint.
ls_input_field-ref_guid = wa_appointment-ref_guid.
ls_input_field-ref_kind = 'B'.
ls_input_field-objectname = 'APPOINTMENT'.
ls_input_field-logical_key = 'ZSTATUS_NEW'.
*Fill input fields
ls_fieldnames-fieldname = 'TIMESTAMP_FROM'.
INSERT ls_fieldnames INTO TABLE ls_input_field-field_names.
INSERT ls_input_field INTO TABLE lt_input_field.
CLEAR lt_fieldnames[].CLEAR ls_fieldnames. CLEAR ls_input_field.
*To update date
CALL FUNCTION 'CRM_APPT_MAINTAIN_MULTI_OW'
EXPORTING
iv_ref_guid = wa_appointment-ref_guid
iv_ref_kind = 'B'
it_appointment_com = lt_appoint
CHANGING
ct_input_fields = lt_input_field
EXCEPTIONS
OTHERS = 1.
ENDIF.
ENDIF.
Standard BADI Order_Save will take care to save into database.
Regards,
Sumeet -
What are the function modules used in interactive ALV and parameters?
what are the function modules used in interactive ALV and parameters?
hi sunil
check these links,
About ALV:
http://www.geocities.com/mpioud/Abap_programs.html
ALV Group Heading
http://www.sap-img.com/fu037.htm
and few more,
ALV
1. Please give me general info on ALV.
http://www.sapfans.com/forums/viewtopic.php?t=58286
http://www.sapfans.com/forums/viewtopic.php?t=76490
http://www.sapfans.com/forums/viewtopic.php?t=20591
http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.
2. How do I program double click in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=11601
http://www.sapfans.com/forums/viewtopic.php?t=23010
3. How do I add subtotals (I have problem to add them)...
http://www.sapfans.com/forums/viewtopic.php?t=20386
http://www.sapfans.com/forums/viewtopic.php?t=85191
http://www.sapfans.com/forums/viewtopic.php?t=88401
http://www.sapfans.com/forums/viewtopic.php?t=17335
4. How to add list heading like top-of-page in ABAP lists?
http://www.sapfans.com/forums/viewtopic.php?t=58775
http://www.sapfans.com/forums/viewtopic.php?t=60550
http://www.sapfans.com/forums/viewtopic.php?t=16629
5. How to print page number / total number of pages X/XX in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)
6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.
http://www.sapfans.com/forums/viewtopic.php?t=64320
http://www.sapfans.com/forums/viewtopic.php?t=44477
7. How can I set the cell color in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=52107
8. How do I print a logo/graphics in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=81149
http://www.sapfans.com/forums/viewtopic.php?t=35498
http://www.sapfans.com/forums/viewtopic.php?t=5013
9. How do I create and use input-enabled fields in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=84933
http://www.sapfans.com/forums/viewtopic.php?t=69878
10. How can I use ALV for reports that are going to be run in background?
http://www.sapfans.com/forums/viewtopic.php?t=83243
http://www.sapfans.com/forums/viewtopic.php?t=19224
11. How can I display an icon in ALV? (Common requirement is traffic light icon).
http://www.sapfans.com/forums/viewtopic.php?t=79424
http://www.sapfans.com/forums/viewtopic.php?t=24512
12. How can I display a checkbox in ALV?
http://www.sapfans.com/forums/viewtopic.php?t=88376
http://www.sapfans.com/forums/viewtopic.php?t=40968
http://www.sapfans.com/forums/viewtopic.php?t=6919
also run the folowing code and see
check this sample code.you will be well versed with all the events of a interactive alv report.mark points if useful.
*& Report ZALV4_INTERACTIVE *
*& interactive alvs *
REPORT ZALV4_INTERACTIVE NO STANDARD PAGE HEADING
MESSAGE-ID ZMSG
LINE-COUNT 37(3)
LINE-SIZE 134.
TYPE-POOLS : SLIS.
TABLES DECLARATION ********************
TABLES : VBRK, " BILLING MASTERS TABLE
VBRP. " BILLING ITEM TABLE
TYPES DECLARATION ********************
TYPES : BEGIN OF TY_VBRK, " types for billing masters table
VBELN TYPE VBRK-VBELN, " billing document
WAERK TYPE VBRK-WAERK, " document currency
VKORG TYPE VBRK-VKORG, " sales organization
FKDAT TYPE VBRK-FKDAT, " billing date
BUKRS TYPE VBRK-BUKRS, " company code
BUTXT TYPE T001-BUTXT, " company name
NETWR TYPE VBRK-NETWR, " net currency value
LINE_COLOR(4) TYPE C,
END OF TY_VBRK.
TYPES : BEGIN OF TY_VBRP, " types for billing document item data
POSNR TYPE VBRP-POSNR, " billing item
FKIMG TYPE VBRP-FKIMG, " actual invoiced quantitty
VRKME TYPE VBRP-VRKME, " sales unit
NETWR TYPE VBRP-NETWR, " net currency value
MATNR TYPE VBRP-MATNR, " material number
ARKTX TYPE VBRP-ARKTX, " short text for sales order item
END OF TY_VBRP.
FIELD CATALOG ********************
DATA : WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.
LAYOUT DECLARATION ********************
DATA : WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
WA_LAYOUT1 TYPE SLIS_LAYOUT_ALV.
EVENTS DECLARATION ********************
DATA : TY_EVENTS TYPE SLIS_ALV_EVENT,
IT_EVENTS TYPE SLIS_T_EVENT.
PF STATUS ********************
DATA : PF_STATUS TYPE SLIS_FORMNAME VALUE 'SET_PF_STATUS'.
USER COMMAND ********************
DATA : USER_COMMAND TYPE SLIS_FORMNAME VALUE 'SET_USER_COMMAND',
R_UCOMM LIKE SY-UCOMM.
INTERNAL TABLES ********************
DATA : IT_VBRK TYPE TABLE OF TY_VBRK, "internal table for billing master
IT_VBRP TYPE TABLE OF TY_VBRP, "internal table for billing item
*internal table for field catalog
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV.
WORK AREA ********************
DATA : WA_VBRK LIKE LINE OF IT_VBRK, "work area for billing master
WA_VBRP LIKE LINE OF IT_VBRP. "work area for billing item
VARIABLE DECLARATION ********************
DATA : V_DATE TYPE SY-DATUM, " variable to store date values
V_VBELN TYPE VBRK-VBELN, " variable for billing document
V_FKDAT TYPE VBRK-FKDAT, " variable for billing date
V_FLAG(1). " variable for flag
SELECTION SCREEN ********************
SELECT-OPTIONS : S_VBELN FOR VBRK-VBELN , " Billing document
S_FKDAT FOR VBRK-FKDAT, " Billing date
S_MATNR FOR VBRP-MATNR. " Material number
PARAMETERS : R1 RADIOBUTTON GROUP G1, "whole item details
R2 RADIOBUTTON GROUP G1. "selected item details
INITIALIZATION ********************
INITIALIZATION.
V_FLAG = 'X'.
V_DATE = SY-DATUM - 20.
S_FKDAT-SIGN = 'I'.
S_FKDAT-OPTION = 'EQ'.
S_FKDAT-LOW = V_DATE.
S_FKDAT-HIGH = SY-DATUM.
APPEND S_FKDAT.
SELECTION SCREEN VALIDATION ********************
AT SELECTION-SCREEN.
PERFORM CONVERSION. " performs data conversion for input
PERFORM VBELN_VALIDATE. " validating the billing document
PERFORM FKDAT_VALIDATE. " validating the billing date
START OF SELECTION ********************
START-OF-SELECTION.
SET TITLEBAR 'AAAA'.
PERFORM VBRK_POPULATE. " populating the billing master detais
PERFORM FIELDCATALOG. " designing the field catalog
PERFORM EVENTS. " performing the events for top of page
PERFORM DISP_BASICLIST." displaying the basic list
*& Form VBELN_VALIDATE
text validating the billing document
--> p1 text
<-- p2 text
FORM VBELN_VALIDATE .
IF S_VBELN IS INITIAL.
MESSAGE E000 WITH 'Make entries in all required fields'.
ELSE.
SELECT SINGLE VBELN
FROM VBRK
INTO V_VBELN
WHERE VBELN IN S_VBELN.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH 'BILLING DOCUMENT DOESNT EXIST'.
ENDIF.
ENDIF.
ENDFORM. " VBELN_VALIDATE
*& Form FKDAT_VALIDATE
text validating the billing date
--> p1 text
<-- p2 text
FORM FKDAT_VALIDATE .
SELECT SINGLE FKDAT
FROM VBRK
INTO V_FKDAT
WHERE FKDAT IN S_FKDAT.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH 'BILLING DATE DOESNT EXIST'.
ENDIF.
ENDFORM. " FKDAT_VALIDATE
*& Form VBRK_POPULATE
text populating the billing master details
--> p1 text
<-- p2 text
FORM VBRK_POPULATE .
DATA : LD_COLOR(1) TYPE C.
LD_COLOR = 5.
SELECT VBRK~VBELN
VBRK~WAERK
VBRK~VKORG
VBRK~FKDAT
VBRK~BUKRS
VBRK~NETWR
T001~BUTXT
FROM VBRK INNER JOIN T001
ON VBRKBUKRS = T001BUKRS
INTO CORRESPONDING FIELDS OF TABLE IT_VBRK
WHERE VBRK~VBELN IN S_VBELN AND
VBRK~FKDAT IN S_FKDAT.
LOOP AT IT_VBRK INTO WA_VBRK.
LD_COLOR = LD_COLOR + 1.
IF LD_COLOR = 8.
LD_COLOR = 1.
ENDIF.
CONCATENATE 'C' LD_COLOR '10' INTO WA_VBRK-LINE_COLOR.
MODIFY IT_VBRK FROM WA_VBRK.
ENDLOOP.
ENDFORM. " VBRK_POPULATE
*& Form CONVERSION
text data conversion to take leading zeroes into account
--> p1 text
<-- p2 text
FORM CONVERSION .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = S_VBELN
IMPORTING
OUTPUT = S_VBELN.
ENDFORM. " CONVERSION
*& Form DISP_BASICLIST
text displaying the basic list
--> p1 text
<-- p2 text
FORM DISP_BASICLIST .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = PF_STATUS
I_CALLBACK_USER_COMMAND = USER_COMMAND
I_STRUCTURE_NAME =
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'X'
IS_VARIANT =
IT_EVENTS = IT_EVENTS
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_VBRK
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " DISP_BASICLIST
*& Form FIELDCATALOG
text designing the field catalog
--> p1 text
<-- p2 text
FORM FIELDCATALOG .
WA_FIELDCAT-TABNAME = 'IT_VBRK'.
WA_FIELDCAT-FIELDNAME = 'VBELN'.
WA_FIELDCAT-SELTEXT_L = 'BILLING DOCUMENT'.
WA_FIELDCAT-COL_POS = 1.
WA_FIELDCAT-EMPHASIZE = 'C610'.
WA_FIELDCAT-KEY = 'X'.
WA_FIELDCAT-OUTPUTLEN = 20.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_VBRK'.
WA_FIELDCAT-FIELDNAME = 'WAERK'.
WA_FIELDCAT-SELTEXT_L = 'DOCUMENT CURRENCY'.
WA_FIELDCAT-COL_POS = 2.
WA_FIELDCAT-OUTPUTLEN = 20.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_VBRK'.
WA_FIELDCAT-FIELDNAME = 'VKORG'.
WA_FIELDCAT-SELTEXT_L = 'SALES ORGANIZATION'.
WA_FIELDCAT-EMPHASIZE = 'C610'.
WA_FIELDCAT-COL_POS = 3.
WA_FIELDCAT-OUTPUTLEN = 20.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_VBRK'.
WA_FIELDCAT-FIELDNAME = 'FKDAT'.
WA_FIELDCAT-SELTEXT_L = 'BILLING DATE'.
WA_FIELDCAT-COL_POS = 4.
WA_FIELDCAT-OUTPUTLEN = 20.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_VBRK'.
WA_FIELDCAT-FIELDNAME = 'BUKRS'.
WA_FIELDCAT-SELTEXT_L = 'COMPANY CODE'.
WA_FIELDCAT-COL_POS = 5.
WA_FIELDCAT-OUTPUTLEN = 20.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_VBRK'.
WA_FIELDCAT-FIELDNAME = 'BUTXT'.
WA_FIELDCAT-SELTEXT_L = 'COMPANY NAME'.
WA_FIELDCAT-COL_POS = 6.
WA_FIELDCAT-OUTPUTLEN = 25.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'IT_VBRK'.
WA_FIELDCAT-FIELDNAME = 'NETWR'.
WA_FIELDCAT-SELTEXT_L = 'NET CURRENCY VALUE'.
WA_FIELDCAT-COL_POS = 7.
WA_FIELDCAT-OUTPUTLEN = 20.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_LAYOUT-ZEBRA = 'X'.
WA_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
ENDFORM. " FIELDCATALOG
*& Form SET_PF_STATUS
text set the pf status
FORM SET_PF_STATUS USING EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'Z50658_PFSTATUS' EXCLUDING EXTAB.
ENDFORM. "SET_PF_STATUS
*& Form SET_USER_COMMAND
text set the user command
FORM SET_USER_COMMAND USING R_UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN 'CLICK'.
IF R1 = 'X'.
IF NOT IT_VBRK IS INITIAL.
SELECT POSNR
FKIMG
VRKME
NETWR
MATNR
ARKTX
FROM VBRP
INTO CORRESPONDING FIELDS OF TABLE IT_VBRP
FOR ALL ENTRIES IN IT_VBRK
WHERE VBELN = IT_VBRK-VBELN.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH ' NO BILLING DETAILS FOUND'.
ELSE.
IF V_FLAG = 'X'.
PERFORM DET_FIELDCATALOG.
V_FLAG = ''.
ENDIF.
PERFORM DET_LISTDISPLAY.
ENDIF.
ENDIF.
ENDIF.
IF R2 = 'X'.
READ TABLE IT_VBRK INTO WA_VBRK INDEX RS_SELFIELD-TABINDEX.
IF SY-SUBRC = 0.
SELECT SINGLE POSNR
FKIMG
VRKME
NETWR
MATNR
ARKTX
FROM VBRP
INTO CORRESPONDING FIELDS OF WA_VBRP
WHERE VBELN = WA_VBRK-VBELN.
ENDIF.
APPEND WA_VBRP TO IT_VBRP.
ENDIF.
IF V_FLAG = 'X'.
PERFORM DET_FIELDCATALOG. "designing the field catalog for items
V_FLAG = ''.
ENDIF.
PERFORM DET_LISTDISPLAY. "displaying the secondary list
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'UP'.
LEAVE TO SCREEN 0.
WHEN 'CANCEL'.
CALL TRANSACTION 'SE38'.
ENDCASE.
ENDFORM. "SET_USER_COMMAND
*& Form DET_FIELDCATALOG
text designing the field catalog for item details
--> p1 text
<-- p2 text
FORM DET_FIELDCATALOG .
WA_FIELDCAT1-TABNAME = 'IT_VBRP'.
WA_FIELDCAT1-FIELDNAME = 'POSNR'.
WA_FIELDCAT1-SELTEXT_L = 'BILLING ITEM'.
WA_FIELDCAT1-COL_POS = 1.
WA_FIELDCAT1-OUTPUTLEN = 20.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
WA_FIELDCAT1-TABNAME = 'IT_VBRP'.
WA_FIELDCAT1-FIELDNAME = 'FKIMG'.
WA_FIELDCAT1-SELTEXT_L = 'INVOICE QUANTITY'.
WA_FIELDCAT1-COL_POS = 2.
WA_FIELDCAT1-OUTPUTLEN = 20.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
WA_FIELDCAT1-TABNAME = 'IT_VBRP'.
WA_FIELDCAT1-FIELDNAME = 'VRKME'.
WA_FIELDCAT1-SELTEXT_L = 'SALES UNIT'.
WA_FIELDCAT1-COL_POS = 3.
WA_FIELDCAT1-OUTPUTLEN = 20.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
WA_FIELDCAT1-TABNAME = 'IT_VBRP'.
WA_FIELDCAT1-FIELDNAME = 'NETWR'.
WA_FIELDCAT1-SELTEXT_L = 'NET CURRENCY VALUE'.
WA_FIELDCAT1-COL_POS = 4.
WA_FIELDCAT1-OUTPUTLEN = 20.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
WA_FIELDCAT1-TABNAME = 'IT_VBRP'.
WA_FIELDCAT1-FIELDNAME = 'MATNR'.
WA_FIELDCAT1-SELTEXT_L = 'MATERIAL NUMBER'.
WA_FIELDCAT1-COL_POS = 5.
WA_FIELDCAT1-OUTPUTLEN = 20.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
WA_FIELDCAT1-TABNAME = 'IT_VBRP'.
WA_FIELDCAT1-FIELDNAME = 'ARKTX'.
WA_FIELDCAT1-SELTEXT_L = 'SALES ORDER ITEM'.
WA_FIELDCAT1-COL_POS = 6.
WA_FIELDCAT1-OUTPUTLEN = 20.
APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.
CLEAR WA_FIELDCAT1.
WA_LAYOUT1-ZEBRA = 'X'.
ENDFORM. " DET_FIELDCATALOG
*& Form DET_LISTDISPLAY
text displaying the secondary list
--> p1 text
<-- p2 text
FORM DET_LISTDISPLAY .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT = WA_LAYOUT1
IT_FIELDCAT = IT_FIELDCAT1
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = IT_EVENTS
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_VBRP
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
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 IT_VBRP[].
ENDFORM. " DET_LISTDISPLAY
*& Form EVENTS
text
--> p1 text
<-- p2 text
FORM EVENTS .
CLEAR TY_EVENTS.
TY_EVENTS-NAME = SLIS_EV_TOP_OF_PAGE.
TY_EVENTS-FORM = 'TOP_OF_PAGE'.
APPEND TY_EVENTS TO IT_EVENTS.
ENDFORM. " EVENTS
*& Form TOP_OF_PAGE
text
FORM TOP_OF_PAGE.
SKIP.
ULINE.
WRITE :/2 ' DATE :', SY-DATUM,
45 'INTELLIGROUP ASIA PVT LTD',
110 'TIME :', SY-UZEIT.
WRITE : /3 'USER :', SY-UNAME,
45 'TITLE :', SY-TITLE,
110 'PAGE :', SY-PAGNO.
ULINE.
SKIP.
ENDFORM. "TOP_OF_PAGE
Cheers
navjot
Reward with points if it is helpful
Message was edited by:
navjot sharma -
Copy data between Apps filtered by workstatus
Hello all gurus,
BPC 7.5 NW
I am copying data between apps. I want to do it with abap code because I use BADI.
I dont want to copy all data, only data that have been filtered by WorkStatus. I cant use DESTINATION_APP in Script Logic because I need to filter
Structure app is the same. Origin app is APP_A and destination app is APP_B.
I only copy data if Workstatus is 'Approved'
App: APP_A App: APP_B
Dim1 WS
Dim2 WS
DIm3 WS
Dim4
Dim5
If workstatus(DIM1, DIM2, DIM3) = "Approved" then
Copy Dim1,..,5 belongs to APP_A to APP_B
else
Nothing
end if
Example: 2014,Actual,Account1,E1toN,Act1toN copy to 2014,Actual,Account1,E1toN,Act1toN (same rows, same structure)
Note: Act1toN= act1, act2, act3,...actN
Then, my filter is
SETAPP = WB
APP_A = BHN
Worstatus table--> /1CPMB/LKWSWBBHN
Select statuscode from /1CPMB/LKWSWBBHN where DIM1=2104, DIM2=Actual,Dim3=Accoun1
if statuscode='5' then // 5 is Approved (statid) in UJW_STATCODE
copy data 2014,Actual,Account1,E1toN,Act1toN belong APP_A copy to 2014,Actual,Account1,E1toN,Act1toN belong APP_B(same rows, same estructure)
end if
if you need more information dont hesitate to ask
thanks
GustavoThe main How-To page: Enterprise Performance Management (EPM) How-to Guides - Business Process Expert - SCN Wiki
Please read BADI related How-to for BPC NW 7 and 7.5 (BADI's for BPC 7 can be used in 7.5).
Try this: How To Custom BADI for Rounding Off Values in SAP BUSINESSOBJECTS Planning and Consolidation, Version for SAP NetWeaver
Also read badi sample in help.
In order to write data to another cube you have to use write_back_int with the appropriate application selected.
B.R. Vadim
P.S. Read also here: Useful ABAP code in BPC 7.X NW version
Message was edited by: Vadim Kalinin - P.S. Added
Maybe you are looking for
-
21700 while calling java stored procedure in 9i
I create a java stored procedure that takes a varray of a rowtype. When I call that procedure, I get an ora-21700. If I remove the varray from the parameter list, I can call the procedure okay. My goal is to create a generic java procedure that can t
-
Heya, So I'm hoping to get back into photoshop, my knowledge at the moment is pritty minimal, but i'm going to start learning how to use it again. I'm new to this forum and don't intend to come on here often for advice but i hope that someone would b
-
BPS Currency Translation with rate from previous year
Dear All, I am trying to use the BPS currency translation function. However, I would like to use an exchange rate from the previous fiscal year, in order to reveal currency effects. I would appreciate any help, hopefully regarding ways to mend the st
-
Make a PDF with a Mac, NOT using Mac PDF maker
I am suffering from blurry text when making a PDF in Mac OS 10.6 (using "Save as PDF" in the Mac printing dialogue). The software company has confirmed the problem. They suggested using CutePDF to make a PDF because it does a better job. CutePDF is W
-
Printing Excel File programmatically
Hi, Can any body help me in printing an excel file with java I tried executing the below code. DocFlavor format = new DocFlavor("application/octet-stream", "java.io.FileInputStream"); PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet()