How to load member for "sales same date last year"?
I need to load a member in Measures named "PriorYrSales" with "Sales" for the same date last year as today's date. Thus, retrieving "PriorYrSales" for 2/10/2002 would return the sales amount for 2/10/2001. Since days roll-up to months, quarters, years, it would be easy to determine how we're doing compared to the same time last year.Data is loaded each day for a date range from the current date and the preceding x days. Substitution variables are available for the beginning and ending date and the same dates for last year.For example: Data is loaded from beginning date of 2/01/2002 through ending date of 2/10/2002.The prior year date variables contain 2/01/2001 and 2/10/2001.The time period dimension is as follows:FY01->Jan2001-->01012001 (Alias: 1/01/2001)-->01022001 (Alias: 1/02/2001)-->all the dates in Jan->Feb2001-->02012001 (Alias: 2/01/2001)-->02022001 (Alias: 2/02/2001)-->all the dates in Febetc.FY02->Jan2002-->01012002 (Alias: 1/01/2002)-->01022002 (Alias: 1/02/2002)-->all the dates in Jan->Feb2002-->02012002 (Alias: 2/01/2002) -->02022002 (Alias: 2/01/2002)-->all the dates in Febetc.Thanks your any and all suggestions.Phil
Perhaps I wasn't clear in the first post. The intent is to easily compare sales for a current date/period to the same date/period last year. Neither Excel nor Analyzer provide a method that I'm aware of to retrieve data as follows:-------------------------------------Period Sales PriorYrSales Diff4/15/2002 1,000 900 100-------------------------------------(900 is sales for 4/15/2001)(100 is the calculated difference.)Nor can I do this:-------------------------------------Period Sales Period Sales Diff4/15/2002 1,000 4/15/2001 900 100-------------------------------------What Excel and Analyzer do allow is:-------------------------------------Period Sales 4/15/2002 1,0004/15/2001 900-------------------------------------I readily acknowledge that the data is redundant but I can't think of another option that will allow Excel and Analyzer to easily retrieve the values for comparison. If the PriorYrSales member can be loaded then the users can compare years, quarters, months and days quite easily.My challenge is knowing how use a calc script to derive prior year dates that correspond to current year dates. Something like:PriorYrSales->04152002 = Sales->04152001I've considered arrays but I've never used them and the documentation is not helpful enough for me.Thanks for your response.Phil
Similar Messages
-
Help creating a formula which returns current date last year
I need help creating a formula which returns the current date last year. I also need it to work during leap years.
Any ideas?Hi Dagros,
I'm lucky to be a universe designer, I have to do this only once
The easiest way would probably be to use
=RelativeDate(CurrentDate();-365)
So subtractiing 365 to get the same date last year,
but you would need some extra logic for the years with a feb 29 in those 365 days.
=If FormatDate(RelativeDate(CurrentDate();-365);"dd") = FormatDate(CurrentDate();"dd")
Then RelativeDate(CurrentDate();-365)
Else RelativeDate(CurrentDate();-366)
Another question to ask is if you really want the same date last year, or if you also want a really 'same day' so monday compared to monday etc. in this case you would just subtract 364 days and get the day 52 weeks back...
Good luck,
Marianne -
How to configure rescheduling for sale order quantities
kindly explain how to configure rescheduling for sale order quantities that are created last month. kindly explain. i am in urgent.
regards,
g.v.shivakkumarHi,
Short text
Rescheduling sales and stock transfer documents: by material
Description
The 'Rescheduling' program (SDV03V02) processes sales document items that are contained in the item directory for the material. It takes into consideration open items and schedule lines from stock transfer items, stock transfer scheduling agreements and purchase order requests (items only), referred to hereafter as stock transfer documents, for the materials.
All sales documents for the material that are still open are selected. This means that the material index must be activated for at least all sales document types, whose items may have requirements. All stock transfer documents or items for the material that are still open are also selected. Open in this case means for example, that there is no deletion indicator, that the item from a stock transfer purchase order request cannot be labeled as completed or that the quantity delivered and posted to goods issue for the item in a stock transfer purchase order is the same as the amount ordered. An availability check can only be carried out if a checking rule is assigned to the document type - if this is not the case, the document or document item is not checked.
Checking rule 'A' is used as a basis for rescheduling sales orders (exceptions to this are rush orders they use checking rule B, and orders with individual customer stock; they use checking rule AE). Stock transfer documents use the checking rule that is assigned in Customizing for Purchasing. It is important that the scope of checks is consistent for both the stock transfer documents and the sales documents and that they do not exclude each other, as this can lead to incorrect test results. An example of an incorrect setting would be: The scope of check for checking rule 'A' checks delivery schedules for stock transfer purchase orders and stock transfer purchase requests, however the scope of check for the checking rule for the stock transport scheduling agreement does not.
The items and schedule lines found in the selection are sorted according to 'Priorities' - document category, delivery priority, creation date of the item or schedule line (for stock transfer purchase orders and delivery plans) entered on the selection screen or according to the schedule line date of the earliest schedule line with order quantity, document number and item number and then transferred to the availability check. Priority 1 is highest priority and priority 5 the lowest. Stock transfer purchase order requests are sorted after stock transfer purchase orders and scheduling agreements, as they are less binding. This means that when you have identical sort criteria such as delivery dates, the stock transfer purchase order item is checked first and then the item from the stock transfer purchase order request.
The preset option 'Unconfirmed documents required' only carries out rescheduling for materials for which there is at least one unconfirmed transaction.
You can use the parameters 'Sorting criteria delivery date' to define whether sorting is carried out with the order quantity after the creation date of the item or the delivery date of the earliest schedule line.
If you mark the 'Simulation' field, the checked documents are not saved. Instead a results list is generated and saved. However, the availability check for the corresponding documents continues as if saving has taken place already, that is, that the simulated list corresponds to the actual one.
Under 'Options' on the selection screen, specify whether sales documents and/or stock transfer documents should be processed. For stock transfer documents you can enter whether stock transfer purchase orders and scheduling agreements should be processed at item or schedule line level:
Processing at item level:
All open schedule lines for the item are read and collected, then transferred to the availability check. To sort and prioritize documents, you do not need each individual schedule line. It is sufficient to have the item or data from the first schedule line. All open schedule lines for the item are processed and checked.
Example of processing at item level:
Sorting: Date (Delivery date first schedule line) - Document number - Document item
Doc. cat. Doc. number Doc. item Doc. schedule line Delivery date PO 4500000012 10 0001 26.01. PO 4500000012 10 0002 26.02. PO 4500000025 20 0001 28.01. PO 4500000025 20 0002 02.02.
You can see that the second schedule line for document 4500000025/20 from 02.02 was processed after the second schedule line for document 4500000012/10 from 26.02. This is because all open schedule lines for an item are read and processed. The first schedule line from 4500000012/10 has the earliest delivery date, therefore it has priority.
Processing at schedule line level:
Each open schedule line for an item is entered in document sorting in accordance with the values entered under 'Priorities'. The availability check is carried out for each individual schedule line.
Example for processing at schedule line level:
Sorting: Date (delivery date first schedule line) - document number -document item
Doc. cat. Doc. number Doc. item Doc. sched. line Del. date PO 4500000012 10 0001 26.01. PO 4500000025 20 0001 28.01. PO 4500000025 20 0002 02.02. PO 4500000012 10 0002 26.02.
Here you can see that each schedule line was sorted according to its delivery date. Note that this type of processing requires more runtime due to the individual checks and more frequent saving.
The results of rescheduling are saved, as long as the program was not started in simulation mode. When calling up from the 'Sales' area menu or when directly starting via the development environment, the iniator is informed via a dialog box that he has just started a process that changes data. He can then decide whether or not he wants to continue.
Checking procedure for stock transfer documents:
An availability check of stock transfer documents in rescheduling is carried out in accordance with the check carried out when manually creating a document. If, however, the required quantity for a schedule line is not available on a particular date and will not be ready until later, new schedule lines are created for the stock transfer purchase orders and scheduling agreements, containing the relevant data. New items are created in this case for stock transfer purchase order requirements. The total sum of schedule line quantities for a processed schedule line corresponds to the schedule line quantity of the original schedule line.
First example: Using a stock transfer purchase order item with a schedule line:
a) Status of item before rescheduling run:
Del. date PO quantity Confirmed quant Confirmed del. date 23.07. 50 items 0 items -
==> This now affects the stock/requirement situation:
- Goods issue is posted for the material in the delivering plant on the 23.07.
- A purchase order of 10 items was created for the material in the delivering plant. Delivery is expected on the 29.07.
b) Status of stock transfer purchase order item after rescheduling run:
Del. date PO quantity Confirmed quant Confirmed del. date 23.07. 40 items 40 items 23.07. 29.07. 10 items 10 items 29.07.
==> The first schedule line was changed in accordance with the results of the rescheduling availability check. Only 40 of the 50 original items could be delivered on the 23.07. Therefore, a new schedule line is created for the rest on the 29.07. for 10 confirmed items.
Second example: Same output situation as the above example.
==> There is now a change in the requirement/stock situation:
A purchase order for 10 items is created for the material in the delivering plant. Delivery is expected on the 29.07. A further purchase shows another 40 planned items on the 30.07.
Status of stock transfer purchase order item after rescheduling run:
Del. date PO quantity Confirmed quant Confirmed del. date 29.07. 10 items 10 items 29.07. 30.07. 40 items 40 items 30.07.
==> The first schedule line was changed in accordance with the result of the availability check for rescheduling. The original delivery date is set to the date confirmed in the ATP check. A new schedule line is created for the remaining 40 items, that are available on the 30.07.
Note:
Any set fixed delivery date and quantity indicators and creation indicators for schedule lines or items are 'inherited' by newly created schedule lines. Assuming that the original schedule line was fixed in the above example (since it is created manually), this indicator is also set for the newly created schedule line.
If shipping scheduling is activated for a stock transfer document type, this is also implemented for newly created schedule lines, with the exception of route schedule determination. This means that in the current version of the program no route schedule has been determined for a schedule line containing a route schedule for which new schedule lines may need to be created.
The results of the run are issued in the form of a list, which is also saved, so that the results can be controlled at a later date. This is done using the function 'Evaluate rescheduling', but it is only a good idea to do this after the first rescheduling has taken place. You can restrict selection requirements but these can however affect the runtime. You can use this function to analyze the saved list until the next rescheduling run, which writes over the result. If you start rescheduling in the background, a spool file with the result list referred to will be created in the corresponding setting. You can see this in spool management.
Output
A list of changed documents, a list of documents in which an error occurred during processing and as a result were not changed, can be called up via the menu 'Edit - Error log'. If in a subsequent evaluation a restricted selection is carried out, a note appears at the end of the list to say that not all document items are displayed.
You can set the scope of the list under the menu option 'List' in the list display. You can view improvements, deteriorations and the whole list. Before the documents can be included in one or either of the restricted lists, the date or quantity has to have changed so that the item can be contained in both the list of improved or deteriorated documents.
You can use the interface for changing transactions and the order list to navigate. Use 'Back' to exit the list and 'New selection' to return to the selection screen.
Recommendation
You should only start this program occasionally and use very restricted selectin criteria during working hours as it requires enormous system resources.
Note
The columns for 'New date' and 'New confirmed qty' only contain entries if the dates or quantities have changed.
As the system only runs the change check (dates/quantities) per line in the original list, an item whose backlog has increased in the list of improvements. This occurs, for example, if the whole quantity can be delivered at once but at a later date. In this situation, the system determines an increase for the line when it compares quantities.
Regards,
Amrish Purohit -
Quota is displayed twice in 2006 for the same date
When iam entering Leave Quota Through PA30 , PA61 ,PT_QTA00
for a particular Employee it will display the Quota Twice
Is there any way we can stop this ?
is there any way we can Put cap that double Entry for the same date ?
Quota is deducting Normally but it is Displaying Twice
Plz Help ExpertsThank You So much
i changed in the info type
SPRO>> Time Management>> Time Data Recording and Administration>> Specify System Reaction to Overlapping Time Infotypes
Infotype 2006
Time Cstr. Class 01
Reaction Indicator : select according to The Requirement
Right now Reaction Indicator is set to W
Make the Reaction Indicator to E and save the Entry
It worked for now
one thing iam not sure how does V_T554Y table work
Plz let me know
Reaction I ndicator
This indicator determines how the system reacts when you enter new infotype records which overlap with existing ones.
The specifications are as follows:
A - The old record is delimited, all collisions are displayed.
E - The system does not allow you to create the new record, and
displays all collisions.
W - You can create the new record, but the old record remains unchanged. All collisions are displayed.
N - As for W, but collisions are not displayed.
Edited by: jkhose on Jan 25, 2012 1:23 AM -
Multiple MM schedule lines for the same date
Hello All Gurus,
I am facing a problem where the MM schedule lines are divided into various quantites for the same date. For example on 02/11/2010 the total quantity is 120, it is appearing in the below form in ME38:
02/11/2010 - 40
02/11/2010 - 40
02/11/2010 - 40
Although this is not an error, but my client is not happy with this. Can someone tell me why I am getting this error? Is it because of the rounding value that we maintain in MRP 1 view of material master record? Or is there any other setting that I am missing?
Please let me know. I would be very much thankful to you.
Thanks and Regards,
UmakanthHi,
Before changing the setup, note that sometimes it is beneficial to split one demand into multiple delivery schedules. Especially if the demand is bigger than equipment type (container/truck etc.). If you want to manage inbound transportation for such delivery schedules, it is much simpler to do this when each delivery schedule is not bigger than one equipment.
Regards,
Dominik Modrzejewski -
Events cannot have multiple exceptions for the same date
I just starting getting this message and could not sync to one of my Google calendars. I'm posting this for others who might get the same problem.
I didn't find the answer on these forums but did find it on this thread on Google:
http://www.google.com/support/forum/p/Calendar/thread?tid=241155f758d9e2a4&hl=en
Here's the important excerpt:
"I had a client, who just had this same issue, nothing to do with Google cals.
It was apparently, in my best guess, a corruption of the subscribed cal.
*I did a get info on the cal, copied the URL, deleted the cal, then re-subscribed to it by pasting in the URL, and now it's working fine*."I've been having the same problem with my iCal calendars and the "Events cannot have multiple exceptions for the same date" error. Once it gets going, it uses up a lot of the CPU and resources. After reinstalling iCal, all my calendars were missing and I could not even resubscribe to them.
I took my MacBook Pro to the Apple Store, and they were able to solve the problem by moving some of the iCal files from their existing folders out to the desktop, and reopening the program. That got it working, however, now I'm having the same problem again. So back to square one. Anyone else having this issue and know the cause?
My setup is my MacBook Pro uses Entourage, use that calendar in my iCal. And I subscribe to two calendars my wife publishes on her Macbook. We're both using Snow Leopard. -
How to get the difference of two dates in years,months and days
Hi friends,
how to get the difference of two dates in years,months and days
for ex 2 years 3 months 13 days
select (sysdate-date_Start) from per_periods_of_service
thanksSomething like this...
SQL> ed
Wrote file afiedt.buf
1 with t as (select to_date('17-nov-2006','dd-mon-yyyy') as c_start_date, to_date('21-jan-2008','dd-mon-yyyy') as c_end_date from dual union all
2 select to_date('21-nov-2006','dd-mon-yyyy'), to_date('17-feb-2008','dd-mon-yyyy') from dual union all
3 select to_date('21-jun-2006','dd-mon-yyyy'), to_date('17-jul-2008','dd-mon-yyyy') from dual
4 )
5 -- end of test data
6 select c_start_date, c_end_date
7 ,trunc(months_between(c_end_date, c_start_date) / 12) as yrs
8 ,trunc(mod(months_between(c_end_date, c_start_date), 12)) as mnths
9 ,trunc(c_end_date - add_months(c_start_date, trunc(months_between(c_end_date, c_start_date)))) as dys
10* from t
SQL> /
C_START_D C_END_DAT YRS MNTHS DYS
17-NOV-06 21-JAN-08 1 2 4
21-NOV-06 17-FEB-08 1 2 27
21-JUN-06 17-JUL-08 2 0 26
SQL>But, don't forget that different months have different numbers of days, and leap years can effect it too. -
Problem with bex query listing sales "this month" and "same month last year
Hi,
I've created a query in BW BEx, where I have a mandatory variable for 0calmonth, and I list 0material and sales (in volume, liter). And I have a restricted key figure giving me sales (volume in liter) restricted with 0calmonth = variable - 12, to give me the sale for the same month the user select, previous year.
This seems to be working, the sum is correct, but when adding up the number for the sales in the month previous year, the numbers does not fit the sum in the end.
I think the report only lists materials with sales the month selected in the variable, if a material has not been sold that month, but in the same month last year, it's not listed in the reports, but it's added in the sum in the end.
Example.
We have three records like this:
material - calmonth - volume
101 - 01.2010 - 5
101 - 01.2011 - 8
201 - 01.2010 - 7
The report will give the following (calmonth variable = 01.2011)
Material - volume this month - volume same month last year
101 - 8 - 5
Sum 8 - 12
Any way to solve this issue? We noticed because we run BO - Webi on top of the BEx query, and BO sum's the values per material, and in webi the report would give us the sum 8 and 5.
Any input is appreciated.
Regards,
ØysteinHi,
thanks for your reply.
The error is that the report only seems to list materials that has been sold "this month", and if the same material was sold the same month last year, it will also list the volume for this.
But if the material is only sold in the same month last year, it's not listed in the report, but it's calculated into the sum at the end.
The report is listing material, which is why the error presents itself, as you said
Getting 8 minus 12 is correct unless you drill down by material. In that case, it should be 8 minus 5 and 0 minus 7.
The row with 0 - 7 is not shown, and my guess is that the report will only list materials that has sales this month (which has been selected in the variable)
Regards,
Øystein
Edited by: Oystein Gundersen on Mar 21, 2011 4:36 PM -
User exit to calculate Same period Last Year
Dear gurus,
can some help me to code the user exit to calculate the same period last year for bex variable
i.e
System date :18.05.2010
Same period last tear : 18.05.2009
Your help highly appreciated
Thank you
BRHi,
The above code creates problem only when date is 29th of Feb.
To find whether year -1 is leap yr or not include following code also:
l_year = sy-datum(4)-1 .
l_mod4 = l_year mod 4.
l_mod100 = l_year mod 100.
l_mod400 = l_year mod 400.
if ( l_mod4 = 0 and l_mod100 ne 0 ) or l_mod400 eq 0.
if( l_date = 29)
l_date= l_date -1.
endif.
endif.
Modify your code according to youe need. Hope this helps you.
Thanks,
Jitender. -
SAP Mobile Sales 2.0 delta load issue for Sales Orders
Hello,
we have used Mobile Sales 2.0 with a Windows app for a while now. Our current issue is that sales reps won't see any historical sales order data on their devices.
Background
Due customer requirements, we need to make small changes to customer master data attributes and reload all customers from ERP to CRM. Then we ran delta loads (MAS_PARTNER followed by all other objects) to DOE, in which virtually all 5000+ customer accounts were compared. The delta load ran for about 3 days (some performance bottleneck we haven't located yet).
During the delta load, data on devices was inconsistent. Accounts were missing and all transaction data disappeared. After the delta loads, all accounts and contacts are OK, save for a few. Data from activities (appointments, tasks) have reappeared, as they should. Only sales orders won't reappear. The sales orders exist in the backend and belong to active accounts and sales reps.
Settings and troubleshooting so far
We don't have any limitations for sales orders in CRM Sales Mobile configuration.
We've run delta loads for all objects in transaction SDOE_LOAD.
MAS_CUSTOMIZATION etc seem fine.
We've re-run initial load for sales orders from CRM.
In the test system, we've even reinitialized the whole CDS database on DOE and on the devices, then re-ran the loads.
Checked steps suggested in discussion
SAP CRM 2.0 initial load issue
Historical sales orders (those created before the master data reload) exist in the backend, but don't show up on the device.
If I change one of those historical sales orders in the backend, it gets sent to the device.
If I create a new sales order in the backend or on the device, it is saved and replicated just fine.
To sum it up, it seems DOE is unable to identify the sales orders relevant for replication.First Doubt i got clarify by my self as we can go with Unwired Runtime option .
But i still have doubt in :
2. How can i Modifying the Main Menu for iOS.
i am able to customize the same for windows using files SybaseCRM.Configuration.xml file.
Same how can i do for iphone/ipad. -
How to retrieve the ARCHIVED Sales order data
Hi All,
When issuing the output for the delivery, it is giving an error saying 'Sales Order XXXX does not exist' due to which the prices in the output were displayed as '0'. Reason for this can be that 'the order might have been archived'.
My requirement is,
1. If Sales Order doesnu2019t exist in data base then need to check if Sales order exists in archive data base.
2. If yes, take needed data from archive data base tables to calculate price. The logic of price calculation should be the same as for not archived Sales Orders.
Can anyone help me on this..?
Please tell me how to check whether the Sales order exists in the Archived database. Please share the table names(sample logic if possible) sothat I can use them in the report logic.
Please tell me how to pull the data from the archive database tables to calculate the price.
Thank you in advance.
Thanks & Regards,
Paddu.
Edited by: Paddu K on Feb 23, 2009 3:42 PM*& Form get_archive_data
* Fetch Archive Data
FORM get_archive_data .
CLEAR: g_read_handle, g_commit_cnt,
g_read_cnt, g_reload_cnt,it_rel_tab,it_bseg_a,it_bkpf_a,
it_bset_a, gt_result.
REFRESH: it_rel_tab[],it_bseg_a[],it_bkpf_a[],
it_bset_a[], gt_result[].
*Populating selection screen fields to field-symbols
PERFORM build_fs_select_options.
*Call FM as_api_read FI Data
CALL FUNCTION 'AS_API_READ'
EXPORTING
i_fieldcat = 'SAP_FI_DOC_002'
i_selections = ft_selections[]
* I_OBLIGATORY_FIELDS =
* I_MAXROWS =
IMPORTING
e_result = gt_result[]
EXCEPTIONS
parameters_invalid = 1
no_infostruc_found = 2
field_missing_in_fieldcat = 3
OTHERS = 4
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF NOT gt_result[] IS INITIAL.
*Sorting by KEY and Offset
SORT gt_result BY archivekey archiveofs.
*To delete duplicates
DELETE ADJACENT DUPLICATES FROM gt_result COMPARING archivekey
archiveofs.
*looping the internal table
LOOP AT gt_result.
*Get read handle for object
CALL FUNCTION 'ARCHIVE_READ_OBJECT'
EXPORTING
object = 'FI_DOCUMNT'
archivkey = gt_result-archivekey
offset = gt_result-archiveofs
IMPORTING
archive_handle = g_read_handle
EXCEPTIONS
OTHERS = 1.
IF NOT sy-subrc IS INITIAL.
MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
EXIT.
ENDIF.
IF sy-subrc = 0.
*Get Acoounting Document details
PERFORM object_read_opened
TABLES it_rel_tab
it_bseg_a
it_bkpf_a
* it_bset_a
* it_bsik_a
* it_bsak_a
it_bsid_a
it_bsad_a
* it_bsec_a
USING g_read_handle
l_archobj
g_commit_cnt
g_read_cnt
g_reload_cnt
ENDIF.
*close the file.
CALL FUNCTION 'ARCHIVE_CLOSE_FILE'
EXPORTING
archive_handle = g_read_handle
EXCEPTIONS
internal_error = 1
wrong_access_to_archive = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE i004." 'Unable to close archive session'.
EXIT.
ENDIF.
ENDLOOP.
ELSE.
MESSAGE i000 WITH 'No data found for Archived data'(095).
EXIT.
ENDIF.
*Start of Changes by GTHATIKONDA on 10/17/2008 #ECDK902204
IF NOT it_bkpf_a[] IS INITIAL.
SORT it_bkpf_a BY belnr.
DELETE ADJACENT DUPLICATES FROM it_bkpf_a COMPARING belnr.
DELETE it_bkpf_a WHERE budat GT p_budat. "#ECDK902206
ENDIF.
*Start of Changes by GTHATIKONDA on 10/17/2008 #ECDK902206
IF it_bkpf_a[] IS INITIAL.
MESSAGE i000 WITH 'No data found for Archived data'(095).
ENDIF.
*End of Changes by GTHATIKONDA on 10/17/2008 #ECDK902206
IF NOT it_bseg_a[] IS INITIAL.
SORT it_bseg_a BY belnr gjahr buzei.
DELETE ADJACENT DUPLICATES FROM it_bseg_a COMPARING
belnr gjahr buzei.
ENDIF.
*End of Changes by GTHATIKONDA on 10/17/2008 #ECDK902204
ENDFORM. " get_archive_data
*& Form build_fs_select_options
FORM build_fs_select_options .
REFRESH: ft_selections.
*Comapny code
APPEND INITIAL LINE TO ft_selections ASSIGNING <fw_selections>.
<fw_selections>-fieldname = 'BUKRS'.
APPEND INITIAL LINE TO <fw_selections>-selopt_t ASSIGNING <lw_selopt>.
MOVE p_bukrs TO <lw_selopt>-low.
MOVE 'I' TO <lw_selopt>-sign.
MOVE 'EQ' TO <lw_selopt>-option.
*Customer
APPEND INITIAL LINE TO ft_selections ASSIGNING <fw_selections>.
<fw_selections>-fieldname = 'KUNNR'.
LOOP AT s_kunnr.
APPEND INITIAL LINE TO <fw_selections>-selopt_t
ASSIGNING <lw_selopt>.
MOVE-CORRESPONDING s_kunnr TO <lw_selopt>.
ENDLOOP.
*Start of changes by GTHATIKONDA on 16/10/2008 #ECDK902192
**Customer Group
* append initial line to ft_selections assigning <fw_selections>.
* <fw_selections>-fieldname = 'KTOKD'.
* loop at s_ktokd.
* append initial line to <fw_selections>-selopt_t
* assigning <lw_selopt>.
* move-corresponding s_ktokd to <lw_selopt>.
* endloop.
*End of changes by GTHATIKONDA on 16/10/2008 #ECDK902192
*Profit Center
APPEND INITIAL LINE TO ft_selections ASSIGNING <fw_selections>.
<fw_selections>-fieldname = 'PRCTR'.
LOOP AT s_prctr.
APPEND INITIAL LINE TO <fw_selections>-selopt_t
ASSIGNING <lw_selopt>.
MOVE-CORRESPONDING s_prctr TO <lw_selopt>.
ENDLOOP.
*Commented #ECDK902210
**Key Date
* append initial line to ft_selections assigning <fw_selections>.
* <fw_selections>-fieldname = 'BUDAT'.
* append initial line to <fw_selections>-selopt_t assigning <lw_selopt>
* move p_budat to <lw_selopt>-low.
* move 'I' to <lw_selopt>-sign.
* move 'EQ' to <lw_selopt>-option.
*Aging Period1
APPEND INITIAL LINE TO ft_selections ASSIGNING <fw_selections>.
<fw_selections>-fieldname = 'ANZTA'.
APPEND INITIAL LINE TO <fw_selections>-selopt_t ASSIGNING <lw_selopt>.
MOVE p_ag1 TO <lw_selopt>-low.
MOVE 'I' TO <lw_selopt>-sign.
MOVE 'EQ' TO <lw_selopt>-option.
*Aging Period2
*Start of changes by GTHATIKONDA on 16/10/2008 #ECDK902192
* append initial line to ft_selections assigning <fw_selections>.
* <fw_selections>-fieldname = 'ANZTA'.
*End of changes by GTHATIKONDA on 16/10/2008 #ECDK902192
APPEND INITIAL LINE TO <fw_selections>-selopt_t ASSIGNING <lw_selopt>.
MOVE p_ag2 TO <lw_selopt>-low.
MOVE 'I' TO <lw_selopt>-sign.
MOVE 'EQ' TO <lw_selopt>-option.
*Aging Period3
*Start of changes by GTHATIKONDA on 16/10/2008 #ECDK902192
* append initial line to ft_selections assigning <fw_selections>.
* <fw_selections>-fieldname = 'ANZTA'.
*End of changes by GTHATIKONDA on 16/10/2008 #ECDK902192
APPEND INITIAL LINE TO <fw_selections>-selopt_t ASSIGNING <lw_selopt>.
MOVE p_ag3 TO <lw_selopt>-low.
MOVE 'I' TO <lw_selopt>-sign.
MOVE 'EQ' TO <lw_selopt>-option.
*Aging Period4
*Start of changes by GTHATIKONDA on 16/10/2008 #ECDK902192
* append initial line to ft_selections assigning <fw_selections>.
* <fw_selections>-fieldname = 'ANZTA'.
*End of changes by GTHATIKONDA on 16/10/2008 #ECDK902192
APPEND INITIAL LINE TO <fw_selections>-selopt_t ASSIGNING <lw_selopt>.
MOVE p_ag4 TO <lw_selopt>-low.
MOVE 'I' TO <lw_selopt>-sign.
MOVE 'EQ' TO <lw_selopt>-option.
*Aging Period5
*Start of changes by GTHATIKONDA on 16/10/2008 #ECDK902192
* append initial line to ft_selections assigning <fw_selections>.
* <fw_selections>-fieldname = 'ANZTA'.
*End of changes by GTHATIKONDA on 16/10/2008 #ECDK902192
APPEND INITIAL LINE TO <fw_selections>-selopt_t ASSIGNING <lw_selopt>.
MOVE p_ag5 TO <lw_selopt>-low.
MOVE 'I' TO <lw_selopt>-sign.
MOVE 'EQ' TO <lw_selopt>-option.
ENDFORM. " build_fs_select_options
*& Form object_read_opened
* To Fetch Arichive Data
FORM object_read_opened TABLES it_rel_tab
it_bseg_a
it_bkpf_a
* it_bset_a
* it_bsik_a
* it_bsak_a
it_bsid_a
it_bsad_a
* it_bsec_a
USING value(g_read_handle) LIKE sy-tabix
value(l_archobj) LIKE arch_def-object
value(g_commit_cnt) LIKE arch_usr-arch_comit
g_read_cnt TYPE i
g_reload_cnt TYPE i.
DATA: BEGIN OF table_wa ,
table LIKE arch_stat-tabname,
END OF table_wa.
DATA: lit_data(2048) TYPE c OCCURS 1 WITH HEADER LINE.
DATA: l_structure LIKE arch_stat-tabname,
l_lin TYPE i.
CLEAR: it_table_org1,lit_struc,it_table_org2,table_wa,it_rel_tab.
REFRESH: it_table_org1[],lit_struc[],it_table_org2[],it_rel_tab[].
CLEAR: g_duprec,g_read_cnt,g_reload_cnt,g_object_cnt.
*Read data from the infostructure
DO.
ADD 1 TO g_object_cnt.
CLEAR l_structure.
CALL FUNCTION 'ARCHIVE_GET_NEXT_RECORD'
EXPORTING
archive_handle = g_read_handle
IMPORTING
record = lit_data
* RECORD_CURSOR =
* RECORD_FLAGS =
record_structure = l_structure
* RECORD_LENGTH =
* RECORD_REF =
EXCEPTIONS
end_of_object = 1
internal_error = 2
wrong_access_to_archive = 3
OTHERS = 4
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
EXIT.
ENDIF.
IF NOT l_structure IS INITIAL.
table_wa-table = l_structure.
APPEND table_wa TO it_rel_tab.
ENDIF.
APPEND lit_data.
CLEAR l_lin.
FIELD-SYMBOLS: <fs_struc> TYPE c.
CASE l_structure.
*BKPF data
WHEN 'BKPF'.
ASSIGN it_bkpf_a TO <fs_struc> CASTING.
<fs_struc> = lit_data.
APPEND it_bkpf_a.
*BSID data
WHEN 'BSID'.
ASSIGN it_bsid_a TO <fs_struc> CASTING.
<fs_struc> = lit_data.
APPEND it_bsid_a.
*BSAD data
WHEN 'BSAD'.
ASSIGN it_bsad_a TO <fs_struc> CASTING.
<fs_struc> = lit_data.
APPEND it_bsad_a.
*BSEG data
WHEN 'BSEG'.
ASSIGN it_bseg_a TO <fs_struc> CASTING.
<fs_struc> = lit_data.
APPEND it_bseg_a.
ENDCASE.
REFRESH lit_data.
CLEAR g_object_cnt.
ENDDO.
ENDFORM. " object_read_opened
*& Form get_bsid_bsad_archive_data
*If Exclude Spl. GL Trnasaction is initial get BSID BSAD Archive data *
FORM get_bsid_bsad_archive_data .
*Work Area
DATA: wa_bsid TYPE type_bsid.
*Reading BSAD Archive internal table
* loop at it_bsad_a where bukrs eq p_bukrs
*Start of changes by GTHATIKONDA on 10/14/2008 #ECDK902180
*Commented by GTHATIKONDA on 10/17/2008 #ECDK902204
LOOP AT it_bkpf_a WHERE bukrs = p_bukrs AND
budat LE p_budat. "#ECDK902206
*End of changes by GTHATIKONDA on 10/14/2008 #ECDK902180
LOOP AT it_bseg_a WHERE bukrs EQ p_bukrs AND
belnr EQ it_bkpf_a-belnr AND
gjahr EQ it_bkpf_a-gjahr AND
augdt GT p_budat AND
* koart eq 'D' and
kunnr IN s_kunnr AND
prctr IN s_prctr.
*Changes by GTHATIKONDA on 10/17/2008 #ECDK902204
* loop at it_bkpf_a where budat le p_budat."#ECDK902206
*Move corresponding fiels
MOVE-CORRESPONDING it_bseg_a TO wa_bsid.
wa_bsid-blart = it_bkpf_a-blart.
wa_bsid-budat = it_bkpf_a-budat.
wa_bsid-bldat = it_bkpf_a-bldat.
APPEND wa_bsid TO i_bsad.
CLEAR wa_bsid.
ENDLOOP.
ENDLOOP.
IF NOT i_bsad[] IS INITIAL.
APPEND LINES OF i_bsad TO i_bsid.
ENDIF.
*Start of Changes by GTHATIKONDA on 10/17/2008 #ECDK902206
IF NOT i_bsid[] IS INITIAL.
SORT i_bsid BY belnr.
*Commenting this logic by GTATIKONDA on 10/31/2008 #ECDK902245
* delete adjacent duplicates from i_bsid comparing belnr.
ENDIF.
*End of Changes by GTHATIKONDA on 10/17/2008 #ECDK902206
ENDFORM. " get_bsid_bsad_archive_data
*Reading BSAD Archive internal table
* loop at it_bsad_a where bukrs eq p_bukrs
*Start of changes by GTHATIKONDA on 10/14/2008 #ECDK902180
*Commented by GTHATIKONDA on 10/17/2008 #ECDK902204
LOOP AT it_bkpf_a WHERE bukrs = p_bukrs AND "#ECDK902206
budat LE p_budat.
*End of changes by GTHATIKONDA on 10/14/2008 #ECDK902180
LOOP AT it_bseg_a WHERE bukrs EQ p_bukrs AND
belnr EQ it_bkpf_a-belnr AND
gjahr EQ it_bkpf_a-gjahr AND
kunnr IN s_kunnr AND
umskz EQ space AND
augdt GT p_budat AND
prctr IN s_prctr.
*Changes by GTHATIKONDA on 10/17/2008 #ECDK902204
* loop at it_bkpf_a where budat le p_budat. "#ECDK902206
*Move corresponding fiels
MOVE-CORRESPONDING it_bseg_a TO wa_bsid.
wa_bsid-blart = it_bkpf_a-blart.
wa_bsid-budat = it_bkpf_a-budat.
wa_bsid-bldat = it_bkpf_a-bldat.
APPEND wa_bsid TO i_bsad.
CLEAR wa_bsid.
ENDLOOP.
ENDLOOP.
IF NOT i_bsad[] IS INITIAL.
APPEND LINES OF i_bsad TO i_bsid.
ENDIF. -
How to load stocks for the months prior to initialization ?
Hello,
We load a cube stock from 3 ODS for BF,BX and UM extractors.
We are in a monthly snapshot scenario(we have read the specific how to but we must use 3 ODS one for each datasource because of data integrity (strong customer architecture contrainst).
For opening stock and the future month the solution is ok.
How to load the data for the 12 month prior the loading of opening stock ?
Specific datasources, full loading ?
Thanks to share our experiences
Best regards
Christopheyour previous months closing stock becomes opening stock for current month. Try the infostructure S039,this holds the closing stock of each month. You can populate this infostructure with program rmbs039. create a generic data source on this and populate opening and closing stock for each month.
-
Different Info Packages for the same data source.
Hi Team,
I have a question, which i asked before that but i ended up with different solution.
I want to load 02.2002 to till date into ODS. Data source is 0FI_AR_10.
My boss wants in this way .
1) one infopackage for 02.2002 to 02.2005 with init.
2) one infopack for 03.2005 to 07.2008 with init for the same datasource.
3) one info pack with no selection criteira.
What will be the result ?
My guess is, Once we do init for the time period 02.2002 to 02.2005 ,
the system with note the timepreiod for the Datasource.
When i try to do Init for the second, the system will say init already exits for the data source. And it will not allow me to do init for the second selection.
Correct me if i am wrong.
Regards,
-Sonti-Your planned InfoPackages:
- 1) one infopackage for 02.2002 to 02.2005 with init.
- 2) one infopack for 03.2005 to 07.2008 with init for the same datasource.
- 3) one info pack with no selection criteira.
As the selection criteria of package 1) & 2) do not overlap, is it possible.
For package 3), you need to do it as delta update instead of initialisation. Package 3) with no selection criteria overlaps with package 1) & 2).
Refer to the Help Documentation, which explains this quite clearly.
Link: [Maintaining InfoPackage - Tab Page: Updating|http://help.sap.com/saphelp_nw70/helpdata/en/e3/e60138fede083de10000009b38f8cf/frameset.htm]
>For selection criteria that do not overlap, several initialization criteria are possible for initializing the delta process when scheduling InfoPackages for data from an SAP system. This gives you the option of loading the relevant data for the delta process, step by step into the Business Information Warehouse. For example, you can load the data into BI for cost center 1000 in the first step, and the data for cost center 2000 in the second step.
>A delta requested after several initializations, contains the super set of all the successful initial selections as a selection condition. This selection condition can then no longer be changed for the delta.
Hope this help. -
How can we read archived sales order data?
Hi there,
We need information about sales orders, which are already archived (e.g. VBAK, VBAP).
How can we read these data from archive?
Do you know the necessary function modules?
Thanks a lot for help.Hi,
The main transactions that provide access to sales orders data are the following:
VA03 Display Sales Order
ALO1 Document Relationship Browser
Other:
KABP Controlling Documents: Plan
KSB5 Controlling Documents: Actual
KVBI Sales Documents: Actual Line Items
Standard Reports:
S3VBAKAU: Program for sequential reading of archived sales documents
If at least one of the archiving information structures SAP_DRB_VBAK_01- SAP_DRB_VBAK_02 is active, I suggest to use the transaction ALO1.
More info can be found at:
http://help.sap.com/erp2005_ehp_04/helpdata/EN/19/68c149815cfa4997525e0e7d7509bf/content.htm]
Regards,
Andrea -
Loading Error for an Master Data Info Object!!
Hi all
I am getting this error for set od records...But actually ...there is no data in that...How it reflects as duplicate records...Pls tell me wht is the solution for this??U can chk the attachment as well as there is no data for the column PE FULL NAME..... which is the error stack in DTP..
But I can see the data in PSA for the particular data packet & record numbers...
Pls help with regard to the issue.
Error Information:
Diagnosis
There are duplicates of the data record 2 & with the key
'000000000000000000000000000001E &' for characteristic ZPENAME &.
System Response
Procedure
If this message appears during a data load, maintain the attribute in
the PSA maintenance screens. If this message appears in the master data
maintenance screens, leave the transaction and call it again. This
allows you to maintain your master data.<i>1).If source field length is more than target field length..Is it wrong if we do mapping like this?????</i>
Yes it is wrong, its okay the otherwise though.
<i>2)Do u have any idea of long text which exceeds 60???I saw the blog of eugene ,but not sure how far it works..Can u guide me with regard to it as my datasource is created by function module..</i>
I never dealt with it...sry !!
Maybe you are looking for
-
Can I add a second Airport Express?
I have an Extreme Base Station connected to my Time Warner Cable Modem. It comes into my house in my office, which is over my garage, a separate structure in my backyard. The iMacs there are connected via Ethernet to the Apple Base Station. In my hou
-
Keeping getting an error with-in the App Store. Error 100 saying that my payment can't be received at the time. I updated to Mountain Lion to download the new Logic Pro X. Now left with now recording software and it's not letting me buy the new one.
-
Can't able to update the OPEN STOCK UPDATION in MB1C
Hi, While posting with MB1C, an error will be appeard as " Period 02/009 is not open for account type S & G/L 799999( this is for semi fin material ) & S & G/L 399999(this is for raw material). Kindly tell the procedure to solve this problem. Gobinat
-
Adding Two Spheres to Same Transform Group
Should be a simple question. How do I add two spheres to the same TransformGroup? With this code, only one sphere is displayed: TransformGroup tg = new TransformGroup(); Sphere sphere001 = new Sphere(0.1f); Vector3f vector = new Vector3f(0.0f, 0.0f,
-
Opening JFIleChooser in applet
Hi, I was clogged up with opening a JFileChooser in an applet. The way i have done is as follows : I have taken a Button and added it to an JApplet.. In the listener class for that button i have written the code for opening the JFileChooser and selec