11.05.2010

New Update : Oracle placement papers | Oracle placement papers 2010 with answers | Oracle placement papers with solutions | Oracle MNC Company placement papers | Oracle Freshers Interview Questions

1.There are six steps that lead from the first to the second floor. No two people can be on the same step
Mr. A is two steps below Mr. C
Mr. B is a step next to Mr. D
Only one step is vacant ( No one standing on that step )
Denote the first step as step1 and second step as step2 etc.

Which of the following is false

i. B&D can be both on odd-numbered steps in one configuration
ii. In a particular configuration A and C must either both an odd numbered steps or both an even-numbered steps
iii. A person E can be on a step next to the vacant step.

(A) i only
(B) ii only
(C) iii only
(D) both i and iii

2. If a boat is moving in upstream with velocity of 14 km/hr and goes downstream with a velocity of 40 km/hr, then what is the speed of the stream ?

(A) 13 km/hr
(B) 26 km/hr
(C) 34 km/hr
(D) none of these

3. Find the value of ( 0.75 * 0.75 * 0.75 – 0.001 ) / ( 0.75 * 0.75 – 0.075 + 0.01)

(A) 0.845
(B) 1.908
(C) 2.312
(D) 0.001

4. A can have a piece of work done in 8 days, B can work three times faster than the A, C can work five times faster than A. How many days will they take to do the work together ?

(A) 3 days
(B) 8/9 days
(C) 4 days
(D) can’t say

5. A car travels a certain distance taking 7 hrs in forward journey, during the return journey increased speed 12km/hr takes the times 5 hrs.What is the distance travelled

(A) 210 kms
(B) 30 kms
(C) 20 kms
(D) none of these

6. Find (7x + 4y ) / (x-2y) if x/2y = 3/2 ?

(A) 6
(B) 8
(C) 7
(D) data insufficient

7. If on an item a company gives 25% discount, they earn 25% profit. If they now give 10% discount then what is the profit percentage.

(A) 40%
(B) 55%
(C) 35%
(D) 30%

8. What does the following piece of code do ?
sprintf(retbuf, “%d”, n);

(A) Print the Integer value of n
(B) Copy the string representation of the integer variable n into the buffer retbuf
(C) Print the Float value of n.
(D) Print the string representation of the integer variable n.

9. What is wrong with the program
double d;
scanf(“%f”, &d);

(A) Instead of %f , %lf should be used for formatting
(B) Instead of %f , %d should be used for formatting
(C) Instead of %f , %D should be used for formatting
(D) Instead of %f , %n should be used for formatting

10. What fucntion will read a specified number of elements from a file?

(A) readfile()
(B) fread()
(C) fileread()
(D) getline()

11.
#include
void func()
{
int x = 0;
static int y = 0;
x++; y++;
printf( “%d — %d\n”, x, y );
}
int main()
{
func();
func();
return 0;
}

What will the code above print when it is executed?
(A) 1– 1
1 – 1
(B) 1 — 1
1 — 2
(C) 1 — 1
2 — 1
(D) 1 — 0
1 — 0

12. What is the output of the following loop:
for(I=0, j=I++; j>I; j++, I++)
{
printf(“%d%d”, I, j);
}

(A) 0,1
(B) 0,0
(C) Infinite loop
(D) No output

13. Consider the following structure
struct
{
int data;
struct node *prev;
struct node *next;
}node;

NULL ß 5 à 8 à 10 à NULL
ß ß
p q r

What will be the value of r à prev à next à data ?

(A) 10
(B) 8
(C) 5
(D) NULL

14. What is the output :
void main()
{
int a,b=5,c=10;
a = (b-c) > (c-b) ? b : c;
printf(“%d”,a);
}
(A) 10
(B) 5
(C) 0
(D) Error

15. Which section of a PL/SQL block would most likely contain a RAISE statement?

(A) Header
(B) Declarative
(C) Executable
(D) Exception

16. Select the VALID trigger type(s)?

(A) AFTER statement trigger
(B) INSERT row trigger
(C) DELETE row trigger
(D) All of the above

17. Which section of a PL/SQL block would most likely contain a RETURN statement?

(A) Header
(B) Declarative
(C) Executable
(D) Exception

18. Select the non valid PL/SQL Data Type(s)?

(A) BOOLEAN
(B) LONG
(C) STRING
(D) DATE

19. Which function below can best be categorized as similar in function to an IF-THEN-ELSE statement?

(A) SQRT
(B) DECODE
(C) NEW_TIME
(D) ROWIDTOCHAR

20. Which one of the following does not require a number parameter?

(A) sinh
(B) to_number
(C) SQRT
(D) round

21. The user issues the following statement. What will be displayed if the EMPID selected is 60494?

SELECT DECODE(empid,38475, “Terminated”,60494, “Recruited”,
“Not Recruited”) FROM emp;

(A) 60494
(B) 38475
(C) Terminated
(D) Recruited

22. In order to perform an inner join, which criteria must be true?

(A) The common columns in the join do not need to have shared values.
(B) The tables in the join need to have common columns.
(C) The common columns in the join may or may not have shared values.
(D) The common columns in the join must have shared values.

23. Once defined, how long will a variable remain so in SQL*Plus?

(A) Until the database is shut down
(B) Until the instance is shut down
(C) Until the statement completes
(D) Until the session completes

24. The default character for specifying runtime variables in SELECT statements is

(A) Ampersand
(B) Colon
(C) Hash
(D) Astreik

25. A user is setting up a join operation between tables EMP and DEPT. There are some employees in the EMP table that the user wants returned by the query, but the employees are not assigned to departments yet. Which SELECT statement is most appropriate for this user?

(A) select e.empid, d.head from emp e, dept d;
(B) select e.empid, d.head from emp e, dept d where e.dept# = d.dept#;
(C) select e.empid, d.head from emp e, dept d where e.dept# = d.dept# (+);
(D) select e.empid, d.head from emp e, dept d where e.dept# (+) = d.dept#;

26. For avoiding a Cartesian product of 4 tables, the minimum no: of Joins required after WHERE clause is:

(A) 2
(B) 3
(C) 4
(D) 5

27. Which one of the following uses of the HAVING clause is inappropriate?

(A) To put returned data into sorted order
(B) To exclude certain data based on known criteria
(C) To include certain data based on unknown criteria
(D) To include certain data based on known criteria

28. The “emp” table contains 14 rows. How many rows will the following query return?
SQL> Select * from Emp where rownum > 5;

(A) 9
(B) 10
(C) 0
(D) Error

29. Which line in the following SELECT statement will produce an error?

Line1: SELECT dept, AVG(salary)
Line2: FROM emp
Line3: GROUP BY empid;

(A) Line 1 and Line 2
(B) Line 3
(C) Only Line 1
(D) There are no errors in this statement.

30. Which of the following integrity constraints automatically create an index when defined?

(A) Foreign keys
(B) Unique constraints and Primary Keys
(C) NOT NULL constraints
(D) Both a and b.

—————————————————————————

1. Which of the following is not similar with the others?

(A) cube
(B) sphere
(C) pyramid
(D) circle

2. Consider the following flow chart for a customer:

The person in No.1 is:

(A) Married, with children
(B) Married, with at least one son
(C) Unmarried, with at least one daughter
(D) Unmarried, with at least one son

3. Susan can type 10 pages in 5 minutes. Mary can type 5 pages in 10 minutes. Working together, how many pages can they type in 30 minutes?

(A) 15
(B) 20
(C) 65
(D) 75

4. Consider the following series:
4, 6, 9, 13, ____ What comes next?

(A) 15
(B) 16
(C) 17
(D) 18

There are six steps that lead from the first to the second floor. No two people can be on the same step
Mr. A is two steps below Mr. C
Mr. B is a step next to Mr. D
Only one step is vacant ( No one standing on that step )
Denote the first step by step 1 and second step by step 2 etc.

5. If Mr. A is on the first step, Which of the following is true?

(A) Mr. B is on the second step
(B) Mr. C is on the fourth step.
(C) A person Mr. E, could be on the third step
(D) Mr. D is on higher step than Mr. C.

6. If Mr. E was on the third step & Mr. B was on a higher step than Mr. E which step must be vacant

(A) step 1
(B) step 2
(C) step 4
(D) step 5

7. If Mr. B was on step 1, which step could A be on?

(A) 2&3 only
(B) 3&5 only
(C) 3&4 only
(D) 4&5 only

8. If there were two steps between the step that A was standing and the step that B was standing on, and A was on a higher step than D , A must be on step

(A) 2
(B) 3
(C) 4
(D) 5

9. int z;
int x = 5;
int y = -10;
int a = 4;
int b = 2;

z = x++ – –y * b /a;

What number will z in the sample code above contains
(A) 5
(B) 6
(C) 10
(D) 11

10. f = fopen( fileName, “r” );
if( ???? )
{
fprintf( stderr, “Cound not open file!” );
exit( -1 );
}

What should replace the ???? in the code above to determine if the file could not be opened?

(A) f == NULL
(B) f == EOF
(C) f != 0;
(D) f == -1

11. int x[] = { 1, 4, 8, 5, 1, 4 };
int *ptr, y;
ptr = x + 4;
y = ptr – x;
What does y in the sample code above equal?

(A) -3
(B) 0
(C) 4
(D) 4 + sizeof( int )

12. #include
void func()
{
int x = 0;
static int y = 0;
+; y++;
printf( “%d — %d\n”, x, y );
}
int main()
{
func();
func();
return 0;
}

printf(“%d\n”, 64>>3);
What will the sample code above produce when executed?

(A) 8
(B) 16
(C) 32
(D) 256

13. What is the output of the following code:
char str[20] = “ENIGMA”;
char *p, *q, *r;
q=p++;
r=p+3 – (p-q);
printf(“%3s%5s”, (++p)+3, r);

(A) ENIGMA
(B) GMA
(C) No output
(D) Error.

14. #include
void inc_count(int count)
{
count ++;
}
int main()
{
int count = 0; /* number of times through */
while (count < 10)
inc_count(count);
return count ;
}
What will be the value returned by the function main?

(A) 0
(B) 10
(C) 9
(D) Null

15. What is the correct way to define a constant pointer?

(A) const char *name_ptr = “TEST”;
(B) char *const name_ptr = “TEST”;
(C) Both
(D) None of Above.

16. Which one of the following are parts of an entity relationship diagram?
(A) Referential integrity constraints
(B) Entities and Relationships
(C) Triggers
(D) Both a and b

17. The transaction control that prevents more than one user from updating data in a table is called
(A) Locks
(B) Commits
(C) Rollbacks
(D) Savepoints

18. Any locks placed in a session can be released issuing which of the following statements

(A) commit
(B) rollback
(C) Both a and b
(D) By a savepoint

19. Which of the following statements are true about roles?

(A) Roles can be granted to other roles and/or users.
(B) Privileges can be granted to roles.
(C) Roles can be granted to synonyms.
(D) Both a and b.

20. The limit for the number of parameters for a pl/sql procedure is

(A) 256
(B) No Limit at all
(C) Depends on the type of parameters passed to the procedure
(D) Depends on Positional Parameters passed.

21. The exact content and the storage representation of a column in database can be found out using the function

(A) translate
(B) to_char
(C) dump
(D) substr

22. A view is a

(A) A Table in the database belonging to different schema.
(B) A query stored in the database in the form of an object.
(C) A part of a table
(D) All the above.

23. The key word used in sql for string searching is

(A) LIKE
(B) NVL
(C) GROUP BY
(D) HAVING

24. For referrential integrity to be maintained.

(A) Every foreign key value must have a corresponding primary/unique key value
(B) No Forein key should have a corresponding primary key value.
(C) There should be an index on the tables.
(D) The tables should be in different schemas of the database.

25. A ddl statment in a pl/sql can be issued in a pl/sql block using the package

(A) dbms_output
(B) dbms_sql
(C) UTL_FILE
(D) dbms_job

26. Choose the result of the following sql statement.

SELECT hire_date
FROM emp
where to_char(hire_date) > ‘01-FEB-00’;

(A) 01-APR-00
(B) 01-OCT-00
(C) 01-APR-99
(D) 01-DEC-00

27. Purity level of a function can be checked using

(A) PRAGMA EXCEPTION_INIT.
(B) PRAGMA RESTRICT REFERENCES
(C) DBMS_OUTPUT.
(D) DBMS_SQL.

28. The __________ Statement is used to run the pl/sql block.

(A) Get filename
(B) start filename
(C) run filename
(D) None of the above

29. Difference between %TYPE and %ROWTYPE

——————————————————————

1. A certain number of men can finish a piece of work in 10 days. If however there were 10 men less it will take 10 days more for the work to be finished. How many men were there originally?

(A) 110 men
(B) 130 men
(C) 100 men
(D) none of these

2. In simple interest what sum amounts of Rs.1120/- in 4 years and Rs.1200/- in 5 years ?

(A) Rs. 500
(B) Rs. 600
(C) Rs. 800
(D) Rs. 900

3. If a sum of money compound annually amounts of thrice itself in 3 years. In how many years will it become 9 times itself.

(A) 6
(B) 8
(C) 10
(D) 12

4. Two trains move in the same direction at 50 kmph and 32 kmph respectively. A man in the slower train observes the 15 seconds elapse before the faster train completely passes by him.
What is the length of faster train ?

(A) 100m
(B) 75m
(C) 120m
(D) 50m

5. How many mashes are there in 1 squrare meter of wire gauge if each mesh is 8mm long and 5mm wide ?

(A) 2500
(B) 25000
(C) 250
(D) 250000

6. x% of y is y% of ?

(A) x/y
(B) 2y
(C) x
(D) can’t be determined

7. The price of sugar increases by 20%, by what % should a housewife reduce the consumption of sugar so that expenditure on sugar can be same as before ?

(A) 15%
(B) 16.66%
(C) 12%
(D) 9%

8. A man spends half of his salary on household expenses, 1/4th for rent, 1/5th for travel expenses, the man deposits the rest in a bank. If his monthly deposits in the bank amount 50, what is his monthly salary ?

(A) Rs.500
(B) Rs.1500
(C) Rs.1000
(D) Rs. 900

9. What is the difference between the two declaration ?

#include
&
#include “stdio.h”

(A) No Difference
(B) The 2nd declaration will not compile
(C) First case Compiler looks in all default location and in 2nd case only in the working directory
(D) Depends on the Compiler

10. How can I print a “%” character in a in between the string foo and the value held in the variable foo using printf format string?

(A) fprintf(“foo ” “%” “%d\n”, foo);
(B) fprintf(“foo ‘%’ %d\n”, foo);
(C) fprintf(“foo \% %d\n”, foo);
(D) fprintf(“foo ” “%d\n”, foo);

11. What is the output of the following program
#include
#define FIRST_PART 7
#define LAST_PART 5
#define ALL_PARTS FIRST_PART + LAST_PART

int main() {

printf (“The Square root of all parts is %d\n , ALL_PARTS * ALL_PARTS) ;
return(0);
}

(A) 35
(B) 144
(C) 49
(D) 47

12. What is the use of a make file

(A) Do detect memory leakage
(B) To optimise the code
(C) To link and compile source code to exe
(D) To disassemble the exe to source code

13. What is the difference between calloc and malloc

(A) calloc allocates memory in contiguous bytes, malloc does not ensure contiguous memory allocation
(B) Memory allocated through calloc need not be freed explicitly, While memory allocated through malloc needs to be freed explicitly.
(C) calloc initialises the memory by setting all-bits-zero, malloc does not does any zero fill.
(D) all of the above

14. What is the output :
void main()
{
int a,b=5,c=10;
a = (b-c) > (c-b) ? b : c;
printf(“%d”,a);
}

(A) 10
(B) 5
(C) 0
(D) Error

15. What is the value of *second_ptr

int *first_ptr;
int *second_ptr;

*second_ptr = 30;
ptr value = 1;
first_ptr = &value
second_ptr = first_ptr;

(A) 30
(B) 1
(C) first_ptr
(D) None of the above

16. How many columns are retrieved from this query:
SELECT address1||’,'||address2||’,'||address2 “Adress” FROM employee;

(A) 1
(B) 2
(C) 3
(D) 0

17. To produce a meaningful result set without any cartesian products, what is the minimum number of conditions that should appear in the WHERE clause of a four-table join?

(A) 8
(B) 3
(C) 4
(D) 5

18. Assuming today is Monday, 10 July 2000, what is returned by this statement:

SELECT to_char(NEXT_DAY(sysdate, ‘MONDAY’), ‘DD-MON-RR’) FROM dual;

(A) 10-JUL-00
(B) 12-JUL-00
(C) 11-JUL-00
(D) 17-JUL-00

19. Which character is used to continue a statement in SQL*Plus?

(A) *
(B) /
(C) -
(D) @

20. When a user creates an object without a TABLESPACE clause, where will Oracle store the segment?

(A) System tablespace
(B) Users tablespace
(C) Default tablespace for the user
(D) Oracle will give an error

21. The primary key on table EMP is the EMPNO column. Which of the following statements will not use the associated index on EMPNO?

(A) select * from EMP where nvl(EMPNO, ’00000′) = ’59384′;
(B) select * from EMP where EMPNO = ’59384′;
(C) select EMPNO, LASTNAME from EMP where EMPNO = ’59384′;
(D) select 1 from EMP where EMPNO = ’59834′;

22. Which character function can be used to return a specified portion of a character string?

(A) INSTR
(B) SUBSTRING
(C) SUBSTR
(D) POS

23. Which command will delete all data from a table and will not write to the rollback segment?

(A) DROP
(B) DELETE
(C) CASCADE
(D) TRUNCATE

24. Which of the following can be a valid column name?

(A) Column
(B) 1966_Invoices
(C) Catch_#22
(D) #Invoices

25. Which Oracle access method is the fastest way for Oracle to retrieve a single row?

(A) Primary key access.
(B) Access via unique index
(C) Table access by ROWID
(D) Full table scan

26. In this PL/SQL statement, which of the following lines will produce an error?

(A) cursor CAPITALS is select CITY, STATE
(B) into my_city, my_state
(C) from CITIES
(D) where CAPITAL = ‘Y’;

27. In a PL/SQL block, a variable is declared as NUMBER without an initial value. What will its value be when it is used in the executable section of the PL/SQL block?

(A) NULL
(B) 0
(C) Results in a compilation error
(D) An exception will be raised

28. PL/SQL raises an exception, in which TWO of the following cases:

(A) When a SELECT statement returns one row
(B) When a SELECT statement returns more than one row
(C) When the datatypes of SELECT clause and INTO clause do not match
(D) When INTO statement is missing in the SELECT statement

29. What is the result if two NULL values are compared to each other?

(A) TRUE
(B) FALSE
(C) Undefined
(D) NULL

30. Functions for error trapping are contained in which section of a PL/SQL block?

(A) Header
(B) Declarative
(C) Executable
(D) Exception
read more...

8.05.2010

Nested INNER JOIN Statements May be Ineffective or inefficient | SAP Programming | ABAP

"Using several nested INNER JOIN statements can be inefficient and cause time out if the tables become too big in the future."

Joins here (in ABAP) are not those Native SQL Joins.  If you are talking about the Core RDBMS, which mean Oracle or SQL Server, then Undoubtedly Joins are the best.

In ABAP, these joins are first split by the ABAP processor and then sent to the database, with the increase in DATA in production system, these joins tend to give way if your database keeps growing larger and larger.

You should rather used "FOR ALL ENTRIES IN" (Tabular conditions), which is a much effecient way as far as performance is concerned.

For example :

DATA: BEGIN OF LINE,
        CARRID   TYPE SPFLI-CARRID,
        CONNID   TYPE SPFLI-CONNID,
        CITYFROM TYPE SPFLI-CITYFROM,
        CITYTO   TYPE SPFLI-CITYTO,
      END OF LINE,
      ITAB LIKE TABLE OF LINE.

LINE-CITYFROM = 'FRANKFURT'.
LINE-CITYTO   = 'BERLIN'.
APPEND LINE TO ITAB.

LINE-CITYFROM = 'NEW YORK'.
LINE-CITYTO   = 'SAN FRANCISCO'.
APPEND LINE TO ITAB.

SELECT CARRID CONNID CITYFROM CITYTO
INTO   CORRESPONDING FIELDS OF LINE
FROM   SPFLI
FOR ALL ENTRIES IN ITAB
WHERE  CITYFROM = ITAB-CITYFROM AND CITYTO = ITAB-CITYTO.

  WRITE: / LINE-CARRID, LINE-CONNID, LINE-CITYFROM, LINE-CITYTO.

ENDSELECT.
read more...

Purpose of Using PACKAGE SIZE in Select Statement in SAP ABAP Programming

Package size can be used if you for example only want to finish processing a limited amount of data at a time due to lack of memory.

The example below read 50 records at a time from VBAK into an internal table, and selects the corresponding entries from vbap into an internal table. Then the two internal tables can be processed, and the next 50 records from VBAk can be read. Remember to reinitialize tha tables before the next read.



REPORT z_test.


TYPES:
BEGIN OF t_vbak,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
END OF t_vbak,


BEGIN OF t_vbap,
posnr LIKE vbap-posnr,
matnr LIKE vbap-matnr,
meins LIKE vbap-meins,
END OF t_vbap,


BEGIN OF t_report,
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
posnr LIKE vbap-posnr,
matnr LIKE vbap-matnr,
meins LIKE vbap-meins,
END OF t_report.


DATA:
li_vbak TYPE t_vbak OCCURS 0,
l_vbak TYPE t_vbak,
li_vbap TYPE t_vbap OCCURS 0,
l_vbap TYPE t_vbap,
li_report TYPE t_report OCCURS 0,
l_report TYPE t_report.


START-OF-SELECTION.
SELECT vbeln erdat
FROM vbak
INTO TABLE li_vbak PACKAGE SIZE 50.
SELECT posnr matnr meins
FROM vbap
INTO TABLE li_vbap
FOR ALL ENTRIES IN li_vbak
WHERE vbeln = li_vbak-vbeln.
IF sy-subrc = 0.
* Now you have the two internal tables li_vbak and li_vbap filled
* with data.
* Do something with the data - remember to reinitialize internal
* tables
ENDIF.
ENDSELECT.
read more...

Usage of 'for all entries' in Select Statement | SAP ABAP Programming

FORM data_retrieval.

DATA: ld_color(1) TYPE c.

DATA: BEGIN OF T_VBAP OCCURS 0,
VBELN LIKE VBAP-VBELN,
MATNR LIKE VBAP-MATNR,
POSNR LIKE VBAP-POSNR,
END OF T_VBAP.

DATA: BEGIN OF T_VBFA OCCURS 0,
VBELV LIKE VBFA-VBELV,
VBELN LIKE VBFA-VBELN,
VBTYP_N LIKE VBFA-VBTYP_N,

END OF T_VBFA.

DATA: BEGIN OF T_VBAK OCCURS 0,
VBELN LIKE VBAK-VBELN,
IHREZ LIKE VBAK-IHREZ,
END OF T_VBAK.

DATA: BEGIN OF T_KNA1 OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
END OF T_KNA1.

DATA: BEGIN OF T_MAKT OCCURS 0,
MATNR LIKE MAKT-MATNR,
MAKTX LIKE MAKT-MAKTX,
END OF T_MAKT.

SELECT likp~vbeln likp~lifex likp~bldat likp~wadat likp~wadat_ist likp~kodat likp~lfart
likp~kunnr likp~vstel lips~posnv lips~lfimg lips~vrkme lips~lgmng lips~meins
lips~werks lips~lgort lips~charg lips~vbelv lips~posnr lips~matnr
lips~vbeln LIPS~VGBEL LIPS~VGPOS vbup~kosta vbup~wbsta vbup~posnr vbup~vbeln
* VBAK~IHREZ VBAK~VBELN VBAP~VBELN
INTO CORRESPONDING FIELDS OF TABLE it_itab
FROM ( likp
INNER JOIN lips
ON lips~vbeln = likp~vbeln
INNER JOIN vbup
ON vbup~posnr = lips~posnr
and VBUP~VBELN = LIPS~VBELN )
* left outer join VBAK
* on VBAK~VBELN = LIPS~VGBEL
* inner join VBAP
* on VBAP~VBELN = VBAK~VBELN )
WHERE likp~vbeln IN so_vbeln
AND likp~lifex IN so_lifex
AND likp~lfart IN so_lfart
AND likp~kunnr IN so_kunnr
AND likp~vstel IN so_vstel
AND likp~bldat IN so_bldat
AND likp~wadat_ist IN so_wadat
AND vbup~kosta IN so_kosta
AND vbup~wbsta IN so_wbsta
AND LIPS~LFIMG NE 0.

SELECT VBELN IHREZ INTO TABLE T_VBAK
FROM VBAK
FOR ALL ENTRIES IN IT_ITAB
WHERE VBELN = IT_ITAB-VGBEL.
* APPEND T_VBAK.
* ENDSELECT.

SELECT VBELN MATNR POSNR INTO TABLE T_VBAP
FROM VBAP
FOR ALL ENTRIES IN IT_ITAB
WHERE VBELN = IT_ITAB-VGBEL AND
MATNR = IT_ITAB-MATNR AND
POSNR = IT_ITAB-VGPOS.
* APPEND T_VBAP.
* ENDSELECT.

SELECT VBELV VBELN VBTYP_N INTO TABLE T_VBFA
FROM VBFA
FOR ALL ENTRIES IN IT_ITAB
WHERE VBELV = IT_ITAB-VBELN AND
VBTYP_N = 'M' .

SELECT KUNNR NAME1 INTO TABLE T_KNA1
FROM KNA1
FOR ALL ENTRIES IN IT_ITAB
WHERE KUNNR = IT_ITAB-KUNNR.
* APPEND T_KNA1.
* ENDSELECT.

SELECT MATNR MAKTX INTO TABLE T_MAKT
FROM MAKT
FOR ALL ENTRIES IN IT_ITAB
WHERE MATNR = IT_ITAB-MATNR.
* APPEND T_MAKT.
* ENDSELECT.


*Populate field with color attributes

LOOP AT it_itab INTO wa_ITAB.

* Populate color variable with colour properties

* Char 1 = C (This is a color property)

* Char 2 = 3 (Color codes: 1 - 7)

* Char 3 = Intensified on/off ( 1 or 0 )

* Char 4 = Inverse display on/off ( 1 or 0 )

* i.e. wa_ekko-line_color = 'C410'
REFRESH color.
colourize 'VBELN' 0. " .
WA_ITAB-farbe = color[].

ld_color = ld_color + 1.

* Only 7 colours so need to reset color value

IF ld_color = 3. "8

ld_color = 1.

ENDIF.

CONCATENATE 'C' ld_color '10' INTO wa_ITAB-line_color.
WA_ITAB-NAME1 = ''.
WA_ITAB-MAKTX = ''.
WA_ITAB-IHREZ = ''.
WA_ITAB-VBELV = ''.
READ TABLE T_KNA1 WITH KEY KUNNR = WA_ITAB-KUNNR.
IF SY-SUBRC = 0.
WA_ITAB-NAME1 = T_KNA1-NAME1.
ENDIF.
READ TABLE T_MAKT WITH KEY MATNR = WA_ITAB-MATNR.
IF SY-SUBRC = 0.
WA_ITAB-MAKTX = T_MAKT-MAKTX.
ENDIF.
READ TABLE T_VBAK WITH KEY VBELN = WA_ITAB-VGBEL.
IF SY-SUBRC = 0.
WA_ITAB-IHREZ = T_VBAK-IHREZ.
ENDIF.
READ TABLE T_VBFA WITH KEY VBELV = WA_ITAB-VBELN.
IF SY-SUBRC = 0.
WA_ITAB-VBELVA = T_VBFA-VBELN.
ENDIF.
* READ TABLE T_VBAP WITH KEY VBELN = WA_ITAB-VGBEL
* POSNR = WA_ITAB-VGPOS
* MATNR = WA_ITAB-MATNR.
* IF SY-SUBRC = 0.
* WA_ITAB-IHREZ = T_VBAK-IHREZ.
* ENDIF.



* wa_ekko-line_color = 'C410'.

MODIFY it_itab FROM wa_itab.

ENDLOOP.

ENDFORM. " data_retrieval
read more...

7.19.2010

"SY-UCOMM and OK_CODE in Dialog Program | SAP ABAP Programming

What is the difference between SY-UCOMM and OK_CODE in Dialog Program?

sy-ucomm is for doing the functions what the user wishes to do at that particular event. You use it in menus and other place . this mainly in using

ok_code is generally used in screen as of I have used.  You will define the function in the screen. and you can use it in the main program.

ok_code acts just as a temporary variable that stores the value of sy-ucomm.


When user interacts with the screen elements, the function code that you have assigned is filled in the sy-ucomm field which is turn gets reflected in OK_CODE.

In your ABAP programs, you should work with the OK_CODE field instead of SY-UCOMM. There are two reasons for this: Firstly, the ABAP program has full control over fields declared within it, and secondly, you should never change the value of an ABAP system field. However, you should also always initialize the OK_CODE field in an ABAP program for the following reason:

In the same way that the OK_CODE field in the ABAP program and the system field SY-UCOMM receive the contents of the corresponding screen fields in the PAI event, their contents are also assigned to the OK_CODE screen field and system field SYST-UCOMM in the PBO event. Therefore, you must clear the OK_CODE field in the ABAP program to ensure that the function code of a screen is not already filled in the PBO event with an unwanted value. This is particularly important when the next PAI event can be triggered with an empty function code (for example, using ENTER). Empty function codes do not affect SY-UCOMM or the OK_CODE field, and consequently, the old field contents are transported.
   
read more...

Asset Master Data Upload | SAP FICO | Financial Modules | The Financial Statement Closing Tcodes | LSMW

1. If the change of the field can be put into an algorithm (e.g., enter XYZ as a super number for all assets in class 1234), you can use a mass change rule. You first define the mass change rule in the same way as you would define an asset substitution (IF something, THEN something else), then you go into the mass change transaction, select the right assets, the proper change rule ... and hit Execute.

2. Very often, it is easier to prepare the data in Excel and use transaction AS02 for the upload. Here, I can recommend transaction LSMW - you simulate (and record) the AS02 transaction on one fixed asset master, then follow all the steps proposed by the system (define fixed values, variables, etc.) and finally upload the Excel (.csv). System will automatically generate a batch input for all assets. It may take some time for you if you do it for the first time, but it is the best way if you would otherwise need to define complex algorithms.

So - use option 1 if you have a simple algorithm for many assets, and option 2 if "each case is different" or if you feel more comfortable in Excel than ABAP. Option 2 is simple, but of course takes some time to generate the upload and then run the batch sessions (while option 1 changes everything instantly in a matter of seconds).

Here are the details:

I. To use mass change:

1. First, define a mass change rule in transaction OA02 (Accounting - Financial accounting - Fixed assets - Environment - Mass change rule). For each company code, you can define one rule (or a sequence of them). However, all of them will always be executed at the same time. Therefore, if you need to define different rules for different assets, you will have to do this repeatedly. Technically, this is done in the same way as AA substititution.

2. Once the rule is defined, you need to select assets for mass change. Go to transaction AR01 (Accounting - Financial accounting - Fixed assets - Environment - Worklist - Generate). Enter selection criteria like on any standard AA report, and run Execute. I cannot simulate this now on my system (we do not have AA), but it should ask what you want to do (mass change, mass retirement, etc.) and ask for a name of the worklist (write anything - e.g., Super number change). The system will show you a list of selected assets in a report format. Check it and make sure that it is correct. You may add or remove single assets from this (now cannot tell you how, but it is possible). If you are happy with the list, save it.

3. The last step is execution of the change. Go to transaction AR31 (same path as above), execute the report and if you are happy with the list (same as in step 2), press Save. System will show you a log of change (what went through, which errors occured). You are done.

II. LSMW
LSMW is a transaction, which will let you mass upload almost any other transaction (FB01, FD01, AS91, etc.). You do it in the following way:
1. Enter into transaction LSMW (no menu path), possibly in a development / test system
2. First, define a project, subproject and object (relatively formal task).
3. On the horizontal menu, go to Goto -> Recordings. Click on "Create recording".
4. Enter the name and description of recording (freely definable).
5. I cannot simulate this now in my system, but SAP will ask you about transaction code (AS02) and will take you into the AS02 transaction. In this step, do the change manually. Make sure you "touch" (change / write something) in all fields which you want to update.
6. Once you are done, save the recording and return on the start page of LSMW. Click "Execute".
7. You will see a list of tasks. Do them one by one. They should be relatively simple (and I cannot help you with them). Important is step 3 (maintain source fields) - here you define the columns of your excel (csv) file in the particular order. In step 5 (field mapping and conversion rule), you assign file columns to SAP fields (note that you will see only those fields which you "touched" during recording). You need to go through all the steps. In the end, you get (and run) a batch session.
8. If you did this in a development system, transport the LSMW object (menu Extras - Export project, Extras - Import project). You have to do it via file, not via standard transports of configuration (it is perhaps more simple).

Make sure you test it first in development or quality system!

Fiscal Year Variant

Assuming that you are newly implemention with go live date of Sept 1st 2006 and Fiscal year January - December, what will be the best way?
Would it be better to define a Shortened Fiscal year for Sept-Dec 2006 and then regular Fiscal years OR Define a full Fiscal year for the entire 2006 and future FYs

Normally, the best way is to keep it simple and leave the first year "normal" (12 + 4 months starting January). You convert old data as of August 31 (unless the client requests opening balance as of December 31, 2005 and then monthly movements - I have experienced both options) and then start normal bookings in month 9 on September 1.

We never tried shortened fiscal year in this context and it is surely not needed here. It just adds complexity.

If we create the normal Jan-Dec Fiscal Year for 2006 also, how will we handle the assets when we go live in Oct 2006? Do we load the book value at that time or we load the book value for January 2006 and depreciate in the system for January to September

The ordinary way is to load fixed assets which exist on September 30 (if you go live with AA module on October 1) with trans. AS91.
- First, you need to set in configuration that the last closed fiscal year for legacy data upload is 31.12.2005 and the last period for depreciation will be 9/2006. (Do it in IMG: Financial accounting - Asset accounting - Asset data transfer - Parameters for data transfer - Date specifications)

Within trans. AS91, you enter the following values:
- acquisition value and accummulated depreciation as of 01 January 2006
- all asset movements (acquisitions, retirements, but not ordinary depreciations) between January 1 and September 30 with their respective dates
- already posted depreciation in 2006 until September 30

Then you enter GL movements per month (either you temporarily change the asset reconciliation accounts for direct booking with trans. OAMK, then book with FB01 and finally reset with OAK5, or you book there directly with trans. OASV). This way, your asset accounts (acquisition value and accummulated depreciation) are the same as asset module as of September 30.

You can also let the system recalculate the depreciation from the beginning of the year, but then you may end up with a different value as of September 30 than your legacy system calculated. So, I would not recommend it unless there is no reliable source data. 
read more...

Process Fixed Asset Depreciation | Forecast | Financial Modules | FICO SAP

Every asset transaction immediately causes a change of the forecasted depreciation. However, it does not immediately cause an update of the depreciation and value adjustment accounts for the balance sheet and profit and loss statements. The planned depreciation is posted to the general ledger when you run the periodic depreciation posting run. This posting run uses a batch input session to post the planned depreciation for each posting level for each individual asset as a lump sum amount.

The calculation and scheduling of depreciation, interest and revaluation are automatically controlled by keys in the system, or you can control them manually using a special posting transaction. In both cases, planned depreciation from Asset Accounting must be periodically posted to the corresponding asset and expense accounts of the general ledger. You carry out this posting using a batch input session. In addition to the various depreciation types, interest and revaluation, this batch input session also posts the allocation and writing off of special reserves.

When the system posts depreciation, it creates collective documents. It does not create separate documents for each asset.

Depreciation Posting Run is done via transaction code 'AFAB'.

The program creates batch input sessions for posting depreciation and interest to the G/L accounts in Financial Accounting and/or to Controlling.

Fields Description :-

Company code  : Your Company Code

Fiscal Year   : Your fiscal year

Posting period : Your depreciation period

Reason for posting run (choose one)

Planned posting run  : X (default)

List assets : (tick if you want to see the detail)

Test run : (tick if you run in test mode else untick for production run)

Main asset number : (you can specify certain asset number if you click repeat run or test run)

Note :
Click the execute button if this is a test run.
Click the menu bar -> Program -> Execute in background if this is a production run.

You should get this message :
Background job was scheduled for program RABUCH00 and print out the output.

Release and Process the Batch Input Session in transaction code 'SM35'.

Process Session RABUCH00
X - Display errors only
Additional functions
X - Dynpro standard size

Click the Process button

If there is error, the system will pop up the error message.

Correct the error and recreate the session in transaction 'AFBD'.
read more...

7.11.2010

PP - Controlling data for your Bill of Materials

You define the default values for BOM in OS28. - Based quantity - BOM Status - Size Unit - Var-size item unit You control the Material type allowed for the BOM header in transaction OS24. In transaction OS27, you define the central settings for your BOM management system. This are one-time settings for BOM management, which should not be change after production.

Low date When you create or process BOMs, the default date is the date defined in your system as the earliest processing date (01/01/1900 in the standard system). BOM validity maintenance Tick if want the user to specify a valid-from date when maintaining BOMs. If not tick the BOM created as of the current date or the system low date (1/1/1990). EC management active Tick if you want to make historical changes to BOMs with reference to a change number. (This means that the status of the BOM both before and after the change is stored in the system.) In this step, you only specify whether engineering change management can be used for maintaining bills of material. In transaction OS25, Configure history requirement for BOMs, you define whether you want to make the use of engineering change management a requirement in certain cases. Hist. reqmt variant Use this indicator to control when history requirement applies to new variants or alternatives in a BOM group. Sub-item documentn You use the Sub-item documentation indicator to define whether changes to sub-items are documented. Header Create BOM header with parameter validity TECHINCAL TYPE Mult. BOM inactive Tick if no multiple BOMs can be maintained in this R/3 system. Variant BOM inactive Tick if no variant BOMs can be maintained in this R/3 system BILL OF MATERIAL ITEM BOM item explosion type If you create a BOM item with reference to a change number and change the valid-from date (in the change header or alternative date), then this can change the sequence of validity periods of a BOM item. The indicator BOM item explosion type specifies whether and according to what rules, the system determines a unique change status, when you display, evaluate or change a BOM to a date in the overlap period. Description variable-sized item This indicator controls which text is displayed in BOM processing for a variable-sized item. Repeated effectivity via external item ID This indicator ensures that an item that already exists under an external item ID can be used. General settings Unit 'piece' In the standard system, this field contains a unit of measure for "piece". You can change this unit. This unit is the base unit of measure (BOM header) or the component unit of measure. Base unit of measure for: Equipment BOM Functional location BOM Document structure Standard BOM Component unit of measure for: Text item Document item Non-stock item without material master record CAD active If you want to maintain BOMs from a CAD system, set this indicator. This activates an additional field in the BOM header and BOM item, which tells you whether the BOM header or BOM item was maintained from a CAD system. If you deactivate engineering change management, changes to bills of material are not recorded. The modification parameters defined here apply to all BOM categories. The following settings are made in the standard R/3 System: 1. Validity date maintenance and engineering change management are active. 2. The current system date is the default valid-from date. 3. CAD is active. 4. Explosion type for BOM item: blank.
read more...

When is a Material BOM Not Exploded?

A BOM is not exploded in the following situations:

- No BOM is effective:
-- On the explosion date and in the given area of validity For the given effectivity parameters

- The BOM has a deletion indicator.

- The BOM is a multiple BOM, and has no alternative that matches the lot size for your required quantity.

- No BOM matches the selection criteria of the BOM application you selected.

- This is possible in the following situations, for example:

-- The application does not take all BOM usages into account.
For example, the application only takes BOMs that are relevant to production into account, so a BOM that is relevant to sales and distribution is not exploded.

-- The application selects a specific alternative on the explosion date you require. The material master record supports alternative determination by Explosion date.
If the specified alternative is not valid on the explosion date, the BOM is not exploded.

-- The application takes production versions in the material master record into account, but no production version has a BOM that is valid on the explosion date you require. The material master record supports alternative determination by Production version.
The system only explodes the BOM defined for the production version that matches the alternative and/or usage entered on the explosion date required.

-- The application only takes BOMs with certain status indicators into account.
For example, the application for MRP only explodes BOMs that have at least the status Explosion for MRP.

Further checks:
- Do the proper Scheduling in Routing (Backward/forward). In md61 give the requirement in next month.check your in-house production, planned delivery time in md02 give MRP Control parameter Rexplode BOM and Routing.

- Check BOM explosion data in MRP4 view of material master view ( Individual/Coll data).
read more...

How to link BOM component to storage location? | SAP Production Systems

If you have to issue a component for production order of main item always from a specific storage location (component is stored in multiple storage locations but for production of a top item reservations should be created only on a specific storage loc), where can you provide the link between BOM component and storage Loc??

Is it possible to provide that link in BOM? or while allocating BOM components to routing operations or else where?

You can use the issue storage location field on the MRP 2 screen in the material master

or

You have 3 ways of doing it - not including the material master since the components are stored in multiple locations.

1. BOM item - very flexible but very time consuming to maintain if you have lots of BOM's. In CS02 you can set st. loc. on each component, and SAP will take this st. loc. first.

2. from level above - you can set it up so that whatever st. loc. is the default prod. st. loc on the material master for the level above will be the issue st. loc for the components you choose, if the component exists in that st. loc. - kind of a champagne waterfall effect. If the st. loc. is not maintained on the component, it will take the material master default of the component.

3. using supply area and work center. create supply areas and link them to st. loc's. - then link the supply area to the work center on CR02. Then allocate components to operations going through those work centers.

Note:
Supply Areas are meant to be used in conjunction with Kanban. However you can just use them to link the work center to a storage location. You will never see an inventory balance in MMBE in a supply area. With Kanban you can set up automatic triggers to replenish stock to the supply areas from a main stock location.
read more...

SAP QM in Procurement - An Introduction

The QM component is integrated in crucial phases of the procurement process. It supports the

procurement activities by means of functions such as:

    * Vendor Evaluation
    * Vendor block
    * Vendor Release for requests for quotation and purchase orders
    * Assigning technical delivery terms and quality assurance agreements
    * Certificate processing
    * Status administration of the supply relationships
    * Incoming inspections
    * Goods receipt inspections


If your company purchases materials from external vendors, you can implement the QM in Procurement (QM-PT-RP-PRC) component to support your procurement processes for quality assurance purposes.

If you want to implement the QM in Procurement component, your company must also use the Purchasing (MM-PUR) component. If you require functions for processing goods movements, you must also install the Inventory Management (MM-IM) component.

You can implement the QM in Procurement component as a stand-alone component or together with the Quality Inspection (QM-IM) component. As a stand-alone component, you can use all procurement functions except those for processing goods receipt inspections. To process such inspections, you need the Quality Inspection component. Using the functions of the QM in Procurement component, you can:

  • Manage quality-related information for materials, vendors, and manufacturers in quality info records
  • Release or block vendors and manufacturers
  • Monitor the QM systems of vendors and manufacturers
  • Supply quality documents with requests for quotations and purchase orders
  • Evaluate vendors on the basis of quality
  • Certify vendors or manufacturers that have QM systems implemented, to reduce the inspection requirement
  • Manage and release supply relationships
  • Request that quality certificates be submitted with the delivered goods and monitor the receipt of these certificates
  • Inspect vendor goods at vendor sites (source inspections)
  • Inspect vendor goods upon receipt (goods receipt inspections)
  • Manage the posted goods in inspection stock
  • Block the payment of invoices until the goods have been inspected and accepted
  • Process goods receipt inspections for manufacturer-specific materials
  • Inspect goods that have been externally processed when they are returned in a goods receipt

read more...

3.21.2010

SAP ABAP File Processing | Downloading Directly to Microsoft Excel Workbook | Sheet

TABLES: USR03,DD02L.
DATA: ZX030L LIKE X030L.
DATA BEGIN OF ZDFIES OCCURS 0.
INCLUDE STRUCTURE DFIES.
DATA END OF ZDFIES.
DATA: BEGIN OF FLDITAB OCCURS 0,
FLDNAME(11) TYPE C,
END OF FLDITAB.

DATA ITABUSR03 LIKE USR03 OCCURS 0 WITH HEADER LINE.
DATA TNAME LIKE DD02L-TABNAME.
SELECT * FROM USR03 INTO TABLE ITABUSR03.
TNAME = 'USR03'.
PERFORM GETFIELEDS.
PERFORM SHOW123.

FORM GETFIELEDS.

CALL FUNCTION 'GET_FIELDTAB'
EXPORTING
LANGU = SY-LANGU
ONLY = SPACE
TABNAME = TNAME
WITHTEXT = 'X' IMPORTING
HEADER = ZX030L
TABLES
FIELDTAB = ZDFIES
EXCEPTIONS
INTERNAL_ERROR = 01
NO_TEXTS_FOUND = 02
TABLE_HAS_NO_FIELDS = 03
TABLE_NOT_ACTIV = 04.
CASE SY-SUBRC.
WHEN 0.
LOOP AT ZDFIES.
FLDITAB-FLDNAME = ZDFIES-FIELDNAME.
APPEND FLDITAB.
ENDLOOP.
WHEN OTHERS.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
with SY-SUBRC.
ENDCASE.

ENDFORM.

FORM SHOW123.

CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT'
EXPORTING
FILE_NAME = 'C:\USR03.XLS'
DATA_SHEET_NAME = 'USER LIST'
TABLES
DATA_TAB = ITABUSR03
FIELDNAMES = FLDITAB
EXCEPTIONS
FILE_NOT_EXIST = 1
FILENAME_EXPECTED = 2
COMMUNICATION_ERROR = 3
OLE_OBJECT_METHOD_ERROR = 4
OLE_OBJECT_PROPERTY_ERROR = 5
INVALID_FILENAME = 6
INVALID_PIVOT_FIELDS = 7
DOWNLOAD_PROBLEM = 8
OTHERS = 9.
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.
read more...

What is the difference between SY-UCOMM and OK_CODE in Dialog Program? | SAP ABAP Programming

sy-ucomm is for doing the functions what the user wishes to do at that particular event. You use it in menus and other place . this mainly in using
 
ok_code is generally used in screen as of I have used.  You will define the function in the screen. and you can use it in the main program.
ok_code acts just as a temporary variable that stores the value of sy-ucomm.


When user interacts with the screen elements, the function code that you have assigned is filled in the sy-ucomm field which is turn gets reflected in OK_CODE. 

In your ABAP programs, you should work with the OK_CODE field instead of SY-UCOMM. There are two reasons for this: Firstly, the ABAP program has full control over fields declared within it, and secondly, you should never change the value of an ABAP system field. However, you should also always initialize the OK_CODE field in an ABAP program for the following reason: 

In the same way that the OK_CODE field in the ABAP program and the system field SY-UCOMM receive the contents of the corresponding screen fields in the PAI event, their contents are also assigned to the OK_CODE screen field and system field SYST-UCOMM in the PBO event. Therefore, you must clear the OK_CODE field in the ABAP program to ensure that the function code of a screen is not already filled in the PBO event with an unwanted value. This is particularly important when the next PAI event can be triggered with an empty function code (for example, using ENTER). Empty function codes do not affect SY-UCOMM or the OK_CODE field, and consequently, the old field contents are transported.
read more...

2.28.2010

Capacity Planning in PS module | Calendar like in MS Projects

With Pool Capacity we can generally define capacity for a group of expertise in a given Work Center. Meaning that if I have 10 peoples working at 40 hours a week each, my total capacity on a weekly basis is 400 hours.

If the demands from activities in my various projects using that Work Center exceeds the 400 hours then I'll be under capacity and Gantt's in Planning Board will show in red !!!!!

However if I decide to go for Individual Capacity planning using HR module; then from what I read the individuals already defined in HR as employee number; will be tied to the Work Center and automatically taken and represented in Gantt's chart individually.

The link is to tie them as employee number to the Work Center in HR.

My question is; likewise in MS Projects; where we can define availability via the calendar; we can grey out days when an individual is on vacation or not available.

And that will reflect in the overall availability...

In PS is there a way to get an ''equivalent'' calendar !!!!

I did not see anything in PS itself to lock individual's dates !!!!!

Would this be in HR ???

Mainly when I want to reserve vacation time ahead for indivial labour resources..!!!!

I am not an expert in this area but I know a bit about it (I made it in a customer, but at the end I had to undo it). Actually I cannot work with networks so all I have it is my memory.

The pool capacity works as you say, but it seems that you are using the capacity availabality feature. I understood that if you use that, the system only checks if there is capacity avalibale, but not makes a capacity "commitment", it means, other networks can plan that capacity as own (this is made in the "levelling" section). At last, I only used the first feature so only had a look on the second.

I do not know how to plan people from HR module but:
- In CMP9 you can assign people to networks in basis to its Work Center in individual days (but it is very boring for the user).
- In the activity tag "Personal Assignment" you can assign people to an activity. This uses the HR information (working start time, absences, substitutions...). But this is not a capacity check or plan (at the end, I used that information to make a customer-specific report).
- The function "HR_PERSON_READ_WORK_SCHEDULE" can be used to know the exact avilabilty of a person (it will show you working hours, if that day is holiday, if there is a planned absence or substitution... everything). But you need to report previously that data to the system. (if you use it, take a look to the HR_PERSON_INIT_WORK_SCHEDULE too).
- The working factory calendar of the activity it is used to plan the capacity ==> maybe you would need to make a calendar for each employee (too much work I think).

Note that in MS project when you "gray" days is for all the activities, to make that in PS you should make a factory calendar with those days as no working days. I have talking to "gray" those days for each activity.

Sorry if this is not very clear (it has taken me an hour with several interrupts).

I very much agree with Guillermo, and I would suggest to go for his ideea. In my opinion using personal capacity planing in PS-HR is very inflexible and deficitary.

However, the link PS-HR you are asking for,

1. In work center (Transsaction: change work center) you will have to assign the persons from HR, you will have to be carefull as in the transaction there are 2 methods/buttons to assign persons to a work center. now I cannot tell you by heart which one is effectively linking the HR with PS, as only one works, you will have to try both of them (swich to capacity view and you'll see one button sth. "Link to HR" and then the other option is in the menu bar)

2. In HR - you will have to work with your HR colleagues maybe, should be maintained some HR Infotypes: Transaction PA61,
Infotype 0007 - planned working time (e.g. 8 hr. a day)
Infotype 0005 - vacation
Infotype 2001, type pf Infotype 0100 - absences

For the infotype 0007 - you will have alreadythe Arbeitszeitplanregel "rule to plan the working time", if I translate correct from german, which will set the calender for you. This is made with another HR transaction for the HR calender ....this calender(e.g. factory calender) has to be then generated/activated for every month (separate transaction). I do not remember all the transactions codes now, but is pretty much intuitiv, as the system will give you the steps while maintaining the Infotypes.

3. Then you plan the persons in the Activities for a determined period of time. In CMP9 you'll see the availability with the standard working hours (8Hr/day, as set in HR in calender) and the absences (as planed in HR in infotypes) with empty cells (Nota Bene: these cells have in transactions CMP2 and CMP3 a change modus, are not grey or inactive !!!!!) You can change the planing then with the transactions CMP2 or CMP3, one is from project, the other from workcenter point of view . If you make changes in CMP2 or 3 you will not see the changes in Project builder for example. With CMP9 you can only view the personals planing for a workcenter, a project...

I remember there is another transaction to see the personal availability somewhere in the Infosystem> PS>capacity. You'll have to look for it and generate it from Mandant 000.
read more...

Sequence Of Operations To Get EVA | SAP Project System

In my project system I want project progress analysis on the basis of only time proportionality.  Cost will not be consider for progress andtheir are different units used like m, m3, km & hr for work  in internal & external activities, so is it possible to do such setting on the basis of confirmation in customisation?

Yes it is possible do through activity confirmation.  It all depends on EV basis, their you need to set time proportionality.

You need to perform sequence of operations to get EVA. for time prop. you need to maintain scheduling, activity confirmation etc.


Define default meas method as Time prop for objects in customising.

You need to do customization settings for EVA for progress version, statistical key figures, value catagories, progress cost element etc.

You can go the following customizing steps... this will help you to configure as per your needs. This is not as per your need, as only you can understand what all the customizations you need to do........

1. Create Progress Version 101 with exclusive use 'Progress Analysis'. I have selected Plan & Actual check boxes.
2. Settings for Progress Version-
a) Plan version - '0'
b) EV basis - Cost plan (active project, annual values)
c) POC weighting - Cost plan (active project, annual values)
d) Planning type - Basic dates
e) Early / Late - earliest possible
f) Both reference boxes selected

3. SKFs- I created three SKFs 10 (Non-Aggregated POC), 20 (Aggregated POC) and 30 (POC for RA) with unit of measure '%' and selected the Key value category 'Total values'.

4. I need to assign these SKFs to different value categories. I created three value category 10, 20 & 30 with selection 'SKF with total values' and unit of measure '%'. Then I assigned SKF 10 to VC 10, SKF 20 to VC 20, SKF 30 to VC 30

5. I assigned measurement method as default value:
a) WBS (Plan) - Cost Proportional
b) WBS (Actual) - Cost Proportional
c) Internal Activity (Plan) - Cost Proportional
d) Internal Activity (Actual) - Degree of Processing
c) Exernal activity(Plan) - Cost Proportional
d) Exernal Activity (Actual) - Degree of Processing

6. I made progress cost element '6511100' (Secondary cost element) with Cost element category as 61.

7. I maintain a value catagory 6511100 with Cost radio button selected.
And assigned the progress cost element to the value catagory. i.e Cost element 6511100 to value catagory 6511100.

8. I maintain the assignment of cost element group. ie. I assigned progress cost elemnt to cost element group with default radio button selected. In the cost element group, I have selected certain cost elements which we regularly used (cost elements for project materials, project manhours, project contracts, spares etc)

Run CJEN first then CNE1 and CNE5.
read more...

SAP Logistics : PS Substitutions

Project Substitutions

We have configured Partner funcitons to used at PD and WBS element level. We want to enter the 'customer number' as partner at the PD level and then want to copy it automatically in all the WBS elements under the project.

Is it possible to do such a thing? We are unable to use substitutions coz Partner fields do not occur in the substitution fields.

This is reasonably easy to achieve with substitution exit, where you can retrieve data from any logically linked objects and use these as substitution source data. This is described in note 440186, chapter 4.

However, with this technique you can only maintain the fields of PRPS,  e.g. user fields USR*.

If your intention is to substitute corresponding Partner role in each level of WBS, I think that will not be possible with this technique directly.

You should additionally check if there is a user exit at partner maintenance to complete the scenario.

Normally you can use user exit RGGBS00 to insert a user specific into subsititution.

But in your case, it's a little complex, because the partner is in another table (not in PRPS). however you can try to insert your own field into table GB01 and regenerate with program RGUGBR00 (note 42615). 
read more...

2.09.2010

Object Orientation | Its Uses

What is Object Orientation?

In the past, information systems used to be defined primarily by their functionality: data and functions were kept separate and linked together by means of input and output relations.

The object-oriented approach, however, focuses on objects that represent abstract or concrete things of the real world. These objects are first defined by their character and their properties which are represented by their internal structure and their attributes (data). The behaviour of these objects is described by methods (functionality).

Objects form a capsule which combines the character to the respective behaviour. Objects should enable programmers to map a real problem and its proposed software solution on a one-to-one basis. Typical objects in a business environment are, for example, ‘Customer’, ‘Order’, or ‘Invoice’. From Release 3.1 onwards, the Business Object Repository (BOR) of SAP Web Applicaton Server ABAP has contained examples of such objects. The BOR object model will be integrated into ABAP Objects in the next Release by migrating the BOR object types to the ABAP class library. A comprehensive introduction to object orientation as a whole would go far beyond the limits of this introduction to ABAP Objects. This documentation introduces a selection of terms that are used universally in object orientation and also occur in ABAP Objects. In subsequent sections, it goes on to discuss in more detail how these terms are used in ABAP Objects. The end of this section contains a list of further reading, with a selection of titles about object orientation.

Objects

Objects are instances of classes. They contain data and provides services. The data forms the attributes of the object. The services are known as methods (also known as operations or functions). Typically, methods operate on private data (the attributes, or state of the object), which is only visible to the methods of the object. Thus the attributes of an object cannot be changed directly by the user, but only by the methods of the object. This guarantees the internal consistency of the object.
Classes

Classes describe objects. From a technical point of view, objects are runtime instances of a class. In theory, you can create any number of objects based on a single class. Each instance (object) of a class has a unique identity and its own set of values for its attributes.

Object References

In a program, you identify and address objects using unique object references. Object references allow you to access the attributes and methods of an object. In object-oriented programming, objects usually have the following properties:
Encapsulation

Objects restrict the visibility of their resources (attributes and methods) to other users. Every object has an interface, which determines how other objects can interact with it. The implementation of the object is encapsulated, that is, invisible outside the object itself. Inheritance You can use an existing class to derive a new class. Derived classes inherit the data and methods of the superclass. However, they can overwrite existing methods, and also add new ones.
Polymorphism

Identical (identically-named) methods behave differently in different classes. In ABAP Objects, polymorphism is implemented by redefining methods during inheritance and by using constructs called interfaces.
Uses of Object Orientation

Below are some of the advantages of object-oriented programming: · Complex software systems become easier to understand, since object-oriented structuring provides a closer representation of reality than other programming techniques. · In a well-designed object-oriented system, it should be possible to implement changes at class level, without having to make alterations at other points in the system. This reduces the overall amount of maintenance required. · Through polymorphism and inheritance, object-oriented programming allows you to reuse individual components. · In an object-oriented system, the amount of work involved in revising and maintaining the system is reduced, since many problems can be detected and corrected in the design phase.
Achieving these goals requires:

· Object-oriented programming languages

Object-oriented programming techniques do not necessarily depend on object-oriented programming languages. However, the efficiency of object-oriented programming depends directly on how object-oriented language techniques are implemented in the system kernel.

· Object-oriented tools

Object-oriented tools allow you to create object-oriented programs in object-oriented languages. They allow you to model and store development objects and the relationships between them.

· Object-oriented modeling

The object-orientation modeling of a software system is the most important, most time-consuming, and most difficult requirement for attaining the above goals. Object-oriented design involves more than just object-oriented programming, and provides logical advantages that are independent of the actual implementation.
read more...

SAP Object and Properties | Polymorphism | Inheritance | Encapsulation

Object Introduction

ABAP Objects has appeared with the version 4.0. of R/3 and has never stopped maturing since that time. It has now reached a level that makes it a real object oriented programming language that is worth learning. So if you are ready to see what this great technology is about, take a big breath and go on reading.
What is ABAP Objects

ABAP Objects stands for Object oriented ABAP. Compared to the traditional ABAP programming language, ABAP Objects represents an extension of ABAP that provides the language with the tools to support the object oriented programming paradigm.



What is object oriented programming?

To anyone who doesn’t know what object oriented programming is, the object orientation terminology might sound like it is yet another fancy concept that doesn’t serve any real purpose nor provide any real added value just like too many other concepts in computer sciences. More recent than the traditional procedural programming model in which the source code is arranged in procedures to help achieve some level of modularity, the object oriented programming builds on the basics of the existing procedural programming model to propose a radically more sophisticated and comprehensive programming model.

This model lets the analyst-programmer implement complex systems made up of numerous objects linked together or not and control the interactions between these objects. This characteristic of the object programming language constitutes a definitive advantage other traditional programming techniques as it becomes much easier to solve complex problems. As you have already understood, the notion of Object is at the center of the model. It is voluntarily a very general notion as its aim is to describe anything that has properties and functions. In this sense, the terminology object is not yet abstract enough because it bears some idea of concreteness while an object in the sense of object oriented programming might very well represent abstract things. In fact the notion of Object could have been advantageously replaced with the notion of Concept as the programming model we are going to see is able to manipulate any kinds of concepts and to make actual representations of them.
The object oriented programming model has three major characteristics. It assumes support for:
1. Encapsulation
2. Inheritence
3. Polymorphism

We are going to see in more details what these terms mean but keep in mind that these characteristics of object programming represent only the minimum key features that any object oriented programming language must implement. The object oriented programming is not limited to these characteristics. Also we are going to see here what these terms mean in a rather abstract way. We will become more concrete in the next sections of this article when you will have a better understanding of the key concepts of object programming.
1. Encapsulation

Encapsulation is the ability that an object has to contain and restrict the access to its members. We will see later that objects members may be either properties (data) or methods (functions) of the objects. Encapsulation is a key concept of object programming that ensures the autonomy and integrity of the objects.
2. Inheritance

Inheritance is the ability of an object to inherit the properties and methods of an other object. We will come back to this later as you need to have a good understanding of what an object really is if you want to apprehend this concept. Keep in mind for the moment that inheritence is the ability offered to objects to inherit properties from other objects and to form hierarchies. This characteristic leads to the creation of families of objects (just like families exist for humans) with parent objects and child objects. In this configuration, it is clear that child objects inherit some characteristics from their parent object.
3. Polymorphism

This somewhat barbaric term designates the ability of objects to redefine properties inherited from their parents. In other words, a method of an object may have different implementations (behaviours or forms) depending on the object that implements it. This characteristic of the object oriented languages is an important asset to implement abstract concepts which often make sense only in specific contexts.
read more...

1.27.2010

SAP HR | ALE | EDI | PP | MM | ABAP | ERP Interview Questions and Answers

In the below links there are few questions and answers faced by my colleagues and friends in SAP Interview.

SAP HR Interview Questions
SAP MM Interview Questions
SAP ABAP Interview Questions
SAP  Interview Questions
SAP ERP Interview Questions


Keep Watching this space for more resources.Leave me a comment on this page on any specific resource if you need..
read more...

Cost Component Split In FICO

Can someone brief what is cost component split? What config is to be done?

In addition to standard iteration, price calculation enables you to calculate prices as a cost component split. This means that the output price of an activity type can be split into a maximum of 40 cost components. These cost components represent either:

Individual cost components (such as wages, salaries, or operating supplies) or the costs of complete cost centers (such as energy or maintenance cost centers).

The cost component split enables you to analyze which cost components are contained in the output prices of the activity types.

You can then control cost elements, cost element groups, and also entire cost centers in cost component splits. The corresponding cost center costs and the costs of the cost centers providing the activity are channeled into this cost component split. For example, if you have assigned the salary cost element to component 1 (salaries), then the system displays the salaries (for example, for a production cost center) in this cost component. If a plant maintenance cost center provides services to the production center, then the salaries for the plant maintenance cost center are assigned to this cost component.

Cost center splitting apportions activity independent costs to the activity types of the cost center. It does this by multiplying the total of the activity independent costs by the equivalence number of the activity type, and then dividing by the sum of the equivalence numbers. So if there are two activities, one with equivalence number 1 and the second activity has an eqivalence number of 2, then 1/3 of the activity independent costs will be apportioned to activity one, and 2/3 will be apportioned to activity two.

Activity independent costs are always fixed, so any variable costs will need to be planned as activity dependent costs.

Planned cost center splitting happens automatically when calculating the activity price. You can view what costs will be apportioned during activity price calculation by clicking on the Splitting menu item.

I've ran cost splitting against one cost centre. For this cost centre I know the planned activity rate (per hour) and the planned quantity (in hours) but the target cost calculated for the activity is slightly different to the result of these two multiplied together.

Is this calculation correct please?

Planned act. qty in period @ planned act. rate for period = target costs

If you have only one Activity for the cost center, then you do not need to run splitting. Just run activity price calculation. Splitting is required only if you are allocating the same costs to 2 or more activities.

The calculation is generally right. The other thing to check will be rounding of the time (mins/hours) and value.
read more...

SAP Controlling FAQ

CONTROLLING

Controlling: Controlling provides you with information for management decision-making. If facilitates co-ordination, monitoring and optimization of all process in an organization.

Features of Controlling: Cost Center Accounting, Activity Based Accounting, Internal Orders, Product Costing, & Profitability Analysis.

Controlling Area: Organization unit that represents a closed system Used for accounting purposes.

You can assign one or more company codes to one controlling area.

If you assign more than one company code to one controlling area, then you need to note the following.

1) Consistent Chart of a/c’s (Treat each cost element in all company codes in same way).
2) The Operative fiscal year variants in the company codes must match the fiscal year variant in controlling area.
3) You should execute period end closing in controlling for all company codes at same time.
4) The system only post reconciliation posting across company codes without taxes, which means that it cannot automatically create invoice.
5) Maintain controlling area - OKKP .
6) Maintain no. ranges for controlling documents - KANK
7) Maintain versions - OKEQ

COST ELEMENT ACCOUNTING

Cost Elements: Cost Elements Describe the origin of costs. Cost element classifies the organization valuated consumption of production factors within a controlling area.

Primary Cost Elements: These arise through the consumption of productions factors that are sourced externally. Primary cost elements are used for direct posting and must be accompanied in GL a/c’s in FI.

T-code : KA02 : The categories are follows 1) General primary cost element, 03 - Imputed cost element percentage method 4 - Imputed cost element, target = Actual Method, 11- Revenue elements, & 12 - sales deductions.

Secondary Cost Elements: Cost elements arise through the consumption of production factor’s that are provided internally i.e., by enterprise itself. Secondary cost elements are used strictly for internal controlling posting like assessments and settlements. T-code - ka06

Category: 12 - internal settlements, 31 - Result analyses, 41 - overhead’s, 42 - assessments etc. Cost Element Group - kah1

COST CENTER’S

Cost Center’s: Organizational Unit within a controlling area that represents a defined location of cost incurrence. The definition can be based on 1) Functional Requirement, 2) Allocation criteria, 3) Physical location and 4) Responsibilities for cost.

Change Cost center hierarchy - OKEON
Creation of Cost Center - KS01

Distribution: Was created to transfer primary costs from a sender cost center to receiving controlling objects. Distribution is primary cost elements.
Define Distribution - KSV1
Execute “” - KSV5

Assessment: Was created to transfer primary and secondary costs from a sender cost center to receiving controlling objects.
During assessment, the original cost elements are summarized into assessment cost elements (secondary cost element, category=42).

Define Assessment - KSU1
Execute Assessment - KSU5

Activity Types: Categorizes productions and services activities provided by a cost center to the organization and used for allocating costs for internal activities to the originates of the costs.

Creation of Allocation Cost elements - KA06
Creating/Maintaining the Activity types - KL01

Statistical key figures: Are used as the basis (tracing factor) on which to make allocations (assessments & distributions) and to analyze structural key figures.
read more...

Difference Between Primary and Secondary Cost Element | Travel Expense | Booking | Examples | Operational Costs

Explain the difference between primary and secondary cost element? With an example.

Primary cost elements are like materail costs, personnel costs, energy costs... where a corresponding GL account exists in FI..to allow costs to flow...

Secondary cost elements are like production costs, material overheads, production overheads, they can be created and administered in only CO. These are used in internal cost allocation, overhead calculation, settlement transactions., it does not flow to FI...

General - Cost Element
----------------------------------
Basically, cost element are carriers of costs.

Primary Cost Element
--------------------------------
When cost element carriers cost between FI and CO they are called Primary, the link is established GL A/c = Cost element(Primary). A question may arise as to whether all GL accounts are cost element, it again depends upon the business requirement, where COPA is active then revenue account (GL) are also cost elements, where COPA is not active then revenue account (GL) should not be made as an cost element.

Example....
Again cost of goods sold particularly in VAX (make to stock) is not an cost element, where the same COGS in VAY (make to order) is a cost element. Price Difference account should not be made as cost element.

Entry while booking expenses
Travel Expenses A/c - with Cost Centre Dr. Rs.YY
(will be a GL A/c and cost element) - entries flows to CO thru FI
To Cash A/c Cr. Rs.YY

Secondary Cost Element
-------------------------------------
When cost element carries cost with in CO, then they are called secondary cost element.

Example.... - Take Product Costing
---------------------------------------------------
On manufacture of the goods the cost of the above product (production order) is arrived at accumulating material cost + operational cost + overheads (%), additive cost if any.

The cost of operation is accumulated in cost centre be it production / production service / service cost centres, while booking FI entries.

Those operational cost has to be allocated to production order based on operational activities carried on and its cost involved in it. Those operation activities in CO are termed as activity types and has to link the same in KP26 with rates and cost centre (ie., sender cost centre and receiver production order).

In order to find the production order cost, the allocation of cost from sender cost centre to production order for the operational activities carried on and its cost associated with it, have to be loaded, hence in CO the cost centre allocate that portion of operational cost to production order, and this cost is carried by a cost element (since there are no FI involvement and entries are flowing within CO by crediting sender cost centre and debiting receiver production order a cost element has to be created.... say "Operational Cost - Activity" the entry will be

Operational Cost - Activity (Production Order) Dr Rs.XX
To Operational Cost - Activity (Cost Centre) Cr Rs.XX
The entries are with in CO. And the cost element created is secondary since it does not has an link with GL Account in FI correspondingly.

In CO the production order and cost centre are co object including but not limited to.
read more...

Requires an Assignment to a CO Object | Diagnosis |

The first time Account 820290 was only created in FI as a primary expense. After that this account was created in CO too as a secondary expense and any posting will appear an error: Account 820290 requires an assignment to a CO object

Question : How to correct this account back to FI only and not to appear in co?

Note :
Account 820290 requires an assignment to a CO object
Message no. KI 235

Diagnosis
You have not defined a CO account assignment for an account that is relevant to cost accounting.

System Response
Account 820290 is defined as a cost element.
This means that you must always specify a CO account assignment.

Procedure
Enter one of the following CO account assignments

Order
Cost center / cost center/ activity type
Sales order item (for a project or cost relevant)
Project / WBS element
Cost object (Process manufacturing)
Network/ Network activities
Business process
Profitability segment
Real estate object
The posting row affected is 000, account 820290.


First, if G/L account was created in FI, you can only create primary cost element in CO.

Secondary cost element can only be created if no account exists in FI.

Second, if you created the primary or secondary cost element in CO, you have to assign CO account assignment.

You can delete cost element in CO (KO04) if dependent objects found.

Third, when you create cost element in CO, documents would be also created in ‘Cost center accounting’ and ‘Profit center accounting’ when posing in FI. If no cost element exists in CO, no related documents would be created in CCA and PCA.
read more...

Difference between Cost Centers and Internal Orders

A cost center as you will know is for fixed reporting for a long time span as part of your company structure (cost center usually = department or work center).

An internal order is used to accumulate cost for a specific project or task for a specific time period. An internal order is therefore used for a short period with a specific deadline.

Your internal order will usually settle to cost centers (and not visa versa) according to the settlement rule in the order setup.

An internal order can therefore be used to group all the expenses incurred to plan and hold a conference over a 3 month period. The order can be settled on a monthly basis to cost centers.

When the conference is finished the order can be settled finally. The cost of the conference will then be spread over 2 or more cost centers, but can be viewed in total on the internal order when needed.

It is important to understand the difference between a settlement and an assessment cycle. An assessment cycle distributes costs from one cost center to various other cost centers. You cannot assess from a cost center to an internal order nor visa versa. Assessment cycles are only between cost centers.

Settlements are used for orders. In the setup of each order is a "settlement rule". In this settlement rule you tell the system to which cost centers the cost in the order must be settled.
Typically, you will execute the following procedure at month-ends:
1. Settle all orders - this will settle all costs on orders to cost centers.
2. Run assessment cycles - Now that you have al costs against cost centers from your orders, you can start distributing costs between cost centers with assessments.

Costs are posted to an order. When you process a purchase order you post to the internal order and not to a cost center. The same applies to journals in FI. You will post the costs to the order and not to a cost center. You will then settle the order on month-ends to post to the relevant cost centers. It is very important to settle these orders otherwise FI and CO will not
balance on your system.

Internal orders can also be used as "statistical" orders. This is also specified in the setup of the order. You do not have to settle statistical orders. When posting costs, you will post to the cost center and the order simultaneously. Both have to be specified when posting journals or purchase orders against statistical orders.
read more...

Simple Overview of Product Costing | SAP FICO

SAP Product Costing deals with Plan Costing + Actual Costing of Finish products or Services.

CO comprises Product Costing + cost accounting integrated with FI.

It uses Integrated Cost Accounting.

Product costing also has 2 phases depending on the Mfg Scenarios. If you are a normal mfg comp, making goods to stock & sale, you have to first do planning of the costs of products initilally as a STD COST of a product. This is used in many phases in SAP CO acounting. In simple terms, you cost a product by different methods depending on different LIFE CYCLE phases of product. These are Development of new product. Growth stage by modifying it. Mature stage (mass prod). Decline Retirement of that product from Mfg+Mktng)

The whole CO process starts with this PLANNED costs of products & ends with totalling the STD Costs for Actual Production.

This is a simple Std cost Accounting system, in which the end result is calculating Variance bet Planned & Actual & analysing those for further corrective actions.

Product costing is well integrated to FI, but only where overhead cost accounting is used. Otherwise normally it used only for settlement.

All these actual costs of Prod are finally settled/offset to FI or Profitability segments.

SAP CO is a very vast & complicated module of all. It needs deep understanding of the subject.

This give you an overview glimpse of SAP CO.
read more...

1.09.2010

Message Control and Control Keys in SAP QM

This key determines which conditions are valid for quality management in procurement.

If you activate the indicator for QM in procurement in the material master record at the client level , you must also store a control key at the plant level for quality management in procurement.

Depending on the control indicators in the control key, you may have to maintain additional data.

SAP transaction code to maintain the Control key SM30 - V_TQ08

You can set the Message Control for Lock as :

I - Information
W - Warming
E - Defects

You can also indicate that a Quality Certificate is required or not.
read more...

SAP Quality Management: Introducing QM in Procurement

The QM component is integrated in crucial phases of the procurement process. It supports the procurement activities by means of functions such as:

* Vendor Evaluation
* Vendor block
* Vendor Release for requests for quotation and purchase orders
* Assigning technical delivery terms and Quality(QM) assurance agreements
* Certificate processing
* Status administration of the supply relationships
* Incoming inspections
* Goods(items) receipt inspections


If your company purchases materials from external vendors, you can implement the QM in Procurement (QM-PT-RP-PRC) component to support your procurement processes for Quality(QM) assurance purposes.

If you want to implement the QM in Procurement component, your company must also use the Purchasing (MM-PUR) component. If you require functions for processing goods(items) movements, you must also install the Inventory Management (MM-IM) component.

You can implement the QM in Procurement component as a stand-alone component or together with the Quality(QM) Inspection (QM-IM) component. As a stand-alone component, you can use all procurement functions except those for processing goods(items) receipt inspections. To process such inspections, you need the Quality(QM) Inspection component.

Using the functions of the QM in Procurement component, you can:

* Manage Quality(QM) -related information for materials, vendors, and manufacturers in Quality(QM) info records
* Release or block vendors and manufacturers
* Monitor the QM systems of vendors and manufacturers
* Supply Quality(QM) documents with requests for quotations and purchase orders
* Evaluate vendors on the basis of Quality(QM)
* Certify vendors or manufacturers that have QM systems implemented, to reduce the inspection requirement
* Manage and release supply relationships
* Request that Quality(QM) certificates be submitted with the delivered goods(items) and monitor the receipt of these certificates
* Inspect vendor goods(items) at vendor sites (source inspections)
* Inspect vendor goods(items) upon receipt (goods(items) receipt inspections)
* Manage the posted goods(items) in inspection stock
* Block the payment of invoices until the goods(items) have been inspected and accepted
* Process goods(items) receipt inspections for manufacturer-specific materials
* Inspect goods(items) that have been externally processed when they are returned in a goods(items) receipt.
read more...