Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

sample code for month / year needed

Former Member
0 Likes
1,170

I have data for:

month1 = m1

year1 = y1

month2 = m2

year2 = y2.

Now I want to go to bkpf and give the data for bukrs, belnr, gjahr (from y1 to y2), monat (from m1 to m2) and get all the corresponding entries.

For example: If month1 = 3, year1 = 2003

month2 = 5, year2 = 2005, I want to get all the entries as explained above for:

(3,2003) to (12,2003)

(1,2004) to (12,2004)

(1,2005) to (12,2005)

(and not just for months 3 to 5 for years 2003 to 2005 as normally many abappers will do)

Can you give me a sample code here with out affecting performance please?

Thanks,

Krishen

P.S.Shall definitely award points for helpful answers and thanks in advance for your input.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
966

Hi Krishnen,

In BKPF table... u have a field called BUDAT (Posting date) / BLDAT (Document date) ....

Check whether on what criteria u r going to fetch data from the database ... either by Posting date / document date ???

Say for ex.. u need to fetch records based on document date BLDAT ..

BLDAT is a date field.... of the form YYYYMMDD ...

so u can query like this ....

SELECT BUKRS BELNR GJAHR FROM BKPF

INTO TABLE ITAB_BKPF

WHERE ( ( BLDAT >= '20030301' AND

BLDAT <= '20051231' ) .

the above query will help in fetching up of all the records which falls bet march 2003 to december 2005 ....

Hope it helps u

Cheers

Kripa Rangachari ...................................

5 REPLIES 5
Read only

Former Member
0 Likes
967

Hi Krishnen,

In BKPF table... u have a field called BUDAT (Posting date) / BLDAT (Document date) ....

Check whether on what criteria u r going to fetch data from the database ... either by Posting date / document date ???

Say for ex.. u need to fetch records based on document date BLDAT ..

BLDAT is a date field.... of the form YYYYMMDD ...

so u can query like this ....

SELECT BUKRS BELNR GJAHR FROM BKPF

INTO TABLE ITAB_BKPF

WHERE ( ( BLDAT >= '20030301' AND

BLDAT <= '20051231' ) .

the above query will help in fetching up of all the records which falls bet march 2003 to december 2005 ....

Hope it helps u

Cheers

Kripa Rangachari ...................................

Read only

Former Member
0 Likes
966

Hi,

Try like this:


N = ( year2 - year1 ) + 1
M1 = month 1.
M2 = Month2.
Y = year1.

IF N GT 1.
Do N times.
  case sy-tabix.
   when 1.
      select .... from bkpf
      into table IT_BKPF
      Where gjahr = Y
        and monat GE M1
        and monat LE 12.  
   when N.
      select .... from bkpf
      Appending table IT_BKPF
      Where gjahr = Y
        and monat GE 1
        and monat LE M2.
   when others.
      select .... from bkpf
      Appending table IT_BKPF
      Where gjahr = Y
        and monat GE 1
        and monat LE 12.
  endcase.
  add 1 to Y.
enddo.  
ENDIF.

Hope it help you,

Regards

Read only

0 Likes
966

Thank you Kripa and Jatra.

Kripa, I have a question for you. Is posting date (BUDAT) always lies in posting period (MONAT) ?

Please clarify this. Your solution seems to be helpful.

Thanks,

Krishen

Read only

Former Member
0 Likes
966

Krishnen,

yes .... Posting period is nothing but the month of posting ... which will definitely fall in an year

Just check with ur consultants whether they are in need of a report based on Posting date / document date ... and query ur database based on that ......

Cheers

Kripa Rangachari .............

Read only

Former Member
0 Likes
966

Hi kris ,

make use of MM_ARRANG_SPMON_RANGE.

as per ur requirement u have to get o/p month wise , in that case :

first u have to get the data from given period ( user input ) after that u have to manipulate with the data to get in month wise.

1. select * from BKPF into corresponding field of i_bkpf

where bukrs in s_bukrs

and budat in s_budat.

2. After that Divied ur output month wise by using the that FM

Regards

Prabhu