Help require in ABAP programing.
Good Afternoon all ,
Target : To fill the value in ZPLN_DLTM which is attribute of 0MAT_PLANT
The logic for updating the field is as follows:
We want this Planned Delivery time to be based off of an InfoRecord (ZGOPRO71 and the new ZGOPRO59). If there is no InfoRecord found then we will use 0PLND_DELRY on 0MAT_PLANT (PLIFZ).
SELECT INFO_REC, PURCH_ORG, INFO_TYPE the first row you find From the active table of ODS ZGOPRO71
WHERE material and plant = the material and plant on the record from R/3
AND PURCH_ORG between 0000 and 9999.
Now take the INFNR (InfoRecord) found and select from the new ZGOPRO59 ODS.
SELECT SINGLE DURSHP_PL (planned delivery time) FROM active table of ZGOPRO59
WHERE INFO_REC, PURCH_ORG, INFO_TYPE match from the above SELECT
AND PLANT = plant on the record from R/3.
Lastly the RESULT should equal the DURSHP_PL from the above SELECT +
GR_PR_TIME.
If you cannot find a record from either of the two SELECT statements, then set the RESULT to PLND_DELRY.
***************This program i have written in an INCLUDE***********
TABLES:/bic/AZGOPRO5900,
/bic/AZGOPRO7100.
DATA: wa_datapak_line type TRANSFER_STRUCTURE.
****Internal table for ZGOPRO71******
DATA: Begin of i_zgopro7100 occurs 0,
Material type /bic/azgopro7100-material,
Plant type /bic/azgopro7100-plant,
INFO_REC type /bic/azgopro7100-INFO_REC,
INFO_TYPE type /bic/azgopro7100-INFO_TYPE,
PURCH_ORG type /bic/azgopro7100-PURCH_ORG,
End of i_zgopro7100.
****Internal table for ZGOPRO59******
DATA: Begin of i_zgopro5900 occurs 0,
Material type /bic/azgopro5900-Material,
Plant type /bic/azgopro5900-Plant,
INFO_REC type /bic/azgopro5900-INFO_REC,
DURSHP_PL type /bic/azgopro5900-DURSHP_PL,
INFO_TYPE type /bic/azgopro5900-INFO_TYPE,
PURCH_ORG type /bic/azgopro5900-PURCH_ORG,
End of i_zgopro5900.
******For Loading Data into Internal table i_zgopro7100 ******
Refresh: i_zgopro7100.
Select Material Plant INFO_REC INFO_TYPE PURCH_ORG from /bic/azgopro7100
INTO TABLE i_zgopro7100
FOR ALL ENTRIES IN datapak
WHERE Material = datapak-mat_plant
AND Plant = datapak-plant
AND PURCH_ORG BETWEEN 0000 AND 9999.
Sort i_zgopro7100 by plant.
For Loading Data into Internal table i_zgopro5900 ******
Refresh: i_zgopro5900.
Select Material Plant INFO_REC DURSHP_PL INFO_TYPE PURCH_ORG from /bic/azgopro5900
INTO TABLE i_zgopro5900
FOR ALL ENTRIES IN datapak
WHERE Material = datapak-mat_plant.
Sort i_zgopro5900 by plant.
loop at datapak into wa_datapak_line.
ztabix = sy-tabix.
READ TABLE i_zgopro7100
WITH KEY Material = wa_datapak_line-mat_plant
Plant = wa_datapak_line-plant
BINARY SEARCH.
if sy-subrc = 0.
READ TABLE i_zgopro5900
WITH KEY INFO_REC = i_zgopro7100-INFO_REC
Material = i_zgopro7100-Material
INFO_TYPE = i_zgopro7100-INFO_TYPE
PURCH_ORG = i_zgopro7100-PURCH_ORG
Plant = wa_datapak_line-plant.
if sy-subrc = 0.
wa_datapak_line-/bic/ZPLN_DLTM = i_zgopro5900-DURSHP_PL + wa_datapak_line-gr_pr_time.
Else.
wa_datapak_line-/bic/ZPLN_DLTM = wa_datapak_line-plnd_delry.
Endif.
Else.
wa_datapak_line-/bic/ZPLN_DLTM = wa_datapak_line-plnd_delry.
Endif.
modify datapak from wa_datapak_line index ztabix.
endloop.
*********My question****************
The sy-subrc returned value 4 even though row is found
the data is not updated in the field ZPLN_DLTM it copies valu from PLND_DELRY by default even though it satisfies the conditions but if u load for specific plant and material values get loaded in the field with proper calculation.
For the right answer points will be rewarded.
Hi Vaishali,
In following code fragment ,
Select Material Plant INFO_REC INFO_TYPE PURCH_ORG from /bic/azgopro7100
INTO TABLE i_zgopro7100
FOR ALL ENTRIES IN datapak
WHERE Material = datapak-mat_plant
AND Plant = datapak-plant
AND PURCH_ORG BETWEEN 0000 AND 9999.
Sort i_zgopro7100 by plant.
try with following changes
1. Comment
AND PURCH_ORG BETWEEN 0000 AND 9999.
2. Instead of
Sort i_zgopro7100 by plant.
Write
Sort i_zgopro7100 by material plant.
In following code fragment
loop at datapak into wa_datapak_line.
ztabix = sy-tabix.
READ TABLE i_zgopro7100
WITH KEY Material = wa_datapak_line-mat_plant
Plant = wa_datapak_line-plant
BINARY SEARCH.
if sy-subrc = 0.
READ TABLE i_zgopro5900
1. After statement
ztabix = sy-tabix.
Insert
Clear i_zgopro7100.
Clear i_zgopro5900.
And let us know the output .
Hope that helps.
Regards
Mr Kapadia
Assigning points is the way to say thanks in SDN.
Similar Messages
-
Need help in HR-ABAP programming stuff
Hi Alls
I have been assigned to work in HR-ABAP.I have gud exp in normal ABAP but i am totally new for hr-abap.Could please help to me as u guys are helping to others.
What are teh basic things i need to know , so i can start working..
Please send me HR-ABAP related programming stuff on given id.
My mail id is [email protected]
Ur help would highly be appreciate.
Regards
Vinod Tiwarihi,
sites regarding hr-abap:
http://www.sapdevelopment.co.uk/hr/hrhome.htm
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PAPA/PAPA.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PAPD/PAPD.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/PYINT/PYINT_BASICS.pdf
http://www.atomhr.com/training/Technical_Topics_in_HR.htm
http://www.planetsap.com/hr_abap_main_page.htm
You can see some Standard Program examples in this one ...
http://www.sapdevelopment.co.uk/programs/programshr.htm
http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci1030179,00.html?Offer=SAlgwn12604#Certification
http://www.erpgenie.com/faq/hr.htm.
http://www.planetsap.com/hr_abap_main_page.htm
http://www.sapbrain.com/TUTORIALS/FUNCTIONAL/HR_tutorial.html
These are the FAQ's that might helps you as well.
http://www.sap-img.com/human/hr-faq.htm
http://www.sapgenie.com/faq/hr.htm
http://www.planetsap.com/hr_abap_main_page.htm
http://www.atomhr.com/library_full.htm
I am sending to ur maild id also.
if helpful reward points -
Help required for Concurrent program parameters
Hi All,
I have a Concurrent program which has the following set of parameters.
From Project Number
To Project Number
From Org
To Org
We dont want to make any of these mandatory, but we have a condition that either of the two sets must be entered i.e. before submitting we have to validate that either From Project Number/To Project Number parameter set is populated or From Org/To Org parameter set is populated.
If someone could help me with this it would be a great help.
Regards,
ShrutiHi Shruti;
What is your OS and EBS level?
Please check below:
Setup for Defined Concurrent Program with Parameters - SQL Script
How to enable/disable parameters in concurrent program dependent prev. para
Concurrent Program with conditionally required parameters
Need to do validation while entering concurrent program parameters
If those are not help,please try to look [this search|http://forums.oracle.com/forums/search.jspa?threadID=&q=Concurrent+program+parameters+&objID=f475&dateRange=all&userID=&numResults=15]
Also check http://download-uk.oracle.com/docs/cd/A60725_05/html/comnls/us/fnd/progde04.htm and this
Hope it helps
Regard
Helios -
Help required in Dailog programming
Hello All,
I have a field in screen. For that filed i kept f4help in flow logic in process on request(POV)
My problem is:
The user chooses some value in f4 help.After the user chooses some value i need to set someother field based on this field. But i am unable to do that. Can any one help me. how to solve this problem?
My code: in flow logic
PROCESS ON VALUE-REQUEST.
FIELD: qmel-qmcod MODULE f4help_qmcod.
lt_qpk1codegrp-codegruppe = '*'.
APPEND lt_qpk1codegrp.
CALL FUNCTION 'QPK1_GP_CODE_SELECTION'
EXPORTING
i_katalogart = 'Z'
i_code = '*'
i_sprache = sy-langu
i_winx1 = 10
i_winx2 = 70
i_winy1 = 5
i_winy2 = 25
i_return_if_one = 'X'
i_pickup_mode = 'X'
TABLES
t_qpk1cdtab = lt_qpk1cd
t_codegrptab = lt_qpk1codegrp
EXCEPTIONS
no_match_in_range = 1
no_user_selection = 2
no_authorization = 3
no_selection_specified = 4
object_locked = 5
lock_error = 6
object_missing = 7
OTHERS = 8.
CASE sy-subrc.
WHEN 0.
READ TABLE lt_qpk1cd INTO ls_qpk1cd INDEX 1.
IF sy-subrc = 0.
qmel-qmgrp = ls_qpk1cd-codegruppe.
qmel-qmcod = ls_qpk1cd-code.
FREE: lt_qpk1cd,ls_qpk1cd.
ENDIF.
WHEN OTHERS.
MESSAGE s006 WITH 'please check the program'.
ENDCASE.
Regards,
LisaREAD TABLE lt_qpk1cd INTO ls_qpk1cd INDEX 1.
IF sy-subrc = 0.
qmel-qmgrp = ls_qpk1cd-codegruppe.
qmel-qmcod = ls_qpk1cd-code.
"here you need to call the Function
" DYNP_VALUES_UPDATE to update the other fields
FREE: lt_qpk1cd,ls_qpk1cd.
ENDIF. -
Help required on Freely Programmed Input help
Dear all,
I have developed a component, say comp1, in which i have implemented the interface IWD_VALUE_HELP.
In the respective view(MAIN) of Comp1 i have a dropdown which contains a list of company codes fetched from T001 table.
Apart from these two, I have also embedded the Main view into the window WD_VALUE_HELP.
Now, I have created another component, say Comp2, in which i Used the dynpro component Comp1, and also in the MAIN view of my Comp2. Now in the MAIN view of Comp2 I have created a input field from the node T001 in the context which contains the single attribute BUKRS type String. In the properties of the BUKRS attribute I have also changed the Input help to "Freely Programmed" and linked to the component for the Input help.
After this, I have created the application for my component Comp2. When i run the application and when i press F4 on the input field i am able to get the window from Comp1 component, and a dropdown with values.
Now the question is, How can i pass the value selected in that window of Comp1 into the input field of Comp2? we do the same in OVS, when ever a value is selected from the Hitlist, it will be cascaded into the input field, just like that i want to do here.
Please suggest me how to do this, and also please tell when to go for Freely programmed Input help and its advantages.
Thank you,
Shashi.You can do as suggested already and use interface nodes and cross component mapping; but that is all really not necessary. It creates a situation where you calling application is too dependent upon the freely programmed input help. You want to try to avoid the situation where the calling application needs code or mappings to communicate with the input help.
That is easy to do because the framework passes all the information you need into the freely programmed input help via the value_help_listener object.
Part of the Freeley Programmed Input Help Component should be the component interface IWD_VALUE_HELP. This comes with a component controller method called SET_VALUE_HELP_LISTENER. This allows your freely programmed value help to capture this object called listener of type IF_WD_VALUE_HELP_LISTENER. I generally just store it awa into a component controller attribute.
With this listerner object you have direct access to the context attribute in the calling component. You can query information about the calling UI element and of course set values directly back into it. The listener is a hugely helpful object and should be the way you interact with the calling component whenever possible. Here is small example:
set single attribute
wd_this->value_help_listener->f4_context_element->set_attribute(
exporting
name = wd_this->value_help_listener->f4_attribute_info-name
value = l_time -
Help required - For ALV program
Hi Guys,
I have created an ALV (using containers) with , say , 10 fields. As the container size is not large enough to accomodate all the 10 fields, it is getting displayed as
field1, field2,field8, field9 and field10.
When I click on the horizontal scrollbar, the fields getting displayed should change as follows.
First click: Field2, Field3, Field8,Field9, Field10
Second click: Field3,Field4, 8, 9,10
Third click: Field4,Field5,8,9,10
This is for one of my friends.Can you provide me with good ideas as to how to approach this problem and if any one has worked on similar problem, please provide the code for it.
I will check the code and will award points to all helpful answers.
Have a nice day .
Regards,
SP.Hello Sylendra
As developer of ALV lists we do not care that much about the layout of the list because the user has all the options available to adjust it to her specific needs.
Your requirement is to be able to "freeze" columns at the right border of the ALV list. This is, as far as I know, not possible, only at the left border.
When you call the context menu for a column heading you will see the options
- Freeze to Column
- Unfreeze Columns
If you freeze a column all columns to its left side remain fixed. Thus, in your case you have to change the order of your columns that the fixed columns (field8 - field10) appear on the left side of the ALV list.
Regards
Uwe -
Help required in socket programming...
hi all,
I have a server socket which is suppose to accept multiple clients and communicate with them... In case I m successfull able to connect only one client and communicate with the server where as the 2nd client is connected but i am not able to establish the communication.. can u please help me in this matter
Thank U
ParimalaLook at this Sample.
import java.awt.event.*;
import java.io.*;
import java.net.*;
public class Mserv extends JFrame
public Mserv()
super("J21server v1.4.1");
setBounds(10,10,400,420);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent ev)
{ dispose();
System.exit(0);}});
setVisible(true);
public void go(Socket clnt)
Server server = new Server(clnt);
server.start();
public class Server extends Thread
Socket clnt = null;
public Server(Socket soc)
clnt = soc;
public void run()
OutputStream out = null;
InputStream in = null;
int i = 0;
byte b[] = new byte[1024];
try
out = clnt.getOutputStream();
in = clnt.getInputStream();
while ((i = in.read(b)) > 0)
catch (IOException e){}
try
in.close();
out.close();
catch (IOException e){}
public static void main (String[] args)
ServerSocket servS = null;
Socket clnt = null;
Mserv mserv = new Mserv();
try
servS = new ServerSocket(4444);
while (true)
clnt = servS.accept();
mserv.go(clnt);
catch (IOException e)
e.printStackTrace();
Noah -
Scheduling ABAP Program to run Daily
Hi,
In my current scenario, i require my ABAP program(ZMYPROGAM) to run periodically (say every 1 hour/ 1 Day). Is it possible to schedule it so?
kindly let me know how to go about.
Regards,
Siva Maranani.Hi Siva,
You can schedule your program as a background Job SM36. Please check the transaction. You will have to set your ABAP program as the job STEP (if you probably have selection screen for your report then you will also need a variant for your report).
Do schedule your program as a 'Periodic Job' and your personal period (daily/hourly).
After you save your settings you can also monitor your job (ABAP Program) from the same transaction or even from CCMS if you like.
hope this helps,
ZAM -
hellow i have a table itab with value (ex. error value) and i wont to select some value from tables ( defined below.) and put it in table err_itab my problem is in the loop i dont now how to continued from their i thihk with append to intrernal tables and after to do read to err_itab, but im not sure this is my program any suggestion. thankes for your time and suggestion.
form write_2_file .
IF file_ser IS INITIAL.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
CODEPAGE = ' '
filename = l_name
FILETYPE = 'ASC'
HEADLEN = ' '
LINE_EXIT = ' '
TRUNCLEN = ' '
USER_FORM = ' '
USER_PROG = ' '
DAT_D_FORMAT = ' '
IMPORTING
FILELENGTH =
TABLES
data_tab = itab
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
no_authority = 10
OTHERS = 11
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ELSE.
OPEN DATASET file_ser IN TEXT MODE
ENCODING DEFAULT FOR INPUT.
IF sy-subrc NE 0.
MESSAGE e002(yhr) .
ENDIF.
DO.
READ DATASET file_ser INTO wa_itab.
IF sy-subrc NE 0.
EXIT.
ENDIF.
APPEND wa_itab TO itab.
ENDDO.
ENDIF.
endform. " write_2_file
FORM get_data .
CLEAR wa_itab.
LOOP AT itab INTO wa_itab.
IF wa_itab-action = 'y1'
OR wa_itab-action = 'y2'
OR wa_itab-action = 'y3'.
SELECT SINGLE ansvh
FROM t542a
INTO wa_b_itab-ansvh
WHERE molga ='IL'
AND ansvh = wa_itab-contract.
IF sy-subrc <> 0.
APPEND wa_b_itab TO b_itab.
SELECT SINGLE werks btrtl
FROM t001p
INTO (wa_c_itab-werks, wa_c_itab-btrtl)
WHERE molga ='IL'
AND werks = wa_itab-personnel_area
AND btrtl = wa_itab-personnel_subarea.
IF sy-subrc <> 0.
APPEND wa_c_itab TO c_itab.
SELECT SINGLE objid
FROM hrp1000
INTO wa_d_itab-objid
WHERE otype = 'S'
AND objid = wa_itab-plans
AND begda <= currnt_date
AND endda >= currnt_date.
APPEND wa_d_itab TO d_itab.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.<i>I have added authorization check in ABAP program(Progran level security).</i>
i assume you have coded call authority within the program.
<i>If an end user runs the transactionm, then which authorization check will fire first?</i>
if he calls the transaction, then first authorization attached to the transaction will be checked.
but if he executes the program attached to the transaction, then the authorization attached to the transaction dosent help here, the one coded in side the program is checked.
<i>If I have web enabled my ABAP program via SICF (in other words, ITS).</i>
it depends,
if you are calling your transaction like
webgui/?~transaction=<tcode> then first tcode level authorization.
if you generate the templates for the program and callign the same, then i guess its progam level. (i need to check this)
Regards
Raja -
Question on security in ABAP program with ITS. Please help!
Hi Experts,
I have a question on security in ABAP program.
I have a ABAP program which has a transaction attached.
I have added authorization check in ABAP program(Progran level security).
I have also attached the authorization object to the transaction.(Transaction level security)
If an end user runs the transactionm, then which authorization check will fire first? Will it be transaction level?
If I have web enabled my ABAP program via SICF (in other words, ITS). Then when I try to run my ITS service in the browser will the transaction level authorization fire? or Will the program level authorization fire?
Please help me understand this security aspect.
Thanks
Gopal<i>I have added authorization check in ABAP program(Progran level security).</i>
i assume you have coded call authority within the program.
<i>If an end user runs the transactionm, then which authorization check will fire first?</i>
if he calls the transaction, then first authorization attached to the transaction will be checked.
but if he executes the program attached to the transaction, then the authorization attached to the transaction dosent help here, the one coded in side the program is checked.
<i>If I have web enabled my ABAP program via SICF (in other words, ITS).</i>
it depends,
if you are calling your transaction like
webgui/?~transaction=<tcode> then first tcode level authorization.
if you generate the templates for the program and callign the same, then i guess its progam level. (i need to check this)
Regards
Raja -
Hi All,
My design wont allow Delta loads because the transformation source is an InfoSet. To limit the data in these loads, I require a filter in the DTPs on fiscal year/period then only load I can load the current month and 2 prior months. Now we are updating manually for the DTPs. To eliminate this monthly task a dynamic filter (routine) needs should be used rather than a static filter.
So I have written as follows But in the debugger mode am able to see the -3months to the current date but records are not filtered. Any help please
*& Include RSBC_SEL_ROUTINE_TPL -
program conversion_routine.---
Type pools used by conversion program---
type-pools: rsarc, rsarr, rssm.---
tables: rssdlrange.---
Global code used by conversion rules---
$$ begin of global - insert your declaration only below this line ----
TABLES: ...---
DATA: ...------
$$ end of global - insert your declaration only before this line ----
Fieldname = F139---
data type = NUMC---
length = 000007---
form compute_F139---
tables l_t_range structure rssdlrange---
changing p_subrc like sy-subrc.---
Insert source code to current selection field---
$$ begin of routine - insert your code only below this line ----
data: l_idx like sy-tabix.---
read table l_t_range with key---
fieldname = '/bic/0FISCPER' .---
l_idx = sy-tabix.---
DATA: w_date TYPE SY-DATUM,---
w_date1 type sy-datum,---
lv_idate(8) type n,---
lv_odate(8) type n,---
lv_date1(7) type n,---
lv_date2(8) type n.---
CONCATENATE SY-DATUM0(4) SY-DATUM4(2) sy-datum+6(2) into W_DATE.---
CALL FUNCTION 'SEPA_MANDATE_ADD_MONTH_TO_DATE'---
EXPORTING---
MONTHS = '-3'---
OLDDATE = W_DATE---
IMPORTING---
NEWDATE = W_DATE1.---
Concatenate W_DATE0(4) W_DATE4(2) W_DATE+6(2) into lv_Idate.---
Concatenate W_DATE10(4) W_DATE14(2) W_DATE1+6(2) into lv_odate.---
Concatenate '0' W_DATE4(2) '.' W_DATE0(4) into lv_date2.---
Concatenate '0' W_DATE14(2) W_DATE10(4) into lv_date1.---
CALL FUNCTION 'UMC_CALDAY_TO_FISCPER'---
EXPORTING---
I_PERIV = 'K1'---
I_CALDAY = lv_Idate---
IMPORTING---
OUTPUT = lv_date1.---
CALL FUNCTION 'UMC_CALDAY_TO_FISCPER'---
EXPORTING---
I_PERIV = 'K1'---
I_CALDAY = lv_odate---
IMPORTING---
OUTPUT = lv_date2.---
*l_t_range-iobjnm = '0FISCPER'.---
l_t_range-fieldname = '/bic/0FISCPER'.---
l_t_range-sign = 'I'.---
l_t_range-option = 'GE'.---
l_t_range-low = lv_date1.---
*l_t_range-high = lv_date2.---
if l_idx <> 0.---
modify l_t_range index l_idx.---
else.---
append l_t_range.---
endif.---
p_subrc = 0.---
$$ end of routine - insert your code only before this line ----
endform.---
-Ashwin
Edited by: ashwin kumar on Jun 16, 2010 10:04 AM1. In the future, please use a meaningful subject line, like "loop not performing last iteration." Just saying "Help in my java code" is useless. We know you need help with your Java code, else you wouldn't be posting here.
2. Repost your code without those annoying superfluous asterisks, and with proper indentation in the section that they are currently polluting. It's too hard to read as-is. -
Hello All,
I am very new to ABAP programming and i want to learn ABAP. For this i am using following link
http://help.sap.com/saphelp_470/helpdata/en/fc/eb2c46358411d1829f0000e829fbfe/frameset.htm
But this document does not contains any walkthroughs or How to Section, so that beginner can start programming.
Do you have any such material related to only programming steps.
Thanks in advance,
PrashantPls follow the below link:
http://www.itcserver.com/blog/2006/06/24/the-structure-of-an-abap-program/
http://help.sap.com/saphelp_470/helpdata/en/fc/eb2c46358411d1829f0000e829fbfe
Please check also the foll links to start learning ABAP.
http://help.sap.com/
http://www.sapgenie.com/abap/
http://www.sappoint.com/abap.html
http://cma.zdnet.com/book/abap/index.htm
http://www.sap-img.com
http://www.sappoint.com
http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
http://sap.ittoolbox.com
Please visit this link. I hope this will help you a lot.
LINK : http://sapabap.iespana.es/sapabap/manuales/learnabap/
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/41341147041806e10000000a1553f6/frameset.htm
https://www.sdn.sap.com/irj/sdn/developerareas/abap
Pls reward appropriate points. -
MDX - ABAP program variable to select the required month
Dear all,
Please I would like to ask you about the following MDX issue.
We have run the following MDX in SAP R/3 using the OLAP BAPI with successful results:
SELECT
[Measures].MEMBERS ON AXIS(0) ,
NON EMPTY [0SALESORG].[LEVEL01].MEMBERS
[0DISTR_CHAN].[LEVEL01].MEMBERS
[0MATERIAL].[LEVEL01].MEMBERS
properties member_name
ON AXIS(1)
FROM [EPSDC108/ZTD_EPSDC108_Q002]
We now want to select a specific calendar month for the data and generated the following MDX:
SELECT
[Measures].MEMBERS ON AXIS(0) ,
NON EMPTY [0SALESORG].[LEVEL01].MEMBERS
[0DISTR_CHAN].[LEVEL01].MEMBERS
[0MATERIAL].[LEVEL01].MEMBERS
properties member_name
ON AXIS(1)
FROM [EPSDC108/ZTD_EPSDC108_Q002]
SAP VARIABLES [CALMONTH] INCLUDING <member>
We would like to know how we use an ABAP program variable to select the required month.
Thank you in advance for you reply
Regards
Aleshello,
the syntax of the MDX should be:
SELECT
[Measures].MEMBERS ON AXIS(0) ,
NON EMPTY [0SALESORG].[LEVEL01].MEMBERS
[0DISTR_CHAN].[LEVEL01].MEMBERS
[0MATERIAL].[LEVEL01].MEMBERS
properties member_name
ON AXIS(1)
FROM [EPSDC108/ZTD_EPSDC108_Q002]
SAP VARIABLES [CALMONTH] INCLUDING [0CALMONTH].[200412]
CALMONTH is the Queryvariable!!
If you wanna use a ABAP veriable you have to concatenate the MDX statement in your ABAP.
Kind reg.
Michael -
Need one abap program.....pls help
Hi all,
i have need one ABAP program , which can dispaly how many same number of charecter are there.
ex : my input is suresh.
output is,,,
2 - s
1 - u
1 - r
just like that..
pls help me..
thanks in advance.
induHello
Try this:
data: string(100),
length type i.
data: begin of itab occurs 0,
chart,
count type i,
end of itab.
string = 'suresh'.
length = strlen( string ).
do length times.
length = length - 1.
clear itab.
itab-chart = string+length(1).
itab-count = 1.
collect itab.
enddo.
loop at itab.
write: itab-chart, itab-count. new-line.
endloop. -
How can i print data in smartforms from ABAP program.
Dear gurus:
in my abap program i process require data, and saved in a internal table.
how can l print the data in smartforms.?
who can give me a code sample is better:)
reward all helpful advise.Try this....
1) Tcode --> SmartForms
2) Form name --> Z_SF_TEST Create
3) Under Global settings
a) Form Interface
Table Tab
ITAB LIKE EKPO
b) GLOBAL Definitions
WA_NETPR LIKE EKPO-NETPR
In smart forms if we want to display quantity and currency fields. We can't directly display currency field and quantity fields
For that we have to create an extra variable in global definitions
Ex: netpr FIELD of EKPO
CREATE program lines and specify WA_NETWR = itab-netpr.
4) RT CLick on main Window
CREATE --> TABLE
Click Table painter
DEFAULT %LTYPE will be Created
a) If you want more like Header footer etc add by rt click on %LTYPE1
Table (Tab)
%LTYPE Radio(SELECT) 5 CM 5 CM 6 CM
CLICK on DATA (Tab)
INTERNAL TABLE ITAB LIKE ITAB
5)RT click on table control and create --> program lines
General attribute (Tab)
INPUT PARAMETER OUTPUT PARAMETER
itab WA_NETPR
Code Area
WA_NETWR = ITAB-NETPR.
6) RT CLcick on table ctl and create 3 text to display the fields
a) % text1 +button(insert field)
FIELD name &itab-ebeln&
Output options (tab)
Check New line LINETYPE %Ltype1
check new cell
b) % text2
& itab-ebelp&
output options
check new cell
c) % text2
& wa_netpr&
output options
check new cell
<b>Report ac
Tables ekpo.
Data: itab1 like ekpo occurs 0 with header line.
select * into table itab1 from ekpo.
Call function module --> smart form function module and pass your internal table</b>
Regards,
SaiRam
Maybe you are looking for
-
Why my SAP B1 gets struck?
Dear Experts, Recently, When I apply Add in Purchase Order Form/Goods Issue Form/Goods Receipt Form and any other form that has data input to database, the hour glass appears and continues for a long period. Ultimately I need to close my b1 using alt
-
Using VPD -- Very Confused!
Hey, I'm trying to write a small amount of code that will generate the PL/SQL that I'll need to implement simple policies like: Column ________ in table ________ should only be visible by ________ and ________ I've been reading the Oracle Security Gu
-
Storage location control, storage location ref.
Hello all, I am new in WM, Can anyone please explain me the *_Storage location control function_* and *Storage location ref* with the exmple in detail. Go for this path if required:- Spro-- log execution-- warehouse mang- interfaces inventory mang-
-
Newbie question, ipod to new library.
Is there any way for me to the songs from my ipod and put them into a different computer's itunes library?
-
Finding deleted photo in time capsule
Is it easier finding a deleted photo in time capsule using aperture, than iphoto? Considering buying aperture