How to calculate the next incoming PO for a given material/plant in an elegant way
Hi experts,
Given a material and a plant i want to find out when the next PO is arriving. Is there a function module to calculate it?
This is the values i want to retrieve, but this method is not very optimized and can have performance issues:
"Entry un EKPO with material (MATNR), plant (WERKS), and Delivery Completed Indicator (ELIKZ) = blank, select the PO
numbers.
For all the POs, sort in EKET for the field ‘Delivery Date’ (EINDT) to get the next delivery date being
EINDT ≥ Todays day
Take the next PO to be received. Do the calculation (MENGE – WEMNG) for the item
The result of the calculation is the amount still open and that is supposed to be received. "
Hi,
You can use the FM: MD_STOCK_REQUIREMENTS_LIST_API. Execute the FM with plant and material number in selection. Now, check the structure: MDEZX which will give you all the requirements for the item. You can filter the items in the structure where MDEZX - DE = BE which will give you only the purchase orders. Also, the items will be sorted automatically based on the date.
Please check the same and revert back.
Regards,
AKPT
Similar Messages
-
FM/Class to find the class and characterstics for a given material
Hi All,
Is there any Class/FM to find the class and characterstics for a given material.I tried some BAPI_OBJCL* BAPI's but lot of the BAPI's need classnum as input parameter. But i need a BAPI or tables or class which can give the class and its characterstic values for a given material.Hi Ben
Try ..
BAPI_OBJCL_GETCLASSES
BAPI_OBJCL_CREATE -
How to get the Next free Number for External Number Range
Hi ,
To get next free number for External Number Range, I have used NUMBER_GET_NEXT Function module.
It is throws the exception like NUMBER_RANGE_NOT_INTERN.
How can i get the next free number for external number range object. And How to update the Current Number for External Number Range Object
Scenario.
Call Function module NUMBER_GET_NEXT
Import Parameter.
NR_RANGE_NR : 02
OBJECT : RV_BELEG
QUANTITY : 00000000000000000001
I am getting Exception : NUMBER_RANGE_NOT_INTERN
Thanks in advance.
Regards
RamHi Anand,
The SAP system issues the numbers for internal number range intervals automatically. This number is between the from-number and the to-number. The last number issued is logged in the current number level.
You need to enter a number for external number issue. The number you enter needs to be between the from-number and the to-number. For external number ranges, the number number used is not logged. So the next available number is not possible in a straight forward way.
Only for Internal number ranges, the FM NUMBER_GET_NEXT can get the next available number.
Hope this helps.
Thanks,
Balaji -
How to calculate the total running time for process from sysssislog entries
Hi All,
I have the below query which gets me the log entries form the logs table when the process started/completed.
Select row_number() over (order by starttime) row_num,Substring( Substring(message, CharIndex('''',message) +1 ,Len(message)) ,0, CharIndex('''',Substring(message, CharIndex('''',message) +1 ,Len(message)))) as Description,
starttime,endtime,message
from dbo.sysssislog
where (message like 'start%' or message like 'finish%' ) and
LEFT(Substring( Substring(message, CharIndex('''',message) +1 ,Len(message)) ,0, CharIndex('''',Substring(message, CharIndex('''',message) +1 ,Len(message)))),1) between 'A' and 'Z'
order by starttime
However,I have to build a report on the top of it showing how much time that attribute/dimension/heirarchy took to execute(Ex-How much time did YearlyReview dimension take to complete).I dont have much knowledge of T-SQL and unable to figure out how to calculate
that on SQL or report level.
Could someone please assist me in getting the exact query for that?
Thanks a lot.I get the below output(sample 20 rows) on executing this query.Also,a start process does not necessarily follow up a finished message for the same dimension as it may have been stopped or it failed.So we need to leave it as NA in case it started but dint
finish
Row_Num Description starttime endtime Message
1 PAC SC Super Type 12/13/12 16:38 12/13/12 16:38 Started processing the 'PAC SC Super Type' dimension.
2 PAC SC Super Type 12/13/12 16:38 12/13/12 16:38 Started processing the 'PAC SC Super Type' dimension.
3 Team Member Indicator 12/13/12 16:38 12/13/12 16:38 Started processing the 'Team Member Indicator' dimension.
4 Team Member Indicator 12/13/12 16:38 12/13/12 16:38 Started processing the 'Team Member Indicator' dimension.
5 PAC SC Super Type 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'PAC SC Super Type' attribute.
6 PAC SC Super Type 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'PAC SC Super Type' attribute.
7 Specialist Merger Indicator 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'Specialist Merger Indicator' attribute.
8 Specialist Merger Indicator 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'Specialist Merger Indicator' attribute.
9 YearlyReview 12/13/12 16:38 12/13/12 16:38 Started processing the 'YearlyReview' dimension.
10 YearlyReview 12/13/12 16:38 12/13/12 16:38 Started processing the 'YearlyReview' dimension.
11 PAC SC Repeat Caller 12/13/12 16:38 12/13/12 16:38 Started processing the 'PAC SC Repeat Caller' dimension.
12 PAC SC Repeat Caller 12/13/12 16:38 12/13/12 16:38 Started processing the 'PAC SC Repeat Caller' dimension.
13 Year 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'Year' attribute.
14 Year 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'Year' attribute.
15 Staffing Function 12/13/12 16:38 12/13/12 16:38 Started processing the 'Staffing Function' dimension.
16 Staffing Function 12/13/12 16:38 12/13/12 16:38 Started processing the 'Staffing Function' dimension.
17 PAC SC Repeat Caller 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'PAC SC Repeat Caller' attribute.
18 PAC SC Repeat Caller 12/13/12 16:38 12/13/12 16:38 Started reading data for the 'PAC SC Repeat Caller' attribute.
19 PAC HV Cust 12/13/12 16:38 12/13/12 16:38 Started processing the 'PAC HV Cust' dimension.
20 PAC HV Cust 12/13/12 16:38 12/13/12 16:38 Started processing the 'PAC HV Cust' dimension. -
How to calculate the disk failure level for a 3-way mirror pool?
On another post in this forum, the following information regarding a 3-way mirroring storage pool is given:
Pool requires a quorum of 50% plus drives to be present to survive.
with 3 way mirror - we have a guarantee of surviving 2 disk failure.
Maintaining the above requirements and providing the guarantee -
mandates us to have minimum 5 disks in pool. As if we loose 2, we still
have 3 in the pool (>50%) for pool to maintain it's quorum.
Just to be sure, I would like Microsoft to confirm that the following calculation applies to any number of disks in a 3-way mirroring pool.
If the number of disks in a 3-way mirroring pool is n, INT(n/2) disks can fail without data loss.
Examples:
With 5 disks, INT(5/2)=INT(2.5)=2 disks can fail.
With 6 disks, INT(6/2)=INT(3)=3 disks can fail.
With 9 disks, INT(9/2)=INT(4.5)=4 disks can fail.
Am I right in this assumption?
Thanks for your answer.Hi,
>>Am I right in this assumption?
Based on my understanding, it’s not this case.
Mirror spaces are designed for increased performance and protect your files from drive failure by keeping more than one copy. Two-way mirror spaces make two copies of your
files and can tolerate one drive failure, while three-way mirror spaces can tolerate two drive failures.
Regarding this point, the following thread can be referred to for better understanding.
Storage Spaces - Disk resiliency
http://social.technet.microsoft.com/Forums/en-US/8f13ecf3-61c8-4505-90da-e8a01023c62d/storage-spaces-disk-resiliency?forum=winserverfiles
In addition, regarding storage spaces, the following article can be referred to for more information.
Storage Spaces Overview
http://social.technet.microsoft.com/wiki/contents/articles/15198.storage-spaces-overview.aspx
Best regards,
Frank Shen -
How to get the salesprice and condition for a customer / material / date
Hi all,
how can I get the correct price and condition for a customer / material / date ?
I know this is possible using the BAPI_SALESORDER_SIMULATE, but this bapi is using to much ressources on the system.
I'm trying to get the correct price and condition WITHOUT using that BAPI.
Does anyone know how it is possible ? As said before : I have the customer, material and a date.
thanks in advance for your helpHi
You need it because it's possible to have a complex pricing procedure, and you can't do it with a simple select on a table. Think that you can have pricing requirements, formulas (ie: VOFM) and so on in your pricing procedure (tcode V/08).
I hope this helps you
Regards
Eduardo -
How to find the name of query for a given report
Hi All,
I am having the name of a report and i need to find out the name of query for that report . Plz tell me how to find out the name of the query for a given report.
Thanks.
Regards,
Pooja Joshi.Use this FM
RSAQ_DECODE_REPORT_NAME
This FM takes program name as I/P and gives Query Name as O/P.
This FM uses the structure AQADEF to fetch the data.
Hope this helps.
Regards
Vinayak -
How to trace the RevTrac carrying changes for a given system table?
Hi everyone!
In our company we have a case of a change no one in the team states to have done, therefore we do not know the RevTrac number that carries the changes. Currently, the development system is different from the QA, staging and production systems for our ERP.
Is there a transaction/program that traces changes for a given table and field specified accross a given environment-client?HI Nicolas,
I chatted with Rev-Trac support earlier today and here is what they have come back to me with.
Assuming the change in question was carried out in the development system. Changes to fields in tables should in most cases be captured in transports. Assuming it was a transportable change then go to the development system and execute transaction SE16 and query Rev-Trac table /RSC/T_MFM_4T filtering by TABLENAME.
On executing the query you should see a list of transports involved with changes to the transport. You can then check to see if there is a recent transport associated with the change - if so then you can find out who created the transport by using standard SAP functionality."
If you find this doesn't help, then please contact your Rev-Trac Administrator who can then log a support request on our support portal at www.xrsc.com
Hope this helps, Rick -
How to calculate the subtotals in alv for curr field(bsik-wrbtr)
I want to calculate subtotal for netamt for every new lifnr(vendor )
this is my program
REPORT Z23PRAC1.
*& Report ZRFI_AP_AGING_REPORT
TABLES : lfa1,lfb1.
CONSTANTS : gc_linedat(1) TYPE c VALUE 'X',
gc_duedate(1) TYPE c VALUE 'X',
gc_koart(1) TYPE c VALUE 'K',
gc_tname(9) TYPE c VALUE 'GT_OUTPUT'.
TYPE-POOLS: slis.
TYPES: BEGIN OF ty_output,
bukrs TYPE bsik-bukrs, "Company Code
lifnr TYPE bsik-lifnr, "Vendor Account
blart TYPE bsik-blart, "Document Type
name1 TYPE lfa1-name1, "Vendor Name
ktokk TYPE lfa1-ktokk, "Account Group
belnr TYPE bsik-belnr, "Invoice
ebeln TYPE bsik-ebeln, "Purchasing Order
bldat TYPE bsik-bldat, "Document Date
netdt TYPE bsega-netdt, "Due Date
wrbtr1 TYPE bsik-wrbtr, "Aged 1-30
wrbtr2 TYPE bsik-wrbtr, "Aged 31-60
wrbtr3 TYPE bsik-wrbtr, "Aged 61-90
wrbtr4 TYPE bsik-wrbtr, "Aged Over 90
grossamt TYPE bsik-wrbtr, "Gross Amount Due
psskt TYPE regup-psskt, "Discount
netamt(13) TYPE P decimals 2, "Net Amount Due
NETAMT TYPE BSIK-WRBTR,
END OF ty_output.
TYPES: BEGIN OF ty_vendor1,
lifnr TYPE lfa1-lifnr,
name1 TYPE lfa1-name1,
ktokk TYPE lfa1-ktokk,
END OF ty_vendor1.
TYPES :BEGIN OF ty_vendor,
bukrs TYPE bsik-bukrs, "COMPANY CODE
lifnr TYPE bsik-lifnr, "CUSTOMER ACCOUNT
END OF ty_vendor.
TYPES :BEGIN OF ty_ekko,
bukrs TYPE ekko-bukrs, "COMPANY CODE
lifnr TYPE ekko-lifnr, "CUSTOMER ACCOUNT
ebeln TYPE ekko-ebeln,
END OF ty_ekko.
DATA: gt_output TYPE TABLE OF ty_output, "OUTPUT TABLE
gt_lineitem TYPE TABLE OF bapi3008_2, "LINE ITEMS TABLE
gt_custdet TYPE TABLE OF ty_custdet, "CUSTOMER ACCOUNT VALIDATION
gt_fieldcat TYPE slis_t_fieldcat_alv, "FIELD CATALOG
gt_events TYPE slis_t_event, "EVENTS CATALOG
gt_sort TYPE slis_t_sortinfo_alv, "SORT CATALOG
gt_text_top_of_page TYPE slis_t_listheader, "TOP OF THE PAGE
gt_vendor1 TYPE TABLE OF ty_vendor1,
gt_vendor TYPE TABLE OF ty_vendor,
gt_ekko TYPE TABLE OF ty_ekko.
DATA: st_output TYPE ty_output, "OUTPUT WORK AREA
st_lineitem TYPE bapi3008_2, "LINE ITEMS WORK AREA
st_custdet TYPE ty_custdet, "CUSTOMER ACCOUNT VALIDATION
st_faede TYPE faede, "DUE DATE CALCULATION
st_fieldcat LIKE LINE OF gt_fieldcat,
st_events LIKE LINE OF gt_events,
st_sort LIKE LINE OF gt_sort,
st_text_top_of_page LIKE LINE OF gt_text_top_of_page,
st_vendor1 TYPE ty_vendor1,
st_vendor TYPE ty_vendor,
st_ekko TYPE ty_ekko.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_lifnr FOR lfa1-lifnr,
s_bukrs FOR lfb1-bukrs,
s_ktokk FOR lfa1-ktokk.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS : p_astid TYPE rfpdo-allgstid DEFAULT sy-datum.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
PARAMETERS: p_summed AS CHECKBOX,
p_linedt AS CHECKBOX DEFAULT gc_linedat.
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-004.
PARAMETERS: p_docdat AS CHECKBOX,
p_duedat AS CHECKBOX DEFAULT gc_duedate.
SELECTION-SCREEN END OF BLOCK b4.
START-OF-SELECTION.
SELECT lifnr name1 ktokk FROM lfa1
INTO TABLE gt_vendor1
WHERE lifnr IN s_lifnr.
SELECT bukrs
lifnr
ebeln
FROM ekko
INTO TABLE gt_ekko
WHERE bukrs IN s_bukrs
AND lifnr IN s_lifnr.
IF s_bukrs IS NOT INITIAL AND s_lifnr IS NOT INITIAL.
SELECT bukrs
lifnr
FROM lfb1
INTO TABLE gt_vendor
WHERE bukrs IN s_bukrs
AND lifnr IN s_lifnr.
*LOOP AT GT_OUTPUT INTO ST_OUTPUT.
*endif.
LOOP AT gt_vendor INTO st_vendor.
READ TABLE gt_vendor1 INTO st_vendor1 WITH KEY lifnr = st_vendor-lifnr.
READ TABLE gt_ekko INTO st_ekko WITH KEY lifnr = st_vendor-lifnr
bukrs = st_vendor-bukrs.
CALL FUNCTION 'BAPI_AP_ACC_GETOPENITEMS'
EXPORTING
companycode = st_vendor-bukrs
vendor = st_vendor-lifnr
keydate = p_astid
TABLES
lineitems = gt_lineitem.
LOOP AT gt_lineitem INTO st_lineitem.
st_faede-shkzg = st_lineitem-db_cr_ind.
st_faede-koart = gc_koart.
st_faede-zfbdt = st_lineitem-bline_date.
st_faede-zbd1t = st_lineitem-dsct_days1.
st_faede-zbd2t = st_lineitem-dsct_days2.
st_faede-zbd3t = st_lineitem-netterms.
st_faede-rebzg = st_lineitem-inv_ref.
st_faede-rebzt = st_lineitem-nxt_doctyp.
st_faede-bldat = st_lineitem-doc_date.
CALL FUNCTION 'DETERMINE_DUE_DATE'
EXPORTING
i_faede = st_faede
IMPORTING
e_faede = st_faede
EXCEPTIONS
account_type_not_supported = 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.
st_output-bukrs = st_vendor-bukrs.
st_output-lifnr = st_vendor-lifnr.
st_output-name1 = st_vendor1-name1.
st_output-ktokk = st_vendor1-ktokk.
st_output-blart = st_lineitem-doc_type.
st_output-belnr = st_lineitem-doc_no.
st_output-ebeln = st_ekko-ebeln.
st_output-bldat = st_faede-bldat.
st_output-netdt = st_faede-netdt.
DATA : lv_date TYPE i.
IF p_docdat = 'X'.
lv_date = p_astid - st_output-bldat.
IF lv_date < 30 .
st_output-wrbtr1 = st_lineitem-amt_doccur.
ELSEIF lv_date < 60 .
st_output-wrbtr2 = st_lineitem-amt_doccur.
ELSEIF lv_date < 90 .
st_output-wrbtr3 = st_lineitem-amt_doccur.
ELSEIF lv_date > 90 .
st_output-wrbtr4 = st_lineitem-amt_doccur.
ENDIF.
ELSE.
lv_date = p_astid - st_output-bldat.
IF lv_date < 30 .
st_output-wrbtr1 = st_lineitem-amt_doccur.
ELSEIF lv_date < 60 .
st_output-wrbtr2 = st_lineitem-amt_doccur.
ELSEIF lv_date < 90 .
st_output-wrbtr3 = st_lineitem-amt_doccur.
ELSEIF lv_date > 90 .
st_output-wrbtr4 = st_lineitem-amt_doccur.
ENDIF.
ENDIF.
DATA : A TYPE BSIK-WRBTR,
C TYPE STRING.
st_output-grossamt = st_output-wrbtr1 +
st_output-wrbtr2 +
st_output-wrbtr3 +
st_output-wrbtr4 .
A = st_output-grossamt - ( st_output-grossamt * st_output-psskt ) / 100.
MOVE A TO C.
MOVE C TO st_output-netamt .
*st_output-netamt = st_output-grossamt - ( st_output-grossamt * st_output-psskt ) / 100.
APPEND st_output TO gt_output.
CLEAR st_output.
ENDLOOP.
ENDLOOP.
SORT gt_output.
END-OF-SELECTION.
PERFORM fill_field_catalog.
PERFORM fill_event_catalog.
PERFORM sort_catalog.
PERFORM display_alv_list.
*& Form fill_field_catalog
text
FORM fill_field_catalog .
*Definition
DEFINE field_cat.
st_fieldcat-tabname = &1.
st_fieldcat-fieldname = &2.
st_fieldcat-ref_tabname = &3.
st_fieldcat-seltext_m = &4.
st_fieldcat-do_sum = &5.
append st_fieldcat to gt_fieldcat.
clear st_fieldcat.
END-OF-DEFINITION.
field_cat gc_tname 'BUKRS' 'BSIK' 'Company Code' ''.
field_cat 'GT_OUTPUT' 'LIFNR' 'BSIK' 'Customer Account' ''.
field_cat 'GT_OUTPUT' 'BLART' 'BSIK' 'Document Type' ''.
field_cat 'GT_OUTPUT' 'NAME1' 'LFA1' 'Vendor Name' ''.
field_cat 'GT_OUTPUT' 'KTOKK' 'LFA1' 'Account Group' ''.
field_cat gc_TNAME 'ALLGSTID' 'RFPDO' 'Key Date' ''.
field_cat gc_tname 'BELNR' 'BSIK' 'Invoice' ''.
field_cat gc_tname 'EBELN' 'EKKO' 'Purchasing Order' ''.
field_cat gc_tname 'BLDAT' 'BSIK' 'Document Date' ''.
field_cat gc_tname 'NETDT' 'BSEGA' 'Due Date' ''.
field_cat gc_tname 'WRBTR1' 'BSIK' 'Aged 1-30' ''.
field_cat gc_tname 'WRBTR2' 'BSIK' 'Aged 31-60' ''.
field_cat gc_tname 'WRBTR3' 'BSIK' 'Aged 61-90' ''.
field_cat gc_tname 'WRBTR4' 'BSIK' 'Aged Over 90' ''.
field_cat gc_tname 'GROSSAMT' 'BSIK' 'Gross Amount' ''.
field_cat gc_tname 'PSSKT' 'REGUP' 'Discount' ''.
field_cat gc_tname 'NETAMT' 'BSIK' 'Net Amount' 'X' .
ENDFORM. " fill_field_catalog
*& Form fill_event_catalog
EVENTS FILLING SUBROUTINE TO FIND THE TOP OF THE PAGE EVENT
FORM fill_event_catalog .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_events
EXCEPTIONS
list_type_wrong = 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.
READ TABLE gt_events TRANSPORTING NO FIELDS WITH KEY name = 'TOP_OF_PAGE'.
IF sy-subrc EQ 0.
st_events-form = 'FILL_HEADER'.
MODIFY gt_events FROM st_events INDEX sy-tabix TRANSPORTING form.
ENDIF.
ENDFORM. " fill_event_catalog
*& Form FILL_HEADER
FILL HEADER DATA
FORM fill_header .
st_text_top_of_page-typ = 'S'.
st_text_top_of_page-info = sy-mandt.
APPEND st_text_top_of_page TO gt_text_top_of_page.
st_text_top_of_page-info = sy-uname.
APPEND st_text_top_of_page TO gt_text_top_of_page.
WRITE sy-datum TO st_text_top_of_page-info.
APPEND st_text_top_of_page TO gt_text_top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_text_top_of_page.
ENDFORM. "fill header
*& Form sort_catalog
text
--> p1 text
<-- p2 text
FORM sort_catalog .
st_sort-up = 'X'.
st_sort-spos = 1.
st_sort-subtot = 'X'.
st_sort-fieldname = 'LIFNR'.
APPEND st_sort TO Gt_sort.
CLEAR st_sort.
st_sort-up = 'X'.
st_sort-spos = '2'.
st_sort-subtot = ''.
st_sort-fieldname = 'NETAMT'.
APPEND st_sort TO gt_sort.
CLEAR st_sort.
ENDFORM. " sort_catalog
*& Form display_alv_list
CREATE THE OUTPUT IN THE ALV LIST FORMAT
FORM display_alv_list .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = gt_fieldcat
it_sort = gt_sort
i_default = 'X'
it_events = gt_events
TABLES
t_outtab = gt_output
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. " display_alv_listHi,
This is the sample report for ALV SUBTOTAL.
REPORT YMS_ALVSUBTOTAL.
*REPORT z_alv_sub_totals .
TYPE-POOLS: slis.
DATA: BEGIN OF it_output OCCURS 0,
var1(8) TYPE n,
var2(10),
var3 TYPE I,
END OF it_output.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
t_fieldcat TYPE slis_fieldcat_alv,
it_sort TYPE slis_t_sortinfo_alv,
t_sort TYPE slis_sortinfo_alv,
v_repid LIKE sy-repid.
INITIALIZATION.
v_repid = sy-repid.
START-OF-SELECTION.
PERFORM get_data.
PERFORM sort_fields.
PERFORM fill_fieldcat.
PERFORM list_display.
*& Form GET_DATA
text
--> p1 text
<-- p2 text
FORM get_data.
it_output-var1 = 1000.
it_output-var2 = 'anupama'.
it_output-var3 = '10000'.
it_output-key = 'X'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 1000.
it_output-var2 = 'siddhu'.
it_output-var3 = '20000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 1000.
it_output-var2 = 'chinni'.
it_output-var3 = '100000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 2000.
it_output-var2 = 'chicchu'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 2000.
it_output-var2 = 'candy'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 1000.
it_output-var2 = 'anupama'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
it_output-var1 = 4000.
it_output-var2 = 'anupama'.
it_output-var3 = '10000'.
APPEND it_output.
CLEAR it_output.
ENDFORM. " GET_DATA
*& Form fill_fieldcat
text
--> p1 text
<-- p2 text
FORM fill_fieldcat.
PERFORM fill_fields USING: 'IT_OUTPUT' 'VAR1' 'Variable 1' ' ',
'IT_OUTPUT' 'VAR2' 'Variable 2' ' ',
'IT_OUTPUT' 'VAR3' 'Variable 3' 'X'.
ENDFORM. " fill_fieldcat
*& Form fill_fields
text
-->P_0146 text
-->P_0147 text
-->P_0148 text
-->P_0149 text
FORM fill_fields USING value(tabname) TYPE slis_tabname
value(fieldname) TYPE slis_fieldname
value(seltext_m) LIKE dd03p-scrtext_m
value(do_sum) TYPE c.
t_fieldcat-tabname = tabname.
t_fieldcat-fieldname = fieldname.
t_fieldcat-seltext_m = seltext_m.
IF do_sum = 'X'.
t_fieldcat-datatype = 'CURR'.
ENDIF.
t_fieldcat-do_sum = do_sum.
APPEND t_fieldcat TO it_fieldcat.
CLEAR t_fieldcat.
ENDFORM. " fill_fields
*& Form list_display
text
--> p1 text
<-- p2 text
FORM list_display.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = v_repid
it_fieldcat = it_fieldcat
it_sort = it_sort[]
TABLES
t_outtab = it_output
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. " list_display
*& Form sort_fields
text
--> p1 text
<-- p2 text
FORM sort_fields.
t_sort-fieldname = 'VAR1'.
t_sort-tabname = 'IT_OUTPUT'.
t_sort-spos = 1.
t_sort-up = 'X'.
t_sort-subtot = 'X'.
APPEND t_sort TO it_sort.
CLEAR t_sort.
t_sort-fieldname = 'VAR3'.
t_sort-tabname = 'IT_OUTPUT'.
t_sort-spos = 2.
t_sort-up = 'X'.
APPEND t_sort TO it_sort.
CLEAR t_sort.
ENDFORM. " sort_fields
Thanks,
Sankar M -
How to remove the complete ALE configuration for a given system
Hello everybody,
Through ALE ,data is transferred between a number of SAP systems and the necessary ALE setups are in place.
Now,a particular SAP system,which used to be a receivor to the central SAP system,is to be retired.
Hence,the associated ALE set up is to be completely removed from the central SAP system.
Is the following sequence correct?If not and I have missed something,please enlighten me with the correct sequence.
1.Removal of the receivor logical system and its assignment to client ,through transaction SALE.
2.Removal of partner profile, through transaction WE20.
3.Removal of RFC destinations,through transaction SM59.
4.Removal of transactional ports for the logical system,through transaction code WE21.
5.Removal of Distribution model between the retiring system and the central SAP system.
(a)Regarding distribution model,I have a question-if the distribution model is maintained such that it contains the linking relationships between the central system and several receivor systems(in addition to the one I wish to remove),then is it possible to remove only the desired linkage and not touch the rest?
(b)Through BD64,I have tried but I am able to delete only the entire distribution model as a whole,while I would like to keep the distribution model and delete just one of the nodes,so as to cut the connection between only central system and the retiring system.
This is so because the other receivor systems are working fine,involving a lot of batchjobs and I am afraid that deleting the distribution model wholly will create unnecessary trouble.
Any help will be appreciated.Thanks
PapriHI Nicolas,
I chatted with Rev-Trac support earlier today and here is what they have come back to me with.
Assuming the change in question was carried out in the development system. Changes to fields in tables should in most cases be captured in transports. Assuming it was a transportable change then go to the development system and execute transaction SE16 and query Rev-Trac table /RSC/T_MFM_4T filtering by TABLENAME.
On executing the query you should see a list of transports involved with changes to the transport. You can then check to see if there is a recent transport associated with the change - if so then you can find out who created the transport by using standard SAP functionality."
If you find this doesn't help, then please contact your Rev-Trac Administrator who can then log a support request on our support portal at www.xrsc.com
Hope this helps, Rick -
How to calculate the measure for the next month using the AGO Function
Hi,
I need to calculate the measure for the current month and the next month.
Can anyone please let me know the syntax to use AGO function for the above requirement.
Regards,
Ambika Nanda.Hi.
You can also use Oracle analytic functions LAG and LEAD inside the EVALUATE obiee function. The second one will give you the next measure.
For example the report is:
TIMES.CALENDAR_MONTH_DESC
SALES.AMOUNT_SOLD
LAG column: EVALUATE('LAG(%1, 1) OVER (ORDER BY %2)' AS DOUBLE, SALES.AMOUNT_SOLD, TIMES.CALENDAR_MONTH_DESC)
LEAD column: EVALUATE('LEAD(%1, 1) OVER (ORDER BY %2)' AS DOUBLE, SALES.AMOUNT_SOLD, TIMES.CALENDAR_MONTH_DESC)
And the result is:
CALENDAR_MONTH_DESC--------AMOUNT_SOLD--------LAG--------------LEAD
2000-01----------------------------------8025513.84---------------------------8474475.88
2000-02----------------------------------8474475.88----- 8025513.84-----7439568.24
2000-03----------------------------------7439568.24------8474475.88-----7062040.48
2000-04----------------------------------7062040.48------7439568.24-----7497971.40
Regards
Goran
http://108obiee.blogspot.com -
How to calculate the unit for RATE?
Hey All,
I am not sure if there is something standard for this or not.
I am calculating the 'Rate' by using 'Value/Amount' and 'Quantity' as follows -
Rate == Value / Quantity
I need to calculate the unit for the rate as below -
Rate unit == Value unit (Currency) / Quantity unit (Base_uom)
(for example -
if value is 1000 USD and quantity is 10 TO then Rate should come out as 100 USD / TO)
Could anyone please suggest how to calculate the unit in this case?
Many Thanks!
TanuHi,
Go through the below link it may give some idea
http://help.sap.com/saphelp_nw04/Helpdata/EN/19/1d7abc80ca4817a72009998cdeebe0/content.htm
Regards,
Marasa. -
Revision: 10545
Author: [email protected]
Date: 2009-09-23 13:33:21 -0700 (Wed, 23 Sep 2009)
Log Message:
Make DataGrid smarter about when and how to calculate the modulefactory for its renderers when using embedded fonts
QE Notes: 2 Mustella tests fail:
components/DataGrid/DataGrid_HaloSkin/Properties/datagrid_properties_columns_halo datagrid_properties_columns_increase0to1_halo
components/DataGrid/DataGrid_SparkSkin/Properties/datagrid_properties_columns datagrid_properties_columns_increase0to1
These fixes get us to measure the embedded fonts correctly when going from 0 columns to a set of columns so rowHeight will be different (and better) in those scenarios
Doc Notes: None
Bugs: SDK-15241
Reviewer: Darrell
API Change: No
Is noteworthy for integration: No
tests: checkintests mustella/browser/DataGrid
Ticket Links:
http://bugs.adobe.com/jira/browse/SDK-15241
Modified Paths:
flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as
flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridBase .as
flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColu mn.asHi Matthias,
Sorry, if this reply seems like a products plug (which it is), but this is really how we solve this software engineering challenge at JKI...
At JKI, we create VI Packages (which are basically installers for LabVIEW instrument drivers and toolkits) of our reusable code (using the package building capabilities of VIPM Professional). We keep a VI Package Configuration file (that includes a copy of the actual packages) in each of our project folders (and check it into source code control just as we do for all our project files). We also use VIPM Enterprise to distribute new VI Packages over the network.
Also, as others have mentioned, we use the JKI TortoiseSVN Tool to make it easy to use TortoiseSVN directly from LabVIEW.
Please feel free to contact JKI if you have any specific questions about these products.
Thanks,
-Jim -
How to calculate the size each PSA request or all PSA for the Datasources?
Hi All,
Can anybody tell me how to calculate the size of each PSA Request or all PSA's requests for all datasources?
Regards,
RajeshHi ,
PSA technical name can be found as,
1)Right click on your Data Target,go to Display dataflow,click on the PSA ,here you can find the technical name.
2)Goto RSRV tcode>PSA Table>Consistency between PSA Partitions and SAP Administration-->Give your Infosoure name,it gives u PSA technical name also,
Thanks&Regards,
Praveena. -
PURCHASING-How to change the next approver for the Purchase Requistion(PR)-
Hi All,
Could you please let me know how to change the next approver for the Purchase Requistion(PR) from User "X" to "Y", as Y was manager of "X" and 'X' left the organization. how can i acheive this? can you please let me know the process ?
Thanks,Hi,
You have not mentioned the version you are using (11i or R12).. Are you using iProcurement... ? Are you using positional or Employee-Supervisor hierarchy..?
Your question : How to change the next approver for the Purchase Requistion(PR) from User "X" to "Y", as Y was manager of "X" and 'X' left the organization.
Ans: You can achieve this through below workarounds
- Through *"Mass Update of Requisitions" functionality* (Conc. request) you can update the Approver name from User "X" to "Y" for existing PRs.
- Replacing the Supervisor name of the requestor/requisitioner in the HR record (assignment) from User "X" to "Y"..
Hope it helps.
Kind Regards,
S.P DASH
Maybe you are looking for
-
OFFICE for the Mac, want lines on PPT slides to appear one at a time
I want to display lines on a ppt slide one line at a time/ I used to be able to do this by selecting Slideshow, Custom Automation, then "Appear" I am using OFFICE for the Mac (2008). But something has changed and I can no longer figure out how to get
-
My friend made a DVD. I want to copy it. How do I do that?
My friend made a cool DVD. I would like to make a copy of it. Can anyone help me?
-
How to display result of a query in browser?
I have to write a simple application where I use EJB to access a database and then use Servlet/JSP to display the data to a browser. can anyone help me out please?
-
Best way to create water ripples effect?
Hi, I need to add water ripple effects to an existing video, the water ripples need to go over all the subjects and the floor in the videos (so that's easy). The hard part is trying to find a good generator for water affects. Currently I'm trying to
-
Object List Selector is not displaying in Transaction SE80.
Hello Experts, I have one problem in the transaction in SE80 that the Object List Selector (where we select the options for various application eg. BSP Application, Program, Class Builder, Function Builder etc) is not displaying. I have refer