Payment performance

I want to calculate customer payment performance by profit center it is a report.
Caluation clue.
Performance is a measure of when the payment was made versus the due date calculated by the payment terms.
i want the logic to be included in the following code.

hi,
try with this function module
ITEM_OVERDUE_DAYS
cheers,
sasi

Similar Messages

  • Payment Performance Report

    Dear Experts,
               Following is the scenario,
    Sales Person           Raj
    Customer Code       C1000
    Payment Terms       15 days
    Invoice Date            01.02.2010
    Invoice Value          20000
    Payment Date          20.02.2010
    Payment Amount     20000
    Payment performance  0%
    As the customer has not paid within the credit days, when i execute a query based on the sales person and posting date (From, To) parameters the payment performance should result 0%.
    Is the same possible to generate through query?
    Awaiting your reply
    saravanan
    Edited by: Sanbrahma39 on Feb 16, 2010 1:01 PM

    Dear Gordon,
              As  rightly conveyed the payment performance is calculated based on the (Paidtodate/Doctotal)*100. I tried to generate the report using query
    SELECT T0.[DocNum], T0.[DocDate], T0.[CardName], T0.[DocTotal], T0.[PaidToDate] FROM OINV T0  INNER JOIN OSLP T1 ON T0.SlpCode = T1.SlpCode WHERE T1.[SlpName] = [%0] and  T0.[DocDate] > = [%1] and T0.[DocDate] < = [%2].
    The thing is SAP delivered the result perfectly based on the query given above, now the condition is like the query has to check the payment received within the payment terms, then only it need to consider for payment performance.
    Ex:
    Sales Employee   - Raj
    Customer Code    -C1000
    Payment Terms    -15 days
    IN1 Date                - 01.02.2010
    IN1 Amount          - 10000
    Payment Date      - 14.02.2010
    Payment Amt       - 10000
    IN2 Date              - 02.02.2010
    IN2 Amount        - 40000
    Payment Date     - 19.02.2010
    Payment Amount - 40000
    Now if i try to generate a payment performance report of a sales employee Raj as per my query it would show 100% as payment terms is not been considered.
    I need a query to consider the payment terms also so when i generate a report the payment performance should be 20% only.
    Hope this assists
    Saravanan

  • Calculation of customer payment performance   by profit center

    I want to calculate customer payment performance by profit center  it is a report.
    Caluation clue.
    <b>Performance is a measure of when the payment was made versus the due date calculated by the payment terms</b>.
    i want the logic to be included in the following code.
    REPORT                                               
    TABLE DECLARATIONS
    TABLES: BFOD_A,         "FI subsequent BA/PC adjustment: Customer items
            BSID,           "Open Items
            BSAD,           "Cleared Items
            BKPF,           "Docuemnt Header
            KNA1,           "Customer Master
            CEPCT,          "Texts for Profit Center Master Data
            CEPC,           "Profit center master data table
            SKB1,           "G/L account master
            VBFA,           "Sales Document Flow
            VBAK.           "Sales Document: Header Data
    CONTROLS: TABAGING TYPE TABLEVIEW USING SCREEN 9000.
    FIELD-SYMBOLS: <COLUMN>.
    Internal tables followed by types
    TYPES: BEGIN OF T_TOTAL,
             WAERS  LIKE COEP-TWAER,
             DAYS01 LIKE COEP-WTGBTR,
             DAYS02 LIKE COEP-WTGBTR,
             DAYS03 LIKE COEP-WTGBTR,
             DAYS04 LIKE COEP-WTGBTR,
             DAYS05 LIKE COEP-WTGBTR,
             TOTAL  LIKE COEP-WTGBTR,
           END OF T_TOTAL.
    DATA: V_DISVARIANT       TYPE DISVARIANT,
          REF_CUSTOM         TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
          REF_ALV_ZRPT       TYPE REF TO CL_GUI_ALV_GRID.
    DATA: V_SAVE(1)    TYPE C,
          V_DEFAULT(1) TYPE C,
          V_VARIANT    TYPE DISVARIANT,
          V_SORT       TYPE LVC_S_SORT,
          V_LAYOUT     TYPE LVC_S_LAYO,
          V_SAVE_TABIX LIKE SY-TABIX,
          V_SAVE_TIME  LIKE SY-UZEIT,
          V_ALV_FIELDCAT TYPE LVC_S_FCAT,
          V_SAVE_INDEX LIKE SY-TABIX,
          V_ROW        TYPE LVC_S_ROW,
          V_ROWS       TYPE LINE OF LVC_T_ROW.
    DATA: BEGIN OF V_HDR,
            CURKY(9) TYPE C,
            CURR(20) TYPE C,
            COL1(20) TYPE C,
            COL2(20) TYPE C,
            COL3(20) TYPE C,
            COL4(20) TYPE C,
            TOTAL(20) TYPE C,
          END OF V_HDR.
    DATA: BEGIN OF V_FIELD,
            NAME(15) TYPE C,
            VALUE(17) TYPE C,
          END OF V_FIELD.
    DATA: BEGIN OF I_BFOD_A OCCURS 0,
            PRCTR LIKE BFOD_A-PRCTR,
            KUNNR LIKE BFOD_A-KUNNR,
            BUKRS LIKE BFOD_A-BUKRS,
            GJAHR LIKE BFOD_A-GJAHR,
            BELNR LIKE BFOD_A-BELNR,
            BUZEI LIKE BFOD_A-BUZEI,
            AUGDT LIKE BFOD_A-AUGDT,
            HKONT LIKE BFOD_A-HKONT,
            BUDAT LIKE BFOD_A-BUDAT,
            SHKZG LIKE BFOD_A-SHKZG,
            DMBTR LIKE BFOD_A-DMBTR,
            DMBE2 LIKE BFOD_A-DMBE2,
          END OF I_BFOD_A.
    DATA: I_SET_VALUES   LIKE SETVALUES OCCURS 0 WITH HEADER LINE,
          I_SORT         TYPE LVC_T_SORT,
          I_ALV_FIELDCAT TYPE LVC_T_FCAT,
          I_PRCTR_COCD   TYPE FCINPCA001 OCCURS 0 WITH HEADER LINE,
          I_BFODA_KUNNR  LIKE I_BFOD_A OCCURS 0 WITH HEADER LINE,
    Begin of changes for DEVK909110
         I_REPORT       TYPE ZFR0ARPR_S1 OCCURS 0 WITH HEADER LINE,
          I_REPORT       TYPE ZPSS_ARBYPC OCCURS 0 WITH HEADER LINE,
    End of changes for DEVK909110
          I_FAEDE        LIKE FAEDE,
          I_TOTAL        TYPE T_TOTAL OCCURS 0 WITH HEADER LINE.
    DATA: BEGIN OF I_BKPF OCCURS 0,
            BUKRS LIKE BKPF-BUKRS,
            BELNR LIKE BKPF-BELNR,
            GJAHR LIKE BKPF-GJAHR,
            BKTXT LIKE BKPF-BKTXT,
            XBLNR LIKE BKPF-XBLNR,
            HWAER LIKE BKPF-HWAER,
            HWAE2 LIKE BKPF-HWAE2,
          END OF I_BKPF.
    *... combine BSAD and BSID
    DATA: BEGIN OF I_BSYD OCCURS 0,
            KUNNR LIKE BSID-KUNNR,
            BUKRS LIKE BSID-BUKRS,
            GJAHR LIKE BSID-GJAHR,
            BELNR LIKE BSID-BELNR,
            BUZEI LIKE BSID-BUZEI,
            AUGDT LIKE BSID-AUGDT,
            BLDAT LIKE BSID-BLDAT,
            BUDAT LIKE BSID-BUDAT,
            HKONT LIKE BSID-HKONT,
            WAERS LIKE BSID-WAERS,
            ZFBDT LIKE BSID-ZFBDT,
            ZBD1T LIKE BSID-ZBD1T,
            ZBD2T LIKE BSID-ZBD2T,
            ZBD3T LIKE BSID-ZBD3T,
            XBLNR LIKE BSID-XBLNR,
            REBZG LIKE BSID-REBZG,
            SHKZG LIKE BSID-SHKZG,
            DMBTR LIKE BSID-DMBTR,
            WRBTR LIKE BSID-WRBTR,
          END OF I_BSYD.
    DATA: BEGIN OF I_CEPC OCCURS 0,
             PRCTR LIKE CEPC-PRCTR,
             KHINR LIKE CEPC-KHINR,
          END OF I_CEPC.
    DATA: BEGIN OF I_CEPCT OCCURS 0,
             PRCTR LIKE CEPCT-PRCTR,
             MCTXT LIKE CEPCT-MCTXT,
          END OF I_CEPCT.
    DATA: BEGIN OF I_PRCTR OCCURS 0,
            PRCTR LIKE BFOD_A-PRCTR,
          END OF I_PRCTR.
    DATA: BEGIN OF I_KNA1 OCCURS 0,
             KUNNR LIKE KNA1-KUNNR,
             NAME1 LIKE KNA1-NAME1,
          END OF I_KNA1.
    Working Variables Declarations
    *... accumulators
    DATA: V_BFOD_TXNAMT LIKE BSID-WRBTR,    "transaction currency amt
          V_FRCURR      LIKE TCURR-FCURR,   "local currency
          V_TOCURR      LIKE TCURR-FCURR,   "local currency
          V_LCURR       LIKE T001-WAERS,    "local currency
          V_CUSTTOTUSD  LIKE BFOD_A-DMBE2,  "customer total grp curr
          V_TOTAL       LIKE BPPE-WTP03,    "days total grp curr
          V_CURRENT     LIKE BPPE-WTP03,    "days current grp curr
          V_TOTAL_USD   LIKE BPPE-WTP03,    "days total grp curr
          V_TOTAL_ROW   LIKE BPPE-WTP03.    "total of local curr/row
    DATA: V_PRCTR          LIKE CEPC-PRCTR,   "profit center
          V_SUBRC          LIKE SY-SUBRC,
          V_FLAG           TYPE I,
          V_DPAST          TYPE I,     "past due days working
          V_GRAND          TYPE C,
          V_DIFF_COLOR     TYPE C,
          V_MSG(50)        TYPE C,
          V_SAVE_PCFN(128) TYPE C,
          V_EXTENSION(4)   TYPE C,
          V_PREV_PRCTR     LIKE CEPC-PRCTR,
          V_POS            LIKE SY-FDPOS,
          V_SAVE_BUKRS     LIKE BFOD_A-BUKRS,
          V_SAVE_KHINR     LIKE CEPC-KHINR,
          V_PERC           TYPE P DECIMALS 10,
          V_ZBD1T          LIKE BSID-ZBD1T,
          V_ZFBDT          LIKE BSID-ZFBDT,
          V_GROUP_CLASS    LIKE RGSBS-CLASS,
          V_GROUP_NAME     LIKE RGSBS-SETNR,
          V_GROUP_TITLE    LIKE RGSBS-TITLE,
          V_SETID          LIKE SETHIER-SETID,
          V_FILETYPE       LIKE RLGRAP-FILETYPE VALUE 'DAT',
          V_CNT            LIKE SY-TABIX,
          V_PREV_BELNR     LIKE BSID-BELNR,
          V_REPORT1        LIKE I_REPORT,
          V_REPORT         LIKE I_REPORT,
          V_TABIX          LIKE SY-TABIX.
    Constants
    CONSTANTS:
          C_0H(2)     TYPE C VALUE '0H',
          C_0106(4)   TYPE C VALUE '0106',
          C_SPACE(11) TYPE C VALUE '          ',
          C_USD(3)    TYPE C VALUE 'USD',
          C_KBRC      LIKE CEPC-KOKRS VALUE 'KBRC',
          C_TXT(4)    TYPE C VALUE '.txt',
          C_XLS(4)    TYPE C VALUE '.xls',
          C_RTF(4)    TYPE C VALUE '.rtf',
          C_PERIOD(1) TYPE C VALUE '.',
          C_TODATE    LIKE CEPC-DATBI VALUE '99991231'.
    RANGES: R_KUNNR FOR KNA1-KUNNR.         "Customer
    Selection Screen Parameters and Select-options
    SELECTION-SCREEN SKIP 1.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETERS:     P_KHINR LIKE CEPC-KHINR.
    SELECT-OPTIONS: S_PRCTR FOR CEPC-PRCTR,
                    S_KUNNR FOR KNA1-KUNNR,
                    S_BUKRS FOR BKPF-BUKRS,
                    S_HKONT FOR SKB1-SAKNR.
    PARAMETERS:     P_BUDAT LIKE BFOD_A-BUDAT OBLIGATORY.
    SELECTION-SCREEN ULINE.
    SELECT-OPTIONS: S_BELNR FOR BFOD_A-BELNR,
                    S_AUART FOR VBAK-AUART,
                    S_VTWEG FOR VBAK-VTWEG,
                    S_VBTYP FOR VBFA-VBTYP_V.
    SELECTION-SCREEN ULINE.
    PARAMETERS: P_AGEDY TYPE ZZAGEMULT DEFAULT '30' OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK B1.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME.
    PARAMETERS: P_DSVAR LIKE DISVARIANT-VARIANT.
    SELECTION-SCREEN END OF BLOCK B2.
    class lcl_event_receiver: local class to handle event DOUBLE_CLICK
    Definition:
    CLASS LCL_EVENT_RECEIVER DEFINITION.
      PUBLIC SECTION.
        METHODS:
        MTH_PRINT_TOP_OF_PAGE
            FOR EVENT PRINT_TOP_OF_PAGE OF CL_GUI_ALV_GRID.
        METHODS:
        MTH_PRINT_TOP_OF_LIST
            FOR EVENT PRINT_TOP_OF_LIST OF CL_GUI_ALV_GRID.
      PRIVATE SECTION.
    ENDCLASS.                    "lcl_event_receiver DEFINITION
    class lcl_event_receiver: local class to handle event DOUBLE_CLICK
    Implementation:
    CLASS LCL_EVENT_RECEIVER IMPLEMENTATION.
      METHOD MTH_PRINT_TOP_OF_PAGE.
        CALL FUNCTION 'Z_CA_STD_HEADER'
          EXPORTING
            HEADING    = SY-TITLE
            P_REPID    = SY-CPROG
            LINE_WIDTH = SY-LINSZ.
      ENDMETHOD.                    "MTH_PRINT_TOP_OF_PAGE
      METHOD MTH_PRINT_TOP_OF_LIST.
        CALL FUNCTION 'Z_CA_STD_HEADER'
          EXPORTING
            HEADING    = SY-TITLE
            P_REPID    = SY-CPROG
            LINE_WIDTH = SY-LINSZ.
        CALL FUNCTION 'Z_CA_PRINT_SELECTION_OPTIONS'
          EXPORTING
            P_PGMN  = SY-CPROG
            P_SKIP  = 'X'
            P_NOTOP = 'X'.
        NEW-PAGE.
      ENDMETHOD.                    "MTH_PRINT_TOP_OF_LIST
    ENDCLASS.                    "LCL_EVENT_RECEIVER IMPLEMENTATION
    DATA: REF_EVENT_RECEIVER TYPE REF TO LCL_EVENT_RECEIVER.
    Selection Screen Prompt values
      At Selection Screen
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_DSVAR.
      DATA: LS_DISPLAY_VARIANT TYPE DISVARIANT.
    Get the display variant
      V_DISVARIANT-REPORT  = SY-CPROG.
      V_DISVARIANT-VARIANT = P_DSVAR.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
        EXPORTING
          IS_VARIANT = V_DISVARIANT
          I_SAVE     = 'A'
        IMPORTING
          ES_VARIANT = LS_DISPLAY_VARIANT
        EXCEPTIONS
          OTHERS     = 3.
    Load results to parameter
      IF SY-SUBRC = 0 AND NOT LS_DISPLAY_VARIANT IS INITIAL.
        P_DSVAR = LS_DISPLAY_VARIANT-VARIANT.
      ENDIF.
    *...performed when looking for values in fields
      performs the drop down selection list
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_KHINR.     "Profit center grp
      PERFORM F_GET_S_KHINR.
    Selection Screen validations
    AT SELECTION-SCREEN.
      IF P_KHINR IS INITIAL.
        IF S_PRCTR[] IS INITIAL.
          IF S_BUKRS[] IS INITIAL.
            MESSAGE E000 WITH TEXT-300 TEXT-302.
          ENDIF.
        ENDIF.
      ELSE.
        IF S_PRCTR[] IS INITIAL.
          PERFORM F_VALIDATE_KHINR.
        ELSE.
    *.. Error msg: Please enter either a Profit Center Group or a
                 profit center, but not both
          MESSAGE E000 WITH TEXT-300 TEXT-301.
          EXIT.
        ENDIF.
      ENDIF.
      IF NOT S_AUART[] IS INITIAL.
        MESSAGE E000 WITH TEXT-303.
      ENDIF.
      IF NOT S_VTWEG[] IS INITIAL.
        MESSAGE E000 WITH TEXT-304.
      ENDIF.
       Event AT LINE-SELECTION
    AT LINE-SELECTION.
      CHECK SY-LSIND LE 1.
      CHECK NOT I_REPORT-BELNR IS INITIAL.
      SET PARAMETER ID 'BLN'  FIELD I_REPORT-BELNR.
      SET PARAMETER ID 'BUK'  FIELD I_REPORT-BUKRS.
      SET PARAMETER ID 'GJR'  FIELD I_REPORT-GJAHR.
      CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
      CLEAR: I_REPORT-BELNR, I_REPORT-BUKRS, I_REPORT-GJAHR.
    INITIALIZATION
    INITIALIZATION.
    START OF MAIN PROCESSING
    START-OF-SELECTION.
    Check aging days multiplier
      IF P_AGEDY LE 0.
        MESSAGE S000 WITH 'Aging Days Multiplier must be greater than zero'.
        EXIT.
      ENDIF.
    Populate the s_prctr from a profit center group
      IF NOT I_SET_VALUES[] IS INITIAL.
        PERFORM F_POPULATE_PRCTR_FROM_PRCTRGRP.
      ENDIF.
    Build and validate prctr against cepc table
      IF NOT S_PRCTR[] IS INITIAL.
        PERFORM F_BUILD_I_CEPC_TABLE.      "FILLS THE VALID PROFIT CTR TABLE
      ENDIF.
    Get base selections
      PERFORM F_SELECT_DATA.               "BUILD REF INTERNAL TABLES
    Get additional fields and build reporting structure
      PERFORM F_BUILD_I_REPORT.            "BUILDS INTERNAL REPORTING TABLE
    Generate ALV report
      PERFORM F_WRITE_REPORT.              "WRITES i_report AND RUNS CALCS
    END-OF-SELECTION.
      FREE: I_BFOD_A, I_KNA1, I_CEPC, I_CEPCT, I_REPORT.
          Form  F_DIS_MSG
    FORM F_DIS_MSG USING VALUE(P_PERCENTAGE) VALUE(P_TEXT).
      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
        EXPORTING
          PERCENTAGE = P_PERCENTAGE
          TEXT       = P_TEXT
        EXCEPTIONS
          OTHERS     = 1.
    ENDFORM.                               " F_DIS_MSG
          Form  F_GET_S_KHINR
          Get prompt values for Profit Center Group
    FORM F_GET_S_KHINR.
      PERFORM F_DIS_MSG USING 100 'Get prompt values for Profit Ctr Group.'.
      COMMIT WORK.
      CALL FUNCTION 'K_GROUP_SELECT'
        EXPORTING
          BUTTONS            = 'X'
          CLASS              = '0H  '
          CRUSER             = '*'
          FIELD_NAME         = 'RPRCTR'
          SEARCHFLD          = 'KBRC'
          SEARCHFLD_INPUT    = ' '
          SEARCHFLD_REQUIRED = 'X'
          SET                = '*'
          START_COLUMN       = 10
          START_ROW          = 5
          TABLE              = 'GLPCT'
          TYPELIST           = 'BS'
          UPDUSER            = '*'
        IMPORTING
          CLASS_NAME         = V_GROUP_CLASS
          SET_NAME           = V_GROUP_NAME
          SET_TITLE          = V_GROUP_TITLE
        EXCEPTIONS
          NO_SET_PICKED      = 1
          OTHERS             = 2.
      IF SY-SUBRC = 0.
        P_KHINR = V_GROUP_NAME.
      ENDIF.
    ENDFORM.                               " F_GET_S_KHINR
          FORM F_VALIDATE_KHINR                                         *
    FORM F_VALIDATE_KHINR.
      PERFORM F_DIS_MSG USING 100 'Validate Profit Center group.'.
      COMMIT WORK.
      CLEAR I_SET_VALUES.
      REFRESH I_SET_VALUES.
      CONCATENATE C_0106  C_KBRC P_KHINR INTO V_SETID.
      CONDENSE V_SETID.
      CALL FUNCTION 'G_SET_TREE_IMPORT'
        EXPORTING
          CLIENT                    = SY-MANDT
          FIELDNAME                 = 'RPRCTR'
          LANGU                     = SY-LANGU
          SETID                     = V_SETID
          TABNAME                   = 'GLPCT'
          NO_TABLE_BUFFERING        = 'X'
        TABLES
          SET_VALUES                = I_SET_VALUES
        EXCEPTIONS
          SET_NOT_FOUND             = 1
          ILLEGAL_FIELD_REPLACEMENT = 2
          ILLEGAL_TABLE_REPLACEMENT = 3
          OTHERS                    = 4.
      IF SY-SUBRC NE 0.
    E: Unable to find Profit Center Group & - please modify selection
        MESSAGE E000 WITH TEXT-002 P_KHINR.
      ENDIF.
      IF I_SET_VALUES[] IS INITIAL.
        MESSAGE E000 WITH P_KHINR TEXT-039.
      ENDIF.
    ENDFORM.                               " F_VALIDATE_KHINR
          Form  F_SELECT_DATA
    FORM F_SELECT_DATA.
      PERFORM F_DIS_MSG USING 100 'Retrieve info from SAP tables.'.
      COMMIT WORK.
    Build the BFOD_A internal table based on user selections
    f i_cepc table is initial, it means derive all prctr under a co cd
      IF S_PRCTR[] IS INITIAL.
        PERFORM F_RETRIEVE_BFODA_BY_COMPANY.
      ELSE.
        PERFORM F_RETRIEVE_BFODA_BY_PRCTR.
      ENDIF.
      IF I_BFOD_A[] IS INITIAL.
    *... No records fit selection criteria.
        MESSAGE E000 WITH TEXT-H20.
      ENDIF.
    Get the text for profit center
      SELECT SPRAS PRCTR DATBI KOKRS MCTXT FROM CEPCT
                 INTO CORRESPONDING FIELDS OF TABLE I_CEPCT
                  FOR ALL ENTRIES IN I_CEPC
                WHERE SPRAS = SY-LANGU
                  AND PRCTR = I_CEPC-PRCTR.
    Build an internal table of unique bfod keys for bsid and bsad
      I_BFODA_KUNNR[] = I_BFOD_A[].
      SORT I_BFODA_KUNNR BY KUNNR BUKRS GJAHR BELNR BUZEI.
      DELETE ADJACENT DUPLICATES FROM I_BFODA_KUNNR COMPARING
         KUNNR BUKRS GJAHR BELNR BUZEI.
    Build BSID Internal table
      SELECT MANDT BUKRS KUNNR UMSKS UMSKZ AUGDT AUGBL ZUONR GJAHR BELNR
             BUZEI BUDAT HKONT BLDAT WAERS REBZG XBLNR SHKZG DMBTR
             WRBTR ZFBDT ZBD1T ZBD2T ZBD3T
                FROM BSID INTO CORRESPONDING FIELDS OF TABLE I_BSYD
                 FOR ALL ENTRIES IN I_BFODA_KUNNR
               WHERE KUNNR EQ I_BFODA_KUNNR-KUNNR
                 AND BUKRS EQ I_BFODA_KUNNR-BUKRS
                 AND GJAHR EQ I_BFODA_KUNNR-GJAHR
                 AND BELNR EQ I_BFODA_KUNNR-BELNR
                 AND BUZEI EQ I_BFODA_KUNNR-BUZEI.
    Build BSAD internal table
      SELECT MANDT BUKRS KUNNR UMSKS UMSKZ AUGDT AUGBL ZUONR GJAHR BELNR
          BUZEI HKONT BUDAT BLDAT WAERS REBZG XBLNR SHKZG DMBTR WRBTR ZFBDT
          ZBD1T ZBD2T ZBD3T
             FROM BSAD APPENDING CORRESPONDING FIELDS OF TABLE I_BSYD
              FOR ALL ENTRIES IN I_BFODA_KUNNR
            WHERE KUNNR EQ I_BFODA_KUNNR-KUNNR
              AND BUKRS EQ I_BFODA_KUNNR-BUKRS
              AND AUGDT GT P_BUDAT
              AND GJAHR EQ I_BFODA_KUNNR-GJAHR
              AND BELNR EQ I_BFODA_KUNNR-BELNR
              AND BUZEI EQ I_BFODA_KUNNR-BUZEI.
      IF NOT I_BSYD[] IS INITIAL.
    Remove records based on selection criteria
        DELETE I_BSYD WHERE
           NOT BUDAT LE P_BUDAT OR
           NOT HKONT IN S_HKONT.
      ENDIF.
    Acquire document headers
      SELECT BUKRS BELNR GJAHR BKTXT XBLNR HWAER HWAE2 FROM BKPF
                    INTO TABLE I_BKPF
                    FOR ALL ENTRIES IN I_BSYD
                    WHERE BUKRS EQ I_BSYD-BUKRS
                      AND BELNR EQ I_BSYD-BELNR
                      AND GJAHR EQ I_BSYD-GJAHR.
    Sort document lines
      SORT I_BSYD BY KUNNR BUKRS GJAHR BELNR BUZEI ASCENDING.
      SORT I_BKPF BY  BUKRS BELNR GJAHR ASCENDING.
    Create table of unique customers
      SORT I_BFODA_KUNNR BY KUNNR.
      DELETE ADJACENT DUPLICATES FROM I_BFODA_KUNNR COMPARING KUNNR.
    Build customer table
      SELECT KUNNR NAME1 FROM KNA1
                INTO TABLE I_KNA1
                 FOR ALL ENTRIES IN I_BFODA_KUNNR
               WHERE KUNNR EQ I_BFODA_KUNNR-KUNNR.
    Free memory space
      FREE I_BFODA_KUNNR.
    ENDFORM.                               " F_SELECT_DATA
          Form  F_BUILD_I_CEPC_TABLE
          build the i_cepc internal table that would populate the
          valid profit centers to processed.
    FORM F_BUILD_I_CEPC_TABLE.
      PERFORM F_DIS_MSG USING 100 'Build the Profit Center Ref Table.'.
      COMMIT WORK.
    Acquire CEPC table
      IF I_PRCTR[] IS INITIAL.
        SORT S_PRCTR.
        SELECT PRCTR KHINR
          FROM CEPC
          INTO TABLE I_CEPC
          WHERE PRCTR IN S_PRCTR.
    Sort table
        SORT I_CEPC BY PRCTR KHINR.
    Remove duplicate values
        DELETE ADJACENT DUPLICATES FROM I_CEPC COMPARING PRCTR.
        I_PRCTR[] = I_CEPC[].
    Sort table
        SORT I_PRCTR BY PRCTR.
      ELSE.
    Sort table
        SORT I_PRCTR BY PRCTR.
    Acquire CEPC table
        SELECT PRCTR KHINR
          FROM CEPC
          INTO TABLE I_CEPC
          FOR ALL ENTRIES IN I_PRCTR
          WHERE PRCTR = I_PRCTR-PRCTR.
    SOrt table
        SORT I_CEPC BY PRCTR KHINR.
      ENDIF.
      IF I_CEPC[] IS INITIAL.
        MESSAGE E000 WITH TEXT-006.
      ENDIF.
    ENDFORM.                               " F_BUILD_i_CEPC_TABLE
          Form  F_BUILD_I_REPORT
          Build the A/R report internal table from bfod_a, bsid and bsad
          It is necessary to go to BSAD/BSID to get the document currency
          not present in bfod_a.
    FORM F_BUILD_I_REPORT.
      PERFORM F_DIS_MSG USING 100 'Build the report information.'.
      COMMIT WORK.
    Sort all internal tables, this is essential for later processing
      SORT I_BFOD_A BY KUNNR BUKRS GJAHR BELNR BUZEI .
      SORT I_BSYD BY KUNNR BUKRS GJAHR BELNR BUZEI.
      SORT I_CEPC BY PRCTR KHINR.
      LOOP AT I_BFOD_A.
    New customer
        AT NEW KUNNR.
          READ TABLE I_KNA1 WITH KEY KUNNR = I_BFOD_A-KUNNR BINARY SEARCH.
          IF SY-SUBRC EQ 0.
            MOVE I_KNA1-NAME1 TO I_REPORT-NAME1.
          ENDIF.
        ENDAT.
    Acquire header fields
        READ TABLE I_BKPF WITH KEY BUKRS = I_BFOD_A-BUKRS
                                   BELNR = I_BFOD_A-BELNR
                                   GJAHR = I_BFOD_A-GJAHR BINARY SEARCH.
        IF SY-SUBRC NE 0.
          CLEAR I_BKPF.
        ENDIF.
    Build base record
        PERFORM F_MOVE_BASE_TO_REPORT.
    Load profit center data
        IF P_KHINR IS INITIAL.
          IF V_PREV_PRCTR = I_BFOD_A-PRCTR.
            I_REPORT-KHINR = I_CEPC-KHINR.
          ELSE.
            READ TABLE I_CEPC WITH KEY PRCTR = I_BFOD_A-PRCTR BINARY SEARCH.
            IF SY-SUBRC = 0.
              I_REPORT-KHINR = I_CEPC-KHINR.
            ELSE.
              CLEAR I_REPORT-KHINR.
            ENDIF.
            V_PREV_PRCTR = I_BFOD_A-PRCTR.
          ENDIF.
        ELSE.
          I_REPORT-KHINR = P_KHINR.
        ENDIF.
    Reverse signs
        IF I_REPORT-SHKZG = 'H'.
          I_REPORT-DMBTR = I_REPORT-DMBTR * -1.
          I_REPORT-DMBE2 = I_REPORT-DMBE2 * -1.
        ENDIF.
    Additional details
        READ TABLE I_BSYD WITH KEY KUNNR = I_BFOD_A-KUNNR
                                   BUKRS = I_BFOD_A-BUKRS
                                   GJAHR = I_BFOD_A-GJAHR
                                   BELNR = I_BFOD_A-BELNR
                                   BUZEI = I_BFOD_A-BUZEI BINARY SEARCH.
        IF SY-SUBRC = 0.
          PERFORM F_FORMAT_I_REPORT_FR_BSYD.
          APPEND I_REPORT.
        ENDIF.
      ENDLOOP.
    ENDFORM.                               " F_BUILD_I_REPORT
          Form  F_FORMAT_I_REPORT_FR_BSYD
    Retrieve all the information needed for reporting from BSID.
    If a document has a referencing invoice (REBZG), the payment terms
       and the baseline date to be used will come from the referencing
       invoice.
    FORM F_FORMAT_I_REPORT_FR_BSYD.
    *=> get the document currency amount from bsid
      I_REPORT-BLDAT = I_BSYD-BLDAT.
      I_REPORT-WAERS = I_BSYD-WAERS.
    PERFORM F_CONVERT_CURRENCY_FR_2_AMTS USING I_REPORT-HWAER I_BSYD-WAERS
                                                I_BSYD-DMBTR   I_BSYD-WRBTR
                                                             I_BFOD_A-DMBTR
                                                     CHANGING V_BFOD_TXNAMT.
      I_REPORT-WRBTR = V_BFOD_TXNAMT.
      IF I_BSYD-SHKZG = 'H'.
        I_REPORT-WRBTR = I_REPORT-WRBTR * -1.
      ENDIF.
      V_ZBD1T = I_BSYD-ZBD1T.
      V_ZFBDT = I_BSYD-ZFBDT.
    *=> determine reference document (referencing invoice)
      CLEAR I_REPORT-SORT.
      CASE I_BSYD-REBZG.
        WHEN ' '.
          I_REPORT-SORT = I_BFOD_A-BELNR.
        WHEN 'V'.
          I_REPORT-SORT = I_BSYD-XBLNR.
        WHEN OTHERS.
          I_REPORT-SORT = I_BSYD-REBZG.
          PERFORM F_GET_DATEPAYTERM_FR_ORIGDOC.
      ENDCASE.
      CLEAR I_FAEDE.
      I_FAEDE-SHKZG = I_BSYD-SHKZG.
      I_FAEDE-KOART = 'D'.
      I_FAEDE-ZFBDT = I_BSYD-ZFBDT.
      I_FAEDE-ZBD1T = I_BSYD-ZBD1T.
      I_FAEDE-ZBD2T = I_BSYD-ZBD2T.
      I_FAEDE-ZBD3T = I_BSYD-ZBD3T.
      I_FAEDE-REBZG = I_BSYD-REBZG.
      I_FAEDE-BLDAT = I_BSYD-BLDAT.
      CALL FUNCTION 'DETERMINE_DUE_DATE'
        EXPORTING
          I_FAEDE                    = I_FAEDE
        IMPORTING
          E_FAEDE                    = I_FAEDE
        EXCEPTIONS
          ACCOUNT_TYPE_NOT_SUPPORTED = 1
          OTHERS                     = 2.
      V_DPAST = P_BUDAT - I_FAEDE-NETDT.
      IF V_DPAST < 0.
        I_REPORT-DPAST = 0.
      ELSE.
        MOVE V_DPAST TO I_REPORT-DPAST.
      ENDIF.
      I_REPORT-ZBD1T = V_ZBD1T.
      I_REPORT-NETDT = I_FAEDE-NETDT.
    Update totals
      PERFORM F_BUILD_TOTALS.
    ENDFORM.                               " F_FORMAT_I_REPORT_FR_BSYD
          Form  F_GET_DATEPAYTERM_FR_ORIGDOC
    FORM F_GET_DATEPAYTERM_FR_ORIGDOC.
    In order to go back to the original document's payment terms and
    baseline date, we neeed to resort bsid/bsad to a different sort
    order b-coz only these 3 fields logically matched the orig doc
      SORT I_BSYD BY KUNNR BUKRS BELNR.
      READ TABLE I_BSYD WITH KEY KUNNR = I_BFOD_A-KUNNR
                                 BUKRS = I_BFOD_A-BUKRS
                                 BELNR = I_REPORT-SORT BINARY SEARCH.
      IF SY-SUBRC = 0.
        V_ZBD1T = I_BSYD-ZBD1T.            "payment term
        V_ZFBDT = I_BSYD-ZFBDT.            "baseline due date
      ENDIF.
      SORT I_BSYD BY KUNNR BUKRS GJAHR BELNR BUZEI.
    ENDFORM.                               " F_GET_DATEPAYTERM_FR_ORIGDOC
          Form  F_WRITE_REPORT
          Write A/R report summarized by profit center.
          Report will be build by profit center and sum all customers
             then will sum past do for profit center and catagorized
             will also sum by project / wbs element.
    FORM F_WRITE_REPORT.
      SORT I_REPORT BY PRCTR KUNNR SORT BLDAT BELNR DPAST DESCENDING.
      CALL SCREEN 9000.
    ENDFORM.                               " F_WRITE_REPORT
          Form  F_POPULATE_PRCTR_FROM_PRCTRGRP
    FORM F_POPULATE_PRCTR_FROM_PRCTRGRP.
      LOOP AT I_SET_VALUES.
        IF I_SET_VALUES-TO = I_SET_VALUES-FROM.
          I_PRCTR-PRCTR = I_SET_VALUES-TO.
          COLLECT I_PRCTR.
          S_PRCTR-SIGN   = 'I'.
          S_PRCTR-OPTION = 'EQ'.
          S_PRCTR-LOW    = I_SET_VALUES-TO.
          COLLECT S_PRCTR.
        ELSE.
          MESSAGE E000 WITH 'System Error, contact programmer'
                  I_SET_VALUES-TO I_SET_VALUES-FROM.
        ENDIF.
      ENDLOOP.
    ENDFORM.                               " F_POPULATE_PRCTR_FROM_PRCTRGRP
          Form  F_CONVERT_CURRENCY_FR_2_AMTS
          This function module will ensure proper handling of decimals
          and conversion of currency. This will give you the historical
          exchange rate used.
          BFOD_A does not have the trans curr amt so we will get it
           using:  ( bsid trans curr amt / bsid loc curr amt ) *
                   bfod_a loc currency amt
    FORM F_CONVERT_CURRENCY_FR_2_AMTS USING V_FRCURR V_TOCURR
                                            V_OFRAMT V_OTOAMT V_NFRAMT
                                     CHANGING V_NTOAMT.
      CALL FUNCTION 'Z_CONVERT_CURRENCY_FROM_2_AMTS'
        EXPORTING
          FROM_CURRENCY   = V_FRCURR
          TO_CURRENCY     = V_TOCURR
          OLD_FROM_AMOUNT = V_OFRAMT
          OLD_TO_AMOUNT   = V_OTOAMT
          NEW_FROM_AMOUNT = V_NFRAMT
        IMPORTING
          NEW_TO_AMOUNT   = V_NTOAMT
        EXCEPTIONS
          OTHERS          = 1.
      IF SY-SUBRC <> 0.
        MESSAGE E000 WITH TEXT-005.
      ENDIF.
    ENDFORM.                               " F_CONVERT_CURRENCY_FR_2_AMTS
          Form  F_RETRIEVE_BFODA_BY_COMPANY
    FORM F_RETRIEVE_BFODA_BY_COMPANY.
    Acquire BFOD_A table
      SELECT PRCTR KUNNR BUKRS GJAHR BELNR BUZEI AUGDT HKONT BUDAT
             SHKZG DMBTR DMBE2 FROM BFOD_A
         INTO TABLE I_BFOD_A
         WHERE BUKRS IN S_BUKRS.
      IF I_BFOD_A[] IS INITIAL.
        EXIT.
      ELSE.
    Remove records based on selection criteria
        DELETE I_BFOD_A WHERE NOT KUNNR IN S_KUNNR OR
                              NOT BUDAT LE P_BUDAT OR
                              NOT HKONT IN S_HKONT OR
                              NOT BELNR IN S_BELNR OR
                            ( NOT AUGDT IS INITIAL AND
                              NOT AUGDT > P_BUDAT ).
      ENDIF.
    Build selection option
      LOOP AT I_BFOD_A.
        I_PRCTR-PRCTR  = I_BFOD_A-PRCTR.
        COLLECT I_PRCTR.
        S_PRCTR-SIGN   = 'I'.
        S_PRCTR-OPTION = 'EQ'.
        S_PRCTR-LOW    = I_BFOD_A-PRCTR.
        COLLECT S_PRCTR.
      ENDLOOP.
      SORT S_PRCTR.
      SORT I_PRCTR BY PRCTR.
      PERFORM F_BUILD_I_CEPC_TABLE.
    ENDFORM.                    " F_RETRIEVE_BFODA_BY_COMPANY
          Form  F_RETRIEVE_BFODA_BY_PRCTR
    FORM F_RETRIEVE_BFODA_BY_PRCTR.
    Acquire BFOD_A table
      SELECT PRCTR KUNNR BUKRS GJAHR BELNR BUZEI AUGDT HKONT BUDAT
             SHKZG DMBTR DMBE2 FROM BFOD_A
         INTO TABLE I_BFOD_A
         FOR ALL ENTRIES IN I_PRCTR
         WHERE PRCTR = I_PRCTR-PRCTR AND
               KUNNR IN S_KUNNR AND
               BUKRS IN S_BUKRS.
      IF I_BFOD_A[] IS INITIAL.
        EXIT.
      ELSE.
    Remove records based on selection criteria
        DELETE I_BFOD_A WHERE NOT KUNNR IN S_KUNNR OR
                              NOT BUKRS IN S_BUKRS OR
                              NOT BUDAT LE P_BUDAT OR
                              NOT HKONT IN S_HKONT OR
                              NOT BELNR IN S_BELNR OR
                            ( NOT AUGDT IS INITIAL AND
                              NOT AUGDT > P_BUDAT ).
      ENDIF.
    ENDFORM.                    " F_RETRIEVE_BFODA_BY_PRCTR
          Form  F_MOVE_BASE_TO_REPORT
    FORM F_MOVE_BASE_TO_REPORT.
      I_REPORT-PRCTR = I_BFOD_A-PRCTR.
      I_REPORT-KUNNR = I_BFOD_A-KUNNR.
      I_REPORT-BELNR = I_BFOD_A-BELNR.
      I_REPORT-BUKRS = I_BFOD_A-BUKRS.
      I_REPORT-HKONT = I_BFOD_A-HKONT.
      I_REPORT-AUGDT = I_BFOD_A-AUGDT.
      I_REPORT-BUDAT = I_BFOD_A-BUDAT.
      I_REPORT-GJAHR = I_BFOD_A-GJAHR.
      I_REPORT-BUZEI = I_BFOD_A-BUZEI.
      I_REPORT-SHKZG = I_BFOD_A-SHKZG.
      I_REPORT-DMBTR = I_BFOD_A-DMBTR.
      I_REPORT-DMBE2 = I_BFOD_A-DMBE2.
      I_REPORT-HWAER = I_BKPF-HWAER.
      I_REPORT-HWAE2 = I_BKPF-HWAE2.
      I_REPORT-BKTXT = I_BKPF-BKTXT.
      I_REPORT-XBLNR = I_BKPF-XBLNR.
    ENDFORM.                    " F_MOVE_BASE_TO_REPORT
         Module  STATUS_9000  OUTPUT
          text
    MODULE STATUS_9000 OUTPUT.
      SET PF-STATUS '9000'.
      SET TITLEBAR '900'.
    Launch standard ALV grid
      PERFORM F_CREATE_ALV_GRID_CONTROL.
      PERFORM F_LOAD_COLUMN_HEADINGS.
    ENDMODULE.                 " STATUS_9000  OUTPUT
          Module  USER_COMMAND_9000  INPUT
          text
    MODULE USER_COMMAND_9000 INPUT.
      CASE SY-UCOMM.
        WHEN 'EXIT' OR 'CANC' OR 'BACK'.
          CALL METHOD REF_CUSTOM->FREE.
          SET SCREEN 0.
          LEAVE SCREEN.
    Begin of changes for Release 2 by HBE7890 - DEVK909110
        WHEN 'PRIN'.
          PERFORM PRINT_AGING_TOTALS.
    End of changes.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_9000  INPUT
          Form  F_CREATE_ALV_GRID_CONTROL
          text
    FORM F_CREATE_ALV_GRID_CONTROL.
    Set field catalog for ALV
      PERFORM F_SET_FIELDCAT.
      IF REF_CUSTOM IS INITIAL.
      Create ALV container
        CREATE OBJECT REF_CUSTOM
          EXPORTING
            CONTAINER_NAME = 'ZRPT_CONTAINER'.
      Create ALV grid control
        CREATE OBJECT REF_ALV_ZRPT
          EXPORTING
            I_PARENT          = REF_CUSTOM.
    Adjust look and feel
        PERFORM F_CHANGE_SETTINGS.
    Call the ALV Build
        CALL METHOD REF_ALV_ZRPT->SET_TABLE_FOR_FIRST_DISPLAY
          EXPORTING
            IS_LAYOUT       = V_LAYOUT
            IS_VARIANT      = V_VARIANT
            I_SAVE          = V_SAVE
            I_DEFAULT       = V_DEFAULT
          CHANGING
            IT_SORT         = I_SORT
            IT_OUTTAB       = I_REPORT[]
            IT_FIELDCATALOG = I_ALV_FIELDCAT[].
    Create print top of page
        CREATE OBJECT REF_EVENT_RECEIVER.
        SET HANDLER REF_EVENT_RECEIVER->MTH_PRINT_TOP_OF_PAGE
            FOR REF_ALV_ZRPT.
    Create print top of page
        CREATE OBJECT REF_EVENT_RECEIVER.
        SET HANDLER REF_EVENT_RECEIVER->MTH_PRINT_TOP_OF_LIST
            FOR REF_ALV_ZRPT.
      ENDIF.
    ENDFORM.                    " F_CREATE_ALV_GRID_CONTROL
         Form  F_CHANGE_SETTINGS
          text
    FORM F_CHANGE_SETTINGS .
    Set layout parameters
      V_LAYOUT-GRID_TITLE = 'A/R by Profit Center'.
      V_LAYOUT-SEL_MODE   = 'A'.
      V_LAYOUT-INFO_FNAME = 'LINECOLOR'.
      V_LAYOUT-CWIDTH_OPT = 'X'.
      V_LAYOUT-NO_MERGING = 'X'.
      V_LAYOUT-NUMC_TOTAL = 'X'.
      V_DEFAULT           = 'X'.
      V_SAVE              = 'A'.
    Set display variant
      V_VARIANT-REPORT  = SY-REPID.
      IF P_DSVAR NE ''.
        V_VARIANT-VARIANT = P_DSVAR.
      ENDIF.
    ENDFORM.                    " F_CHANGE_SETTINGS
          Form  F_SET_FIELDCAT
          text
    FORM F_SET_FIELDCAT .
    Set field catalog for ALV
      CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
        EXPORTING
         I_STRUCTURE_NAME       = 'ZFR0ARPR_S1'  "DEVK909110
          I_STRUCTURE_NAME       = 'ZPSS_ARBYPC'                "DEVK909110
        CHANGING
          CT_FIELDCAT            = I_ALV_FIELDCAT
        EXCEPTIONS
          INCONSISTENT_INTERFACE = 1
          PROGRAM_ERROR          = 2
          OTHERS                 = 3.
    Override any attributes
      LOOP AT I_ALV_FIELDCAT INTO V_ALV_FIELDCAT.
        IF V_ALV_FIELDCAT-FIELDNAME EQ 'NAME1'.
          MOVE 'Customer Name' TO: V_ALV_FIELDCAT-REPTEXT,
                                   V_ALV_FIELDCAT-SCRTEXT_L,
                                   V_ALV_FIELDCAT-SCRTEXT_M,
                                   V_ALV_FIELDCAT-SCRTEXT_S.
        ENDIF.
        IF V_ALV_FIELDCAT-FIELDNAME EQ 'SORT'.
          MOVE 'Documentation' TO: V_ALV_FIELDCAT-REPTEXT,
                                   V_ALV_FIELDCAT-SCRTEXT_L,
                                   V_ALV_FIELDCAT-SCRTEXT_M.
          MOVE 'DocRef' TO         V_ALV_FIELDCAT-SCRTEXT_S.
        ENDIF.
        MODIFY I_ALV_FIELDCAT FROM V_ALV_FIELDCAT.
      ENDLOOP.
    ENDFORM.                    " F_SET_FIELDCAT
          Form  F_BUILD_TOTALS
          text
    FORM F_BUILD_TOTALS .
      DATA: V_DAYS TYPE I,
            V_INDEX(2) TYPE N.
      CLEAR I_TOTAL.
    Build total line
      MOVE I_REPORT-HWAER TO I_TOTAL-WAERS.
      MOVE I_REPORT-DMBTR TO I_TOTAL-TOTAL.
      DO 5 TIMES.
        V_DAYS = ( SY-INDEX - 1 ) * P_AGEDY.
        V_INDEX = SY-INDEX.
        IF I_REPORT-DPAST LE V_DAYS.
          CONCATENATE 'I_TOTAL-DAYS' V_INDEX INTO V_FIELD-NAME.
          ASSIGN (V_FIELD-NAME) TO <COLUMN>.
          <COLUMN> = I_REPORT-DMBTR.
          EXIT.
        ELSEIF SY-INDEX EQ 5.
          CONCATENATE 'I_TOTAL-DAYS' V_INDEX INTO V_FIELD-NAME.
          ASSIGN (V_FIELD-NAME) TO <COLUMN>.
          <COLUMN> = I_REPORT-DMBTR.
          EXIT.
        ENDIF.
      ENDDO.
      COLLECT I_TOTAL.
    ENDFORM.                    " F_BUILD_TOTALS
        

    CO-PA has all the information you need...
    Profitability Analysis is that part of CO where operations will access its performance factors and profitability statements contain margins, standard cost variance, sales information, allocations and other related profit or loss data. This module helps analyze profitability of customers, markets and products at various levels of contribution margins. Profitability is measured down to the SD billing document line and is adjusted periodically against standard costs and other costs.
    It has 2 methods of approach :
    Costing based Profitability Analysis - This is primarily designed to let you analyze profits quickly for the purpose of sales management.
    Account based Profitabilty Analysis - This type of Profitability Analysis enables you to reconcile cost and financial accounting at any time using accounts.
    Guess, the second approach is what you are looking for...

  • REFX: display contracts without payment performed

    Hello RE Gurus,
    I wonder is there any possibility in REFX to display Contracts, which don't have payment for current date yet.
    For example, I have 3 Commercial lease-out contracts with the same conditions and terms.
    For the Contract 1 Customer have performed payment for the due date YYY, for the contracts 2 and 3 payment haven't been performed yet for the same due date.
    I want to run some kind of a report, enter a due date YYY and see contract 2 and 3.
    May be you will be able suggest me something? Thanks

    Hi,
    We will get some information using FBL3N and FBL5N..
    By giving contract number against assignment we can get the postings:
    We generally use:REISCDCF, FBL3N, FBL1N, FAGLL03 and KSB1 to know the status of  contract wise postings.
    Thanks and Regards,

  • Vendor Payment Performance Report

    Hi,
    I am in the process of developing a report which should show details of Project, Service orders and purchase orders information. If end user inputs project/SO/PO/Vendor in the selection screen of the report, they are expected to see service orders and their related costs information. In the drill down they would like to see related Purchase orders information of the service orders including PO Quantity, PO Value, Invoiced Quanity, Invoice value, Invoice creation date, Invoice posting date, Invoice due date(Invoice date + Vendor Payment terms), Actual payment date to Vendor, Blocked invoices, Reason for blocking, Vendor info. Is there any Business Content reports, cubes, extractors availabe to serve my purpose ?  If this requirement can't be developed in one report please suggest what is the best way of doing.
    Eg of Report Result data:
    Selection screen can have Project, Service Order, PO, Vendor, Year & Month
    Report Results:
    Project     SO         PlannedCost
    WBS1      1001      5000 GBP        
    (5000 GBP contains 2000 GBP spent on labour cost + 3000 GBP spent on material which will  be paid to different vendors)
    If we drill down using Purchase Order it should show PO details for 3000 GBP and show blank for 2000 GBP
    Project    SO        PO     POValue   InvoiceValue    IVdate   IVPaiddate    IVDuedate    Vendor
    WBS1     1001    2000   -
    WBS1     1001    P123   1000          1000               1.8.09     16.8.09       15.8.09         CP
    WBS1     1001    P234      500           500               15.7.09    15.8.09      15.8.09         BP
    With the above info 100% ontime payment made to vendor BP, for CP it is not, Customer is interested to see this level of information.
    For 3000 GBP , for  all the purchase orders we need to show PO Quantity, PO Value, Invoiced Quanity, Invoice value, Invoice creation date, Invoice posting date, Invoice due date(Invoice date + Payment terms), Actual invoice payment date, Blocked invoices, Reason for blocking, Vendor info details
    Waiting for experts suggestions on the above requirement.

    Hi,
    You can create a report on this, but first have to findout in which all the tables your fields existing. Based on this you can build a report in r/3 or a FM which you can use it in Generic DS.
    Hev you gone thru standard Purchase DS which available in r/3 side. Just check them it might suits your requirement.
    also check the below docu for more info:
    http://help.sap.com/saphelp_470/helpdata/en/75/ee1fa755c811d189900000e8322d00/frameset.htm
    Reg
    Pra

  • Vendor aging analysis report

    Vendor aging analysis application, which extract the data from Vendor Master Table and Vendor Transaction Tables supports Accounts Payable. Vendor master display the risk category and transactions record of vendor. How does company plan the cash resources forecast with this application? Explain in detail, how this application analyze vendor payment performance?

    In cash if you do not have Cash Management in place, where you can link your vendor / customer records.
    If you do not have CM, in such case, you can prepare cash flow statements according to your needs.
    Make sure you have completed your financial statement version in OB58.
    Cash Flow Statement (Indirect Method) Variant 1 and Variant 2, please note that these reports are coming from the form 0SAPRATIO-03 Cash flow (indirect) (Refer T code FSI5) and Reports 0SAPRATIO-03 Cash flow (indirect method) variant 1 (Refer Tcode FSI2) & 0SAPRATIO-01 Cash flow (indirect method) variant 2 (Refer T code FSI2)
    0SAPRATIO-04 Cash flow (direct) Form
    0SAPRATIO-04 Cash flow (direct method)
    You should know what format you should like to see in the cash flow statement.
    You should the FS items accordingly copy the standard forms and changed according to your format.
    Regards,
    Ravi
    You should be conversant enough to do basic report painter.
    Pelase let me know if you need further help.
    Regards

  • Relevant stand reports req.d

    Hi Gurus,
    I got one requirement. For the below reports i have to find the matching reports from standard SAP Library. But i dont know
    each report comes under which functional area. Could you please gude me?
    Report Names
    Floor Check Status
    SAU Report
    Dealers exceeding credit line
    Dealers on hold
    SWR Report
    Expiration of Security
    Changes to credit fields
    Credit Status Report
    Invoices paid late
    Payment performance
    High balance per credit segment
    Invoices paid late over the last 12 months
    Payment receipts
    Unapplied payments
    Floor check inventory list
    Title document release
    Paid invoices without title releae
    Thanks inadvance,
    Yogesh.

    Hi,
    we can't say from which area these reports are correctlly unless we know the scenario and process or user department using these reports.
    But some reports we can map for the function areas.
    Please refer to the FI infocube and ODS object
    http://help.sap.com/saphelp_sem60ep1/helpdata/en/ee/cd143c5db89b00e10000000a114084/frameset.htm
    Floor Check Status
    SAU Report
    Dealers exceeding credit line -- FI-AR
    Dealers on hold --
    SWR Report --
    Expiration of Security
    Changes to credit fields -- FI
    Credit Status Report -- FI-AR
    Invoices paid late --- FI-AR
    Payment performance -- FI-AR
    High balance per credit segment --FI-AR
    Invoices paid late over the last 12 months --FI-AR
    Payment receipts--FI AR
    Unapplied payments --FI AR
    Floor check inventory list -- WM/MM
    Title document release
    Paid invoices without title releae -- FI-AP
    Edited by: Vishwanath H.E on Aug 29, 2008 2:03 PM

  • PlayBook OS version history

    Software update v1.0.8.6067 Dec. 6, 2011
    Includes the following updates:
    Daylight saving time updates for time zones in the regions of Latin America and Australia
    Security update for file sharing issue
     Software update v1.0.8.4985 Nov. 24, 2011
    Includes the following fixes and updates:
    Updated version of Adobe® Flash® Player version 11.1 and Adobe® AIR® 3.1
    Daylight saving time updates for time zones in the regions of Latin America, Australia and Central America
    Updated Bluetooth® and Wi-Fi software to help to improve connectivity
    Fixed issues some users were experiencing with account payments in the BlackBerry App World™ storefront
    Improved synching when restoring applications with BlackBerry® Desktop Software
    Security update for Adobe Flash Player, as noted in Adobe Security Bulletin APSB-11-28
     Software update v1.0.7.3312 Oct. 6, 2011
    Includes the following updates:
    Security updates for Adobe® Flash® Player
     Software update v1.0.7.2942 Aug. 24, 2011
    Includes the following updates:
    Differential updates: smaller download file sizes as only the sections of the BlackBerry Tablet OS that require updating are updated
    Improved Wi-Fi connectivity to WEP networks
    Faster pairing between a BlackBerry smartphone and BlackBerry PlayBook tablet via BlackBerry® Bridge™
    Faster attachment opening via BlackBerry Bridge
     Software update v1.0.7 July 19, 2011
    Includes the following updates:
    Additional language support: Basque, Catalan, Czech, Danish, Galician, Hungarian, Indonesian Bahasa, Norwegian, Polish, Portuguese Brazilian, Portuguese European, Romanian, Russian, Swedish and Turkish
    Improved connectivity and productivity with BlackBerry® Bridge™:
    Zip attachment support
    Enhanced support for attachments: save attachments to a removable SD card or your BlackBerry smartphone's internal flash memory
    Portrait support in Pictures app
    Pinch to zoom in Video app
     Software update v1.0.6 June 20, 2011
    Includes the following updates:
    Support for Adobe® Flash® 10.3
    Support for Adobe® AIR® 2.7
    Security updates for Adobe Flash Player
     Software update v1.0.5 June 11, 2011
    Includes the following new features:
    Facebook® application
    In-app payments
    Performance enhancements:
    Charging improvements: charge the BlackBerry PlayBook tablet when fully powered down and notification if using an incorrect charger
    Language support: French, Italian, German, Spanish, Dutch and UK English
    Video chat enhancements: improvements to boost connectivity and reliability when calling a BlackBerry PlayBook tablet on another Wi-Fi network
    Wi-Fi hotspot detection: makes it easier to get online during the set up process when connecting to a Wi-Fi hotspot
    Headset audio boost: adds an extra level of volume
    Fix for Adobe® Flash® security advisory
     Software update v1.0.3 May 2, 2011
    Includes the following new features:
    Video Chat
    BBM™ over BlackBerry® Bridge™
    Document editing through BlackBerry Bridge
    Home screen browser bookmarks
    Click here to Backup the data on your BlackBerry Device! It's important, and FREE!
    Click "Accept as Solution" if your problem is solved. To give thanks, click thumbs up
    Click to search the Knowledge Base at BTSC and click to Read The Fabulous Manuals
    BESAdmin's, please make a signature with your BES environment info.
    SIM Free BlackBerry Unlocking FAQ
    Follow me on Twitter @knottyrope
    Want to thank me? Buy my KnottyRope App here
    BES 12 and BES 5.0.4 with Exchange 2010 and SQL 2012 Hyper V

    thanks good to know
    Be a Shepard and not an iSheep.

  • Trace file problem

    I got a tkprof trace file and found the following message at the top of the trace file:
    The following statement encountered a error during parse:
    SELECT INVOICE_ID FROM AP_PAYMENT_SCHEDULES WHERE INVOICE_ID = :b1 FOR UPDATE OF AP_PAYMENT_SCHEDULES NOWAIT
    Error encountered: ORA-00904
    Is this will affect the payment performance?
    Thanks
    Devon

    ORA-00904:     string: invalid identifier
    Cause:     The column name entered is either missing or invalid.
    Action:     Enter a valid column name. A valid column name must begin with a letter, be less than or equal to 30 characters, and consist of only alphanumeric characters and the special characters $, _, and #. If it contains other characters, then it must be enclosed in double quotation marks. It may not be a reserved word.
    This means that you are trying to put some thing which Oracle can't understand. I wouldn't be worried about the performance of the query since it would be a question once the query would run. So check the query why its throwing this error.
    Aman....

  • Bdc two transactions at a time

    Hello frendz,
    How do i call two transactions in bdc simultaneously in one bdc program.
    Can anyone send me steps or document for the same(to do above process for pb10, pb30, 9005 and 9007).
    Pls help me its urgent.
    Regards,
    Ameet

    Hi ameet,
                     U can call two Transaction in BDC program by using Call transaction Method But one by one it ll process
    like :
             1. Fisrt upload ur source file it may be Excel Sheet or Text to ur program (it_data internal table)
             2. u r having recorded code (it should be seperate for each transaction)
             2. what are all the data required for First transaction u can pass and finish
             3. what are all the data required for Second transaction u can pass and finish..thats all
    Refer the following code:
    here called
    1. perform bdc_transaction using 'F-58'
    2.perform bdc_transaction using 'FBZ5'.
    *&   Report   ZPAYMENT2 For Payment with printout Data
                                      upload  Using  BDC.
    *&         Payment with printout Data upload Using  BDC.
    *&           TCODE: F-58.
    *&           METHOD: CALL TRANSACTION.
    REPORT ZPAYMENT2  no standard page heading line-size 255.
    Table Bkpf for Accounting Document Header
    Table Bsak for Clear item
    Table Bsik for open  item
    Tables:Bkpf,Bsak,Bsik,t001.
          logic   for posted
    1. User can give either reference no or Acct doc no. REference Doc
                                                     takes preceedance
    2. If REference no is gvien
    *     2.1 Fetch all the records from bkpf table with field
    *          'BUKRS' = comp code
    *          'XBLNR' = refernce doc no
    *          'BLART' = 'RE'(hardcode)
    *     2.2 Search for that accounting document(BELNR and GJAHR) for that
                       Vendor in BSAK (cleared item ) and BSIK (open item)
    *          2.2.1 if the document is not there in both tables
    *                    Show error as 'the document doesnt exists'
    *          2.2.2 if the document is there in BSAK (cleard item)
    *          Show error as ' There is no open items for the doc'
    *          2.2.3 if ther documet is there in bsik (open item)
    *          Assign the acct doc no to that record and *process it.
    *          Note : No Document will not be there in both tables.
    3. If Account doc is given
    *     3.1 if the document is not there in both tables
    *               Show error as 'the document doesnt exists'
    *     3.2 if the document is there in BSAK (cleard item)
    *               Show error as ' There is no open items for the doc'
    *     3.2 if ther documet is there in bsik (open item)
    *          Assign the acct doc no to that record and process it.
              Note : Document should be posted only when all the line
                      items are valid
          If there is any items with error then the document should not be
                                                                posted.
    INCLUDE BDC*******************************
    include zbdcinclude.
       DO NOT CHANGE - the generated data section - DO NOT CHANGE    ***
    Generated data section with specific formatting - DO NOT CHANGE  ***
    TYPES: BEGIN OF file_format,
               New_doc(2),      "1.New document
              Comp_code(4),    "2.Cmpany code
               Pay_method(1),   "3.Payment method
               Hous_bank(5),    "4.Housing bank
               Check_lot(4),    "5.Check lot
               Post_date(10),   "6.Posting date
               Doc_date(10),    "7.Document date
               ref_text(15),    "  Reference Text
               doc_htext(25),   "8.Document header text
               Branch(4),       "9.Business area (bank)
               Amount1(16),     "10.Amount in document currency
               Bank_AccTxt(50), "11.Bank account text
               Vendor_no(10),   "12.Vendor number
               Ref_doc(16),     "13.Reference document number
               Acc_docu(10),    "14.Account document number
               Partial(2),      "15.Partial payment indicator
               Pay_Amount(15),  "16.Payment amount
               Item_text(50),   "17.Item text
               Bank_no(4),      "18.Bank number
           End of file_format.
      "File format for select the account document number
    TYPES: Begin of file_format1,
             acc_doc(10),    "1.Account document number
             fiscal_lay(4),  "2.Fiscal layer
             cmp_code(4),    "3.Company code
             Ref_dno(16),    "4.Reference document number
             doc_type(2),    "5.Document type
          End of file_format1.
    TYPES: Begin of file_format2,
            acc_dno(10),    "1.Account document number
            fiscal_lay(4),  "2.Fiscal layer
           End of file_format2.
      "Work area
    TYPES: Begin of file_format3.
           include type file_format.
           include type file_format2.
    TYPES: End of file_format3.
    TYPES: Begin of l_opayf1.
           include type opayf.
    TYPES: End of l_opayf1.
    data:l_opayf type l_opayf1.
    Constants:
        comp_code(4) type c value '5000'.
    DATA: IT_Ndoc TYPE STANDARD TABLE OF file_format3,
          WA_DATATAB4  TYPE file_format3,
          print_opt    type OPAYF.
      "Work area
    DATA: WA_DATATAB1 TYPE file_format1,
          WA_DATATAB2 TYPE file_format2,
          WA_DATATAB3 TYPE file_format2.
    ******Internal table generated *****************
    DATA: IT_DATA TYPE STANDARD TABLE OF file_format,
          WA_DATATAB  TYPE file_format,
          WA_DATATABH TYPE file_format.
    DATA: IT_RAW TYPE TRUXS_T_TEXT_DATA,
          NO_OF_LINES TYPE F,
          xbelnr type bkpf-belnr.
    data:cnt type i value 1,
         status(02),
         status1(02).
    End generated data section ***
    START OF SELECTION ************
    START-OF-SELECTION.
      PERFORM LOAD_FILE_DATA.
      PERFORM REPORT_HEADER.
    PERFORM PROCESS_DATA.
      DESCRIBE TABLE IT_DATA LINES NO_OF_LINES.
          READ THE INTERNAL TABLE                                      *
            .PERFORM THE BDC.......
    *FORM PROCESS_DATA.
    LOOP AT it_data into wa_datatab.
            LINE_NO = sy-tabix.
            add 1 to line_no . "Because header is deleted from excel
    IF Wa_datatab-New_doc = 'X'.
       IF wa_datatab-New_doc = 'X' and status <> 'X' and
          status1 = 'S' and sy-tabix <> 1.
                PERFORM PROCESS_BDC.
                Status = ''.
                Status1 = ''.
                Clear   it_ndoc.
                Refresh it_ndoc.
                Clear Wa_datatabH.
       Endif.
        "Check initial screen entry and some fiels
          IF    wa_datatab-vendor_no  is initial or
               wa_datatab-comp_code  is initial or
                wa_datatab-Pay_method is initial or
                wa_datatab-Hous_bank  is initial or
                wa_datatab-Check_lot  is initial or
                wa_datatab-Amount1    is initial .
              write:/2 line_no,20 'E',25 'Enter initial screen entry first'.
              Status = 'X'.
          Else.
          "Read the header data store in work area
              READ TABLE IT_DATA INDEX CNT INTO Wa_datatabH.
                perform validate_data1.
          ENDIF.
    ELSE.
                perform validate_data2.
        "Allow onely partial partial payment
         IF wa_datatab-Partial = 'X' or wa_datatab-Partial = 'x'.
              IF   Wa_datatab-ref_doc    is initial and
                   wa_datatab-acc_docu    is initial.
              write:/2 line_no,20 'E',25 'Enter ref_no or acc_no'.
              Status = 'X'.
              ELSE.
        "Select the document number from account heaser table(bkpf)
            IF not wa_datatab-ref_doc is initial.
    select  single belnr gjahr bukrs xblnr blart from bkpf into wa_datatab1
                                    where ( blart = 'RE' or blart = 'KR' )
                                                   and
                                         bukrs =  comp_code and
                                         xblnr =  wa_datatab-ref_doc.
            Else.
                IF not wa_datatab-acc_docu is initial.
    select  single belnr gjahr bukrs xblnr blart from bkpf into wa_datatab1
                                     where ( blart = 'RE' or blart = 'KR' )
                                                    and
                                          bukrs =  comp_code and
                                          belnr =  wa_datatab-acc_docu.
                ENDIF.
            ENDIF.
       "Check the document number is exist or not in acc header(bkpf)
           IF wa_datatab1-acc_doc is initial.
              write:/2 line_no,20 'E',25 'The document doesnot exit',
                       wa_datatab1-acc_doc.
              status = 'X'.
            Else.
       "Select the document number from clear item table(bsak)
              select single belnr gjahr from bsak into wa_datatab2
                        where lifnr = wa_datatabH-vendor_no     and
                              gjahr = wa_datatab1-fiscal_lay   and
                              belnr = wa_datatab1-acc_doc      and
                              bukrs = comp_code.
      "Select the document number from open item table(bsik)
              select single belnr gjahr from bsik into wa_datatab3
                        where lifnr = wa_datatabH-vendor_no     and
                              gjahr = wa_datatab1-fiscal_lay   and
                              belnr = wa_datatab1-acc_doc      and
                              bukrs = comp_code.
       "Check the document number is exist or not  in both table
            IF ( wa_datatab2-acc_dno is initial OR
                 wa_datatab2-fiscal_lay is initial ) and
                ( wa_datatab3-fiscal_lay   is initial OR
                 wa_datatab3-acc_dno  is initial ).
                write:/2 line_no,20 'E',25 'The document doesnot exit',
                         wa_datatab1-acc_doc.
                status = 'X'.
              Else.
      "Check the document number is exist or not in clear item table(bsak)
                IF not wa_datatab2-acc_dno  is initial and
                   not wa_datatab2-fiscal_lay is initial.
         write:/2 line_no, 'E',25 'There is no open items for the document',
                           wa_datatab1-acc_doc.
                  status = 'X'.
                Else.
      "Check the document number is exist or not in open item table(bsik)
                     IF not wa_datatab3-acc_dno    is initial and
                        not wa_datatab3-fiscal_lay is initial.
                        Status1 = 'S'.
                    move-corresponding  wa_datatab  to wa_datatab4.
                    move-corresponding  wa_datatab3 to wa_datatab4.
                       APPEND wa_datatab4 to IT_NDOC.
                     ENDIF.
              ENDIF.
            ENDIF.
          ENDIF.
          ENDIF.
      ENDIF.
    ENDIF.
        CLEAR wa_datatab.
        CLEAR wa_datatab1.
        CLEAR wa_datatab2.
        CLEAR wa_datatab3.
        CLEAR wa_datatab4.
        add 1 to cnt.
      ENDLOOP.
    *ENDFORM.
    IF status <> 'X' and status1 = 'S'.
    PERFORM  PROCESS_BDC.
    Endif.
    PERFORM WRITE_ERR_FILE.
         FORM PROCESS_BDC.
    FORM PROCESS_BDC.
    DATA:
          search_line(2) type n,
          search_line1(2) type n,
          FIELD_NAME(20) TYPE C,
          line_indx(3) type n.
          add 1 to line_indx.
           perform bdc_dynpro      using 'SAPMF05A' '0129'.
           perform bdc_field       using 'BDC_OKCODE'
                                         '/ENV'.
           perform bdc_field       using 'BDC_CURSOR'
                                         'BSEG-WRBTR'.
           perform bdc_dynpro      using 'SAPMF05A' '0130'.
           perform bdc_field       using 'BDC_CURSOR'
                                         'OPAYF-PSTAP'.
           perform bdc_field       using 'BDC_OKCODE'
                                         '=MW'.
           perform bdc_field       using 'OPAYF-BUKRS'
                                      comp_code.
           perform bdc_field       using 'OPAYF-RZAWE'
                                      wa_datatabH-Pay_method.
           perform bdc_field       using 'OPAYF-HBKID'
                                      wa_datatabH-Hous_bank.
           perform bdc_field       using 'OPAYF-PSTAP'
                                      wa_datatabH-Check_lot.
           perform bdc_dynpro      using 'SAPMF05A' '0129'.
           perform bdc_field       using 'BDC_CURSOR'
                                         'BKPF-XBLNR'.
           perform bdc_field       using 'BDC_OKCODE'
                                         '=PA'.
           perform bdc_field       using 'BKPF-BLDAT'
                                      wa_datatabH-Doc_date.
           perform bdc_field       using 'BKPF-BUDAT'
                                      wa_datatabH-Post_date.
           perform bdc_field       using 'BKPF-XBLNR'
                                      wa_datatabH-ref_text.
           perform bdc_field       using 'BKPF-BKTXT'
                                      wa_datatabH-doc_htext.
           perform bdc_field       using 'BSEG-WRBTR'
                                      wa_datatabH-Amount1.
           perform bdc_field       using 'BSEG-GSBER'
                                      Wa_datatabH-Branch.
           perform bdc_field       using 'BSEG-SGTXT'
                                      wa_datatabH-Bank_AccTxt.
           perform bdc_field       using 'OPAYF-LIFNR'
                                     wa_datatabH-vendor_no.
         perform bdc_field       using 'RF05A-XPOS1(01)'
                                        record-XPOS1_01_012.
           perform bdc_field       using 'RF05A-XPOS1(03)'
                                         'X'.
           perform bdc_dynpro      using 'SAPMF05A' '0730'.
           perform bdc_field       using 'BDC_CURSOR'
                                         'RF05A-VONWT(01)'.
           perform bdc_field       using 'BDC_OKCODE'
                                         '=SL2'.
           perform bdc_dynpro      using 'SAPMF05A' '0608'.
           perform bdc_field       using 'BDC_CURSOR'
                                         'RF05A-XPOS1(04)'.
           perform bdc_field       using 'BDC_OKCODE'
                                         '=ENTR'.
         perform bdc_field       using 'RF05A-XPOS1(01)'
                                    record-XPOS1_01_010.
           perform bdc_field       using 'RF05A-XPOS1(04)'
                                         'X'.
         Enter item document number in search screen
           perform bdc_dynpro      using 'SAPMF05A' '0731'.
           perform bdc_field       using 'BDC_CURSOR'
                                         'RF05A-SEL01(01)'.
         Loop at IT_NDOC into wa_datatab4.
          add  1 to search_line.
          CONCATENATE 'RF05A-SEL01(' search_line  ')' INTO FIELD_NAME.
          perform bdc_field       using FIELD_NAME
                                        wa_datatab4-acc_dno.
          if search_line = 10.  "if items are more than 10
            perform bdc_field       using 'BDC_OKCODE'
                                          '/00'.
            perform bdc_dynpro      using 'SAPMF05A' '0731'.
            perform bdc_field       using 'BDC_CURSOR'
                                          'RF05A-SEL01(01)'.
            search_line = 0.
          endif.
        Endloop.
           perform bdc_field       using 'BDC_OKCODE'
                                         '=PA'.
         Enter the amount of partial payments
           perform bdc_dynpro      using 'SAPDF05X' '3100'.
           perform bdc_field       using 'BDC_OKCODE'
                                        '=PART'.
           search_line = 1.
       Loop at IT_NDOC into wa_datatab4
                where  Partial = 'X' or  Partial = 'x'.
           search_line = sy-tabix.
                      "select the item as first item
           perform bdc_dynpro      using 'SAPDF05X' '3100'.
           perform bdc_field       using 'BDC_OKCODE'
                                         '/00'.
           perform bdc_field       using 'RF05A-ABPOS'
                                          search_line.
           perform bdc_dynpro      using 'SAPDF05X' '3100'.
           perform bdc_field       using 'BDC_OKCODE'
                                               '/00'.
           perform bdc_field       using 'DF05B-PSZAH(01)'
                                        wa_datatab4-Pay_Amount.
       Endloop.
        Simulate the all
          perform bdc_dynpro      using 'SAPDF05X' '3100'.
          perform bdc_field       using 'BDC_OKCODE'
                                        '=BS'.
          perform bdc_field       using 'BDC_CURSOR'
                                        'DF05B-PSZAH(01)'.
       Give the line number and Item text
    Loop at IT_NDOC into wa_datatab4.
           add 1 to line_indx.
       Click the detial icon
         perform bdc_dynpro      using 'SAPMF05A' '0700'.
         perform bdc_field       using 'BDC_CURSOR'
                                       'RF05A-NEWBS'.
         perform bdc_field       using 'BDC_OKCODE'
                                      '=PI'.
       Chose the line item
         perform bdc_dynpro      using 'SAPMF05A' '0610'.
         perform bdc_field       using 'BDC_CURSOR'
                                      '*BSEG-BUZEI'.
         perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
         perform bdc_field       using '*BSEG-BUZEI'
                                        line_indx.
        Enter the text and click document over view (AB)
         perform bdc_dynpro      using 'SAPMF05A' '0302'.
         perform bdc_field       using 'BDC_CURSOR'
                                       'BSEG-SGTXT'.
         perform bdc_field       using 'BDC_OKCODE'
                                       '=AB'.
         perform bdc_field       using 'BSEG-SGTXT'
                                  wa_datatab4-Item_text.
    Endloop.
    *Save or post
        perform bdc_dynpro      using 'SAPMF05A' '0700'.
        perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-NEWBS'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=BU'.
      perform bdc_field       using 'BDC_OKCODE'
                                     '=D'.
        perform bdc_transaction using 'F-58'.
        get parameter id 'BLN' field xbelnr.
      inserted by ganesh*******************
      perform bdc_dynpro      using 'SAPMFCHK' '0750'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'OPAYF-PSTAP'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=DRUK'.
      perform bdc_field       using 'BKPF-BELNR'
                                        xbelnr.
      perform bdc_field       using 'OPAYF-BUKRS'
                                       '5000'.
      perform bdc_field       using 'BKPF-GJAHR'
                                    wa_datatab4-fiscal_lay.
      perform bdc_field       using 'OPAYF-RZAWE'
                                   wa_datatabH-Pay_method.
      perform bdc_field       using 'OPAYF-PSTAP'
                                   wa_datatabH-Check_lot.
    l_opayf-bukrs = '5000'.
    l_opayf-PPRIZ = 'DEFA'.
    l_opayf-PPRIA = 'DEFA'.
    l_opayf-PSTAP =  wa_datatabH-Check_lot.
    l_opayf-PSOFO = 'X'.
    l_opayf-RZAWE = wa_datatabH-Pay_method.
    *CALL FUNCTION 'FORM_PRINT_AFTER_POSTING'
        EXPORTING
             i_belnr      = xbelnr
             i_gjahr      = wa_datatab4-fiscal_lay
             i_opayf      = L_OPAYF
            I_REPRI      =
       EXCEPTIONS
            ADDR_MISSING = 1
            CANCEL       = 2
            OTHERS       = 3
    *IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    *ENDIF.
       loop at   YT042I.
       endloop.
    *CLEAR L_OPAYF.
    perform bdc_dynpro      using 'SAPLF028' '0101'.
    perform bdc_field       using 'OPAYF-ABPOS'
                                  wa_datatabH-Bank_no.
    perform bdc_field       using 'BDC_OKCODE'
                                   '=PI'.
    perform bdc_dynpro      using 'SAPLF028' '0101'.
    perform bdc_field       using 'BDC_CURSOR'
                                   'T042I-HBKID(01)'.
    perform bdc_field       using 'BDC_OKCODE'
                                   '=PI'.
    perform bdc_dynpro      using 'SAPMFCHK' '0750'.
    perform bdc_field       using 'BDC_OKCODE'
                                   '/n'.
    perform bdc_dynpro      using 'SAPMFCHK' '0750'.
    perform bdc_field       using 'BDC_OKCODE'
                                   '/n'.
      perform bdc_transaction using 'FBZ5'.
        if not xbelnr is initial.
          clear allmessages.
          allmessages-line_no = line_no.
          allmessages-msg_type = 'S'.
          concatenate
             'Document '
             xbelnr
             ' created successfully.'
          into
             allmessages-msg_desc.
          append allmessages.
          perform write_to_screen.
         perform print_cheque.
        endif.
        clear xbelnr.
        set parameter id 'BLN' field xbelnr.
    ENDFORM.
          FORM HEADER_DETAILS                                           *
    FORM REPORT_HEADER.
      new-line.
      uline.
      WRITE :  AT 10 '  BDC to upload Custemer master data Extending',
                  70 'Date : ',
                  80 SY-DATUM.
      NEW-LINE.
      WRITE : AT 70 'Time : ',
                 80 SY-UZEIT.
      uline.
      WRITE : AT 2 ' LINE NO  ',
                15 'MSG TYPE  ',
                25 '     DESCRIPTION'.
      ULINE.
    ENDFORM.
       FORM LOAD FILE DATA
    FORM LOAD_FILE_DATA.
      refresh: IT_DATA,
               ALLMESSAGES.
      clear: IT_DATA,
             ALLMESSAGES.
      data: IT_RAW TYPE TRUXS_T_TEXT_DATA.
    Load the GL Master File to the Internal table
      CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
         EXPORTING
        I_FIELD_SEPERATOR        =
           i_line_header            =  'X'
           i_tab_raw_data           =  it_raw       " WORK TABLE
           i_filename               =  p_file
         TABLES
           i_tab_converted_data     = IT_DATA[]    "ACTUAL DATA
        EXCEPTIONS
           conversion_failed        = 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.
        STOP.
      ENDIF.
    ENDFORM.
       FORM convert into internal format (unpack)
    form convert_internal changing field.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
           EXPORTING
                INPUT  = field
           IMPORTING
                OUTPUT = field.
    endform.
       FORM validate data
    form validate_data1.
      perform convert_internal changing wa_datatabh-vendor_no.
    perform convert_internal changing wa_datatabh-COMP_CODE.
    endform.
    form validate_data2.
    perform convert_internal changing wa_datatab-ref_doc.
    perform convert_internal changing wa_datatab-Acc_docu.
    endform.
       FORM WRITE ERROR MESSAGE TO SCREEN
    FORM WRITE_TO_SCREEN.
    NEW-LINE.
    write : AT  2 line_no ,
            AT 25 ALLMESSAGES-MSG_DESC.
            IF ALLMESSAGES-MSG_TYPE = 'E'.
              WRITE: AT 17 ALLMESSAGES-MSG_TYPE COLOR COL_NEGATIVE.
            ELSE.
              WRITE: AT 17 ALLMESSAGES-MSG_TYPE.
            ENDIF.
    ENDFORM.
       FORM WRITE ERROR MESSAGE TO SCREEN
    form print_cheque.
      clear print_opt.
      print_opt-BUKRS = comp_code.
      print_opt-RZAWE = wa_datatabH-Pay_method.
      print_opt-HBKID = wa_datatabH-Hous_bank.
      print_opt-PSTAP = wa_datatabH-Check_lot.
      print_opt-PPRIZ = 'DEFA'.  "default printer
      print_opt-PPRIA = 'DEFA'.  "default printer
      print_opt-PSOFO = 'X'.  "print imm
      print_opt-PESPR = 'X'.  "Text in receipient lang
      print_opt-LIFNR = wa_datatabH-vendor_no.
      select single * from t001 where bukrs = comp_code.
    CALL FUNCTION 'GL_ACCOUNT_FOR_PAYMENT'
         EXPORTING
              I_BUKRS = comp_code
              I_HBKID = wa_datatabH-Hous_bank
              I_LAND1 = t001-land1
              I_WAERS = 'INR'
              I_ZLSCH = wa_datatabH-pay_method.
       IMPORTING
            E_HKONT =
            E_HKTID =
    CALL FUNCTION 'PAYMENT_FORM_PRINT'
         EXPORTING
              I_OPAYF = print_opt
              I_VBLNR = xbelnr
    endform.
    Regards,
    ganesh

  • Getting index of a string array based on user selection in a comboBox

    I'm not really sure how to phrase my questions, but here goes.
    I have created a string array that holds the values of a ComboBox. Based on which selection the user makes in the comboBox, I need the program to then perform particular calcualtions (based on their selection). I have tried using an ItemListener, but that doesn't seem to work. I've also tried using the ActionListener connected to the ComboBox, again...without results. I'm not sure what I'm looking for exactly, but I know what I want it to do, I'm just not finding the right way to do it. Can anyone help me figure this out?

    Here is my entire code. I'm completely confused at where to put the ActionListener or how to make it do what I want. Right now I just have it set up to display a simple message in the displayArea, just so that I could see if it was working. I think once I figure out how to get the right index from the ComboBox array, then I'll be able to add the code I need to perform the calcualtions...it's just getting to that step that's not going so well! Any help is appreciated.
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.text.DecimalFormat;
    import java.lang.String;
    public class MortCalcSR5 extends JFrame implements ActionListener
         int term = 0;
         double principal = 0;
         double rate = 0;
         double monthlyPyment = 0;
         double interest = 0;
         String[] loanChoices = {" ", "7 years @ 5.35%", "15 years @ 5.5%", "30 years @ 5.75%"};
         //create panel for input
         JPanel inputPanel = new JPanel();
              JLabel mortAmtLabel = new JLabel("Mortgage Amount $");
              JTextField mortAmtField = new JTextField(15);
              JLabel loanSelectionLabel = new JLabel("Loan Selection");
              JComboBox loanSelection = new JComboBox(loanChoices);
              JTextField loanSelected = new JTextField(15);
         //create button panel
         JPanel buttonPanel = new JPanel();
              JButton calcButton = new JButton("Calculate");
              JButton clearButton = new JButton("Clear");
              JButton exitButton = new JButton("Exit");
         //create panel for payment information
         JPanel paymentPanel = new JPanel();
              JLabel paymentLabel = new JLabel("Monthly Payment $");
              JTextField paymentField = new JTextField(15);
         //create panel for text box information
         JPanel textPanel = new JPanel();
              JLabel numPaymentLabel = new JLabel("Payment #");
              JLabel balLabel = new JLabel("Balance");
              JLabel ytdPrincLabel = new JLabel("Principal");
              JLabel ytdIntLabel = new JLabel("Interest");
         //create payment for display area
         JPanel displayPanel = new JPanel(new FlowLayout());
              JTextArea displayArea = new JTextArea(10,30);
              JScrollPane scroll = new JScrollPane(displayArea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
         public MortCalcSR5()
              //set size of GUI display
              setSize(400,450);
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              Container pane = getContentPane();
              JScrollPane scroll = new JScrollPane (displayArea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
              FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
              pane.setLayout(layout);
              //add components to the inputPanel
              GridLayout layout2 = new GridLayout(4,1);
              inputPanel.setLayout(layout2);
              inputPanel.add(mortAmtLabel);
              inputPanel.add(mortAmtField);
              mortAmtField.setText(" ");
              inputPanel.add(loanSelectionLabel);
              inputPanel.add(loanSelection);
              loanSelection.addActionListener(this);
              pane.add(inputPanel);
              //add components to buttonPanel
              FlowLayout layout3 = new FlowLayout(FlowLayout.CENTER, 10, 10);
              buttonPanel.setLayout(layout3);
              buttonPanel.add(calcButton);
              buttonPanel.add(clearButton);
              buttonPanel.add(exitButton);
              pane.add(buttonPanel);
              //add listeners to buttons
              calcButton.addActionListener(this);
              clearButton.addActionListener(this);
              exitButton.addActionListener(this);
              //add components to outputPanel
              FlowLayout layout4 = new FlowLayout(FlowLayout.LEFT, 10,10);
              paymentPanel.setLayout(layout4);
              paymentPanel.add(paymentLabel);
              paymentPanel.add(paymentField);
              pane.add(paymentPanel);
              //add components to textPanel
              FlowLayout layout5 = new FlowLayout(FlowLayout.LEFT, 10,10);
              textPanel.setLayout(layout5);
              textPanel.add(balLabel);
              textPanel.add(ytdPrincLabel);
              textPanel.add(ytdIntLabel);
              pane.add(textPanel);
              //add components to displayPanel
              FlowLayout layout6 = new FlowLayout(FlowLayout.CENTER,10,10);
              displayPanel.setLayout(layout6);
              displayPanel.add(scroll);
              pane.add(displayPanel);
              setContentPane(pane);
              setVisible(true);
         public void actionPerformed(ActionEvent event)
              String fs = (String)loanSelection.getSelectedItem();
              if (fs.equals("7 years @ 5.35%"))          {
                   displayArea.setText("yay");
              else
                   displayArea.setText("blah");
              JButton command = (JButton)event.getSource();
              if(command==calcButton)  //calculate button clicked - run payment event
                   Payment();
              if(command==clearButton) //clear button clicked - clear all fields
                   mortAmtField.setText(null);
                   paymentField.setText(null);
                   displayArea.setText(null);
                   loanSelected.setText(null);  //hidden text field still needs to be cleared
                   //loanChoices = null;
              if(command==exitButton)  //exit button clicked - exit program
                   System.exit(0);
         public void Payment()
              //perform the calculations
    //          int mortAmt = Integer.parseInt(mortAmtField.getText());
         //     double loanSelect = Double.parseDouble((String)loanSelected.getText());
              displayArea.append("Calcualations performed!");
         public static void main(String[] args)
              new MortCalcSR5();
    /*/calculations
         int mortAmt = Integer.parseInt(mortAmtField.getText());  //get text user entered in mortAmt field - parse it from a string to integer
         int loanTerm = Integer.parseInt(loanTermField.getText());  //get text user entered in loanTerm field - parse it from a string to integer
         double interestRate = Double.parseDouble(interestRateField.getText());  //get text user entered in interestRate field - parse it from a string to double
         int moTerm = (loanTerm*12);  //calculate monthly loan term
         double moInterest = ((interestRate/100)/12);  //calculate monthly interest rate
         double payment = mortAmt*(moInterest/(1-Math.pow(1/(1+moInterest), moTerm)));  //calculate monthly payment amount
         valid = true;  //number format is accepted
         paymentField.setText(Double.toString(payment));  //display output
    */

  • DIFFERENCE BETWEEN TALLY ERP AND SAP BUSINESS ONE

    Hello Experts,
    From where i can find the  comparison between TAlly ERP and SAP business  one ?

    Tally 9.0
    Accounting
    . To fulfill legal requirements - records as per standards and practices
    . To pay taxes to various bodies - statutory needs
    . Keep the business running - manage receivables & payables, cash, bank...
    . Keep a watch on the pulse of the organisation - key performance indicators
    . Respond to queries - to locate the right transaction immediately
    . With the entry of a voucher (this is what we call all accounting transactions) all books  of accounts, all reports, all totals & sub-totals are updated instantly. There is  nothing more that needs to be done - whether you are inserting a forgotten entry, or correcting one.
    . Taxation requirements of all the states of India are available, in the prescribed formats.
    . Supporting tasks like reminder letters, delayed interest, ageing, bank reconciliation.
    . One single dashboard to look at all important business ratios.
    . Drill down from any report, even the Balance Sheet, right to any voucher or filter and search.
    . Data entry in the language of the users choice - and report in any other  language (from the languages supported).
    . Mark vouchers that are draft as 'optional' and convert these to final- with one button click
    Financial Management & Controls
    Tally.ERP 9 comes with rich features & financial reports that give you the necessary management and control of your business. A few of these are listed below:
    u2022 Funds Flow & Cash Flow reports - help you locate bottlenecks
    u2022 Bank reconciliation - keeps your bank books in sync, and identify unclear instruments
    u2022 Customer Credit Limits - to limit risk of default and large losses
    u2022 Budgets - keep tabs on projected expenses against actuals
    u2022 Mark vouchers post dated - these will reflect into the books of accounts only on/after that date
    u2022 For needs where reports have to consider a transaction that has not happened  (say salaries for this month that get paid the next month) vouchers (called 'reversing  journals') can be marked to 'disappear' for reports post a specific date
    u2022 "Scenario" management - helps you with your business forecasting and planning. You can use optional, reversing journals and memorandum vouchers, to aid in recording provisional entries that are useful for interim reports
    u2022 Multiple inventory valuation. You can decide one valuation method for the business,  and be able generate financial reports using any other valuation method - as the  statutory method may not be appropriate for your needs, your bankers and for other decisions
    u2022 Cash balances can go negative - you can get warned if this is about to happen, or  see reports and make the necessary corrections
    u2022 Several business exceptions are available (negative stocks, negative ledgers) - for
      you to exercise control over these activities
    u2022 A one-screen business ratios with drill down right up to the transactions - help you to  correct course frequently u2022 Item wise & document wise profitability statements to control revenue leakage and inappropriate pricing
    u2022 Internal audits are supported with audit controls - authorised users can mark  vouchers as 'audited' and can get to see reports on changes made post audit, and the name of the person making the change
    Inventory Accounting & Management
    If you deal in goods, of any type, you'll appreciate the Inventory capabilities in Tally.ERP 9.
    You can comprehensively record all types of inventory transactions, using goods receipt notes, delivery notes, stock journals, manufacturing journals and physical stock journals. All stock movements are fully recorded and maintained in stock registers.
    Developed for all manufacturers, distributors, wholesalers or traders a small list of features are briefly described below:
    Manufacturers:
    . Bill of materials and Manufacturing Journals, to record material conversions
    . Compound bill of materials support, for units that contain assemblies
    . Multiple locations (godowns)
    . Excise for manufacturers, including all documentation and invoice
    . Costing for jobs
    Distributors & Wholesalers:
    . Multiple price lists, with effective dates of applicability
    . Use multiple units of measure (say KG's & grams)
    . Dual units of measure (say KG's and bags, to support variations as happens in commodities)
    Traders:
    . High speed billing, with support for POS printers
    . Bar code support
    . Automatic application of taxes
    . Service billing & service tax
    . Integrated sales return in bills
    . Print bills (and any other document) in the customers language
    Common:
    . You can choose to de-link the computed inventory value to automatically appear in
       your financial statements - and enter this figure manually.
    . Stock ageing reports, to identify slow and non-moving stocks
    . Invoice profitability reports to keep a pulse on sales
    . Multi-currency transactions - buy and sell across the world - with integrated forex  gain/loss calculations
    . Physical stock take records to adjust physical vs. actual stocks
    . Maintain batch & expiry details
    Purchases & Payables: from Order to Payment
    Tally.ERP 9 delivers the entire purchase cycle whether the need is the complete purchase order - goods receipt - rejections & returns - advances, debits & payments or a single payment entry, fulfilling all needs.
    To ensure that you have the right stocks and minimize carrying costs, Tally.ERP 9 delivers the following to improve purchase orders:
    . Define Re-order levels as a definite number or based on consumption
    . Define minimum quantity to order as a definite number or based on consumption
    . Pull up a report that shows the stock position, including complete details of open purchaseorders, sales orders that need to be fulfilled - check on past purchase history, and then place orders
    . Optionally stagger delivery dates in the PO
    When receiving goods:
    . Make entries in accordance with supporting documentation, including errors your suppliers could have made (say of multiplication & round off)
    . Incorporate additional costs
    . Automatically manage input taxes
    . Flexibility allows receipt of goods, quantities and rates different from that ordered - since this is common in real life
    . Record samples & free items (using different 'actual' & 'billed' quantities)
    . Multiple receipts for one order or one receipt for multiple orders, or against verbal ordersIn case there is a need to add other costs (say coolie and cartage) these additional charges can be apportioned to the cost of goods purchased.
    Supplied goods may not match your needs and these are managed by the 'Rejections Out' inventory voucher. Supplier dues, input taxes and inventory positions are updated.
    Suppliers often indicate likely profits, which may not be met. In case such assurances are made, you can look at Item profitability reports, and get the facts right. You could then negotiate a rebate and record this as a debit note.
    Keep tabs of how much is due to whom, when. Manage advances, payables & post dated checks. Ensure there are no errors in payments - print checks from Tally.ERP 9.
    Sales & Receivables: from Order to Receipt
    The lifeline of a business, efficiencies in sales operations, both of goods & services, directly impact growth and profitability. The need to optimise and keep a close watch here requires exceptional capabilities from your business IT system - and Tally.ERP 9 meets these demands.
    The sales process is supported with the following documents:
    . Quotations - records of quotes
    . Sales orders - accepted customer orders
    . Deliver Notes - documents that accompany goods
    . Sales Invoices/Cash Bill - to record the sale
    . Credit Notes - for financial adjustments
    . Rejections in - for goods returns
    . Receipts - for advances and receipts
    Do you have cash sales (sales across the counter)? With support for Point of Sale printers, bar codes and receipts in multiple tenders, you POS enable your business at no additional cost. Product sales may come with added services - and the integrated product & service billing will close this.
    Enforce credit limits, where needed. Along with the Payment Performance of Debtors report you can identify persistent problems and take necessary business decisions. Interest for delays & reminder letters aid in collection.
    For businesses engaged in Excisable goods, you get full support for Excise for Traders & Manufacturing Excise - matter of fact a business could be both!
    Make multiple deliveries from one order, or one from multiple orders - this common need is available across all documents of the sales process.
    Do you have multiple classes of customers? You can easily setup multiple prices (even in advance and specify the date from which they are effective).
    Discounts against the line, or for the document, additional charges as a percentage or lump sum, automatic round off of bill totals, automatic computation of VAT & Service tax, returns & exchanges are all available.Need to verify that you are making the desired sales margins? Item wise and bill wise profitability reports will help you keep tabs.
    Multi-company
    Security: With multiple companies, possibly including personal accounts, you may need to control who gets access to which companies, and to do what. You can set up users, grant or deny access - and these are defined for each company.
    Remote Access: You choose to specify which company is accessible remotely. You choose which remote users have access; you decide what access a remote user gets.
    Central User Management: Users come and go. You might also have a password policy requiring users to change passwords every few weeks. You can take advantage of the ease of central user and password management that Tally.NET identities carry - and even remotely manage these while not in office.
    Special NeedsMulti-CompanyMulti-PeriodMulti-Cost/Profit CentresMulti-CurrencyMulti-UnitsMulti-Location InventorySecurity and Access Control Remote Access
    What is Series B
    This Series will deliver major enhancements both in entirely new areas of functionality as well as in technology capabilities.
    Technology & Capability Enhancements
    Multi-session
    Support for multiple application windows, which can even be launched by clicking on a mail link or a 'shortcut., Each of these are simultaneous 'windows' into different areas of your business processes & reports. Dynamic data refresh and the display of different views when resizing - for e.g. smaller windows displaying a more consolidated view of data, will improve organizational management and productivity.
    Multi-threaded
    A 'thread' is a specific task that is being performed by the microprocessor. Enhanced capabilities will be enabled such that each application window can perform more tasks simultaneously instead of linearly, including processing messages from the server. Multi-core processors, even on the desktop, are now common. We will take full advantage of these as well.
    Multi Stack Architecture for Scale-up & Scale-down Deployments
    To deliver the capabilities described above, and the ones that follow, Tally.ERP 9 will become 'componentised' - consisting of several layers of programs - often referred to as 'n-tier architecture'.
    These software components are horizontally scalable, meaning that you can add one more computer to increase the computing power needed for a layer. In the same way, you can remove systems as needed, or collapse them into a single system - all of them even on a notebook, if required.
    High Transaction Capacity with Low Latency & Management
    Let us say that you start generating a report that needs to be extracted from a few thousand vouchers. This process is run in a 'session', which is isolated from all other users. Even if other users delete or modify any of the vouchers needed for the report while the report is being compiled, there is no impact on this session and you will get to see the report as if these other users did not exist.
    In the same way, the user performing the edit will also be isolated. After the edit, he can open the voucher and see it with the changes he made, perhaps even delete it.
    The architecture described above will in itself deliver substantial performance and transaction handling capacity. To push performance further in those cases when the storage media (typically the hard disk) is busy with other operations, additional capabilities will store these transactions 'temporarily' in a 'Q' for later write, while the user is free to continue his work (these transactions are protected against power failures and so on).
    Payment Engine for Debit & Credit Cards
    The facility for online payments using a variety of payment mechanisms (NEFT, online banking, credit cards), as well as receive payments (Debit / Credit Cards, NEFT etc) will be available.
    Functional Enhancements
    Online Banking and Reconciliation
    Collaborating with Banks who wish to facilitate their customers with this capability, we will provide Online Banking - including Payment Instructions, Standing Instructions, DD, NEFT,RTGS Transfers, Balance Queries, Instruction Status, Automated or Semi-Automated Bank Reconciliation.
    Point-of-Sale for most Retail Environments
    Series B will support dedicated POS terminals, with Credit/Debit Card, Discount Coupons and various other payment mixes, Loyalty support, schemes, multi-layered supervisory control, simultaneous keyboard and scanner controls, integrated or isolated printing of bill and credit card authorisation slips, item substitution, rate markup/markdowns, integration with measuring devices - such as weighing scales, bill suspension and retrieval, bill reversals and cancellations, etc. It can also be used for other store operations (receipting, inventory management etc), and general business operations (finance and accounts) - both on the same machine or separate machines.
    Income Tax
    Comprehensive IT coverage encompassing corporate & individual income tax, including typical payroll requirements and e-Returns will be available.
    EXIM Documentation
    Import & export documentation has become a growing need with the world economy becoming more open. This requirement will be supported, additionally covering the processes that need to be managed along with the documentation.
    Job Costing
    The enhanced Job Costing functionality will support most job costing needs to a level of granularity that is increasingly needed. We expect that you will be able to handle most, if not all, project accounting needs as well.
    Fixed Assets
    To take advantage of tax breaks as well as to manage organizational assets, this feature will support all requirements - from opening assets, adding, removing, amalgamating, grouping, vendor tagging, AMC's, servicing, service calendars, repairs and upkeep, refurbishing, breaking-down, depreciating and disposal for complete fixed asset management.
    Tally Addons Manufacturing Excise software, Tally Report Writer, Material Requirement Planning, Audit TrailVoucher-Type Level Security, SMS Plugin for Tally

  • Payment for  material based on performance

    Dear Experts and MM Gurus,
    my requirement is explained below.
    1.Material is received and goods receipt is made . initially Payment is made for Excise Duty only.
    2. Material is posted to Stock with out any Value.
    3. Payment of material is based up on performance ,i.e number of heats it can with stand.
    eg: in po mentioned order is for 5000 Heats and cost per heat is 500 rupees. material code and ordered quantity is mentioned with Value . But This Value is used for only Excise Payment. Further invoices are paid based on performance report.
    Part payments are done based on the performance Report i.e number of heats material has acheived.
    how to work on this scenario.
    suggestions / comments are recommended.
    Thanks in advance.
    regards,
    injeti.

    Hi Sp
    the following reports help you for the requirement you asked
    Material Analysis(SIS) - MCTC
    Material Analysis(SIS) - MCTC
    Material Returns-Analysis - MC+M
    Material Analysis- Invoiced Sales - MC+Q
    In these following reports you can enter the material you need and the division and once you execute, sysetem will give the output of that material on the basis of the division
    Reward if useful
    Regards
    Srinath

  • Perform unicode to UTF-8 conversion on F110 bacs payment file in ABAP

    Hi,
    I am facing a conversion issue for the UK BACS payment files.
    The payment run tcode F110 creates a payment file but the file when created on the application server has soem sort of code conversion. If I removed the # value, i can read most of the data.
    The data example is as below-
    #V#O#L#1#0#0#1#5#8#8# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #2#4#3#3#0#9#
    #H#D#R#1#A#2#4#3#3#0#9#S# # #1#2#4#3#3#0#9#0#0#0#0#0#2#0#0#0#1#0#0#0#1# # # # # # # #1#0#1#1#2#
    #H#D#R#2#F#0#2#0#0#0#0#0#1#0#0# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
    #U#H#L#1# #1#0#1#1#3#9#9#9#9#9#9# # # # #0#0#0#0#0#0#0#0#1# #D#A#I#L#Y# # #0#0#0# # # # # # # #
    This is then transferred to the bank via the FTP UNIX Script but after the conversion which is happening as-
    #Perform unicode to UTF-8 conversion on bacs file
    $a = "iconv -f UNICODE -t UTF-8 $tmpUNI > $tmpASC";
    The need going forward is to bring the details via the interface and then make an uplaod.
    The ABAP code should be able to make the conversion, remove the additional chracters and then send the file across.
    I have searched everywhere but I am not able to find out how to make the same conversion in ABAP.
    We are on ECC6.
    Can someone please help me?
    Regards,
    Archana

    Hi Archana,
    can  you please check SAP notes 1064779 and 1365764 (including the attachment) and see if this helps you ?
    Best regards,
    Nils Buerckel
    SAP AG

  • AP Payments Manager to perform payment for AR Refund / Return

    Hi,
    I have performed a return in AR and now would like to make the payment in AP Payments Manager.
    However, I found out the the AP invoice will not appear in Payments Manager straight away after the return is done. It will only appear on the next day.
    Is there any concurrent program that I can run to make it available in Payments Manager immediately after I perform the return?
    Or are there any other detailed methods to perform payment in AP for AR returns?
    Please advise.
    Thanks.
    Regards,
    Adibah

    Hi,
    I have performed a return in AR and now would like to make the payment in AP Payments Manager.
    However, I found out the the AP invoice will not appear in Payments Manager straight away after the return is done. It will only appear on the next day.
    Is there any concurrent program that I can run to make it available in Payments Manager immediately after I perform the return?
    Or are there any other detailed methods to perform payment in AP for AR returns?
    Please advise.
    Thanks.
    Regards,
    Adibah

Maybe you are looking for

  • Office 2010 and Office 365 Home Premium

    I had a free trial of Microsoft Office 2010. When 365 was introduced I decided to purchase it. I purchased Microsoft Office 365 Home Premium. I ran the install and can sign on to Sky Drive and see recent documents etc. I also have a Surface that I us

  • JSP Object Cannot be resolved to a type

    hi! i'm new to the jsp business nd i tried to create a 3 tier program with a web interface where the web pulls out data from the data base through RMI. here UserDataObject is the interface that extends Remote interface. However this same code works p

  • Just installed Mavericks. Can't get the Dock background to become transparent or translucent.

    Has this option disappeared?

  • Accessing the System Landsape Directory (SLD) failed.

    Hi, i am getting this error, while i run the tutorial and the root cause is mentioned below. And also another query, i have installed newer version of java on to my PC, when ever i run the tutorials, i am need to change the classpath to the latest ve

  • Tabular form in APEX 4.0

    Hi everyone, We use Apex 4.0. In a tabular form, we have two fields that the second of them depend on the first. For example in the case of a departement and employees list. Is it possible to acheive that when we select a value in the first list the