Segment/ Business unit in the customer ageing

hi Friends,
       Am using the cube 0FIAR_C03 for getting the customer ageing report, In this report customer is askinig for the Segment(BU), also to be added. But i dont find tat in the query. now wat is the possibilty for the same.
Thanks
Karthik
Customer Name
BU Name
Currency
0-30
31-60
91-180
181-360
> 360
total
ABC Inc
Payer
USD
  $  100.00
  $  100.00
  $  100.00
  $  100.00
  $  100.00
  $     500.00
KK Inc
Hospital
USD
  $  110.00
  $  110.00
  $  110.00
  $  110.00
  $  110.00
  $     550.00
DCG Ltd
Physician
INR
         90.00
         90.00
         90.00
         90.00
         90.00
          450.00
LLC
IT
INR
         80.00
         80.00
         80.00
         80.00
         80.00
          400.00
HHH Inc
SS
GBP
  £     75.00
  £     75.00
  £     75.00
  £     75.00
  £     75.00
  £     375.00
total
USD
  $  210.00
  $  210.00
  $  210.00
  $  210.00
  $  210.00
  $  1,050.00
INR
       170.00
       170.00
       170.00
       170.00
       170.00
          850.00
GBP
  £     75.00
  £     75.00
  £     75.00
  £     75.00
  £     75.00
  £     375.00

Karthikeyan,
I think Segment(BU) is a attribute of Customer. Make it Navigational and use.
Srini

Similar Messages

  • Customer Ageing analysis by segment

    Hi,
    The customer ageing report does not give an ageing by segment. Though the standard line item display of the Customer reconcilidation accounts in the NEW GL does contain the paramters for the ageing, unable to find or create a report using the Report Painter that has the Segment as a characteristic.
    Can somebody help with this?
    Thanks
    John Mampilly

    Just a quick pointer.... Try this: S_ALR_87012167
    This is AR information system and has due date analyais by evaluation views. If you not using this report, you might need to generate the evaluation views first. If you get this message, No evaluations exist. See long text, click on long text and it gives the procedure to generate the evaluations.
    We are using it in our company for different views - Due date analysis by different views, similarly DSO etc.
    Hope it helps.
    Thanks.
    Rahul

  • Page Composer EL to access the Business Unit

    Hi,
    Is it possible to access the Business Unit of the currently logged in user using Expression Language in the Page Composer? If yes, then what is the expression?
    Thanks,
    Sujoy

    Hi Sujoy
    There is no universal way to access Business Unit for all pages. If it's shown on the page then you should be able to find its Value property in page composer. Also some
    pages expose this via a backing bean attribute, again possibly used in a condition associated with a field on the page - something you'd have to go looking for in page composer.
    I am trying to get new ER 20865654 processed with the request to show commonly useful data points to customization users. If you could kindly provide details on your customer use-case it would help promote this feature.
    Kind regards
    Richard
    FA Developer Relations

  • Error count based on business unit and Vehicle type

    Hi,
    i have a custom error idoc table which contains idoc no, business unit, vehicle type and error message.
    Now here my requirement is to display the total count(Error count) of each message based on business unit and
    Vehicle type and display it in the output list as shown below. what is the best way to achieve this as there will be number(atleast 6) of error messages available for a business unit based on vehicle type and there are around 15 business units  overall for which i should display the error count.
    buisness unit| Vehicle Type | Status | Error message                            |                   Error count
    71320            WT10               51          Organizational channel missing                      10
                          WT10              51          SMC Missing                             |                      15
    72000          WT20                51            Creation of vehicle not possible|                    12
                        WT20                51            Status change not requested    |                     10                      
    regards,
    Mani

    Hi,
    Assign business unit level read access to your entity for which you have written the Report.
    Assign the respective business unit to the user, in your case assign business unit Partner to user Partner
    and  business unit Manager to user Manager 
    Also use filtered view in your report if it is SSRS report.
    Regards
    Ayaz

  • Derive business unit from billing doc

    Hi all,
    I am trying to derive the business unit (VBRK-BZIRK) from the billing document instead of the customer master data.
    For that purpose, I added the charachteristic "billing document" (WWBD) and then I create  a derivation rule of type 'table lookup' with the following parameters:
    source:
    VBRK     VBELN     Billing Document     =     CO-PA     WWBD     Billing Document
    Assignment of table fields to target fields:
    VBRK     BZIRK     Business Unit     =     CO-PA     BZIRK     Business Unit
    on the condition tab I added the range of sales organizations for which this derivation needsto be active:
    CO-PA     VKORG     Sales Organization     >=     6000
    CO-PA     VKORG     Sales Organization     <=     8000
    When I test it in KEDR by entering, customer, sales org, billing document, is is working OK, but when I do an actual by creating a billing document, the derivation is not working.
    Does anyone know why this derivation is not working?
    And also, is there a way to analyze the actual derivation (not the test run in KEDR)?
    Thanks,
    Yoel.

    Hi Ajay,
    I finally got some ABAP help and was able to add an entry in table TKEZU using view V_TKEZU:
    Char.     BTran     Table     Field Name
    WWBD     KEDR     KOMK     BELNR
    Now, when I try to create the derivation rule with type table lookup I face another problem: in the 'source fields' section I
    am required to enter the operating concern (TKEZU-ERKRS), the field name (TKEZU-MERKMAL) and the business transaction (TKEZU-VRGNG), but when I enter the parameters (i.e. TKEZU-ERKRS=US10, TKEZU-MERKMAL=WWBD
    and TKEZU-VRGNG=KEDR) I get an error "Enter a valid source field. The field US10 is not a permitted source field" (message no. K/018).
    When I try to select values from the list (F4), I can only select out
    of the carachteristic names available in the system.
    Why am I not getting on the drop down list the real values for the table fields?
    Thanks,
    Yoel.

  • Question about customer aging report

    Greetings,
    One of our Business One consultants needs the information from the customer aging report under the financials\accounting\aging section of Business One. I am trying to help him do this but I do not know how to find the query or stored procedure that is executed to produce this report. Does anyone know the answer to this or maybe know how I can find out what query is executed?
    Thanks.

    As you know there is two ways of generating customer recevieable report:
    1. By Journal Entry
    2. By Sales Documents
    I can not find a stored procedure also, but after analyze SBO-application queries it uses this query:
    SBO query to get customer with balance
    SELECT T0.CardCode, T0.CardName, T0.Balance, T0.BalanceFC, T0.BalanceSys, T0.Currency, T0.DunTerm, T1.MonthDays, T1.YearDays, T1.YearlyRate, T1.MaxLevel FROM  [dbo].[OCRD] T0   LEFT OUTER  JOIN [dbo].[ODUT] T1  ON  T1.TermCode = T0.DunTerm   WHERE T0.CardType = N'C'  AND  (((T0.Currency = N'NOK'  OR  T0.Currency = N'##' ) AND  T0.Balance <> 0 ) OR  (T0.Currency <> N'NOK'  AND  T0.Currency <> N'##'  AND  T0.BalanceFC <> 0 ))  ORDER BY T0.CardCode
    Then send CardCode variable to this query that retreives selected customer:
    SELECT T0.BatchNum, T0.TransId, T0.TransType, T0.CreatedBy, T1.RefDate, T1.DueDate, T1.LineMemo, T0.Ref1, T1.Credit, T1.Debit, T1.FCCredit, T1.FCDebit, T1.SYSCred, T1.SYSDeb, T1.SourceLine, T1.Ref1, T1.Account FROM  [dbo].[OJDT] T0  INNER  JOIN [dbo].[JDT1] T1  ON  T1.TransId = T0.TransId   WHERE T1.ShortName = N'10001' AND T1.IntrnMatch = 0   ORDER BY T1.DueDate
    Antoher easy way is ot create a query like this
    (ref.SAP Note 740241 - User Report for days over duedate on AR Invoice):
    SELECT T0.CardCode, T0.CardName, T0.DocDueDate, Convert(numeric, GetDate()) - convert(numeric, T0.DocDueDate ) as 'Days After DueDate', T0.DocTotal, T0.PaidToDate, (T0.DocTotal - T0.PaidToDate) as 'Debt' FROM OINV T0 WHERE T0.DocStatus = 'O' and Convert (char, T0.DocDueDate, 103) <= convert(char, GetDate(),103) FOR BROWSE
    Hope this helps
    Brgs,
    Geir

  • Customer Aging Report Query (without invoices offset by incoming payment)

    Hi All Experts,
    May I know is there any field from JDT1 mention which invoices is already offset by the Incoming payment or AR Credit note? Because I do not want those invoices that already offset by incoming payment appear at the Customer Aging Report. Meaning, the data appear in the Customer Aging Report is only show those invoices that yet to pay by the customer. Kindly give some advise on it. Thanks a lot.
    Thanks and regards,
    Angie Ng

    Hi David,
    Thanks for your suggestion. I have try it, but all of my JDT1.IntrnMatch is in 0 value. Meaning in my situation it is none of any reconcilliation making. But from my SBO window, i manage to see that actually this incoming payment is pay for which invoices. Problem is it is difficult for me to do the possiblity logic that might be happen in my Customer Aging Report Query. Please give some advise that how to show only those invoices yet to pay? The current query will show all the data no matter the invoices or credit memo has been offset.
    select OCRD.cardcode 'Supplier Code',OCRD.cardname 'Name',sysdeb  'Debit GBP',syscred 'Credit GBP',
    case JDT1.transtype
    when '13' then 'INV'
    when '14' then 'AR CN'
    when '24' then 'INCOMING'
    else 'Other'
    end 'Type',
    Ref1,
    fccurrency 'BP Currency',
    CONVERT(VARCHAR(10), refdate, 103)'Posting Date' ,
    CONVERT(VARCHAR(10), duedate, 103) 'Due Date',
    CONVERT(VARCHAR(10), taxdate, 103) 'Doc Date' ,
    CASE
    when (DATEDIFF(dd,refdate,current_timestamp))+1 < 31
    then
    case
    when syscred <> 0 then syscred * - 1
    else sysdeb
    end
    end "0-30 days",
    case when ((datediff(dd,refdate,current_timestamp))+1 > 30
    and (datediff(dd,refdate,current_timestamp))+1< 61)
    then
    case
    when syscred <> 0 then syscred * - 1
    else sysdeb
    end
    end "31 to 60 days",
    case when ((datediff(dd,refdate,current_timestamp))+1 > 60
    and (datediff(dd,refdate,current_timestamp))+1< 91)
    then
    case
    when syscred <> 0 then syscred * - 1
    else sysdeb
    end
    end "61 to 90 days",
    CASE
    when (DATEDIFF(dd,refdate,current_timestamp))+1 > 90
    then
    case
    when syscred= 0 then sysdeb
    when sysdeb= 0 then syscred * - 1
    end
    end "90 + days"
    from JDT1,OCRD where JDT1.shortname = OCRD.cardcode and cardtype = 'c' and intrnmatch = '0'
    ORDER BY OCRD.CARDCODE, taxdate

  • Customer aging with hierarchies

    Hello,
    We are looking for a way to see the customer aging of open items by highest entry in the customer hierarchy.
    With S_ALR_870121789 we are pretty close to what is expected but the highest level in this report is the payer. Hierarchy is not taken care for. Our payers all belong to a hierarchy in some point.
    eg:
    Hier Knot1.
    - Payer1
    - Payer2
       Hier Knot1.1
       -Payer3
    In this case we would expect to see one line for Hier Knot1. with the sum of Payer 1 to 3.
    Is that possible with SAP standard Report in Release 4.6C?
    If there are other ways to have similar information I'd be happy to hear them, too

    Thanks,
    problem is that hier knots are not being displayed in the report. Cant use a subtotal. Its not an ALV list just an ordinary text report
    regards, Andreas

  • Customer Ageing - Report Painter

    Hi,
       Can any tell whether we can achieve the customized reports for the customer ageing (Txn: S_ALR_870121276) through report painter. If so can i get any help for the steps to be followed /material regarding this.
    Regards,
    Nagendra Prasad.J

    This is one aging report.. have a look at it and see if its useful.
    This displays cusomer and vendor aging report.
    Award points if useful.
    REPORT zgar_ic_custvend_aging NO STANDARD PAGE HEADING
                                  LINE-SIZE 192
                                  MESSAGE-ID zz
                                  LINE-COUNT 65.
                           Data declaration                              *
    TABLES: bsik,                          "Secondary Index for Vendors
            t880,                          "Global Company Data
            t001s,                         "Accounting Clerks
            t001.                          "Company Codes
                   Internal table declaration.                           *
    *Store data from vendor tables (BSIK, BSAK).
    DATA: BEGIN OF g_t_venddata OCCURS 0,
             bukrs LIKE bsak-bukrs,          "Company code
             lifnr LIKE bsak-lifnr,          "Vendor number
             gjahr LIKE bsak-gjahr,          "Fiscal year
             zuonr LIKE bsak-zuonr,          "Assignment number
             shkzg LIKE bsak-shkzg,          "Debit/credit indicator
             dmbtr LIKE bsak-dmbtr,          "Amount in local currency
             dmbe2 LIKE bsak-dmbe2,          "Amount in global currency
             belnr LIKE bsak-belnr,          "Document number
             augdt LIKE bsak-augdt,          "Clearing date
             augbl LIKE bsak-augbl,          "Doc. no. of clearing document
             budat LIKE bsak-budat,          "Posting date
             hkont LIKE bsak-hkont,          "GL account
             waers LIKE bsak-waers,          "Currency key
             xblnr LIKE bsak-xblnr,          "Document number
             acctp TYPE c,                   "Account type. D or K
             name1 LIKE kna1-name1,          "Comp nmae
         END OF g_t_venddata.
    *Store data from customer tables (BSID, BSAD).
    DATA: BEGIN OF g_t_custdata OCCURS 0,
            kunnr LIKE bsad-kunnr,                "Customer Number
            bukrs LIKE bsad-bukrs,                "Company Code
            gjahr LIKE bsad-gjahr,                "Fiscal year
            augdt LIKE bsad-augdt,                "clearing date
            zuonr LIKE bsad-zuonr,                "Assignment number
            belnr LIKE bsad-belnr,                "acct doc no
            name1 LIKE lfa1-name1,                "name from cust master
            budat LIKE bsad-budat,                "posting date
            bldat LIKE bsad-bldat,                "document date
            xblnr LIKE bsad-xblnr,                "document number
            shkzg LIKE bsad-shkzg,                "debit/credit indicator
            dmbtr LIKE bsad-dmbtr,                "local currency
            dmbe2 LIKE bsad-dmbe2,                "Group currency
            waers LIKE bsad-waers,                "Currency key
            hkont LIKE bsad-hkont,                "GL account
            acctp TYPE c,                         "Account type  D/K
          END OF g_t_custdata.
    *Store data according to age category.
    DATA: BEGIN OF g_t_maintab OCCURS 0,
            bukrs LIKE bsad-bukrs,                "Company Code
            tpart(10) TYPE c,                     "Trading partner
            acctp TYPE c,                         "Account type D/K
            gjahr LIKE bsad-gjahr,                "Fiscal year
            augdt LIKE bsad-augdt,                "clearing date
            zuonr LIKE bsad-zuonr,                "Assignment number
            belnr LIKE bsad-belnr,                "acct doc no
            name1 LIKE lfa1-name1,                "name from cust master
            budat LIKE bsad-budat,                "posting date
            bldat LIKE bsad-bldat,                "document date
            xblnr LIKE bsad-xblnr,                "document number
            shkzg LIKE bsad-shkzg,                "debit/credit indicator
            dmbtr LIKE bsad-dmbtr,                "local currency
            hkont   LIKE bsad-hkont,              "GL account
            bktxt   LIKE bkpf-bktxt,              "Document header text
            butxt   LIKE t001-butxt,              "company name
            waers   LIKE bsad-waers,              "Currency key
            balamt  TYPE dmbtr,                   "balance amount
            amount1 TYPE dmbtr,                   "Amount for category 1
            amount2 TYPE dmbtr,                   "Amount for category 2
            amount3 TYPE dmbtr,                   "Amount for category 3
            amount4 TYPE dmbtr,                   "Amount for category 4
          END OF g_t_maintab.
    *Store all the vendor numbers
    DATA: BEGIN OF g_t_vend OCCURS 5000,
            lifnr                LIKE lfa1-lifnr,
            name1                LIKE lfa1-name1,
          END OF g_t_vend.
    *Store all the customer numbers
    DATA: BEGIN OF g_t_cust OCCURS 5000,
            kunnr                LIKE kna1-kunnr,
            name1                LIKE kna1-name1,
          END OF g_t_cust.
    *Range to store trading partner numbers.
    RANGES : r_tpart FOR lfa1-lifnr.
    Variables to maintain open items count
    DATA: g_open_items  TYPE i,
          g_open_items1 TYPE i,
          g_open_items2 TYPE i,
          g_open_items3 TYPE i,
          g_open_items4 TYPE i.
    *Header texts (For report header)
    DATA: g_headertext1(50),
          g_headertext2(16).
                   Selection screen declaration.                         *
    SELECT-OPTIONS p_ccode FOR bsik-bukrs OBLIGATORY.      "Company code
    SELECT-OPTIONS p_tpartv FOR t880-rcomp.                "Trading partner
    SELECT-OPTIONS p_clerk FOR t001s-busab.                "Accounting clerk
    SELECT-OPTIONS p_pdate FOR sy-datum.                   "Posting date
    PARAMETERS p_adate LIKE sy-datum DEFAULT sy-datum.     "Age as of date
    *GL Account codes
    SELECT-OPTIONS p_glacc FOR bsik-hkont DEFAULT '48200000' TO '48299999'
                   OBLIGATORY.
    *Data Column range (Age range)
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN BEGIN OF BLOCK age_range WITH FRAME TITLE text-001.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(20) text-002.
    SELECTION-SCREEN POSITION 33.
    PARAMETERS p_range1(4) TYPE c DEFAULT '30' OBLIGATORY.
    SELECTION-SCREEN POSITION 43.
    PARAMETERS p_range2(4) TYPE c DEFAULT '60' OBLIGATORY.
    SELECTION-SCREEN POSITION 53.
    PARAMETERS p_range3(4) TYPE c DEFAULT '90' OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK age_range.
    *Reporting Currency
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN BEGIN OF BLOCK crr_sel WITH FRAME TITLE text-003.
    PARAMETERS: p_local  RADIOBUTTON GROUP cgrp DEFAULT 'X',
                p_grpcrr RADIOBUTTON GROUP cgrp.
    SELECTION-SCREEN END OF BLOCK crr_sel.
    *Type of report
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN BEGIN OF BLOCK rep_sel WITH FRAME TITLE text-004.
    PARAMETERS: p_detrep  RADIOBUTTON GROUP rgrp DEFAULT 'X',
                p_sumrep  RADIOBUTTON GROUP rgrp.
    SELECTION-SCREEN END OF BLOCK rep_sel.
                               Top-Of-Page                               *
    TOP-OF-PAGE.
      IF p_detrep = 'X'.
    Write report header for detailed report.
        PERFORM f8000_write_comp_header
                USING g_t_maintab-bukrs
                      g_t_maintab-waers
                      g_t_maintab-butxt
                      text-t02
                      g_headertext1.
      ELSE.
    Write report header for summary report.
        PERFORM f8000_write_comp_header
                USING '0000'
                      g_t_maintab-waers
                      text-t05
                      g_headertext1
                      g_headertext2.
      ENDIF.
    *Eject
                           Line selection event                          *
    AT LINE-SELECTION.
      IF p_detrep = 'X'.
        SET PARAMETER ID 'BLN' FIELD g_t_maintab-belnr.
        SET PARAMETER ID 'BUK' FIELD g_t_maintab-bukrs.
        SET PARAMETER ID 'GJR' FIELD g_t_maintab-gjahr.
        IF NOT g_t_maintab-belnr IS INITIAL.
    Call transaction FB03 to display line item details.
          CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
        ELSE.
          MESSAGE e999 WITH text-e01.
        ENDIF.
    Clear belnr.
        MOVE space TO g_t_maintab-belnr.
      ENDIF.
    *Eject
                   Main processing of program starts here                *
    START-OF-SELECTION.
    Pad zeroes to the trading partner range to make it 10 chars
      PERFORM f0100_prepare_tradingpartners.
    Fetch data from customer and vendor tables.
      PERFORM f1000_fetch_data.
    Prepare data. Assign sign to amount, separate line items into 4 age
    categories
      PERFORM f2000_prepare_data.
         End of selection.
    END-OF-SELECTION.
    Write reports
      IF NOT g_t_maintab[] IS INITIAL.
        IF p_detrep = 'X'.
          PERFORM f4000_write_detailed_rep.
        ELSE.
          PERFORM f5000_write_summary_rep.
        ENDIF.
      ELSE.
        MESSAGE i999 WITH text-e02 text-e03.
      ENDIF.
    *Eject
    *&      Form  f0100_prepare_tradingpartners
          Subroutine for preparing trading partner numbers. Pad extra
          zeros to make trading partner field size 10.
    FORM f0100_prepare_tradingpartners.
      LOOP AT p_tpartv.
        MOVE-CORRESPONDING p_tpartv TO r_tpart.
        IF NOT r_tpart-low IS INITIAL.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
               EXPORTING
                    input  = r_tpart-low
               IMPORTING
                    output = r_tpart-low.
        ENDIF.
        IF NOT r_tpart-high IS INITIAL.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
               EXPORTING
                    input  = r_tpart-high
               IMPORTING
                    output = r_tpart-high.
        ENDIF.
        APPEND r_tpart.
      ENDLOOP.
    ENDFORM.                    " f0100_prepare_tradingpartners
    *Eject
    *&      Form  f1000_fetch_data
          This subroutine is used to fetch data from customer (BSID and
           BSAD) and vendor (BSIK and BSAK) tables.
    FORM f1000_fetch_data.
    *Get vendor data.
      PERFORM f1100_fetch_vend_data.
    *Get customer data.
      PERFORM f1200_fetch_cust_data.
    ENDFORM.                    " f1000_fetch_data
    *Eject
    *&      Form  f1100_fetch_vend_data
          This subroutine is used to get data from BSIK and BSAK
          tables. First all vendors are selected then all line items are
          retrieved from BSIK and BSAK tables.
    FORM f1100_fetch_vend_data.
      PERFORM f9000_progress_indicator USING text-m01.
    *Select all vendors.
      SELECT h~lifnr
             h~name1
      INTO TABLE g_t_vend
      FROM lfa1 AS h
      JOIN lfb1 AS c
        ON h~lifnr = c~lifnr
    WHERE h~lifnr IN r_tpart
       AND c~bukrs IN p_ccode
       AND c~busab IN p_clerk.
      IF NOT g_t_vend[] IS INITIAL.
        PERFORM f9000_progress_indicator USING text-m01.
    Select open line items.
        SELECT bukrs                 "company
               lifnr                 "vendor number
               augdt                 "clearing date
               augbl                 "docno for clearing doc
               zuonr                 "allocation number
               gjahr                 "fiscal year
               belnr                 "acct doc no
               buzei                 "line item within doc
               budat                 "posting date
               waers                 "Currency key
               xblnr                 "document number
               shkzg                 "debit, credit indicator
               dmbtr                 "local currency
               hkont                 "gl acct
               dmbe2                 "group currency
         FROM bsik
         INTO CORRESPONDING FIELDS OF TABLE g_t_venddata
         FOR ALL ENTRIES IN g_t_vend
         WHERE bukrs IN p_ccode           "company code
         AND lifnr = g_t_vend-lifnr       "trading partner
         AND budat IN  p_pdate            "Posting date
         AND budat <= p_adate
         AND hkont IN p_glacc             "gl acct
        PERFORM f9000_progress_indicator USING text-m04.
    Select cleared line items.
        SELECT bukrs                 "company
               lifnr                 "vendor number
               augdt                 "clearing date
               augbl                 "docno for clearing doc
               zuonr                 "allocation number
               gjahr                 "fiscal year
               belnr                 "acct doc no
               buzei                 "line item within doc
               budat                 "posting date
               waers                 "Currency key
               xblnr                 "document number
               shkzg                 "debit, credit indicator
               dmbtr                 "local currency
               hkont                 "gl acct
               dmbe2                 "group currency
         FROM bsak
         APPENDING CORRESPONDING FIELDS OF TABLE g_t_venddata
         FOR ALL ENTRIES IN g_t_vend
         WHERE bukrs IN p_ccode           "Company code
         AND lifnr =   g_t_vend-lifnr     "Selected vendors
         AND augdt >   p_adate
         AND budat IN  p_pdate            "Posting date
         AND budat <=  p_adate
         AND hkont IN  p_glacc            "GL acct
      ENDIF.
      IF NOT g_t_venddata[] IS INITIAL.
    *Set Account type flag for vendors -- 'K'.
        SORT g_t_venddata BY bukrs lifnr.
        SORT g_t_vend     BY lifnr.
        g_t_venddata-acctp = text-k01.
        MODIFY g_t_venddata TRANSPORTING acctp WHERE acctp = ' '.
    Add vendor names.
        LOOP AT g_t_venddata WHERE name1 = ' '.
          READ TABLE g_t_vend
               WITH KEY lifnr = g_t_venddata-lifnr BINARY SEARCH.
          IF sy-subrc = 0.
            g_t_venddata-name1 = g_t_vend-name1.
            MODIFY g_t_venddata TRANSPORTING name1 WHERE lifnr =
                   g_t_venddata-lifnr.
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " f1100_fetch_vend_data
    *Eject
    *&      Form  f1200_fetch_cust_data
          This function module is used to get data from BSID and BSAD
          tables. First all customers are selected then all line items
          are retrieved from BSIK and BSAK tables.
    FORM f1200_fetch_cust_data.
      PERFORM f9000_progress_indicator USING text-m06.
    *Select all customers.
      SELECT h~kunnr
           h~name1
      INTO TABLE g_t_cust
      FROM kna1 AS h
      JOIN knb1 AS c
        ON h~kunnr = c~kunnr
    WHERE h~kunnr IN r_tpart
       AND c~bukrs IN p_ccode
       AND c~busab IN p_clerk.
      IF NOT g_t_cust[] IS INITIAL.
        PERFORM f9000_progress_indicator USING text-m06.
    *Fetch customer open items.
        SELECT bukrs                 "company
               kunnr                 "customer number
               augdt                 "clearing date
               augbl                 "docno for clearing doc
               zuonr                 "allocation number
               gjahr                 "fiscal year
               belnr                 "acct doc no
               buzei                 "line item within doc
               budat                 "posting date
               waers                 "Currency key
               xblnr                 "document number
               shkzg                 "debit, credit indicator
               dmbtr                 "local currency
               hkont                 "gl acct
               dmbe2                 "group currency
         FROM bsid
         INTO CORRESPONDING FIELDS OF TABLE g_t_custdata
         FOR ALL ENTRIES IN g_t_cust
         WHERE bukrs IN p_ccode           "company code
         AND kunnr = g_t_cust-kunnr       "Selected customer
         AND budat IN  p_pdate            "Posting date
         AND budat <= p_adate
         AND hkont IN  p_glacc            "GL acct
        PERFORM f9000_progress_indicator USING text-m07.
    Select Customer cleared line items.
        SELECT bukrs                 "company
               kunnr                 "customer number
               augdt                 "clearing date
               augbl                 "docno for clearing doc
               zuonr                 "allocation number
               gjahr                 "fiscal year
               belnr                 "acct doc no
               buzei                 "line item within doc
               budat                 "posting date
               waers                 "Currency key
               xblnr                 "document number
               shkzg                 "debit, credit indicator
               dmbtr                 "local currency
               hkont                 "gl acct
               dmbe2                 "group currency
         FROM bsad
         APPENDING CORRESPONDING FIELDS OF TABLE g_t_custdata
         FOR ALL ENTRIES IN g_t_cust
         WHERE bukrs IN p_ccode           "company code
         AND kunnr = g_t_cust-kunnr       "Selected customer
         AND augdt > p_adate
         AND budat IN  p_pdate            "Posting date
         AND budat <= p_adate
         AND hkont IN p_glacc             "GL acct
      ENDIF.
      IF NOT g_t_custdata[] IS INITIAL.
    *Set account type for customers -- 'D'.
        SORT g_t_custdata BY bukrs kunnr.
        SORT g_t_cust     BY kunnr.
        g_t_custdata-acctp = text-d01.
        MODIFY g_t_custdata TRANSPORTING acctp WHERE acctp = ' '.
    Add customer names.
        LOOP AT g_t_custdata WHERE name1 = ' '.
          READ TABLE g_t_cust
               WITH KEY kunnr = g_t_custdata-kunnr BINARY SEARCH.
          IF sy-subrc = 0.
            g_t_custdata-name1 = g_t_cust-name1.
            MODIFY g_t_custdata TRANSPORTING name1 WHERE kunnr =
                   g_t_custdata-kunnr.
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " f1200_fetch_cust_data
    *Eject
    *&      Form  f2000_Prepare_data
          This function module is used to format data according to report
          1. Fetch local or global amount value according to user
             parametrs.
          2. Sign is assigned to each amount
          3. Line items are categorized according to the aging category
          4. Populate document header text.
          5. Populate company names.
    FORM f2000_prepare_data.
      DATA : l_amount TYPE dmbtr,
             l_age_of_item TYPE p,
             l_as_of_age TYPE d,
             l_posting_date TYPE d,
             l_time TYPE t,
             l_count TYPE sy-tabix.
      DATA: BEGIN OF l_t_doc_txt OCCURS 0,
            bukrs TYPE bkpf-bukrs,
            belnr TYPE bkpf-belnr,
            bktxt LIKE bkpf-bktxt,
            END OF l_t_doc_txt.
      DATA: BEGIN OF l_t_curr_txt OCCURS 0,
              bukrs LIKE t001-bukrs,
              waers LIKE t001-waers,
              butxt LIKE t001-butxt,
            END OF l_t_curr_txt.
      PERFORM f9000_progress_indicator USING text-m03.
      l_as_of_age = p_adate.
      MOVE text-t01 TO l_time.
    *Prepare G_T_MAINTAB, 1. Populate vendor data.
      LOOP AT g_t_venddata.
        CLEAR: g_t_maintab, l_amount, l_age_of_item, l_posting_date.
        MOVE-CORRESPONDING g_t_venddata TO g_t_maintab.
        g_t_maintab-tpart = g_t_venddata-lifnr.
    Check for currency selected by the user.
        IF p_local = 'X'.
          l_amount = g_t_venddata-dmbtr.
        ELSE.
          l_amount = g_t_venddata-dmbe2.
        ENDIF.
    Check for type of transaction. Debit or Credit.
        IF g_t_venddata-shkzg = 'H'.
          l_amount = l_amount * -1.
        ENDIF.
        MOVE g_t_venddata-budat TO l_posting_date.
    Assign amount value to appropriate aging category.
    Calculate age of line item
        CALL FUNCTION '/SDF/CMO_DATETIME_DIFFERENCE'
             EXPORTING
                  date1            = l_posting_date
                  time1            = l_time
                  date2            = l_as_of_age
                  time2            = l_time
             IMPORTING
                  datediff         = l_age_of_item
             EXCEPTIONS
                  invalid_datetime = 1
                  OTHERS           = 2.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
        IF l_age_of_item <= p_range1.                           "Range1
          g_t_maintab-amount1 = l_amount.
        ELSE.
          IF l_age_of_item > p_range1 AND l_age_of_item <= p_range2."Range2
            g_t_maintab-amount2 = l_amount.
          ELSE.
            IF l_age_of_item > p_range2
                AND l_age_of_item <= p_range3.                  "Range3
              g_t_maintab-amount3 = l_amount.
            ELSE.                                               "Range4
              g_t_maintab-amount4 = l_amount.
            ENDIF.
          ENDIF.
        ENDIF.
    Assign balance amounts.
        g_t_maintab-balamt  = l_amount.
    Add record to main internal table
        APPEND g_t_maintab.
      ENDLOOP.
    *Prepare G_T_MAINTAB, 2. Populate customer data.
      LOOP AT g_t_custdata.
        CLEAR: g_t_maintab, l_amount, l_age_of_item, l_posting_date.
        MOVE-CORRESPONDING g_t_custdata TO g_t_maintab.
        g_t_maintab-tpart = g_t_custdata-kunnr.
    Check for currency selected by the user.
        IF p_local = 'X'.
          l_amount = g_t_custdata-dmbtr.
        ELSE.
          l_amount = g_t_custdata-dmbe2.
        ENDIF.
    Check for type of transaction. Debit or Credit.
        IF g_t_custdata-shkzg = 'H'.
          l_amount = l_amount * -1.
        ENDIF.
        MOVE g_t_custdata-budat TO l_posting_date.
    Assign amount value to appropriate aging category.
    Calculate age of line item
        CALL FUNCTION '/SDF/CMO_DATETIME_DIFFERENCE'
             EXPORTING
                  date1            = l_posting_date
                  time1            = l_time
                  date2            = l_as_of_age
                  time2            = l_time
             IMPORTING
                  datediff         = l_age_of_item
             EXCEPTIONS
                  invalid_datetime = 1
                  OTHERS           = 2.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
        IF l_age_of_item <= p_range1.                           "Range1
          g_t_maintab-amount1 = l_amount.
        ELSE.
          IF l_age_of_item > p_range1 AND l_age_of_item <= p_range2."Range2
            g_t_maintab-amount2 = l_amount.
          ELSE.
            IF l_age_of_item > p_range2
               AND l_age_of_item <= p_range3.                   "Range3
              g_t_maintab-amount3 = l_amount.
            ELSE.                                               "Range4
              g_t_maintab-amount4 = l_amount.
            ENDIF.
          ENDIF.
        ENDIF.
    Assign balance amounts.
        g_t_maintab-balamt  = l_amount.
        APPEND g_t_maintab.
      ENDLOOP.
      IF NOT g_t_maintab[] IS INITIAL.
        SORT g_t_maintab BY bukrs belnr.
        SELECT bukrs belnr bktxt FROM bkpf
              INTO CORRESPONDING FIELDS OF TABLE l_t_doc_txt
              FOR ALL ENTRIES IN g_t_maintab
              WHERE bukrs = g_t_maintab-bukrs AND
                    belnr = g_t_maintab-belnr AND
                    gjahr = g_t_maintab-gjahr.
        SELECT bukrs butxt waers FROM t001
               INTO CORRESPONDING FIELDS OF TABLE l_t_curr_txt
               WHERE bukrs IN p_ccode.
        SORT l_t_doc_txt BY bukrs belnr.
        SORT l_t_curr_txt BY bukrs.
    Add Document header texts
        LOOP AT g_t_maintab.
          l_count = sy-tabix.
          READ TABLE l_t_doc_txt
               WITH KEY bukrs = g_t_maintab-bukrs belnr = g_t_maintab-belnr
               BINARY SEARCH.
          IF sy-subrc = 0.
            g_t_maintab-bktxt = l_t_doc_txt-bktxt.
            MODIFY g_t_maintab INDEX l_count TRANSPORTING bktxt.
          ENDIF.
          CLEAR l_t_doc_txt-bktxt.
        ENDLOOP.
        PERFORM f9000_progress_indicator USING text-m03.
    Update company name and currency field.
        LOOP AT g_t_maintab WHERE butxt =  ' ' OR waers = ' '.
          READ TABLE l_t_curr_txt
               WITH KEY bukrs = g_t_maintab-bukrs BINARY SEARCH.
          IF sy-subrc = 0.
            g_t_maintab-butxt    = l_t_curr_txt-butxt.
            g_t_maintab-waers    = l_t_curr_txt-waers.
            MODIFY g_t_maintab TRANSPORTING butxt waers
                      WHERE bukrs = g_t_maintab-bukrs.
          ENDIF.
          CLEAR: l_t_curr_txt-butxt, l_t_curr_txt-waers.
        ENDLOOP.
      ENDIF.                    "IF NOT g_t_maintab[] IS INITIAL
    ENDFORM.                    " f2000_Prepare_data
    *Eject
    *&      Form  f4000_write_detailed_rep
          This subroutine is used to write detailed report.
    FORM f4000_write_detailed_rep.
      DATA l_t_maintab LIKE g_t_maintab.
    Variables for summary amount of each account type of a trading pair
      DATA: l_tpart_acc1 TYPE dmbtr,
            l_tpart_acc2 TYPE dmbtr,
            l_tpart_acc3 TYPE dmbtr,
            l_tpart_acc4 TYPE dmbtr,
            l_tpart_acc_bal TYPE dmbtr.
    Variables for summary amount of each trading pair
      DATA: l_tpart1 TYPE dmbtr,
            l_tpart2 TYPE dmbtr,
            l_tpart3 TYPE dmbtr,
            l_tpart4 TYPE dmbtr,
            l_tpart_bal TYPE dmbtr.
      SET TITLEBAR 'DETAILED_REPORT'.
    Prepare header texts for report header.
      CONCATENATE  p_adate4(2)  '/' p_adate6(2) '/' p_adate+0(4) INTO
           g_headertext1.
      CONCATENATE text-h20 g_headertext1
                  INTO g_headertext1 SEPARATED BY space.
      SORT g_t_maintab BY bukrs tpart acctp.
    *Start detailed report.
      FORMAT INTENSIFIED OFF.
      LOOP AT g_t_maintab.
        l_t_maintab = g_t_maintab.
    *At new company code write page header
        AT NEW bukrs.
          g_t_maintab = l_t_maintab.
          NEW-PAGE.
        ENDAT.
    *Write line item records.
        WRITE:/2    l_t_maintab-tpart,      "Trading partner
                14  l_t_maintab-acctp,      "Account type
                17  l_t_maintab-belnr,      "Document number
                35  l_t_maintab-budat,      "posting date
                47  l_t_maintab-xblnr,      "Reference doc. number
                65  l_t_maintab-bktxt,      "Doc header text.
                92  l_t_maintab-balamt,     "balance amount
                114 l_t_maintab-amount1,    "Amount cat 1
                136 l_t_maintab-amount2,    "Amount cat 2
                158 l_t_maintab-amount3,    "Amount cat 3
                180 l_t_maintab-amount4.    "Amount cat 4
        g_t_maintab-bukrs = l_t_maintab-bukrs.
        g_t_maintab-gjahr = l_t_maintab-gjahr.
        g_t_maintab-belnr = l_t_maintab-belnr.
    Hide values so that these can be used on line selection event.
        HIDE: g_t_maintab-bukrs, g_t_maintab-gjahr, g_t_maintab-belnr.
    Calculate amounts for account summary.
        l_tpart_acc1    = l_tpart_acc1 + l_t_maintab-amount1.
        l_tpart_acc2    = l_tpart_acc2 + l_t_maintab-amount2.
        l_tpart_acc3    = l_tpart_acc3 + l_t_maintab-amount3.
        l_tpart_acc4    = l_tpart_acc4 + l_t_maintab-amount4.
        l_tpart_acc_bal = l_tpart_acc_bal + l_t_maintab-balamt.
    Calculate amounts for trading partner summary.
        l_tpart1 = l_tpart1 + l_t_maintab-amount1.
        l_tpart2 = l_tpart2 + l_t_maintab-amount2.
        l_tpart3 = l_tpart3 + l_t_maintab-amount3.
        l_tpart4 = l_tpart4 + l_t_maintab-amount4.
        l_tpart_bal = l_tpart_bal + l_t_maintab-balamt.
    *At end of one account type write summary for account type.
        AT END OF acctp.
          g_t_maintab = l_t_maintab.
          PERFORM f8100_write_acctype_summary
                  USING l_tpart_acc1 l_tpart_acc2 l_tpart_acc3 l_tpart_acc4
                        l_tpart_acc_bal l_t_maintab-acctp l_t_maintab-tpart
                        l_t_maintab-name1.
          CLEAR: l_tpart_acc1, l_tpart_acc2, l_tpart_acc3, l_tpart_acc4,
                 l_tpart_acc_bal.
        ENDAT.
    At end of trading pair, write trading partner summary.
        AT END OF tpart.
          g_t_maintab = l_t_maintab.
          PERFORM f8200_write_tradingpair_summar
                  USING l_tpart1 l_tpart2 l_tpart3 l_tpart4 l_tpart_bal
                        l_t_maintab-tpart l_t_maintab-name1.
          CLEAR: l_tpart1, l_tpart2, l_tpart3, l_tpart4, l_tpart_bal.
        ENDAT.
      ENDLOOP.
    ENDFORM.                    " f4000_write_detailed_rep
    *Eject
    *&      Form  f5000_write_summary_rep
          Subroutine to write summary report.
    FORM f5000_write_summary_rep.
    *Counters for trading partner
      DATA: l_count_tpart  TYPE i,     "Counter for trading pairs.
            l_count_tpart1 TYPE i,     "Trading partner in age cat 1
            l_count_tpart2 TYPE i,     "Trading partner in age cat 2
            l_count_tpart3 TYPE i,     "Trading partner in age cat 3
            l_count_tpart4 TYPE i.     "Trading partner in age cat 4
    Flag for trading partner count.
      DATA: l_flag_tpart1 TYPE c,     "Flag for Trading partner in age cat 1
            l_flag_tpart2 TYPE c,     "Flag for Trading partner in age cat 2
            l_flag_tpart3 TYPE c,     "Flag for Trading partner in age cat 3
            l_flag_tpart4 TYPE c.     "Flag for Trading partner in age cat 4
    Variables to store sum of all line items for a company code.
      DATA: l_comp_amt_bal TYPE dmbtr,
            l_comp_amt1    TYPE dmbtr,
            l_comp_amt2    TYPE dmbtr,
            l_comp_amt3    TYPE dmbtr,
            l_comp_amt4    TYPE dmbtr.
    Internal table to store sum of amounts for all the companies selected.
      DATA: BEGIN OF l_t_compall_amt OCCURS 0,
              waers   LIKE bsad-waers,              "Currency key
              balamt  TYPE dmbtr,                   "Total balance amount
              amount1 TYPE dmbtr,                   "Amount for category 1
              amount2 TYPE dmbtr,                   "Amount for category 2
              amount3 TYPE dmbtr,                   "Amount for category 3
              amount4 TYPE dmbtr,                   "Amount for category 4
            END OF l_t_compall_amt.
      DATA: l_tpart_amt_bal TYPE dmbtr,
            l_tpart_amt1    TYPE dmbtr,
            l_tpart_amt2    TYPE dmbtr,
            l_tpart_amt3    TYPE dmbtr,
            l_tpart_amt4    TYPE dmbtr.
      DATA l_currtxt(11).
      DATA l_t_maintab LIKE g_t_maintab.
    Prepare header texts for report header.
      CONCATENATE  p_adate4(2)  '/' p_adate6(2) '/' p_adate+0(4) INTO
                   g_headertext2.
      CONCATENATE text-t04 p_glacc-low text-h06 p_glacc-high
                  INTO g_headertext1 SEPARATED BY space.
      CONCATENATE text-t03 g_headertext2 INTO g_headertext2 SEPARATED BY
                  space.
      SET TITLEBAR 'SUMMARY_REPORT'.
      SORT g_t_maintab BY bukrs tpart acctp.
    DESCRIBE TABLE g_t_maintab LINES l_count_tpart. "***
      FORMAT INTENSIFIED OFF.
      CLEAR: l_flag_tpart1, l_flag_tpart2, l_flag_tpart3, l_flag_tpart4.
      CLEAR: l_tpart_amt_bal,
             l_tpart_amt1,
             l_tpart_amt2,
             l_tpart_amt3,
             l_tpart_amt4.
      CLEAR: l_comp_amt_bal,
             l_comp_amt1,
             l_comp_amt2,
             l_comp_amt3,
             l_comp_amt4.
    Write summary report.
      LOOP AT g_t_maintab.
        l_t_maintab = g_t_maintab.
    Maintain open items count
        g_open_items = g_open_items + 1.
        IF l_t_maintab-amount1 <> 0.
          g_open_items1 = g_open_items1 + 1.
        ELSEIF l_t_maintab-amount2 <> 0.
          g_open_items2 = g_open_items2 + 1.
        ELSEIF l_t_maintab-amount3 <> 0.
          g_open_items3 = g_open_items3 + 1.
        ELSEIF l_t_maintab-amount4 <> 0.
          g_open_items4 = g_open_items4 + 1.
        ENDIF.
    *Calculate amounts for trading partners and maintain trading partner
    *count.
        l_tpart_amt_bal = l_tpart_amt_bal + l_t_maintab-balamt.
        IF g_t_maintab-amount1 <> 0.
          l_tpart_amt1    = l_tpart_amt1    + l_t_maintab-amount1.
    Increase count according to flag.
          IF l_flag_tpart1 IS INITIAL.
            l_count_tpart1 = l_count_tpart1 + 1.
            l_flag_tpart1 = 'X'.
          ENDIF.
        ELSEIF g_t_maintab-amount2 <> 0.
          l_tpart_amt2    = l_tpart_amt2    + l_t_maintab-amount2.
    Increase count according to flag.
          IF l_flag_tpart2 IS INITIAL.
            l_count_tpart2 = l_count_tpart2 + 1.
            l_flag_tpart2 = 'X'.
          ENDIF.
        ELSEIF g_t_maintab-amount3 <> 0.
          l_tpart_amt3    = l_tpart_amt3    + l_t_maintab-amount3.
    Increase count according to flag.
          IF l_flag_tpart3 IS INITIAL.
            l_count_tpart3 = l_count_tpart3 + 1.
            l_flag_tpart3 = 'X'.
          ENDIF.
        ELSEIF g_t_maintab-amount4 <> 0.
          l_tpart_amt4    = l_tpart_amt4    + l_t_maintab-amount4.
    Increase count according to flag.
          IF l_flag_tpart4 IS INITIAL.
            l_count_tpart4 = l_count_tpart4 + 1.
            l_flag_tpart4 = 'X'.
          ENDIF.
        ENDIF.                                     "g_t_maintab-amount1 <> 0
    Calculate total of amount for all companies
    Separate totals into different rows for different local currency.
        IF p_local = 'X'.
          READ TABLE l_t_compall_amt WITH KEY waers = l_t_maintab-waers.
        ELSE.
          READ TABLE l_t_compall_amt INDEX 1.
        ENDIF.
        IF sy-subrc = 0.
          l_t_compall_amt-balamt  = l_t_compall_amt-balamt  +
                                    l_t_maintab-balamt.
          l_t_compall_amt-amount1 = l_t_compall_amt-amount1  +
                                    l_t_maintab-amount1.
          l_t_compall_amt-amount2 = l_t_compall_amt-amount2  +
                                    l_t_maintab-amount2.
          l_t_compall_amt-amount3 = l_t_compall_amt-amount3  +
                                    l_t_maintab-amount3.
          l_t_compall_amt-amount4 = l_t_compall_amt-amount4  +
                                    l_t_maintab-amount4.
          MODIFY l_t_compall_amt FROM l_t_compall_amt INDEX sy-tabix.
        ELSE.
          MOVE-CORRESPONDING l_t_maintab TO l_t_compall_amt.
          IF NOT p_local = 'X'.
            MOVE 'GRP' TO l_t_maintab-waers.
          ENDIF.
          APPEND l_t_compall_amt.
        ENDIF.
    Calculate total amount for current company.
        l_comp_amt_bal = l_comp_amt_bal + l_t_maintab-balamt.
        l_comp_amt1    = l_comp_amt1    + l_t_maintab-amount1.
        l_comp_amt2    = l_comp_amt2    + l_t_maintab-amount2.
        l_comp_amt3    = l_comp_amt3    + l_t_maintab-amount3.
        l_comp_amt4    = l_comp_amt4    + l_t_maintab-amount4.
        IF p_local = 'X'.
          CONCATENATE text-h04 l_t_maintab-waers
                      INTO l_currtxt SEPARATED BY space.
        ELSE.
          MOVE text-h05 TO l_currtxt.
        ENDIF.
    Write subtotal for each trading partner.
        AT END OF tpart.
          l_count_tpart = l_count_tpart + 1.
    Write the summary lines
          WRITE:/2    l_t_maintab-bukrs,
                 10   l_t_maintab-tpart,
                 42   l_tpart_amt_bal,
                 64   l_currtxt,
                 87   l_tpart_amt1,
                 109  l_tpart_amt2,
                 131  l_tpart_amt3,
                 153  l_tpart_amt4.
          CLEAR: l_tpart_amt_bal,
                 l_tpart_amt1,
                 l_tpart_amt2,
                 l_tpart_amt3,
                 l_tpart_amt4.
          CLEAR: l_flag_tpart1, l_flag_tpart2, l_flag_tpart3, l_flag_tpart4.
        ENDAT.
    Write subtotal for each company code.
        AT END OF bukrs.
          PERFORM f8300_write_comp_summ USING l_comp_amt_bal
                                              l_comp_amt1
                                              l_comp_amt2
                                              l_comp_amt3
                                              l_comp_amt4
                                              l_t_maintab-bukrs
                                              l_t_maintab-butxt
                                              l_t_maintab-waers.
          CLEAR: l_comp_amt_bal,
                 l_comp_amt1,
                 l_comp_amt2,
                 l_comp_amt3,
                 l_comp_amt4.
        ENDAT.
      ENDLOOP.
     

  • System (AGE3) 'Customer Aging Report' does not print BP Ref. No.

    Hi Experts!
    I have a question about the PLD for the Customer Aging Report (AGE3 = Collection Report). This system print layout does not print the BP Ref. No. in that field.
    And when I went into the PLD, that field (and the other repetitive fields) are text fields. How do I get the BP Ref. No. to print in the field?
    Any help would be greatly appreciated.
    Marli

    Hi Marli,
    If the PLD is of System report , then you have to heck that in ocrd table what is the field name of BP ref no. and try to convert that text field into database field and give the ref of ocrd BP ref no.
    However the chnces of working fine for the above sol. is very low  as we will not prefer to change the system report.
    You should go for QLD or Crystal report  for that .
    Rgds,
    Premraj

  • Opening Balance in Customer Aging report

    Hi Gurus,
    I am making the Customer aging report am facing a problem in the calculation of 'opening balance'.
    If the opening balance has to done by using routines how to do it.
    I am using the 0FI_AR_4 datasource.
    I am getting Debit amount , Credit amount , and Balance. They can be seen in R/3 in the
    Tcode: FD10N.
    the balance must be calculated with the previous balance.
    How to write the routine / what logic must be used . If you have the code please paste it
    here or send to:   [email protected]
    regards
    Edited by: man man on Jan 16, 2008 11:04 AM

    Hi,
    I am making a report for the Customer Aging.
    using the keyfigures 'Debit'(Collections), 'Credit'(Sales), 'Balance'
    and the characteristics 'G/L Account', 'Customer'.
    I want all the above infoobjects in the report.
    regards,
    man

  • Reconciled transactions appearing in customer aging report

    Hi all,
    I have 2 Invoices amount to 2000 rs say 1000 rs each.I received a payment of 1900 rs i.e a 100 rs less for the 2 invoices.My accountant has recorded this in the following manner that he has selected both the invoices and an "On account" payment of -100, so the entire transaction got balanced.As a result both the invoices are closed as well.
    Now my question is ....can we treat this a reconclied trasaction or an Un-reconciled trasaction.Will these both invoices appear in the customer aging report if we select "display reconciled trasactions" option.
    Regards & Advance thanks,
    Mobin

    Which SAP B1 Version and Patch is under use at your end ?
    There were issues in SAP B1 regarding reconcilliations in versions prior to 2007 series.
    Samir Gandhi

  • Customer Age report

    Hi sap guru's
    In the customer age report, i have given specific parameters for profitcenter for ex. 1000 to 1010 but when i ran this report exists 1000 to 1010 proitcenter along with dummy profit center. If we give proper specification for the profit center then it should not display the report of dummy profit center.
    please let me know hoe it solve the same.
    Thanks in advance
    venu

    Hi sridevi,
    thanks for response.
    i hope you have not understand my point. actually in Standard Customer age report have so many parameters like profit center, fiscal year, date and etc.,
    So, i have give parameters for profit center 1000 & 1001 so, the report should display only these profit centers report only but now along with these details this standard program displaying dummy profit center details also.
    if we give specifications for profit center then that specifications report only should generate and should not come other (Dummy proficenter) report.
    Please let me know how to solve the same.
    venu

  • AR Customer Aging - Calculations

    Hi
    I wanted to customize the customer aging report in AR,
    i was using the ORACLE API to calculate the aging, the API does not take care of the receipts, and reverse amout,
    I ended up in defining a new query for calcuating the receipts and reversal amount, i could not make it 100% success as there was complex conditions ...
    does the oracle provide any API to calcuate the receipts and reversal amount...
    pls do let me know if any..
    Regards
    Yram

    Hello.
    This query will show you the customer open receivable transactions:
    select c.customer_name,
    decode(ps.class, 'PMT', 'Payment', 'INV', 'Invoice', 'DM', 'Debit Memo', 'CM', 'Credit Memo') Type,
    ps.trx_number,
    ps.trx_date "Inv Date",
    ps.due_date "Due Date",
    ps.acctd_amount_due_remaining "Amount Remaining"
    from ar_payment_schedules_all ps,
    ra_customers c
    where c.customer_id = ps.customer_id
    and ps.status = 'OP'
    and ps.org_id = &orgID
    and c.customer_number = &CustNumber
    Octavio

  • Customer aging & sales

    Hai expert
    How Show the customer  the aging 0-30, sales, sum (customer aging 0-30 + sales) = totaly
    Thx

    Hi siauling,
    If you need the Customer Aging(30 Days) Report.
    Try this,
    ->> Financials.
    ->> Accounting.
    ->> Aging.
    ->> Customer Receivable Aging.
    ->> Open the Customer Receivable Aging Window and Select the (FROM - TO) Customer Code.
    ->> Put the Aging Date and Select the Interval of Days then put the 30 days.
    Else,
    If you need other different details of Customer Aging Report.
    Try to Create Query Report.
    Regards,
    Madhan.

Maybe you are looking for

  • How to create a stored procedure in a dynamic schema

    Hi, I want to create a stored procedure in a dynamic shcema (schema name will be known at run time). Can any one guide me on this. I tried using define var1=schema1; and then in create or replace procedure &var1.porcName( ) but it is not working Than

  • Email reply from ATT regarding IPhone upgrades

    I finally got a long email back from ATT. Most of it was the same rhetoric thats in their fine print. Here is part of the email from the man who emailed me back. Does that mean we are basically screwed? I went on my account info to check pricing for

  • Upload table with a flat file Once - without program

    Hello, I know that it is possible to upload a Z table from a flat file. (without program) I do not have a problem with this table. I manage a  maintenance view (SM30) and I can thus enter one by one a recording in this table and to put it in an trans

  • XI Demo data generation

    I was trying to install the flight demo and get to the point where I need to generate flight data. According to the menu, there should be an menu path to execute the program (Exchange Infrastructure->Demo Examples-> Settings: Generate Flight Data), h

  • Reinstalling elements 6 & premiere 4

    My computer crashed & now I am rebuilding my various software & trying to reinstall both the Photoshop elements 6 & premiere 4 from my original installation cd's.  after a seeminly install I get an error message that the installation was interrupted