Relation and field ( or relational field) between VBRP + VBAP
hi all,
can anyone pls tell me the relation and field ( or relational field)between VBRP + VBAP
Hi,
U can make use of VBFA (Sales document flow)table for this.
If you have the billing document number and item then provide them in the subsequent document (VBELN) and item(POSNN) fields of VBFA table and provide the preceding doc category as 'C' to get the sales order information.
Similarly if u have the sales order number and item then pass them to the preceding doc and item fields of VBFA and pass the subsequent doc category as 'M' so that u will get the billing doc number.
thasnks and regard
Similar Messages
-
Relation field between table VBRK/VBRP and BSEG
Can any body guide on the common fields between VBRK/ VBRP and BSEG, except field "assignment".
Hi,
If you know the accounting document number, Goto SE16. enter BSEG table and enter.
Enter the accounting document number in selection screen. E.g 90000498.
You will get multiple lines. E.g normal billing document(Not credit memo /debit memo)
Customer information will be available in posting key 01 line (Header). And Item information will be avilable in Posting key 50 line.
List of fields available in Header.
Billing document number
Customer
Payment terms
Amount.
Company code
Controlling area
Reconciliation account number
Assignment
Item level information in Posting key 50.
Material
Plant
Amount
Tax amount
Tax code
As per my knowledge for reporting purpose we don't use BSEG bcoz of performance issue.
BKPF - Accounting document Header
BSID
BSIS
Regards,
Chandra -
Asset report related table and fields
Hi ,
I need table name and field ( Asset related ) for -
a) GL A/C P&L
b) ASSET DEPRECIATION SCHEDULED
c) FORCASTED DEPRECIATION
d) PLANNED EXPENSES VERSES ACTUAL EXPENSES
e) GAP DEPRECIATION CATEGORY
e) MANUAL ENTRIES MADE BY USER TO BOOK DEPRECIATION
This is urgent. Please help.
Regards.Hi Gopi ,
Will you please tell me which field from the tables will match to the description given by me ? As I am already using this tables but I could not locate required fields.
Thanks.
Narayan -
Phtmlb: space between Label and Field
Hello,
I am using <phtmlb:matrix> to arrange the fields next to one another on the view. For fields, <phtmlb:formLayoutInputField> is used in which case the label is taken automatically through binding to DDIC fields. At one particular row of matrix, it is required to break-up the cell in 3 more cells, so that I can display 3 fields adjacent to one another in the space of one cell. For this I am nesting one more matrix inside the outer matrix.
Something like this...
<phtmlb:matrix>
<phtmlb:matrixCell row = "1"
col = "1" />
<phtmlb:formLayout>
<phtmlb:formLayoutInputField>
</phtmlb:formLayout>
<phtmlb:matrixCell row = "2"
col = "1" />
<phtmlb:matrix>
<phtmlb:formLayout>
...3 fields next to one another / 3 cells
</phtmlb:formLayout>
</phtmlb:matrix>
</phtmlb:matrix>
I am able to acheive the desired output of 3 fields next to one another, but facing the following problem.
To get the inner matrix(3 fields) into effect, i need to close the <phtmlb:formLayout>.
Now, the first row properly shows all the filds one below the other with proper spacing between the label and input output field.
(Actually all the input_output fileds are placed at a distance of largest text/label in one formlayout).
But when the second row starts, the spacing between label and field is no longer taken as per the first row in above case.
Is it because since a new <phtmlb:fomlayout> is started , the spacing will be as per the elements in this new formlyout. If yes, How can I assure the same spacing between elements of two different formlayouts. I tried "fieldToLabelFactor" but since no. of fields in my page is too large, I can't afford to decide this factor for every <phtmlb:formLayout>.
Or is there any better way to acheive the required output.
Thanks ,
Pritidid u get the solution?
-
Select a number of fields between one field and another
Hello,
Is there any way to make a SELECT to show a number of fields between one field and another,
without writting all the fields one by one ?
For example, I have one table with these fields:
TABLE EMPLOYEE:
ID_EMPLOYEE NAME PHONE CAR AGE MARRIED
and I just want to make a SELECT who shows only fields from NAME to AGE, but i don't want to
write in the SELECT all the fields one by one.
Is this possible?
Thank you very much.
Sorry for my english it's not very good.Swam wrote:
Hello,
Is there any way to make a SELECT to show a number of fields between one field and another,
without writting all the fields one by one ?
For example, I have one table with these fields:
TABLE EMPLOYEE:
ID_EMPLOYEE NAME PHONE CAR AGE MARRIED
and I just want to make a SELECT who shows only fields from NAME to AGE, but i don't want to
write in the SELECT all the fields one by one.
Is this possible?
Thank you very much.
Sorry for my english it's not very good.If you use the DBMS_SQL package to execute your query you can reference the columns by position rather than name.
One examples of using DBMS_SQL package:
SQL> ed
Wrote file afiedt.buf
1 DECLARE
2 cur PLS_INTEGER := DBMS_SQL.OPEN_CURSOR;
3 cols DBMS_SQL.DESC_TAB;
4 ncols PLS_INTEGER;
5 v_min_col NUMBER := 2;
6 v_max_col NUMBER := 4;
7 v_val VARCHAR2(4000);
8 v_bindval VARCHAR2(4000);
9 v_ret NUMBER;
10 d NUMBER;
11 BEGIN
12 -- Parse the query.
13 DBMS_SQL.PARSE(cur, 'SELECT * FROM emp', DBMS_SQL.NATIVE);
14 -- Retrieve column information
15 DBMS_SQL.DESCRIBE_COLUMNS (cur, ncols, cols);
16 -- Display each of the column names and bind variables too
17 FOR colind IN v_min_col..v_max_col
18 LOOP
19 DBMS_OUTPUT.PUT_LINE ('Column:'||colind||' : '||cols(colind).col_name);
20 DBMS_SQL.DEFINE_COLUMN(cur,colind,v_bindval,4000);
21 END LOOP;
22 -- Display data for those columns
23 d := DBMS_SQL.EXECUTE(cur);
24 LOOP
25 v_ret := DBMS_SQL.FETCH_ROWS(cur);
26 v_val := NULL;
27 EXIT WHEN v_ret = 0;
28 FOR colind in v_min_col..v_max_col
29 LOOP
30 DBMS_SQL.COLUMN_VALUE(cur,colind,v_bindval);
31 v_val := LTRIM(v_val||','||v_bindval,',');
32 END LOOP;
33 DBMS_OUTPUT.PUT_LINE(v_val);
34 END LOOP;
35 DBMS_SQL.CLOSE_CURSOR (cur);
36* END;
SQL> /
Column:2 : ENAME
Column:3 : JOB
Column:4 : MGR
SMITH,CLERK,7902
ALLEN,SALESMAN,7698
WARD,SALESMAN,7698
JONES,MANAGER,7839
MARTIN,SALESMAN,7698
BLAKE,MANAGER,7839
CLARK,MANAGER,7839
SCOTT,ANALYST,7566
KING,PRESIDENT,
TURNER,SALESMAN,7698
ADAMS,CLERK,7788
JAMES,CLERK,7698
FORD,ANALYST,7566
MILLER,CLERK,7782
PL/SQL procedure successfully completed.
SQL>Of course, if you were going to do this properly you would bind the correct datatypes of variables based on the types of the columns (the type information is also available through the describe information) -
Difference between Field symbols and field group
Hi experts,
Can you please advice me what is the difference between field symbols and field groups.
Thanks in advance,
Logu.Field symbols: are placeholders or symbolic names for other fields. They do not physically reserve space for a field, but point to its contents. A field symbol cam point to any data object. The data object to which a field symbol points is assigned to it after it has been declared in the program.
Whenever you address a field symbol in a program, you are addressing the field that is assigned to the field symbol. After successful assignment, there is no difference in ABAP whether you reference the field symbol or the field itself. You must assign a field to each field symbol before you can address the latter in programs.
Field Groups:
A field group is a user-defined grouping of characteristics and basic key figures from the EC-EIS or EC-BP field catalog.
Use
The field catalog contains the fields that are used in the aspects. As the number of fields grows, the field catalog becomes very large and unclear. To simplify maintenance of the aspects, you can group fields in a field group. You can group the fields as you wish, for example, by subject area or responsibility area. A field may be included in several field groups.
When maintaining the data structure of an aspect, you can select the field group that contains the relevant characteristics and basic key figures. This way you limit the number of fields offered.
A field group combines several existing fields together under one name
like
FIELD-GROUPS: fg.
then you can use one insert statement to insert values in fields of field-group.
INSERT f1 f2 ... INTO fg.
Field symbols
If u have experience with 'C', then understand this to be similar to a pointer.
It is used to reference another variable dynamically. So this field symbol will simply point to some other variable. and this pointer can be changed at runtime.
FIELD-SYMBOLS <FS>.
DATA FIELD VALUE 'X'.
ASSIGN FIELD TO <FS>.
WRITE <FS>.
Field symbols: are placeholders or symbolic names for other fields. They do not physically reserve space for a field, but point to its contents. A field symbol cam point to any data object. The data object to which a field symbol points is assigned to it after it has been declared in the program.
Whenever you address a field symbol in a program, you are addressing the field that is assigned to the field symbol. After successful assignment, there is no difference in ABAP whether you reference the field symbol or the field itself. You must assign a field to each field symbol before you can address the latter in programs.
Field Groups:
A field group is a user-defined grouping of characteristics and basic key figures from the EC-EIS or EC-BP field catalog.
Use
The field catalog contains the fields that are used in the aspects. As the number of fields grows, the field catalog becomes very large and unclear. To simplify maintenance of the aspects, you can group fields in a field group. You can group the fields as you wish, for example, by subject area or responsibility area. A field may be included in several field groups.
When maintaining the data structure of an aspect, you can select the field group that contains the relevant characteristics and basic key figures. This way you limit the number of fields offered.
example :
DATA: BEGIN OF SPTAB OCCURS 0,
line(1000), " or type string
END OF SPTAB.
DATA: IDX LIKE SY-INDEX.
field-symbols <FS1>.
split tb_sip AT ';' INTO table sptab.
LOOP AT SPTAB.
IDX = IDX + 1.
ASSIGN COMPONENT IDX OF STRUCTURE tb_detsip TO <FS1>.
If sy-subrc = 0.
<FS1> = SPTAB-line.
Endif.
Endloop.
append tb_detsip.
clear idx.
Field Groups / Extracts
http://help.sap.com/saphelp_46c/helpdata/EN/9f/db9ede35c111d1829f0000e829fbfe/frameset.htm
Field Symbols
http://help.sap.com/saphelp_46c/helpdata/EN/fc/eb387a358411d1829f0000e829fbfe/frameset.htm
Reward points if useful. -
Difference between Field symbols and Field groups
<b>Hi Friends,
can you tell me the differences between Field symbols and Field groups? with any examples preferably?
Regards
Dinesh</b>Hi Dinesh,
A field group combines several existing fields together under one name
like
FIELD-GROUPS: fg.
then you can use one insert statement to insert values in fields of field-group.
INSERT f1 f2 ... INTO fg.
<b>Field symbols</b>
If u have experience with 'C', then understand this to be similar to a pointer.
It is used to reference another variable dynamically. So this field symbol will simply point to some other variable. and this pointer can be changed at runtime.
FIELD-SYMBOLS <FS>.
DATA FIELD VALUE 'X'.
ASSIGN FIELD TO <FS>.
WRITE <FS>.
Field symbols: are placeholders or symbolic names for other fields. They do not physically reserve space for a field, but point to its contents. A field symbol cam point to any data object. The data object to which a field symbol points is assigned to it after it has been declared in the program.
Whenever you address a field symbol in a program, you are addressing the field that is assigned to the field symbol. After successful assignment, there is no difference in ABAP whether you reference the field symbol or the field itself. You must assign a field to each field symbol before you can address the latter in programs.
Field Groups:
A field group is a user-defined grouping of characteristics and basic key figures from the EC-EIS or EC-BP field catalog.
Use
The field catalog contains the fields that are used in the aspects. As the number of fields grows, the field catalog becomes very large and unclear. To simplify maintenance of the aspects, you can group fields in a field group. You can group the fields as you wish, for example, by subject area or responsibility area. A field may be included in several field groups.
When maintaining the data structure of an aspect, you can select the field group that contains the relevant characteristics and basic key figures. This way you limit the number of fields offered.
Field Groups / Extracts
http://help.sap.com/saphelp_46c/helpdata/EN/9f/db9ede35c111d1829f0000e829fbfe/frameset.htm
Field Symbols
http://help.sap.com/saphelp_46c/helpdata/EN/fc/eb387a358411d1829f0000e829fbfe/frameset.htm
Reward points if helpful.
Regards,
Hemant -
I want to join the table vbrk,vbrp,konv and fields are vbeln, knumv.
i want to join the table vbrk,vbrp,konv and fields are vbeln, knumv is possible .
if it isn't possible. what is the another method output is doc. no.(vbrp-vbeln) condition doc. no.(vbrk-knumv) , condition(konv-kschl), tax rate(konv-mwsk1), quantitty(vbrp-fkimg) .reply pls... as soon as possible..Hi..
This is the Join :
SELECT VBAKVBELN VBRKKNUMV
VBRP~FKIMG
KONV-KSCHL KONV~MWSK`
FROM VBRK
INNER JOIN VBRP
ON VBRKVBELN = VBRPVBELN
INNER JOIN KONV
ON KONVKNUMV = VBRKKNUMV
INTO TABLE <ITAB>
WHERE <CONDITION>.
REWARD IF HELPFUL. -
Common field between ar and sd billing
Hi experts,
What is the common date field between sd billing and Accounts receivables ?
Regards,
Nishuv.Hi Aduri,
Upto now i have joined company code, customer in the infoset. But as per my requirement some more
mappings are required. Please suggest some more fields that are common between these two.
And also if we go for custom cubes,
Our requirement is,
To which customer we sold a particular material and what is the Amount pending from the customer.
For this from Billing Cube i want the fields,
Material, Company code, Plant, Customer, Material Group
From AR cube i want the fields:
Debit/Credit Amount,Item Status,Posting Date,Net due date,Clearing
Plz suggest me how to create a custom cube based on these two.
Regards,
Nishuv. -
How can I share a static field between 2 class loaders?
Hi,
I've been googling for 2 days and it now seems I'm not understanding something because nobody seems to have my problem. Please, somebody tell me if I'm crazy.
The system's architecture:
I've got a web application running in a SunOne server. The app uses Struts for the MVC part and Spring to deal with business services and DAOs.
Beside the web app, beyond the application context, but in the same physical server, there are some processes, kind of batch processes that update tables and that kind of stuff, that run once a day. Theese processes are plain Java classes, with a main method, that are executed from ".sh" scripts with the "java" command.
What do I need to do?
"Simple". I need one of those Java processes to use one of the web app's service. This service has some DAOs injected by Spring. And the service itself is a bean defined in the Spring configuration file.
The solution is made-up of 2 parts:
1. I created a class, in the web app, with a static method that returns any bean defined in the Spring configuration file, or in other words, any bean in the application context. In my case, this method returns the service I need.
public class SpringApplicationContext implements ApplicationContextAware {
private static ApplicationContext appContext;
public void setApplicationContext(ApplicationContext context) throws BeansException {
appContext = context;
public static Object getBean(String nombreBean) {
return appContext.getBean(nombreBean);
}The ApplicationContext is injected to the class by Spring through the setApplicationContext method. This is set in the Spring configuration file.
Well, this works fine if I call the getBean method from any class in the web app. But that's not what I need. I need to get a bean from outside the web app. From the "Java batch process".
2. Why doesn't it work from outside the web app? Because when I call getBean from the process outside the web app, a different class loader is executed to load the SpringApplicationContext class. Thus, the static field appContext is null. Am I right?
So, the question I need you to please answer me, the question I didn't find in Google:
How can I share the static field between the 2 class loaders?
If I can't, how can I load the SpringApplicationContext class, from the "Java batch process", with the same class loader my web app was started?
Or, do I need to load the SpringApplicationContext class again? Can't I use, from the process, the class already loaded by my web app?
I' sorry about my so extensive post...
Thank you very much!zibilico wrote:
But maybe, if the web service stuff gets to complicated or it doesn't fulfill my needs, I'll set up a separate Spring context, that gets loaded everytime I run the "Java batch process". It'll have it's own Spring configuration files (these will be a fragment of the web app's config files), where I'll define only the beans I need to use, say the service and the 2 DAOs, and also the DB connection. Additionally, I'll set the classpath to use the beans classes of the web app. Thus, if the service and DAOs were modified in the app server, the process would load the modified classes in the following execution.You'll almost certainly have to do that even if you do use RMI, Web services etc. to connect.
What I suggest is that you split your web project into two source trees, the stuff that relates strictly to the web front end and the code which will be shared with the batch. The latter can then be treated as a library used by both the batch and web projects. That can include splitting Spring configuration files into common and specific, the common beans file can be retrieved from the classpath with an include. I regularly split web projects this way anyway, it helps impose decoupling between View/Controller and Model layers.
On the other hand, you might consider running these batch processes inside the web server on background threads. -
Field Symbols, Field String, and Field Group.
Hi,
Can you differentiate between filed symbols, field strings and field groups,
With regards,
Bharath Mohan BHi,
Field Symbols
Field symbols are placeholders or symbolic names for other fields. They do not physically reserve space for a field, but point to its contents. A field symbol cam point to any data object. The data object to which a field symbol points is assigned to it after it has been declared in the program.
Whenever you address a field symbol in a program, you are addressing the field that is assigned to the field symbol. After successful assignment, there is no difference in ABAP whether you reference the field symbol or the field itself. You must assign a field to each field symbol before you can address the latter in programs.
Field symbols are similar to dereferenced pointers in C (that is, pointers to which the content operator * is applied). However, the only real equivalent of pointers in ABAP, that is, variables that contain a memory address (reference) and that can be used without the contents operator, are reference variables in ABAP Objects.
All operations programmed with field symbols are applied to the field assigned to it. For example, a MOVE statement between two field symbols moves the contents of the field assigned to the first field symbol to the field assigned to the second field symbol. The field symbols themselves point to the same fields after the MOVE statement as they did before.
You can create field symbols either without or with type specifications. If you do not specify a type, the field symbol inherits all of the technical attributes of the field assigned to it. If you do specify a type, the system checks the compatibility of the field symbol and the field you are assigning to it during the ASSIGN statement.
Field symbols provide greater flexibility when you address data objects:
If you want to process sections of fields, you can specify the offset and length of the field dynamically.
You can assign one field symbol to another, which allows you to address parts of fields.
Assignments to field symbols may extend beyond field boundaries. This allows you to address regular sequences of fields in memory efficiently.
You can also force a field symbol to take different technical attributes from those of the field assigned to it.
The flexibility of field symbols provides elegant solutions to certain problems. On the other hand, it does mean that errors can easily occur. Since fields are not assigned to field symbols until runtime, the effectiveness of syntax and security checks is very limited for operations involving field symbols. This can lead to runtime errors or incorrect data assignments.
While runtime errors indicate an obvious problem, incorrect data assignments are dangerous because they can be very difficult to detect. For this reason, you should only use field symbols if you cannot achieve the same result using other ABAP statements.
For example, you may want to process part of a string where the offset and length depend on the contents of the field. You could use field symbols in this case. However, since the MOVE statement also supports variable offset and length specifications, you should use it instead. The MOVE statement (with your own auxiliary variables if required) is much safer than using field symbols, since it cannot address memory beyond the boundary of a field. However, field symbols may improve performance in some cases.
check the below links u will get the answers for your questions
http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3860358411d1829f0000e829fbfe/content.htm
http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/field_sy.htm
http://searchsap.techtarget.com/tip/1,289483,sid21_gci920484,00.html
Syntax Diagram
FIELD-SYMBOLS
Basic form
FIELD-SYMBOLS <fs>.
Extras:
1. ... TYPE type
2. ... TYPE REF TO cif
3. ... TYPE REF TO DATA
4. ... TYPE LINE OF type
5. ... LIKE s
6. ... LIKE LINE OF s
7. ... TYPE tabkind
8. ... STRUCTURE s DEFAULT wa
The syntax check performed in an ABAP Objects context is stricter than in other ABAP areas. See Cannot Use Untyped Field Symbols ad Cannot Use Field Symbols as Components of Classes.
Effect
This statement declares a symbolic field called <fs>. At runtime, you can assign a concrete field to the field symbol using ASSIGN. All operations performed with the field symbol then directly affect the field assigned to it.
You can only use one of the additions.
Example
Output aircraft type from the table SFLIGHT using a field symbol:
FIELD-SYMBOLS <PT> TYPE ANY.
DATA SFLIGHT_WA TYPE SFLIGHT.
ASSIGN SFLIGHT_WA-PLANETYPE TO <PT>.
WRITE <PT>.
Addition 1
... TYPE type
Addition 2
... TYPE REF TO cif
Addition 3
... TYPE REF TO DATA
Addition 4
... TYPE LINE OF type
Addition 5
... LIKE s
Addition 6
... LIKE LINE OF s
Addition 7
... TYPE tabkind
Effect
You can define the type of the field symbol using additions 2 to 7 (just as you can for FORM parameters (compare Defining the Type of Subroutine Parameters). When you use the ASSIGN statement, the system carries out the same type checks as for USING parameters of FORMs.
This addition is not allowed in an ABAP Objects context. See Cannot Use Obsolete Casting for FIELD SYMBOLS.
In some cases, the syntax rules that apply to Unicode programs are different than those for non-Unicode programs. See Defining Types Using STRUCTURE.
Effect
Assigns any (internal) field string or structure to the field symbol from the ABAP Dictionary (s). All fields of the structure can be addressed by name: <fs>-fieldname. The structured field symbol points initially to the work area wa specified after DEFAULT.
The work area wa must be at least as long as the structure s. If s contains fields of the type I or F, wa should have the structure s or at least begin in that way, since otherwise alignment problems may occur.
Example
Address components of the flight bookings table SBOOK using a field symbol:
DATA SBOOK_WA LIKE SBOOK.
FIELD-SYMBOLS <SB> STRUCTURE SBOOK
DEFAULT SBOOK_WA.
WRITE: <SB>-BOOKID, <SB>-FLDATE.
Related
ASSIGN, DATA
Additional help
Declaring Field Symbols
FIELD GROUPS
are used to hold/handle large amount of data when the internal table are not useful
we use EXTRACT statement, HEADER structure in them
see the example
REPORT demo_extract.
NODES: spfli, sflight.
FIELD-GROUPS: header, flight_info, flight_date.
START-OF-SELECTION.
INSERT: spfli-carrid spfli-connid sflight-fldate
INTO header,
spfli-cityfrom spfli-cityto
INTO flight_info.
GET spfli.
EXTRACT flight_info.
GET sflight.
EXTRACT flight_date.
END-OF-SELECTION.
SORT STABLE.
LOOP.
AT FIRST.
WRITE / 'Flight list'.
ULINE.
ENDAT.
AT flight_info WITH flight_date.
WRITE: / spfli-carrid , spfli-connid, sflight-fldate,
spfli-cityfrom, spfli-cityto.
ENDAT.
AT flight_date.
WRITE: / spfli-carrid , spfli-connid, sflight-fldate.
ENDAT.
AT LAST.
ULINE.
WRITE: cnt(spfli-carrid), 'Airlines'.
ULINE.
ENDAT.
ENDLOOP.
FIELD STRING is nothing but a string with one row of records.
Reward points if useful
regards
Anji -
Documentation about Screen, Menu and Field Exits
Hi all!!
I need some documentation about Screen, Menu and Field Exits.
I´m very interested specially on steps by steps.
My mail is [email protected]
Helpful posts will be rewarded.
Thanks in advance and regards,
Manuel.<b>Types of Exits </b>
There are several different types of user exits. Each of these exits acts as hooks where you can attach or "hang" your own add-ons.
<b>Menu Exits</b>
Menu exits add items to the pulldown menus in standard SAP applications. You can use these menu items to call up your own screens or to trigger entire add-on applications.
SAP creates menu exits by defining special menu items in the Menu Painter. These special entries have function codes that begin with "+" (a plus sign). You specify the menu items text when activating the item in an add-on project.
<b>Screen Exits</b>
Screen exits add fields to screens in R/3 applications. SAP creates screen exits by placing special subscreen areas on a standard R/3 screen and calling a customer subscreen from the standard screens flow logic.
<b>Function Module Exits </b>
Function module exits add functions to R/3 applications. Function module exits play a role in both menu and screen exits.
When you add a new menu item to a standard pull down menu, you use a function module exit to define the actions that should take place once your menu is activated.
Function module exits also control the data flow between standard programs and screen exit fields. SAP application developers create function module exits by writing calls to customer functions into the source code of standard R/3 programs.
These calls have the following syntax:
CALL CUSTOMER-FUNCTION 001.
Field Exits
Field exits allow you to create your own programming logic for any data element in the Dictionary. You can use this logic to carry out checks, conversions, or business-related processing for any screen field. Example: The data element BBBNR identifies a companys international location number. You might want to set up your R/3 System so that all international location numbers are larger than 100.
The field exit concept lets you create a special function module that contains this logic.
You assign the special function module to the data element BBBNR. You then assign the module to any programs and screens in which users can add new international location numbers. When you activate your field exit, the system automatically triggers your special routine whenever a user enters a company location number.
In 4.6c, you can use "RSMODPRF" program to create field exits.
An example of a user exits :-
MODULE user_exit_0001 INPUT
CASE okcode.
WHEN 'BACK OR EXIT'.
CASE sy-dynnr.
WHEN '100'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN '200'.
**** Note that you can write any code that satisfy your needs. ****
**** But in this case, this was wrote as a sample code for reference sake. ****
**** And you can test it. ****
SET SCREEN 100.
LEAVE SCREEN.
ENDCASE.
ENDCASE.
reward points if it is usefull..
Girish -
Relative linking between tables no longer supported?
With the Numbers 3.1 update, relative linking between cells in different tables no longer seems to work. That means that if I want to pull the value of one cell into a cell in another table, now if I reorder either table, the value that gets passed changes. Up to this 3.1 update, Numbers was able to keep it straight if you sorted one (or both) of the tables.
This is bad (for me, anyway). Am I missing something? Thanks.
DougI'm not even using a formula. I'm simply saying take the value of a cell from one table and pull it into another table.
I have two tables (Grades and Participation). In the Grades table, I'm pulling the summed participation score for each student from the Participation table. So, for Student A, in the Grades table, I have a cell in their row of scores:
=Participation::All Sections::R3
This makes the cell equal to the cell R3 on the table "All Sections" on the sheet "Participation" (yes, the tables are on different sheets; this shouldn't matter).
This works, but if I resort the table "Participation," say by last name only instead of by section number/last name or by student number, the student who lands on Row 3 is different, and R3 is the number for a different student. But on the Grades table, the student in Row 3 has stayed the same. And the number for that student is now wrong.
In Numbers 3.01, I think this worked correctly. So, if you resorted, Numbers was able to keep it straight in the other table. In Number 2.3 it surely worked correctly, because I can test it, and here's how Numbers 2.3 references that same cell. Instead of simply referencing the cell R3, it uses a unique identifer that references the email field in each row - like so:
=Participation::All Sections::Participation [email protected]
That way, if I resort, everything stayes aligned across tables. Numbers 3.1 is no longer doing this.
Anyway, that's the problem. I hope it makes sense. Thanks.
Doug -
One to One link between VBRP items and BSEG items
Hi All,
I am working on a program where I have to link between VBRP table items against BSEG table items.
But in BSEG, the invoice items are summarised based on Material Number, profit center etc..
Is there a way to divide them, like any other table which holds the data transferred to accounting from sales exactly as it is in the invoice tables (VBRP).
If there is no such table, can any one help me figure out a logic where I can didvide the items of BSEG table exactly like the items of table VBRP.
Any help or input will be very highly appreciated.
Thanks in advance
PhaniThanks for the Replies Ramani and Monika...
I alraedy have a relation between the Accounting Doc and Billing Doc (VBRP-vbeln to BSEG-belnr).
what I am looking for is the Item wise one to one mapping.
i.e Assume that we have 4 items in VBRP under one Billing Doc....
2 items have Similar Materials (Assume XYZ) and same Profit center (eq..MNO123)
and the Other 2 items have material (ABC) and Profit center (PQR6789).
Now these appear in Bseg as only 2 items, all the items with similar materials, profit center etc will be clubbed in Bseg (While Accounting). I.e In BSEG you will only find 2 entries for the above 4 items of VBRP.
I need to divide the data that I am getting from BSEG exactly as they are in VBRP.
Pls suggest if you know of any table where I can find this.....If not a table.., then a way to figure out the division of these BSEG items exactly as the VBRP items.
Brgds
Phani -
hi frds
Give me table name and field name of OPEN PO QUANTITY ..
thanks
Pari Vendhan.RSee the sample code for the open PO's based on Vendor
and do accordingly
*& Report ZMM_PO_REPORT
REPORT ZMM_PO_REPORT message-Id yb
NO STANDARD PAGE HEADING
LINE-COUNT 60(1)
LINE-SIZE 230.
D A T A B A S E T A B L E S D E C L A R A T I O N
TABLES: lfa1, " Vendor Master
t161, " PO Doc Types
t024, " Purchase Groups
ekko. " PO Header
T Y P E S D E C L A R A T I O N S
Purchase Orders Main Structure
TYPES: BEGIN OF s_po,
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
bstyp TYPE bstyp, " PO Category
bukrs TYPE bukrs, " Company Code
bsart TYPE bbsrt, " PO Type
lifnr TYPE lifnr, " Vendor No
ekgrp TYPE bkgrp, " Purchase Group
waers TYPE waers, " Currency
bedat TYPE etbdt, " PO Date
txz01 TYPE txz01, " Material Text
werks TYPE ewerk, " Plant
lgort TYPE lgort_d, " Storage Location
matkl TYPE matkl, " Material Group
menge TYPE bamng, " PR Quantity
meins TYPE bamei, " UOM
bprme TYPE bbprm, " Price Unit
netpr TYPE netpr, " Net price
peinh TYPE peinh, " Price Unit UOM
pstyp TYPE pstyp, " Item Category
knttp TYPE knttp, " Account Assignment Category
END OF s_po.
Purchase Orders History Structure
TYPES: BEGIN OF s_account,
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
gjahr TYPE mjahr, " Fiscal Year
belnr TYPE mblnr, " PO Invoice No
menge TYPE menge_d, " PR Quantity
wrbtr TYPE wrbtr, " Price in Local Currency
dmbtr TYPE dmbtr, " Price in Foreign Currency
waers TYPE waers, " Currency
shkzg TYPE shkzg, " Dr/Cr Indicator
END OF s_account.
Purchase Orders History Structure(Item Sum)
TYPES: BEGIN OF s_inv_sum,
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
menge TYPE menge_d, " PR Quantity
wrbtr TYPE wrbtr, " Price in Foreign Currency
waers TYPE waers, " Currency
END OF s_inv_sum.
Purchase Orders Main Structure
TYPES: BEGIN OF s_rep,
lifnr TYPE lifnr, " Vendor No
ebeln TYPE ebeln, " PO No.
ebelp TYPE ebelp, " PO Item
bstyp TYPE bstyp, " PO Category
bsart TYPE bbsrt, " PO Type
ekgrp TYPE bkgrp, " Purchase Group
waers TYPE waers, " Currency
bedat TYPE etbdt, " PO Date
txz01 TYPE txz01, " Material Text
werks TYPE ewerk, " Plant
lgort TYPE lgort_d, " Storage Location
matkl TYPE matkl, " Material Group
menge TYPE bamng, " PR Quantity
meins TYPE bamei, " UOM
bprme TYPE bbprm, " Price Unit
netpr TYPE netpr, " Net price
peinh TYPE peinh, " Price Unit UOM
pstyp TYPE pstyp, " Item Category
knttp TYPE knttp, " Account Assignment Category
name1 TYPE name1, " Plant
orewr TYPE netpr, " To be Invoiced Price
curr TYPE waers, " Inv Doc Currency
END OF s_rep.
D A T A D E C L A R A T I O N S
DATA: gv_title1 TYPE sylisel, " Report title
gv_dial. " Color flag
C O N S T A N T S D E C L A R A T I O N S
CONSTANTS: c_x VALUE 'X', " Flag X
c_h VALUE 'H', " Debit
c_vgabe TYPE vgabe VALUE '2'. " Transaction Type
I N T E R N A L T A B L E S D E C L A R A T I O N S
DATA: i_po TYPE STANDARD TABLE OF s_po WITH HEADER LINE,
" Purchase Order
i_inv TYPE STANDARD TABLE OF s_inv_sum WITH HEADER LINE,
" PO Invoice Values
i_rep TYPE STANDARD TABLE OF s_rep WITH HEADER LINE,
" PO Invoice Values
i_ekbe TYPE STANDARD TABLE OF s_account WITH HEADER LINE.
" PO Invoice Values
S E L E C T I O N S C R E E N *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr MATCHCODE OBJECT kred,
s_ebeln FOR ekko-ebeln MATCHCODE OBJECT mekk,
s_bsart FOR t161-bsart,
s_ekgrp FOR t024-ekgrp,
s_bedat FOR ekko-bedat.
SELECTION-SCREEN END OF BLOCK b1.
I N I T I A L I Z A T I O N *
INITIALIZATION.
A T S E L E C T I O N - S C R E E N *
AT SELECTION-SCREEN.
Validate the screen fields
PERFORM validate_screen.
S T A R T - O F - S E L E C T I O N *
START-OF-SELECTION.
Fetch main data
PERFORM fetch_data.
T O P - O F - P A G E *
TOP-OF-PAGE.
Header of the List
PERFORM header.
E N D - O F - P A G E *
Footer
END-OF-PAGE.
ULINE.
E N D - O F - S E L E C T I O N *
END-OF-SELECTION.
Display the Report Output data
PERFORM display_data.
At Line-Selection
AT LINE-SELECTION.
When double clicked on EBELN display the details of Purchase Doc
PERFORM line_sel.
*& Form validate_screen
Validation of Selection Screen fields
FORM validate_screen .
Validation of Vendor Number
CLEAR lfa1-lifnr.
IF NOT s_lifnr[] IS INITIAL.
SELECT lifnr UP TO 1 ROWS
INTO lfa1-lifnr
FROM lfa1
WHERE lifnr IN s_lifnr.
ENDSELECT.
IF sy-subrc 0.
MESSAGE e000 WITH 'Invalid Vendor'(002).
ENDIF.
ENDIF.
Validation of PO Number
CLEAR ekko-ebeln.
IF NOT s_ebeln[] IS INITIAL.
SELECT ebeln UP TO 1 ROWS
INTO ekko-ebeln
FROM ekko
WHERE ebeln IN s_ebeln.
ENDSELECT.
IF sy-subrc 0.
MESSAGE e000 WITH 'Invalid Document Number'(003).
ENDIF.
ENDIF.
Validation of PO Document Type
CLEAR t161-bsart.
IF NOT s_bsart[] IS INITIAL.
SELECT bsart UP TO 1 ROWS
INTO t161-bsart
FROM t161
WHERE bsart IN s_bsart.
ENDSELECT.
IF sy-subrc 0.
MESSAGE e000 WITH 'Invalid Purchase Document Type'(004).
ENDIF.
ENDIF.
Validation of Purchasing Group
CLEAR t024-ekgrp.
IF NOT s_ekgrp[] IS INITIAL.
SELECT ekgrp UP TO 1 ROWS
INTO t024-ekgrp
FROM t024
WHERE ekgrp IN s_ekgrp.
ENDSELECT.
IF sy-subrc 0.
MESSAGE e000 WITH 'Invalid Purchasing Group'(005).
ENDIF.
ENDIF.
ENDFORM. " validate_screen
*& Form fetch_data
Fetching the PO related data from Database Tables
FORM fetch_data .
CLEAR i_po.
REFRESH i_po.
SELECT a~ebeln " PO No.
b~ebelp " PO Item
a~bstyp " PO Category
a~bukrs " Company Code
a~bsart " PO Type
a~lifnr " Vendor No
a~ekgrp " Purchase Group
a~waers " Currency
a~bedat " PO Date
b~txz01 " Material Text
b~werks " Plant
b~lgort " Storage Location
b~matkl " Material Group
b~menge " PR Quantity
b~meins " UOM
b~bprme " Price Unit
b~netpr " Net price
b~peinh " Price Unit UOM
b~pstyp " Item Category
b~knttp " Account Assignment Category
INTO TABLE i_po
FROM ekko AS a JOIN ekpo AS b
ON a~ebeln = b~ebeln
WHERE a~ebeln IN s_ebeln AND
a~lifnr IN s_lifnr AND
a~ekgrp IN s_ekgrp AND
a~bsart IN s_bsart AND
a~bedat IN s_bedat.
SORT i_po BY ebeln ebelp.
break-point.
IF NOT i_po[] IS INITIAL.
Fetch the PO History/Invoice Details from EKBE Table
CLEAR i_ekbe.
REFRESH i_ekbe.
SELECT ebeln " PO No.
ebelp " PO Item
gjahr " Fiscal Year
belnr " PO Invoice No
menge " PR Quantity
wrbtr " Price in Local Currency
dmbtr " Price in Foreign Currency
waers " Currency
shkzg " Dr/Cr Indicator
INTO TABLE i_ekbe
FROM ekbe
FOR ALL ENTRIES IN i_po
WHERE ebeln = i_po-ebeln AND
ebelp = i_po-ebelp AND
vgabe = c_vgabe.
IF sy-subrc = 0.
SORT i_ekbe BY ebeln ebelp.
LOOP AT i_ekbe.
IF i_ekbe-shkzg = c_h.
i_ekbe-wrbtr = i_ekbe-wrbtr * -1.
ENDIF.
MODIFY i_ekbe.
ENDLOOP.
break-point.
Sum up the Item wise Invoice totals
LOOP AT i_ekbe.
AT END OF ebelp.
READ TABLE i_ekbe INDEX sy-tabix.
SUM.
MOVE-CORRESPONDING i_ekbe TO i_inv.
APPEND i_inv.
ENDAT.
CLEAR i_inv.
ENDLOOP.
SORT i_inv BY ebeln ebelp.
break-point.
ENDIF.
ENDIF.
Move the Vendor Name and Invoice Values to I_rep Internal Table
LOOP AT i_po.
MOVE-CORRESPONDING i_po TO i_rep.
CLEAR i_inv.
READ TABLE i_inv WITH KEY ebeln = i_po-ebeln
ebelp = i_po-ebelp.
IF sy-subrc = 0.
i_rep-orewr = ( i_po-menge - i_inv-menge ) * i_po-netpr.
i_rep-curr = i_inv-waers.
ELSE.
i_rep-orewr = i_po-menge * i_po-netpr.
i_rep-curr = i_po-waers.
ENDIF.
break-point.
Get the Vendor Name
CLEAR lfa1-name1.
SELECT SINGLE name1 FROM lfa1 INTO lfa1-name1
WHERE lifnr = i_po-lifnr.
IF sy-subrc = 0.
i_rep-name1 = lfa1-name1.
ENDIF.
APPEND i_rep.
CLEAR i_rep.
break-point.
ENDLOOP.
SORT i_rep BY lifnr ebeln ebelp.
DELETE i_rep WHERE orewr LE 0.
break-point.
ENDFORM. " fetch_data
*& Form display_data
Display the Report Output data
FORM display_data .
DATA: lv_flag, " New Flag
lv_rec TYPE i. " No of Records
CLEAR lv_rec.
IF i_rep[] IS INITIAL.
MESSAGE e000 WITH 'No Data found'(022).
ELSE.
LOOP AT i_rep.
Toggle Color
PERFORM toggle_color.
IF lv_flag space.
NEW-LINE.
ENDIF.
At New Purchase Document
AT NEW ebeln.
WRITE:/1 sy-vline, 2(10) i_rep-ebeln INTENSIFIED OFF.
lv_flag = c_x.
lv_rec = lv_rec + 1.
ENDAT.
WRITE: 1 sy-vline,
12 sy-vline,13(4) i_rep-bsart,
17 sy-vline,18(10) i_rep-lifnr,
28 sy-vline,29(35) i_rep-name1,
64 sy-vline,65(4) i_rep-ekgrp,
69 sy-vline,70(10) i_rep-bedat,
80 sy-vline,81(5) i_rep-ebelp,
86 sy-vline,87(40) i_rep-txz01,
127 sy-vline,128(9) i_rep-matkl,
137 sy-vline,138(1) i_rep-pstyp,
139 sy-vline,140(1) i_rep-knttp,
141 sy-vline,142(4) i_rep-werks,
146 sy-vline,147(4) i_rep-lgort,
151 sy-vline,152(13) i_rep-menge UNIT i_rep-meins,
165 sy-vline,166(3) i_rep-meins,
169 sy-vline,170(15) i_rep-netpr CURRENCY i_rep-waers,
185 sy-vline,186(4) i_rep-waers,
190 sy-vline,191(5) i_rep-peinh,
196 sy-vline,197(4) i_rep-bprme,
201 sy-vline,202(15) i_rep-orewr CURRENCY i_rep-curr,
217 sy-vline,218(4) i_rep-curr,
222 sy-vline,223(7) i_rep-bstyp centered,
230 sy-vline.
NEW-LINE.
hide: i_rep-ebeln.
ENDLOOP.
ULINE.
FORMAT COLOR OFF.
WRITE : /2 'Total Number of Purchasing Documents:'(025) COLOR 3,
lv_rec COLOR 3.
ENDIF.
ENDFORM. " display_data
*& Form header
Write the Report Header
FORM header .
FORMAT RESET.
header
WRITE:/1(230) 'LIST OF PURCHASE DOCUMENTS PER VENDOR'(006) CENTERED.
SKIP.
FORMAT COLOR COL_HEADING.
ULINE.
WRITE:/1 sy-vline,2(10) 'Pur.Doc.No'(006) CENTERED,
12 sy-vline,13(4) 'Type'(007),
17 sy-vline,18(10) 'Vendor'(008) CENTERED,
28 sy-vline,29(35) 'Name'(009) CENTERED,
64 sy-vline,65(4) 'PGrp'(010) CENTERED,
69 sy-vline,70(10) 'Doc.Date'(012) CENTERED,
80 sy-vline,81(5) 'Item'(011),
86 sy-vline,87(40) 'Material Short Text'(024) CENTERED,
127 sy-vline,128(9) 'Mat.Group'(013),
137 sy-vline,138(1) 'I',
139 sy-vline,140(1) 'A',
141 sy-vline,142(4) 'Plnt'(014),
146 sy-vline,147(4) 'SLoc'(015),
151 sy-vline,152(13) 'Quantity'(016) CENTERED,
165 sy-vline,166(3) 'UoM'(017),
169 sy-vline,170(15) 'Net Value'(018) CENTERED,
185 sy-vline,186(4) 'Curr'(019),
190 sy-vline,191(5) 'Per'(020),
196 sy-vline,197(4) 'Unit'(021),
201 sy-vline,202(15) 'To be Invoiced'(023) CENTERED,
217 sy-vline,218(4) 'Curr'(019),
222 sy-vline,223(7) 'Doc.Cat'(026),
230 sy-vline.
ULINE.
ENDFORM. " header
*& Form toggle_color
This routine alters the color of the records in the list FORM toggle_color.
IF gv_dial = space.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
gv_dial = c_x.
ELSE.
FORMAT COLOR 1 INTENSIFIED OFF.
CLEAR gv_dial.
ENDIF.
ENDFORM. " toggle_color
*& Form LINE_SEL
*When double clicked on EBELN field display the details of Purchase Doc
FORM line_sel.
CASE sy-lsind.
WHEN '1'.
DATA: lv_field(20),
lv_value(10),
lv_bstyp like i_rep-bstyp.
clear: lv_bstyp,lv_value, lv_field.
GET CURSOR FIELD lv_field VALUE lv_value.
IF lv_field = 'I_REP-EBELN'.
IF NOT lv_value IS INITIAL.
READ LINE sy-index FIELD VALUE i_rep-bstyp
INTO lv_bstyp.
READ CURRENT LINE FIELD VALUE i_rep-bstyp INTO lv_bstyp.
if lv_bstyp = 'F'.
SET PARAMETER ID 'BES' FIELD lv_value.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
elseif ( lv_bstyp = 'K' or lv_bstyp = 'L' ).
SET PARAMETER ID 'VRT' FIELD lv_value.
CALL TRANSACTION 'ME33' AND SKIP FIRST SCREEN.
elseif lv_bstyp = 'A'.
SET PARAMETER ID 'ANF' FIELD lv_value.
CALL TRANSACTION 'ME43' AND SKIP FIRST SCREEN.
endif.
ENDIF.
ENDIF.
ENDCASE.
ENDFORM. " line_sel{code]
<REMOVED BY MODERATOR>
kushagra
Edited by: Alvaro Tejada Galindo on Feb 18, 2008 2:03 PM
Maybe you are looking for
-
Hello all, How do I get a cursor field on ALV Tree report? I have output with po number, vendor no etc. When I double click PO, i shuold display ME23N and on vendor no 'XK03' etc. Double click event is triggered, but how do I check which field is cli
-
I downloadedall the Adobe Presenter, looks like everything downloaded but when I open the program I get the following message: The file archive part of Presenter is missing. You need all parts in the same folder
-
Double mails in MobileMe and other account (IMAP)
I am trying to optimize my mail workflow and I could use some help. What is the situation? In the Mail app I have two IMAP accounts set up: MobileMe and a business account. I have a mailaccount from my Internet-provider (Online.nl). All mail to that
-
[URGENT] Get Inbound Message in EBS Using XML Gateway + SOAP
Hi experts, I want to ask you about how to process the inbound message using XML Gateway and SOAP protocol. I have 2 EBS instances, let's called it A (source) and B (destination). FYI, I'm following this ebook: "Oracle E-Business Suite Development an
-
Ipod video 30 gig latest version?
I purchased the ipod video 30 gig at Sam's Club. Is this the latest hardware version? I heard that there is a "later" version with a better battery life and screen display. Or shouldn't I really worry about it? TerryV6