TCURX

Hi,
i having a prblem.
i received the data from data source on the psa, it is show change currency like 2600 on the source system, 26.00shows on psa,
i changed the decimal in the TCURX table 0 to 2 for 2 perticular currencies in the bw and laod the in to the psa, for that 2 currencies it is show 2600.00.
Please some one explane me, what logic works there,
there is 1:1 mapping b/w source system and bw.
Thanks

Hi Rob,
Could you check first to the TCURF table ??
It's coming because the ratio ..
So you need to check regarding that in that table.
There are many posting thread regarding that, you check over it ..
Here are the link & notes you can make as an reference :
Notes: 153707
WHY only JPY currency is incorrect on report
Hope it can helps you a lot.
Regards,
Niel.

Similar Messages

  • Exception currencies TCURX table, R3 - BW loading issue

    Hello Friends,
    I am facing issue in report values for amount in local currency key field. Its value not matching with R3 values. Decimal places are shifted in report.
    We are on BI7 (RSDS data source).
    There is data coming from R3 into one DSO from different different data sources (Sales, Billing, Purchasing etc) and then getting loaded to cube for reporting.
    Few data sources are standard like LIS and few are Z data sources.
    This issue must be related to exception currencies maintained in TCURX table. Becauase we are getting issues only for those currencies.
    For Ex: See R3 and report value is different.
    R3 value:71.230,00 KWD
    Cube value:71.230,00 KWD
    Report value: 7.123,000 KWD
    BW report is showing discrepancy for KWD, CLP (TCURX) currencies for Actual amount in LC key figure.
    Can you please explain how to handle fix here?
    I have heard that the ECC to BW the respective customization needs to be considered into account in the source system itself.
    So can we ask our R3 team to fix this issue for exceptional currencies on R3 side. And any particular information that we will have to share with R3 team to get this corrected?
    Please share your inputs on this.
    Thank You.

    Hi P.K,
    We too have faced same issue in last project, we followed some procedure as I attached below.
    Please go through the attached document and understand.
    Issue description: SAP stores all Amount values of different currencies with a fixed interpretation of having two decimal places. There are few exceptions to this rule for the currencies which has no meaning for the decimal places like 'Chilean Peso', Japanese Yen, South Korean Won, Paraguayan Guarani and many other currencies which we talk in the below sections. For few Currencies the fractions are needs to be stored more than 2 decimals due to the currency values and this document describes the procedures that needs to be followed to have the right reporting.
    Analysis provided:  Kenya Sales KPI’s values display by multiple of 100.
    This document describes the procedure to handle the currencies which has the decimal places other than 2 in the table TCURX.
    About TCURX table:
    Currencies which do not have two decimal places must be defined in table TCURX (decimal places for currency codes). The table determines the number of decimal places in the output according to the currency key. If the contents of currency exist in table TCURX as currency key CURRKEY, the system sets the number of decimal places according to the entry for the field CURRDEC in TCURX. You can maintain this table via the R/3 Implementation Guide (Global Settings -> Currencies, Transaction OY04).
    If a currency is not defined in Table TCURX (decimal places for currency codes), this currency is regarded as currency with two decimal places.
    Impact of TCURX in BW on data:
    Currently in my present system the following currencies were listed in the TCURX Table:
    Details of the Currencies
    In the above table some of the Currencies are obsolete.   
    Data load from Source to BW:
    In the Source I have the data like below:
    For one of the company the total net Sales is present as 675772,43 CLP (Chilean Peso) in the source system for the period Jan’12.
    When the data is loaded into BW:
    The data in the Source and in the Cube is matching each other.
    Data reported in the query looks like below:
    The data in the query gets multiplied by 100 which results in 67577243.00 CLP this is due to the fact that when we execute the query, the query looks at the possible entry of the the currency in the table TCURX. If the entry is available as 0, then it will multiply by 100 as normally as per SAP, all Currencies are stored with two decimal places.
    Corrective measures / steps which user should take before raising an issue:
    This behavior is due to the fact that the Query always looks at the TCURX table while execution and if there is an entry in TCURX then it will be considered as below:
    [Amount Value] * [10 ** (2- (CURRDEC entry in TCURX table))]
    In present case as the entry is marked as 0 in TCURX table the result will be like below:
                           = Amount*10**(2-0) = Amount*10**2 = Amount * 100
    This will be corrected as below:
    All amount related entries at the data source level should be marked to ‘External Format’.
    Earlier the same was like below with the internal format.
    In 3.x we have the option to choose the same at the infopackage level with 'Currency Conversion for External Systems':
    The above change in the data source will provide the below results:
    During data loads:  When we load the data into BW having amount fields in it, it checks the TCURX table for the currency entry. If the currency entry is present in TCURX table, it divides the amount value by 10** (2- (CURRDEC entry in TCURX table)).
    Query Output: The exactly reverse happens while displaying such values in the report output. The amount value will be multiplied by 10** (2- (CURRDEC entry in TCURX table)) while displaying in the report output.
    One of below example shows the results as below from the flat file when the format is changed to External.
    From Flat file: Sample content from Flat file
      In the Cube: Output from the Cube for the same entry
    Values are divided by 100 as for Currency IDR the entry is marked as ‘ZERO’ in TCURX table for number    of Decimal places.
    In the Query: Out of the Query looks like below:
    Values the source value matches with the target value where the values of the cube get multiplied by 100.
    Points to be noted: This procedure is only with the amounts having CURR data type.
    If the amounts are used as FLTP type then this issue can also be avoided.
    All the currencies having entry other than 2 in the field CURRDEC of table TCURX will be affected by this phenomenon.
    The division will be carried out at the time of loading while multiplication will be carried out at the time of report output display.
    Mainly this needs to be considered when dealing with the Flat file data loads which holds the currencies and for the ECC to BW the respective customization needs to be considered into account in the source system side.
    Regards,
    Vijay

  • Changing Decimal places in table TCURX

    Hi There
    We have a business requirement to change the decimal places in table TCURX from 3 Decimals to 5 Decimal places. No previous postings have been made in foreign currencies.
    If no transaction data has been posted in foreign currencies yet, will this have an impact?
    What will the impact be?
    Regards

    Hi,
    Refer to this SAP text:
    In the R/3 System tables currency fields are stored as decimal figures with a variable number of decimal places. The decimal point is not stored in the field in the database. Instead, each currency field refers to a currency key field. In this transaction you assign the number of decimal places to this currency key uniquely. Example: If you have set currency USD to have two decimal places and you post an amount of 100 USD, an amount of 10000 USD is stored in the currency field in the database. Not until this
    amount is processed further or is output does the system use the currency key from the reference field to determine the number of decimal places via this table. In this way the table content can be interpreted correctly for further processing or formatted for output with the correct punctuation. If after posting you changed the number of decimal places for USD, for example, to 3, the existing field content of 10000 would be interpreted for futher processing or output as 10 USD (10.000). This would mean that the contents of tables across the system would, for all currency fields containing an amount in USD,
    be interpreted incorrectly by 10 per cent. To change the number of decimal places for a currency already in use, you must convert all the tables in the R/3 System that contain currency fields, so that the data integrity remains. This cannot, however, for both organizational reasons and under the runtime
    aspect be carried out in a productive system. The following changes to the TCURX table can
    thus lead to the loss of data integrity if you make the changes in a productive system or transport them into a productive system:
    o Change to the number of decimal places of an existing currency
    o Deletion of an entry from the TCURX table (corresponds to changing the decimal places to the standard value of two decimal places)
    o Insertion of an entry in the TCURX (corresponds to changing the standard value of
    2 decimal places to a different value), if this is a currency code that already exists
    Uncritical changes are any made to this table during the Customizing of a new installation or the insertion of TCURX even during operations, if the currency codes have just been entered in the TCURC table using transaction OY03, signifying that no postings to these currency codes can have been carried out yet.
    Regards,
    Eli

  • Problem in SAP Query with currency conversion   based on table TCURX

    Hi All,
    I have an infoset where tables A903 and KONP are joined . Query is displaying the KONP-KBTER values with currency as stored in the database table .My requirement is to show the KBETR value as per decimals stored in TCURX table for that currency .
    For Example If KONP-KBETR = 51.29 JPY , It sholuld display as 5129  as  Decimal places for JPY is 0.
    There is FM CURRENCY_AMOUNT_SAP_TO_DISPLAY Which gives the equvivalent display value to the databse value value.But it is giving dump because of type conflict with
    KONP-KBETR .
      Can any body help me how can i solve the problem in My Query ? .Pls any small idea taht may help greatly  also warmly welcome .
    Thx,
    Dharma .

    Hi Sriram ,
    But how can i use it in Queries . I mean should I go for a additional filed in infoset and then passing the  converted value to the the that additional field .
    Thx ,
    Dharma .

  • TCURX not updating in BW with RSIMPCUST

    BW Dudes and Dudettes,
    Our ECC6 com padres have deleted an entry from TCURX.
    They've done this in the ECC6 environment (Dev currently, but QA and Prod to follow).
    I now want to replicate the change to BW. I've used all the options on RSIMPCUST manually on the appropriate source system in RSA1 but the changes do not reflect in TCURX in our BW system.
    Any ideas why TCURX is not changing, even though I get success messages in the log for RSIMPCUST?
    Regards,
    AJ

    Okay, so I should have checked SAP Notes first ...!
    1549820 - TCURX deletion does not take place during rebuild, seems they changed the logic to prevent deletions via RSIMPCUST and have realised the error of their ways - this note allows deletions again.
    Regards,
    AJ

  • TCURX entry in BW for JPY

    Hi BW experts!
    We are currently implementing a BW solution for Japan and hence the currency used in all transactions is JPY.
    I undertand JPY has no decimals and hence finds an entry in TCURX table with 0 decimal places in BW .
    Our R3 team has now removed this entry from TCURX table as it seems they want to have 2 decimal places for reporting.
    Now,in order to replicate this,in RSA1  for my ECC system I did transfer of global settings->Update tables.This did not help.
    I even tried rebuild option.But even this did not take off the JPY entry in TCURX in BW.
    Is this behaviuor normal? Should it not have repopulated the TCURX table by deleting YEN entry?
    Or  should we manually delete the entry in BW in TCURX by going to SPRO?
    Please suggest .We are in the development system currently.
    Thanks in Advance.
    Sree

    Hi there,
    Go to RSA1->Source Systems and right-click over your R/3 system and choose "Transfer Exchange Rates" and choose "Transfer exchange rates again".
    Diogo.

  • TCURX Decimal Point Change

    For certain currencies I have a conflict between the stated decimal places on inbound American Express transactions vs. what's stored on TCURX.  Because of this descrepancy I cannot load COP or HUF American Express transactions into the SAP system for use in the Travel Expenses application.
       American Express is assigning two decimal places to transactions originating in Columbia Peso (COP) and Hungary Forint (HUF) while SAP is assigning zero decimal places.  ISO 4217 states that both currencies are two decimal places.
       The credit card accounting currency and company code currency are both USD.  All SAP transactions have been posted in USD.  There are no exceptions.
       Based on this background I'm trying to determine the best approach for modifying TCURX so it properly reflects the ISO 4217 standard for COP and HUF.  Through my research I've determined that a currency code with two decimal places is not included in TCURX.  Should I delete the TCURX entries for COP and HUF or should I change the decimal place value to two for both of these currencies?  Or is another course of action required? 
        Thanks in advance for oyur help.
    Paul Portella

    The fillér, which was defined as a 100th part of a Forint, has long ceased to exist.
    The same probably applies to Colombia.
    However, history apart, I wonder why you cannot delete the two entries from the TCURX table (which takes its values from OY04). Maybe raise an OSS note and have SAP answer this for you. My client does not deal in Forints, so its not been maintained.
    You cannot change the decimal value to 2, since that option has not been provided (assumed default).
    Cheers.

  • Decimals management through TCURX

    Hi Experts,
    I do have the usual issue with ITL currency in BEx (SAP BI 7.0 / BEx 3.5).
    As you probably know, Italian Lire is a no-decimal currency, stored that way in TCURX table.
    I do load my amounts from an Oracle database, through DBConnect.
    Therefore, the amount 1000 ITL is displayed in BEx like 100000,00 ITL, which is obiously wrong.
    There is an evident way to workaround this by removing the ITL record in TCURX, but I would like to implement another method, using for example conversion in my DataSource.
    Here are my 3 questions:
    1. Could someone explicitly explain me how the amount are stored into the database (with or without decimal) and when intervene the cross-check with TCURX.
    2. Does it exist a standard conversion module in DataSources for converting my ITL amounts to the right SAP Amount format?
    3. If not, I suppose applying a small routine in transformations like IF Currency = ITL then divide per 100 is not really a wrong method?
    Thanks for all the explanations you could give me
    Sylvain

    Hii,
    So for this particular issue, we have only one standard option: for a flat file load infopackage on external data tab, we have currency conversion for External syst check box. when you check this  currency conversion option, whle data loading the value for ITL gets loaded divided by 100 ( based on the decimal places in TCURX). and in the Bex report the amount again gets multiplied with 100. only issue with it is you may lose out on few decimal values whle storing the data.
    But i doubt if the same conversion is available for DB connect infopackages, so only option left out is writing a routine while loading the data you need to carry out the calculation.
    Hope this helps...
    Regards,
    Umesh.

  • SQL ERROR

    HI EXPERTS!
    CAN ANYBODY TELL ME HOW TO RESOLVE THIS RUNTIME ERROR ON EXECUTING TRANSACTION PC00_M40_CALC.
    Runtime errors         DBIF_RSQL_SQL_ERROR
    Exception              CX_SY_OPEN_SQL_DB
           Occurred on     07.08.2007 at   14:13:06
    An SQL error occurred when accessing a table.
    What happened?
    What can you do?
    Make a note of the actions and input which caused the error.
    To resolve the problem, contact your SAP system administrator.
    You can use transaction ST22 (ABAP Dump Analysis) to view and administer
    termination messages, especially those beyond their normal deletion
    date.
    Error analysis
    An exception occurred. This exception is dealt with in more detail below
    . The exception, which is assigned to the class 'CX_SY_OPEN_SQL_DB', was
    neither
    caught nor passed along using a RAISING clause, in the procedure
    "GET_SLAB_RATE" "(METHOD)"
    Since the caller of the procedure could not have expected this exception
    to occur, the running program was terminated.
    The reason for the exception is:
    How to correct the error
    The exception must either be prevented, caught within the procedure
    "GET_SLAB_RATE"
    "(METHOD)", or declared in the procedure's RAISING clause.
    To prevent the exception, note the following:
    Database error text........: "ORA-04031: unable to allocate 4200 bytes of
    shared memory ("shared pool","SELECT * FROM "T7INT1" WHERE...","library
    cache","kkslpkp - literal info.")"
    Internal call code.........: "[RSQL/FTCH/T7INT1 ]"
    Please check the entries in the system log (Transaction SM21).
    You may able to find an interim solution to the problem
    in the SAP note system. If you have access to the note system yourself,
    use the following search criteria:
    "DBIF_RSQL_SQL_ERROR" CX_SY_OPEN_SQL_DBC
    "CL_HRPAYIN_SLABRATES==========CP " or "CL_HRPAYIN_SLABRATES==========CM002 "
    "GET_SLAB_RATE"
    If you cannot solve the problem yourself, please send the
    following documents to SAP:
    1. A hard copy print describing the problem.
       To obtain this, select the "Print" function on the current screen.
    2. A suitable hardcopy prinout of the system log.
       To obtain this, call the system log with Transaction SM21
       and select the "Print" function to print out the relevant
       part.
    3. If the programs are your own programs or modified SAP programs,
       supply the source code.
       To do this, you can either use the "PRINT" command in the editor or
       print the programs using the report RSINCL00.
    4. Details regarding the conditions under which the error occurred
       or which actions and input led to the error.
    System environment
    SAP Release.............. "620"
    Application server....... "hmsidev01"
    Network address.......... "10.249.16.150"
    Operating system......... "Windows NT"
    Release.................. "5.0"
    Hardware type............ "2x Intel 801586"
    Character length......... 8 Bits
    Pointer length........... 32 Bits
    Work process number...... 0
    Short dump setting....... "full"
    Database server.......... "HMSIDEV01"
    Database type............ "ORACLE"
    Database name............ "DEV"
    Database owner........... "SAPDEV"
    Character set............ "English_United State"
    SAP kernel............... "620"
    Created on............... "Jun 13 2004 22:06:10"
    Created in............... "NT 5.0 2195 Service Pack 2 x86 MS VC++ 12.00"
    Database version......... "OCI_817_SHARE "
    Patch level.............. "1511"
    Patch text............... " "
    Supported environment....
    Database................. "ORACLE 8.1.7.."
    SAP database version..... "620"
    Operating system......... "Windows NT 5.0, Windows NT 5.1, Windows NT 5.2"
    User, transaction...
    Client.............. 100
    User................ "IR1"
    Language key........ "E"
    Transaction......... "PC00_M40_CALC "
    Program............. "CL_HRPAYIN_SLABRATES==========CP "
    Screen.............. "SAPMSSY0 1000"
    Screen line......... 6
    Information on where terminated
    The termination occurred in the ABAP program "CL_HRPAYIN_SLABRATES==========CP
    " in "GET_SLAB_RATE".
    The main program was "HINCALC0 ".
    The termination occurred in line 12 of the source code of the (Include)
    program "CL_HRPAYIN_SLABRATES==========CM002 "
    of the source code of program "CL_HRPAYIN_SLABRATES==========CM002 " (when
    calling the editor 120).
    Processing was terminated because the exception "CX_SY_OPEN_SQL_DB" occurred in
    the
    procedure "GET_SLAB_RATE" "(METHOD)" but was not handled locally, not declared
    in the
    RAISING clause of the procedure.
    The procedure is in the program "CL_HRPAYIN_SLABRATES==========CP ". Its source
    code starts in line 1
    of the (Include) program "CL_HRPAYIN_SLABRATES==========CM002 ".
    Source code extract
    000010   METHOD get_slab_rate .
    000020
    000030     DATA: wa_t7int1 TYPE  t7int1,
    000040           wa_t7int3 TYPE  t7int3,
    000050           slab_code TYPE t7int1-slcod.
    000060     CLEAR: wa_t7int1 ,
    000070           wa_t7int3 ,
    000080           slab_code .
    000090
    000100
    000110   * Select slab code from t7int1.
        SELECT * FROM t7int1 INTO wa_t7int1
    000130                WHERE sltyp = slab_type
    000140                AND begda LT ref_date
    000150                AND endda GE ref_date.
    000160       MOVE wa_t7int1-slcod TO slab_code.
    000170     ENDSELECT.
    000180
    000190   * Find out the rate for the salb code in which the income falls.
    000200     SELECT * FROM t7int3 INTO wa_t7int3 WHERE slcod = slab_code ORDER BY
    000210   hirge.
    000220       IF wa_t7int3-hirge GE income.
    000230         EXIT.
    000240       ENDIF.
    000250     ENDSELECT.
    000260
    000270     slab_rate = wa_t7int3-txval.
    000280
    000290
    000300   ENDMETHOD.
    Contents of system fields
    SY field contents..................... SY field contents.....................
    SY-SUBRC 0                             SY-INDEX 215
    SY-TABIX 63                            SY-DBCNT 1
    SY-FDPOS 1                             SY-LSIND 0
    SY-PAGNO 1                             SY-LINNO 1
    SY-COLNO 1                             SY-PFKEY
    SY-UCOMM                               SY-TITLE Payroll Driver, India
    SY-MSGTY                               SY-MSGID
    SY-MSGNO 000                           SY-MSGV1
    SY-MSGV2                               SY-MSGV3
    SY-MSGV4
    Active calls / events
    No.... Type........ Name..........................
           Program
           Include                                  Line
           Class
        16 METHOD       GET_SLAB_RATE
           CL_HRPAYIN_SLABRATES==========CP
           CL_HRPAYIN_SLABRATES==========CM002         12
           CL_HRPAYIN_SLABRATES
        15 FORM         STDDED03
           HINCALC0
           PCTAXIN0                                   564
        14 FORM         CALC_STANDARD_DEDUCTION
           HINCALC0
           PCTAXIN0                                   466
        13 FORM         FUINTAX
           HINCALC0
           PCTAXIN0                                   253
        12 FORM         AS-FUNKTION
           HINCALC0
           PCASFIN0                                    13
        11 FORM         ASLOOP
           HINCALC0
           RPCHRT09_ASLOOP                             58
        10 FORM         MONATSABRECHNUNG
           HINCALC0
           RPCHRT09_MONATSABRECHNUNG                   48
         9 FORM         RUECKRECHNUNG
           HINCALC0
           RPCHRT09_RUECKRECHNUNG                     136
         8 FORM         MAIN
           HINCALC0
           RPCHRT09_MAIN                              134
         7 FORM         %_GET_PERNR
           HINCALC0
           RPCHRT09                                   762
         6 FORM         FILL_INFOTYPE_TABLES_AND_PUT
           SAPDBPNP
           DBPNPF03                                   542
         5 FORM         PUTPERN
           SAPDBPNP
           DBPNPF03                                   470
         4 FORM         LOOP_AT_INDEX_AND_PUT
           SAPDBPNP
           DBPNPF01                                   996
         3 FORM         PUT_PERNR
           SAPDBPNP
           DBPNPF01                                   194
         2 FORM         %_ROOT
           SAPDBPNP
           SAPDBPNP                                   151
         1 EVENT        SYSTEM-EXIT
           HINCALC0
                                               20
    Chosen variables
        16 METHOD       GET_SLAB_RATE
           CL_HRPAYIN_SLABRATES==========CP
           CL_HRPAYIN_SLABRATES==========CM002         12
    SLAB_TYPE                      D
                                   4
                                   4
    REF_DATE                       20070331
                                   33333333
                                   20070331
    INCOME                         ####Q•“#
                                   00005991
                                   0001153C
    SLAB_RATE                      ########
                                   00000000
                                   0000000C
    WA_T7INT1                          0000000000000000
                                   222233333333333333332
                                   000000000000000000000
    WA_T7INT3                            #######       #######
                                   222222000000022222220000000
                                   000000000000C0000000000000C
    SLAB_CODE
                                   2222
                                   0000
    %_VIASELSCR                    #
                                   0
                                   4
    <%_TABLE_T7INT1>               ???
    %_SPACE
                                   2
                                   0
    SYST-REPID                     CL_HRPAYIN_SLABRATES==========CP
                                   4454554544554445454533333333334522222222
                                   3CF820199EF3C1221453DDDDDDDDDD3000000000
    SY-XPROG                       SAPDBPNP
                                   5454454522222222222222222222222222222222
                                   310420E000000000000000000000000000000000
    SY-REPID                       CL_HRPAYIN_SLABRATES==========CP
                                   4454554544554445454533333333334522222222
                                   3CF820199EF3C1221453DDDDDDDDDD3000000000
    SY-XFORM                       %_ROOT
                                   255445222222222222222222222222
                                   5F2FF4000000000000000000000000
    %_DUMMY$$
                                   2222
                                   0000
    <%_TABLE_T7INT3>               ???
        15 FORM         STDDED03
           HINCALC0
           PCTAXIN0                                   564
    STD_DED_TAB                    Table[initial]
                                   0000FFFD
                                   0000FFFF
    SY-TABIX                       63
                                   3000
                                   F000
    STD_PERCENT                    #####
                                   00000
                                   0000C
    %_SPACE
                                   2
                                   0
    SYST-REPID                     HINCALC0
                                   4444444322222222222222222222222222222222
                                   89E31C3000000000000000000000000000000000
    SPACE
                                   2
                                   0
    %_DUMMY$$
                                   2222
                                   0000
    $ENDDATE                       20070331
                                   33333333
                                   20070331
    $PRE_DEDN_AMOUNT               ####Q•“#
                                   00005991
                                   0001153C
    $CALC_DEDN                     ########
                                   00000000
                                   0000000C
    SY-REPID                       HINCALC0
                                   4444444322222222222222222222222222222222
                                   89E31C3000000000000000000000000000000000
    SY                             ×#######?###?###########################
                                   D000000030003000000000000000000000000000
                                   70001000F000F000000000000000000000000000
    ... +  40                      ####################„###############5###
                                   0000000000000000000080000000000000003000
                                   1000100010000000100040000000000000005000
    ... +  80                      ########################################
                                   0000000000000000000000000000000000000000
                                   0000000000000000400000000000000000000000
    ... + 120                      ################################%###Ž###
                                   0000000000000000000000000000000020008000
                                   000000000000000000000000000000005000E000
    ... + 160                      ############XM## P#############   E0   1
                                   0000000000005400250000000000000222432223
                                   0000700040008D00000020000C0000C000500001
    ... + 200                      000         ####PNP                 100
                                   3332222222220000545222222222222222223332
                                   00000000000000000E0000000000000000001000
    ... + 240                           00
                                   222223322222222
                                   000000000000000
    NO_OF_ROWS
                                   2
                                   0
    SY-TFILL                       63
                                   3000
                                   F000
        14 FORM         CALC_STANDARD_DEDUCTION
           HINCALC0
           PCTAXIN0                                   466
    P0015[]                        Table IT_204[12x147]
                                   F7D4DED48000C000000090000000FFFF00004500
                                   871900998000C000C00030000000FFFF40000F00
    ... +  40
                                   0000C020
                                   20001E80
    SW_AUFROLLUNG                  X
                                   5
                                   8
    %BX03242_BLOCK_1000            Log
                                   4662222222222222222222222222222222222222
                                   CF70000000000000000000000000000000000000
    ... +  40
                                   2222222222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... +  80
                                   222
                                   000
    SNAME                          40INDED
                                   33444442
                                   409E4540
    T559A-WTIME                    000000
                                   333333
                                   000000
    OGRT[]                         Table IT_299[0x53]
                                   00000000C0002000000030000000FFFF0000E300
                                   000000003000B100000050000000FFFF40000310
    ... +  40
                                   1000C200
                                   00001E00
    ENDDATE                        20070331
                                   33333333
                                   20070331
    T596F-PGMNA                    HINCALC0
                                   4444444322222222222222222222222222222222
                                   89E31C3000000000000000000000000000000000
    T596F-MODNA                    STDDED03
                                   55444433
                                   34445403
    P_PRE_DEDUCTION_BALANCE        ####Q•“#
                                   00005991
                                   0001153C
    STANDARD_DEDUCTION             ########
                                   00000000
                                   0000000C
    P2006[]                        Table IT_460[37x168]
                                   9ED40000E000C0002000A0000000FFFF00008500
                                   877900006000C100500080000000FFFF40000600
    ... +  40
                                   0000C020
                                   20001E00
        13 FORM         FUINTAX
           HINCALC0
           PCTAXIN0                                   253
    ANNUAL_IRREGULAR_INCOME        ####3#%L
                                   00003124
                                   0000365C
    %_SET_VOID_%_APP_%
                                   222222222222222222222222222222
                                   000000000000000000000000000000
    ANNUAL_PERK                    ########
                                   00000000
                                   0000000C
    SET_ODC
                                   2
                                   0
    %_SET_ODC_%_APP_%
                                   222222222222222222222222222222
                                   000000000000000000000000000000
    SET_REVR
                                   2
                                   0
    P%2007                         00000000           000000000000000000000
                                   3333333322222222222333333333333333333333
                                   0000000000000000000000000000000000000000
    ... +  40                      000000                                00
                                   3333332222222222222222222222222222222233
                                   0000000000000000000000000000000000000000
    ... +  80                      0000000000 00###### ######   00000000000
                                   3333333333233000000200000022233333333333
                                   000000000000000000C000000C00000000000000
    ... + 120                      0000000000000000000000000
                                   3333333333333333333333333222222222222222
                                   0000000000000000000000000000000000000000
    ... + 160
                                   222222222222
                                   000000000000
    PRE_DEDUCTION_BALANCE          ####Q•“#
                                   00005991
                                   0001153C
    OCRSN
                                   2222
                                   0000
    APER-PAPER-PABRJ               2006
                                   3333
                                   2006
    APER-IAPER-PABRJ               2007
                                   3333
                                   2007
    SW_INTIM
                                   2
                                   0
    APER-PAPER                     200612
                                   333333
                                   200612
    ANN_PTAX_AMT                   ########
                                   00000000
                                   0000000C
        12 FORM         AS-FUNKTION
           HINCALC0
           PCASFIN0                                    13
    P0584                          00000000           000000000000000000000
                                   3333333322222222222333333333333333333333
                                   0000000000000000000000000000000000000000
    ... +  40                      000000                                 #
                                   3333332222222222222222222222222222222220
                                   0000000000000000000000000000000000000000
    ... +  80                      ########################################
                                   0000000000000000000000000000000000000000
                                   00000C0000C0000C0000C0000C000000C000000C
    ... + 120                      ####################################
                                   0000000000000000000000000000000000002222
                                   000000C000000C0000C0000C000000C0000C0000
    ... + 160                                 0000
                                   22222222222333322222
                                   00000000000000000000
    ORGDIR                         00000        0000000000000000  00      0
                                   3333322222222333333333333333322332222223
                                   0000000000000000000000000000000000000000
    ... +  40                      0000000        0000000000000000000000000
                                   3333333222222223333333333333333333333333
                                   0000000000000000000000000000000000000000
    ... +  80                      0000000000000  00000000
                                   3333333333333223333333322222222222222222
                                   0000000000000000000000000000000000000000
    ... + 120                      00000000000000 000000000000000000000
                                   3333333333333323333333333333333333332222
                                   0000000000000000000000000000000000000000
    RP-IMP-CD-SUBRC                0
                                   0000
                                   0000
    CD-SUBRC                       0
                                   0000
                                   0000
    CD-INDEX                       0
                                   0000
                                   0000
    IT[]                           Table IT_490[63x53]
                                   EFC47AC4F000E000300030000000FFFF00005100
                                   0AB903399000A100F00050000000FFFF40000810
    ... +  40
                                   2000C000
                                   B0009E00
    IT                             */418######### #   ####################Q
                                   2233300000000020222000000000000000000005
                                   AF418000000000000000000000C0000000C00011
    ... +  40                      •“#
                                   9912222222222
                                   53C0000000000
    RGDIR_CA[]                     Table IT_383[0x156]
                                   00003ED4E0007000000090000000FFFF0000C100
                                   000086791000F1000000C0000000FFFF40000810
    ... +  40
                                   4000C000
                                   00001400
    RGDIR_CA                       00000        0000000000000000  00      0
                                   3333322222222333333333333333322332222223
                                   0000000000000000000000000000000000000000
    ... +  40                      0000000        0000000000000000000000000
                                   3333333222222223333333333333333333333333
                                   0000000000000000000000000000000000000000
    ... +  80                      0000000000000  00000000
                                   3333333333333223333333322222222222222222
                                   0000000000000000000000000000000000000000
    ... + 120                      00000000000000 000000000000000000000
                                   333333333333332333333333333333333333
                                   000000000000000000000000000000000000
    %%_DIR2[]                      Table IT_218[0x54]
                                   000000009000D000000030000000FFFF0000D100
                                   000000006000A000000060000000FFFF40008210
    ... +  40
                                   6000C000
                                   40001400
    <%_TABLE_T599B>                ???
    PY_PM_CONTAINER                                                00000000
                                   2222222222222222222222222222222233333333
                                   0000000000000000000000000000000000000000
    ... +  40                      0
                                   3222222222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... +  80
                                   2222222222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... + 120
                                   2222222222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... + 160
                                   2222222222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... + 200
                                   2222222222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... + 240
                                   222222222222222
                                   000000000000000
    PNPSTATU-LOW
                                   222
                                   000
    SET_LCW                        010
                                   333
                                   010
        11 FORM         ASLOOP
           HINCALC0
           RPCHRT09_ASLOOP                             58
    P_WITH_LOG                     X
                                   5
                                   8
    SW_EXPORT_ES
                                   2
                                   0
    ASNUM                          215
                                   D000
                                   7000
    APER_NUMB                      15
                                   0000
                                   F000
    NEXT_AS_ENTRY                  244
                                   F000
                                   4000
    SW_REPETITION                  X
                                   5
                                   8
    SW_P0005_CHANGED
                                   2
                                   0
    PNPSACHZ
                                   222222222
                                   000000000
    PTEXT[]                        Table IT_139[0x548]
                                   0000CCC460008000000020000000FFFF00004300
                                   00000D79C000B000000042000000FFFF40000500
    ... +  40
                                   1000C200
                                   00001400
    SW_VOID
                                   2
                                   0
    SCREEN                         %_17SNS0000177553_%_%_%_%_%_%_
                                   2533545333333333352525252525252222222222
                                   5F173E30000177553F5F5F5F5F5F5F0000000000
    ... +  40
                                   2222222222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... +  80
                                   2222222222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... + 120                                           SRI00001#00000 ####
                                   2222222222222222222225543333303333320000
                                   0000000000000000000003290000100000000000
    SW_PROT
                                   2
                                   0
    PNPSBMOD-LOW
                                   2222
                                   0000
    PTEXT_LINES                    0
                                   0000
                                   0000
        10 FORM         MONATSABRECHNUNG
           HINCALC0
           RPCHRT09_MONATSABRECHNUNG                   48
    CALC_CURRENCY                  INR
                                   44522
                                   9E200
    SY-SUBRC                       0
                                   0000
                                   0000
    CALC_CURR_DEC                  1380862210
                                   0
                                   2
    TCURX-CURRDEC                  0
                                   0
                                   0
    PNPPERSK-LOW
                                   22
                                   00
    PNPKOSTL
                                   22222222222222222222222
                                   00000000000000000000000
    SL_BRUTTO
                                   2
                                   0
    FC-SL_B_N
                                   2
                                   0
    %_PNPSNAME_%_APP_%             PNPSNAMEEE name can be sorted         to
                                   5455444444266662666266276776622222222276
                                   0E03E1D5550E1D5031E02503F24540000000004F
    ... +  40
                                   2222222222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... +  80                         @1FQMultiple selection@
                                   2224345547676766276666766642222222222222
                                   000016C1D5C490C5035C5349FE00000000000000
    ... + 120
                                   222
                                   000
    APER-CALCD                     X
                                   5
                                   8
    DT                             /AEA00200612  00000000########
                                   24443333333322333333330000000022222
                                   F1510020061200000000000000000C00000
    DT[]                           Table IT_1916[4x35]
                                   F8F40000E0007000000020000000FFFF0000E400
                                   06090000A100C700400030000000FFFF40008610
    ... +  40
                                   1000C220
                                   00001E00
         9 FORM         RUECKRECHNUNG
           HINCALC0
           RPCHRT09_RUECKRECHNUNG                     136
    APER-PAYTY
                                   2
                                   0
    SY-XPROG                       SAPDBPNP
                                   5454454522222222222222222222222222222222
                                   310420E000000000000000000000000000000000
    PYCT                           0<>
                                   0000FFFF
                                   0000FFFF
    PNP-SW-AUTH-SKIPPED-RECORD     0
                                   3
                                   0
    P0007[]                        Table IT_201[4x138]
                                   CBC47DD48000C000000080000000FFFF00005400
                                   80390F99500090004000A0000000FFFF40008B00
    ... +  40
                                   0000C020
                                   20001E80
    PNPKOKRS[]                     Table IT_52[0x11]
                                   0000000020003000000000000000FFFF04007200
                                   00000000A00040000000B0000000FFFF44008700
    ... +  40
                                   0000C000
                                   A0001400
    PNPBLCKT
                                   2222222222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... +  40
                                   2222222222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... +  80
                                   222
                                   000
    FC-NT_BEGIN                    0
                                   0000
                                   0000
    PNP-SW-IGNORELOCKEDRECORDS     Y
                                   5
                                   9
    FROM_DATE                      00000000
                                   33333333
                                   00000000
    %_SET_LCW_%_APP_%
                                   222222222222222222222222222222
                                   000000000000000000000000000000
         8 FORM         MAIN
           HINCALC0
           RPCHRT09_MAIN                              134
    %_PNPFKBER_%_APP_%             PNPFKBERFunctional Area               to
                                   5454444547667666662476622222222222222276
                                   0E06B25265E349FE1C012510000000000000004F
    ... +  40
                                   2222222222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... +  80                         @1FQMultiple selection@
                                   2224345547676766276666766642222222222222
                                   000016C1D5C490C5035C5349FE00000000000000
    ... + 120
                                   222
                                   000
    PERNR-PERNR                    00003015
                                   33333333
                                   00003015
                            Table IT_235[0x178]
                                   000045D4A000E0000000B0000000FFFF00003400
                                   000080390000B000000020000000FFFF40008110
    ... +  40
                                   1000C200
                                   00001400
    P0027[]                        Table IT_234[0x1851]
                                   0000A4D49000E000000030000000FFFF0000DE00
                                   00008F39F000A0000000B7000000FFFF40000610
    ... +  40
                                   0000C200
                                   80001E00
    PNPENAME
                                   2222222222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... +  40
                                   2222222222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... +  80
                                   222
                                   000
    INFTY[]                        Table IT_116[34x4]
                                   8EC4000050007000200000000000FFFF0D008000
                                   0E790000A0004000200040000000FFFF43000900
    ... +  40
                                   2000C000
                                   20001400
    INFTY                          0078
                                   3333
                                   0078
    PNPBLCKP                       Payroll period
                                   5677666276766622222222222222222222222222
                                   0192FCC00529F400000000000000000000000000
    ... +  40
                                   2222222222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... +  80
                                   222
                                   000
    SY-MSGNO                       000
                                   333
                                   000
    FC-PGM_TYP                     ABR
                                   4452
                                   1220
    PY12W_MEM_ID_BUFFER            T512W_BUFFER
                                   533355454445
                                   45127F256652
    RSJOBINFO                                                      00000000
                                   2222222222222222222222222222222233333333
                                   0000000000000000000000000000000000000000
    ... +  40                      000000
                                   3333332222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... +  80                      ####
                                   0000
                                   0000
    P0032                          00000000           000000000000000000000
                                   3333333322222222222333333333333333333333
                                   0000000000000000000000000000000000000000
    ... +  40                      000000
                                   3333332222222222222222222222222222222222
                                   0000000000000000000000000000000000000000
    ... +  80                                             #####
                                   2222222222222222222222200000222222222222
                                   000000000000000000000000000C000000000000
    ... + 120
                                   2222222222222222222222222222222222222222
                           

    Hello,
    strange, you have the same message in SQL Server forum, but we can see Oracle DB here:
    SQL ERROR
    Without developer traces it would be difficult to say. But it looks bad enough because of kernel 6.20 patch level 1511 (definitely dboraslib.dll has similar patch level) and Oracle 8.1.7 are out of support since years.
    best regards

  • Currency translation on future dates in SAP BW-BEX

    Hello All We have a requirement where in user needs to do a currency translation at run time for data in future periods. For example : Savings data on a purchase order .Total savings for PO is $100,000.00 in year/month 2014/008 . We have a from and to date based on which the savings is equally distributed for each month. From 008/2014 to 008/2015. So each month savings in this case is $8333.33. This data is stored in cubes.  Currency translation is based on data in TCURR and TCURX tables . We do not have future currency rates in these tables. Table is up to date only as of today . Therefore the question arises WHAT RATE WILL BEX USE TO CALCULATE DATA IN FUTURE PERIODS? (It is doing the conversion from USD to CAD - but there is no idea what rate it is using? The currency translation variable is based on 0calmonth. Please help me understand what are the default settings for currency translations in this case ? Thank your your help. Sainath Kumar

    Hello Yasemin Thank you for your answer, we too think that could be the case. But is there any documentation confirming the same. Also in this case the future values will keep changing based on the availability of the data in TCURR table. Thus the report values will not be constant.Technically it makes no sense to convert rate today for a value in future. I am looking for a concrete answer from SAP saying that this is what the Bex query will do in case the future rates are not present. This will give the business a base to work with .

  • How to add a field in dynamic selections

    HI,
    There is a requirement in which i need to add a field in existing program of dynamic selections.
    I have added a field in the screen.But I was not able to write the label and is not displaying.
    I ahve copied evrything from existing coding.but still.
    In the program ,Field groups are being used.
    I have inserted my field in that header and item of field groups.
    But i was not able to select the data based on this selection.
    i will attach my code here for reference.
    can anyone please help me how to use these filed symbols.
    If possible send me the document on Dynamic selections.
    the field i need to add is bkpf-bktxt
    TABLES:
      tcurx,
      lfa1,
      kna1,
      bhdgd,
      bkpf,
      bseg,
      bsega,
      b0sg,
      fimsg,
      sarkey,
      t001,
      vbset,
      sscrfields.
          Selektionsparameter                                           *
    begin_of_block 1.
    PARAMETERS:
      par_nbel       LIKE rfpdo-bpetnbel,  "Normale Belege
      par_vbel       LIKE rfpdo-epojvbel,  "Vorerfaßte Belege
      par_sbel       LIKE rfpdo-bpetsbel,  "Statistischen Belege
      par_mbel       LIKE rfpdo-epojmbel,  "Musterbelege
      par_dbel       LIKE rfpdo1-korbdbel. "Dauerbuchungsurbelege
    end_of_block 1.
    begin_of_block 2.
    PARAMETERS:
      par_summ       LIKE rfpdo1-allgsumm, "nur Summenausgabe
      par_hkto       LIKE rfpdo2-beljhkto, "Hauptbuch- statt Personenkonto
      par_altk       LIKE rfpdo1-allgaltk, "alternative Kontonummer
      par_lsep       LIKE rfpdo-allglsep,  "Listseparation
      par_mikf       LIKE rfpdo-allgmikf,  "Mikrofiche-Zeile
      par_line       LIKE rfpdo1-allgline. "Zusatztitel
    Eingaben für optische Archivierung
    SELECTION-SCREEN BEGIN OF LINE.
    PARAMETERS:     arc     LIKE rfpdo1-allgarch.
    SELECTION-SCREEN COMMENT 3(29) text-103 FOR FIELD arc.
    SELECTION-SCREEN POSITION POS_LOW.
    PARAMETERS:     arc_msg1(10) MODIF ID arc.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION POS_LOW.
    PARAMETERS:     arc_msg2(10) MODIF ID arc.
    SELECTION-SCREEN END OF LINE.
    end_of_block 2.
    PARAMETERS:     arc_mem LIKE arc_params NO-DISPLAY.
          Felder und Feldleisten                                        *
    CONSTANTS:
      con_true       TYPE i                VALUE 1,
      con_false      TYPE i                VALUE 2,
      con_hash       TYPE i                VALUE 1,
      con_vendor     TYPE c                VALUE 'K',
      con_cust       TYPE c                VALUE 'D'.
    Global Data
    DATA: BEGIN OF hash_totals OCCURS 25,
             bukrs LIKE t001-bukrs,
             poper(7),
             dramt LIKE bseg-wrbtr,
             cramt LIKE bseg-wrbtr,
          END OF hash_totals.
    DATA:
      factor         TYPE i,
    Zähler
      cnt_bukrs(4)   TYPE p,               "Anzahl Buchungskreise
      cnt_max        LIKE sy-tfill,        "Maximum der CNT_Ti
      cnt_t0         LIKE sy-tfill,        "Anzahl Einträge in Ti
      cnt_t1         LIKE sy-tfill,
      cnt_t2         LIKE sy-tfill,
      cnt_t3         LIKE sy-tfill,
      cnt_t4         LIKE sy-tfill,
      cnt_t5         LIKE sy-tfill,
    Fehler
      err_altkt(1)   TYPE c,               "alt. Kontonummer nicht gefunden
    Flags
      flg_section    TYPE i,
      flg_vendr2     TYPE i,
      flg_vendr3     TYPE i,
      flg_color(1)   TYPE n,               "0 - intensified off
    Hilfsfelder
      hlp_belnr(10)  TYPE c,               "Anzeigefeld Belegnummer
      hlp_bstat      LIKE bkpf-bstat,      "Status vorerfaßter Belege
      hlp_buper(7)   TYPE c,               "Buchungsperiode mit '/'
      hlp_null(1)    TYPE p VALUE 0,       "Betrag Null
      hlp_sakan      LIKE ska1-sakan,      "Anzeigefeld Kontonummer
      hlp_wrshb(26)  TYPE c,               "FW-Betrag mit Währung in Klammer
      hlp_vnd_amt(43) TYPE c,
    Texte
      txt_line0(132) TYPE c,               "Überschriften
      txt_line1(132) TYPE c,
      txt_line2(132) TYPE c,
      txt_line(132)  TYPE c,               "Hilfstext
    Feldleisten
      BEGIN OF mikfi,                      "Information Mikrofiche-Zeile
        bstat        LIKE bkpf-bstat,
        bukrs        LIKE bkpf-bukrs,
        gjahr        LIKE bkpf-gjahr,
        belnr        LIKE bkpf-belnr,
      END OF mikfi.
          Interne Tabellen                                              *
    DATA:
    Belegkopfinformationen
      BEGIN OF t0 OCCURS 4,                "0 - allgemeine Angaben
        info(1)  TYPE n,                   "1 - vorerfaßter Beleg
      END OF t0,                           "2 - Referenz
                                                                "3 - Storno
                                           "4 - gelöschter vorerfaßter Beleg
                                           "5 - ersetzter vorerfaßter Beleg
                                           "6 - Ausgleichsbeleg
                                           "7 - zurückgenommener Ausgleich
    Personenkonteninformationen je Beleg
      BEGIN OF t1 OCCURS 10,
        koart    LIKE bseg-koart,          "Kontoart
        ktonr    LIKE bseg-kunnr,          "Kontonummer(Debitor/Kreditor)
        bschl    LIKE bseg-bschl,          "Buchungsschlüssel
        xnegp    LIKE bseg-xnegp,          "Negativbuchung
        umskz    LIKE bseg-umskz,          "Sonderumsatzkennzeichen
        zlspr    LIKE bseg-zlspr,          "Payment Block Key - CR 21709
        dmshb    LIKE bsega-dmshb,         "Soll-Haben Betrag in Hauswährung
        wrshb    LIKE bsega-dmshb,         "Betrag in Fremdwährung
        xfwae(1) TYPE c,                   "X - Fremdwährungsinformation
        name1    LIKE lfa1-name1,          "Customer/ Vendor Name
      END OF t1,
    Steuerinformationen je Beleg
      BEGIN OF t2 OCCURS 10,
        mwskz    LIKE bseg-mwskz,          "Mehrwertsteuerkennzeichen
        dmshb    LIKE bsega-dmshb,         "Soll-Haben Betrag in Hauswährung
      END OF t2,
    Sachkonteninformationen je Beleg
      BEGIN OF t3 OCCURS 20,
        mwskz    LIKE bseg-mwskz,          "Mehrwertsteuerkennzeichen
        bschl    LIKE bseg-bschl,          "Buchungsschlüssel
        xnegp    LIKE bseg-xnegp,          "Negativbuchung
        koart    LIKE bseg-koart,          "Kontoart
        hkont    LIKE bseg-hkont,          "Hauptbuchkonto
        dmshb    LIKE bsega-dmshb,         "Soll-Haben Betrag in Hauswährung
        kostl    LIKE bseg-kostl,          "Cost Center
        prctr    LIKE bseg-prctr,          "Profit Center
      END OF t3,
    Sonderhauptbuchbeträge für Debitoren (nur Ausgabe)
      BEGIN OF t4 OCCURS 5,
        umskz         LIKE bseg-umskz,     "Sonderumsatzkennzeichen
        dmsol(9)      TYPE p,              "Soll-Betrag Hauswährung
        dmhab(9)      TYPE p,              "Haben-Betrag Hauswährung
      END OF t4,
    Sonderhauptbuchbeträge für Kreditoren (nur Ausgabe)
      BEGIN OF t5 OCCURS 5,
        umskz         LIKE bseg-umskz,     "Sonderumsatzkennzeichen
        dmsol(9)      TYPE p,              "Soll-Betrag Hauswährung
        dmhab(9)      TYPE p,              "Haben-Betrag Hauswährung
      END OF t5,
    Summeninformationen je Buchungskreis
      BEGIN OF tbukrs OCCURS 20,
        bstat         LIKE bkpf-bstat,     "Belegstatus
        bukrs         LIKE bkpf-bukrs,     "Buchungskreis
    START OF CHANGE FOR CR63816 by OS0794 on 01/29/2008
        bktxt         LIKE bkpf-bktxt,
    END OF CHANGE FOR CR63816 by OS0794 on 01/29/2008
        gjahr         LIKE bkpf-gjahr,     "Buchungsjahr
        monat         LIKE bkpf-monat,     "Buchungsmonat
        dmsol(9)      TYPE p,              "Soll-Betrag Hauswährung
        dmhab(9)      TYPE p,              "Haben-Betrag Hauswährung
        waers         LIKE t001-waers,     "Währungsschlüssel (nur Ausgabe)
      END OF tbukrs,
    Sonderhauptbuchinformationen je Buchungskreis
      BEGIN OF tbukrs_u OCCURS 20,
        bstat         LIKE bkpf-bstat,     "Belegstatus
        bukrs         LIKE bkpf-bukrs,     "Buchungskreis
    START OF CHANGE FOR CR63816 by OS0794 on 01/29/2008
        bktxt         LIKE bkpf-bktxt,
    END OF CHANGE FOR CR63816 by OS0794 on 01/29/2008
        gjahr         LIKE bkpf-gjahr,     "Buchungsjahr
        monat         LIKE bkpf-monat,     "Buchungsmonat
        koart         LIKE bseg-koart,     "Kontoart
        umskz         LIKE bseg-umskz,     "Sonderumsatzkennzeichen
        dmsol(9)      TYPE p,              "Soll-Betrag Hauswährung
        dmhab(9)      TYPE p,              "Haben-Betrag Hauswährung
        waers         LIKE t001-waers,     "Währungsschlüssel (nur Ausgabe)
      END OF tbukrs_u,
    Summeninformationen je Hauswährung
      BEGIN OF twaers OCCURS 10,
        bstat         LIKE bkpf-bstat,     "Belegstatus
        waers         LIKE t001-waers,     "Hauswährungsschlüssel
        gjahr         LIKE bkpf-gjahr,     "Buchungsjahr
        monat         LIKE bkpf-monat,     "Buchungsmonat
        dmsol(9)      TYPE p,              "Soll-Betrag Hauswährung
        dmhab(9)      TYPE p,              "Haben-Betrag Hauswährung
      END OF twaers,
    Sonderhauptbuchinformationen je Hauswährung
      BEGIN OF twaers_u OCCURS 20,
        bstat         LIKE bkpf-bstat,     "Belegstatus
        waers         LIKE t001-waers,     "Währungsschlüssel
        gjahr         LIKE bkpf-gjahr,     "Buchungsjahr
        monat         LIKE bkpf-monat,     "Buchungsmonat
        koart         LIKE bseg-koart,     "Kontoart
        umskz         LIKE bseg-umskz,     "Sonderumsatzkennzeichen
        dmsol(9)      TYPE p,              "Soll-Betrag Hauswährung
        dmhab(9)      TYPE p,              "Haben-Betrag Hauswährung
      END OF twaers_u,
    Fehlerprotokoll im Batch
      BEGIN OF tfimsg OCCURS 10.
            INCLUDE STRUCTURE fimsg.
    DATA END OF tfimsg.
          Strukturen für optische Archivierung                          *
    DATA BEGIN OF info OCCURS 10.
            INCLUDE STRUCTURE bhinf.
    DATA END OF info.
    DATA:
      arc_save LIKE arc_params,
      arc_valid.
          Feldgruppen                                                   *
    FIELD-GROUPS: header, daten.
    INSERT:
      bkpf-bukrs                           "Buchungskreis
      bkpf-bktxt                           "Change by OS0794
      bkpf-bstat                           "Belegstatus
      bkpf-gjahr                           "Geschäftsjahr
      bkpf-belnr                           "Belegnummer
      bseg-buzei                           "Buchungszeile
    INTO header.
    INSERT
      bkpf-blart                           "Belegart
      bkpf-bktxt                           "Change by OS0794
      bkpf-budat                           "Buchungsdatum
      bkpf-stblg                           "Stornobelegnummer
      bkpf-waers                           "Währungsschlüssel
      bkpf-xblnr                           "Referenzangabe
      bseg-bschl                           "Buchungsschlüssel
      bseg-xnegp                           "Negativbuchung
      bseg-zlspr                           "Payment Block Key - CR 21709
      bseg-hkont                           "Hauptbuchkonto
      bseg-koart                           "Kontoart
      bseg-kunnr                           "Debitornummer
      bseg-lifnr                           "Kreditornummer
      bseg-mwart                           "Mehrwertsteuerart (A oder V)
      bseg-mwskz                           "Mehrwertsteuerkennzeichen
      bseg-umskz                           "Sonderhauptbuch-Kennzeichen
      bsega-dmshb                          "S/H-Betrag in Hauswährung
      bsega-mdshb                          "Umsatzsteuerbetrag in Hauswährg
      bsega-wrshb                          "S/H-Betrag in Fremdwährung
      hlp_bstat                            "Status vorerfaßter Belege bzw.
      bseg-kostl
      bseg-prctr
      bkpf-monat
    INTO daten.                            "Status von Belegen ohne Zeilen
          Vorschlagswerte                                               *
    INITIALIZATION.
      get_frame_title: 1,2.
      par_nbel = 'X'.
      par_sbel = space.
      par_mbel = space.
      par_dbel = space.
      par_vbel = 'X'.
          Archivinformationen nur fuer Ausgabe                          *
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF screen-group1 = 'ARC'.
          screen-input = '0'.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
          Prüfung und Korrektur der eingegebenen Daten                  *
    AT SELECTION-SCREEN ON arc.
      IF arc <> ' ' AND arc_mem(20) = space.
        CALL FUNCTION 'GET_ARCHIVE_PARAMETERS'
          EXPORTING
            in_parameters  = arc_save
            printer        = '    '
          IMPORTING
            out_parameters = arc_mem
            valid          = arc_valid
          EXCEPTIONS
            OTHERS         = 04.
        IF arc_valid <> 'X' OR arc_mem = space.
          CLEAR arc_mem.
          MESSAGE e999 WITH text-102.
        ENDIF.
        arc_msg1 = arc_mem(10).
        arc_msg2 = arc_mem+10(10).
      ENDIF.
      IF arc = ' '.
        CLEAR arc_mem.
        arc_msg1 = arc_msg2 = space.
      ENDIF.
      arc_save = arc_mem.
    AT SELECTION-SCREEN ON arc_msg1.
      arc_msg1 = arc_mem(10).
    AT SELECTION-SCREEN ON arc_msg2.
      arc_msg2 = arc_mem+10(10).
    AT SELECTION-SCREEN.
      IF par_nbel EQ space AND
         par_mbel EQ space AND
         par_dbel EQ space AND
         par_sbel EQ space AND
         par_vbel EQ space.
        SET CURSOR FIELD 'PAR_NBEL'.
        MESSAGE e111.
      ENDIF.
    optische Archivierung
      IF arc <> ' ' AND par_mikf <> ' '.
        CLEAR arc_mem.
        MESSAGE e999 WITH text-100.
      ENDIF.
      IF arc <> ' ' AND par_lsep <> ' '.
        CLEAR arc_mem.
        MESSAGE e999 WITH text-101.
      ENDIF.
      IF arc = 'X' AND sscrfields-ucomm = 'PRIN'.
        sscrfields-ucomm = 'ONLI'.
        sy-pdest = 'LP01'.                 "wegen Abfrage in Batch-Heading
      ENDIF.
          Vorbelegungen                                                 *
    START-OF-SELECTION.
      bhdgd-lines = sy-linsz.
      bhdgd-repid = sy-repid.
      bhdgd-uname = sy-uname.
      bhdgd-separ = par_lsep.
      bhdgd-domai = 'BUKRS'.
      IF arc = 'X'.
        bhdgd-miffl = 'A'.
      ENDIF.
      IF par_mikf = 'X'.
        bhdgd-miffl = 'X'.
      ENDIF.
    Initialisierung für optisches Archiv
      PERFORM open_archive(rsbtchh0) USING arc_mem.
      info-name = 'BKPF-BSTAT'. info-len = space. APPEND info.
      info-name = 'BKPF-BUKRS'. info-len = space. APPEND info.
      info-name = 'BSEG-GJAHR'. info-len = space. APPEND info.
      info-name = 'BKPF-BELNR'. info-len = space. APPEND info.
      info-name = 'BKPF-BKTXT'. info-len = space. APPEND info.
      PERFORM start_archive(rsbtchh0) TABLES info.
      b0sg-xstan = par_nbel.
      b0sg-xstam = par_mbel.
      b0sg-xstad = par_dbel.
      b0sg-xstas = par_sbel.
      b0sg-xstaa = 'X'.
      IF par_vbel EQ 'X'.
        b0sg-xstav = 'Z'.
      ENDIF.
          Selektion                                                     *
    GET bkpf FIELDS blart bstat budat monat stblg waers xblnr bktxt.
      CLEAR hlp_bstat.
      IF 'ABVWZ' CA bkpf-bstat.
        hlp_bstat = bkpf-bstat.
        CLEAR bkpf-bstat.
        IF 'ABWZ' CA hlp_bstat.
          CLEAR: bseg, bsega.
          IF par_summ EQ space.
            EXTRACT daten.
          ENDIF.
          PERFORM summe_merken.
        ENDIF.
      ENDIF.
    GET bseg.
      IF par_summ EQ space.
        EXTRACT daten.
      ENDIF.
      PERFORM summe_merken.
    GET bkpf LATE.
      PERFORM vorerfasste_steuer_merken.
          Seitenkopf                                                    *
    TOP-OF-PAGE.
      PERFORM batch-heading(rsbtchh0).
      ULINE.
      IF flg_section <> con_hash.
        FORMAT COLOR 1 INTENSIFIED OFF.
        WRITE    / txt_line0.
        ULINE.
        FORMAT COLOR 1 INTENSIFIED.
        WRITE:   / txt_line1,
                 / txt_line2.
      ELSE.
        FORMAT COLOR 1 INTENSIFIED OFF.
        WRITE: / sy-vline NO-GAP,
                 'Hash Totals'(205),
           132   sy-vline.
        ULINE.
        FORMAT COLOR 1 INTENSIFIED.
        WRITE:   /     sy-vline NO-GAP,
                  (10) 'CoCd'(200),
                  (07) 'Period'(201),
                       sy-vline,
                  (16) 'Debit Amount'(202),
                  (16) 'Credit Amount'(203),
                       sy-vline,
                  (16) 'Total'(204).
      ENDIF.
      ULINE.
          Sortieren der Daten                                           *
    END-OF-SELECTION.
      DESCRIBE TABLE tbukrs LINES sy-tfill.
      IF sy-tfill EQ 0.
        CALL FUNCTION 'POPUP_NO_LIST'.
      ENDIF.
      SORT.
      SORT tbukrs.
          Belegjournal                                                  *
      LOOP.
    *-- Neuer Buchungskreis -
        AT NEW bkpf-bukrs.
          SELECT SINGLE * FROM t001 WHERE bukrs EQ bkpf-bukrs.
          IF sy-subrc NE 0.
            IF sy-batch EQ space.
              MESSAGE a101 WITH bkpf-bukrs.
            ELSE.
              MESSAGE s101 WITH bkpf-bukrs.
              STOP.
            ENDIF.
          ENDIF.
          bhdgd-bukrs = bkpf-bukrs.
          bhdgd-werte = bkpf-bukrs.
          PERFORM new-section(rsbtchh0).
          PERFORM titel_fuellen USING '5'.
        ENDAT.
    *-- Neuer Belegstatus -
        AT NEW bkpf-bstat.
          PERFORM new_page USING bkpf-bstat.
          flg_color = 1.
        ENDAT.
    *-- Neue Belegnummer -
        AT NEW bkpf-belnr.
          REFRESH: t0, t1, t2, t3.
          PERFORM belegkopf_merken.
          mikfi-bstat = bkpf-bstat.
          mikfi-bukrs = bkpf-bukrs.
          mikfi-gjahr = bkpf-gjahr.
          mikfi-belnr = bkpf-belnr.
          bhdgd-grpin = mikfi.
        ENDAT.
    *-- Belegzeile -
        PERFORM belegzeile_merken.
    *-- Ende einer Belegnummer -
        AT END OF bkpf-belnr.
          PERFORM beleg_schreiben.
          ULINE.
        ENDAT.
    *-- Ende eines Buchungskreises -
        AT END OF bkpf-bukrs.
          PERFORM titel_fuellen USING '4'.
          PERFORM buchungskreis_schreiben USING bkpf-bukrs.
        ENDAT.
      ENDLOOP.
          Summenblätter                                                 *
      bhdgd-bukrs = '    '.
      bhdgd-werte = '    '.
      PERFORM new-section(rsbtchh0).
      PERFORM titel_fuellen USING '4'.
      PERFORM buchungskreis_schreiben USING '    '.
      PERFORM hauswaehrung_schreiben.
          Print Hash Totals                                             *
      flg_section = con_hash.
      NEW-PAGE.
      PERFORM prt_hash TABLES hash_totals.
          Fehlerprotokoll                                               *
      CALL FUNCTION 'FI_MESSAGE_CHECK'
        EXCEPTIONS
          no_message = 4.
      IF sy-subrc = 0.
        IF sy-batch EQ space.
          PERFORM titel_fuellen USING '6'.
          NEW-PAGE.
          FORMAT COLOR 6 INTENSIFIED.
          CALL FUNCTION 'FI_MESSAGE_SORT'.
          CALL FUNCTION 'FI_MESSAGE_PRINT'
            EXPORTING
              i_xskip = 'X'.
        ELSE.
          CALL FUNCTION 'FI_MESSAGE_GET'
            TABLES
              t_fimsg = tfimsg.
          LOOP AT tfimsg.
            MESSAGE ID tfimsg-msgid TYPE tfimsg-msgty NUMBER tfimsg-msgno
              WITH tfimsg-msgv1 tfimsg-msgv2 tfimsg-msgv3 tfimsg-msgv4.
          ENDLOOP.
        ENDIF.
      ENDIF.
           U N T E R P R O G R A M M E                                  *
                0. TITEL_FUELLEN                                        *
                1. NEW_PAGE                                             *
                2. SUMME_MERKEN                                         *
                3. VORERFASSTE_STEUER_MERKEN                            *
                4. BELEGKOPF_MERKEN                                     *
                5. BELEGZEILE_MERKEN                                    *
                6. BELEG_SCHREIBEN                                      *
                7. BUCHUNGSKREIS_SCHREIBEN                              *
                8. HAUSWAEHRUNG_SCHREIBEN                               *
                9. SUMMENZEILE_SCHREIBEN                                *
               10. KONTONUMMER                                          *
    0.   FORM TITEL_FUELLEN                                            *
          Ersetzt das Global &CCCU durch die Buchungskreiswährung       *
          F00_TEXT ist 4, 5 oder 6, je nach Gruppe der Textelemente     *
    FORM titel_fuellen USING f00_text.
      DATA:
        BEGIN OF txt_502,
         T1(49) TYPE C, "CR 21709
         W1(23) TYPE C, "CR 21709
          t1(50) TYPE c,                                        "CR 21709
          w1(22) TYPE c,                                        "CR 21709
          t2(6)  TYPE c,
          w2(15) TYPE c,
          t3(21) TYPE c,
          w3(16) TYPE c,
          t4(2)  TYPE c,
        END OF txt_502.
      CASE f00_text.                       "Textelemente
        WHEN '4'.                          "- für die Summenliste
          txt_line0 = text-400.
          txt_line1 = text-401.
          txt_line2 = text-402.
        WHEN '5'.                          "- für die Einzelpostenliste
          txt_line0 = text-500.
          txt_line1 = text-501.
          txt_line2 = text-502.
          IF par_hkto EQ 'X'.
            txt_line1+33(10) = text-505.
            txt_line2+33(10) = text-506.
          ENDIF.
          txt_502   = txt_line2.
          REPLACE '&CCCU' WITH t001-waers INTO:
            txt_502-w1, txt_502-w2, txt_502-w3.
          CONDENSE:
            txt_502-w1, txt_502-w2, txt_502-w3.
          WRITE:
            txt_502-w1 TO txt_502-w1 RIGHT-JUSTIFIED,
            txt_502-w2 TO txt_502-w2 RIGHT-JUSTIFIED,
            txt_502-w3 TO txt_502-w3 RIGHT-JUSTIFIED.
          txt_line2 = txt_502.
        WHEN '6'.                          "- für die Fehlerliste
          txt_line0 = text-600.
          txt_line1 = text-601.
          txt_line2 = space.
        WHEN OTHERS.                       "- initialisieren
          txt_line0 = space.
          txt_line1 = space.
          txt_line2 = space.
      ENDCASE.
    ENDFORM.                    "TITEL_FUELLEN
    1.   FORM NEW_PAGE                                                 *
          Initialisierungen für BATCH-HEADING Routine                   *
          F01_BSTAT steuert den Aufbau des Reporttitels                 *
    FORM new_page USING f01_bstat.
      CASE f01_bstat.                      "Reporttitel
        WHEN 'D'.                          "- für Dauerbuchungsurbelege
          bhdgd-line1 = text-001.
        WHEN 'M'.                          "- für Musterbelege
          bhdgd-line1 = text-002.
        WHEN 'S'.                          "- für statistische Belege
          bhdgd-line1 = text-003.
        WHEN OTHERS.                       "- für normale/vorerfaßte Belege
          bhdgd-line1 = sy-title.
      ENDCASE.
      bhdgd-line2 = par_line.
      bhdgd-inifl = 0.
      NEW-PAGE.
    ENDFORM.                    "NEW_PAGE
    2.   FORM SUMME_MERKEN                                             *
          Merken der Summeninformation                                  *
    FORM summe_merken.
      CLEAR tbukrs.
      tbukrs-bstat = bkpf-bstat.
      tbukrs-bukrs = bkpf-bukrs.
      tbukrs-bktxt = bkpf-bktxt.
      tbukrs-gjahr = bkpf-gjahr.
      tbukrs-monat = bkpf-monat.
      tbukrs-dmsol = bsega-dmsol.
      tbukrs-dmhab = bsega-dmhab.
      IF 'DK' CA bseg-koart.
        MOVE-CORRESPONDING tbukrs TO tbukrs_u.
        tbukrs_u-koart   = bseg-koart.
        tbukrs_u-umskz   = bseg-umskz.
        tbukrs_u-dmsol   = bsega-dmsol.
        tbukrs_u-dmhab   = bsega-dmhab.
        COLLECT tbukrs_u.
        tbukrs_u-monat   = 0.              "Summe für das Geschäftsjahr
        COLLECT tbukrs_u.
      ENDIF.
      COLLECT tbukrs.
    ENDFORM.                    "SUMME_MERKEN
    3.   FORM VORERFASSTE_STEUER_MERKEN                                *
          Nachlesen der Steuerzeilen vorerfaßter Belege                 *
          Gefüllt wird TBUKRS und der Extrakt                           *
    FORM vorerfasste_steuer_merken.
      CHECK hlp_bstat EQ 'V'.
      SELECT * FROM vbset
        WHERE ausbk EQ bkpf-bukrs
          AND belnr EQ bkpf-belnr
          AND gjahr EQ bkpf-gjahr.
        CHECK vbset-hwste NE 0.
        CLEAR: bseg, bsega.
        bseg-koart    = 'S'.
        bseg-mwart    = 'V'.               "oder 'A', nur zum Füllen von T2
        bseg-mwskz    = vbset-mwskz.
        IF vbset-shkzg EQ 'S'.
          bsega-dmsol = vbset-hwste.
          bsega-dmshb = vbset-hwste.
        ELSE.
          bsega-dmhab = vbset-hwste.
          bsega-dmshb = - vbset-hwste.
        ENDIF.
        IF par_summ EQ space.
          EXTRACT daten.
        ENDIF.
        PERFORM summe_merken.
      ENDSELECT.
    ENDFORM.                    "VORERFASSTE_STEUER_MERKEN
    4.   FORM BELEGKOPF_MERKEN                                         *
          Je Beleg werden gefüllt:                                      *
          T0 - Informationsflag                                         *
    FORM belegkopf_merken.
      t0-info = 0.                         "Belegkopf
      APPEND t0.
      CASE hlp_bstat.
        WHEN 'A'.
          t0-info = 6.                     "Ausgleichsbeleg
          APPEND t0.
        WHEN 'B'.
          t0-info = 7.                     "zurückgen. Ausgleichsbeleg
          APPEND t0.
        WHEN 'V'.
          t0-info = 1.                     "vorerfaßter Beleg
          APPEND t0.
        WHEN 'W'.
          t0-info = 5.                     "ersetzter vorerfaßter Beleg
          APPEND t0.
        WHEN 'Z'.
          t0-info = 4.                     "gelöschter vorerfaßter Beleg
          APPEND t0.
      ENDCASE.
      IF bkpf-xblnr NE space AND hlp_bstat NA 'BWZ'.
        t0-info = 2.                       "Referenz
        APPEND t0.
      ENDIF.
      IF bkpf-stblg NE space.
        t0-info = 3.                       "Storno
        APPEND t0.
      ENDIF.
      SORT t0.
    ENDFORM.                    "BELEGKOPF_MERKEN
    5.   FORM BELEGZEILE_MERKEN                                        *
          Je Beleg werden gefüllt:                                      *
          T1 - Personenkonteninformation                                *
          T2 - Steuerinformation (nicht bei vorerfaßten Belegen)        *
          T3 - Sachkonteninformation                                    *
    FORM belegzeile_merken.
    Vendors/ Customers
      IF bseg-koart CA 'DK'.
        t1-koart   = bseg-koart.
        IF par_hkto EQ 'X'.
          t1-ktonr = bseg-hkont.
        ELSEIF bseg-koart EQ 'K'.
          t1-ktonr = bseg-lifnr.
        ELSE.
          t1-ktonr = bseg-kunnr.
        ENDIF.
        t1-bschl   = bseg-bschl.
        t1-umskz   = bseg-umskz.
        t1-xnegp   = bseg-xnegp.
        t1-zlspr   = bseg-zlspr.                                "CR 21709
        t1-dmshb   = bsega-dmshb.
        t1-wrshb   = bsega-wrshb.
        t1-xfwae   = space.
        APPEND t1.
      Read the vendor description.
        IF bseg-koart = con_vendor.
          flg_vendr2 = con_true.
          flg_vendr3 = con_true.
          CLEAR lfa1-name1.
          SELECT SINGLE name1
          INTO   lfa1-name1
          FROM   lfa1
          WHERE  lifnr = bseg-lifnr.
        ELSEIF bseg-koart = con_cust.
          CLEAR kna1-name1.
          SELECT SINGLE name1
          INTO   kna1-name1
          FROM   kna1
          WHERE  kunnr = bseg-kunnr.
        ENDIF.
        IF bkpf-waers EQ t001-waers.
          CLEAR t1.
        ENDIF.
        t1-xfwae = 'X'.
        t1-name1 = lfa1-name1.
        IF t1-name1 IS INITIAL.
          t1-name1 = kna1-name1.
        ENDIF.
        APPEND t1.
        CLEAR:
           kna1-name1,
           lfa1-name1.
        CLEAR t1.
      Save the hash total amounts
        CLEAR tcurx-currdec.
        SELECT SINGLE currdec
        INTO   tcurx-currdec
        FROM   tcurx
        WHERE  currkey = bkpf-waers.
        IF tcurx-currdec = 1.
          factor = 10.
        ELSE.
          factor = 100.
        ENDIF.
        CLEAR hash_totals.
        hash_totals-bukrs = bkpf-bukrs.
        CONCATENATE bkpf-monat '/' bkpf-gjahr INTO hash_totals-poper.
        IF bsega-wrshb < 0.
          hash_totals-cramt = bsega-wrshb * factor.
        ELSE.
          hash_totals-dramt = bsega-wrshb * factor.
        ENDIF.
        COLLECT hash_totals.
    Tax accounts
      ELSEIF bseg-mwart CA 'AV'.
        t2-mwskz   = bseg-mwskz.
        t2-dmshb   = bsega-dmshb.
        APPEND t2.
        IF flg_vendr2 = con_true.
          flg_vendr2 = con_false.
          CLEAR t2.
          APPEND t2.
        ENDIF.
    GL Accounts
      ELSEIF hlp_bstat NA 'ABWZ'.
        t3-mwskz   = bseg-mwskz.
        t3-bschl   = bseg-bschl.
        t3-xnegp   = bseg-xnegp.
        t3-koart   = bseg-koart.
        t3-hkont   = bseg-hkont.
        t3-dmshb   = bsega-dmshb.
        APPEND t3.
        IF flg_vendr3 = con_true
        OR NOT bseg-kostl IS INITIAL
        OR NOT bseg-prctr IS INITIAL.
          flg_vendr3 = con_false.
          CLEAR t3.
          t3-kostl = bseg-kostl.
          t3-prctr = bseg-prctr.
          APPEND t3.
          CLEAR t3.
        ENDIF.
      ENDIF.
    ENDFORM.                    "BELEGZEILE_MERKEN
    6.   FORM BELEG_SCHREIBEN                                          *
          Ausgabe der Belginformationen                                 *
    FORM beleg_schreiben.
      DATA:
         len TYPE i.
    Berechnung der benötigten Zeilen pro Beleg
      DESCRIBE TABLE:
        t0 LINES cnt_t0,
        t1 LINES cnt_t1,
        t2 LINES cnt_t2,
        t3 LINES cnt_t3.
      cnt_max = cnt_t0.
      IF cnt_max LT cnt_t1.
        cnt_max = cnt_t1.
      ENDIF.
      IF cnt_max LT cnt_t2.
        cnt_max = cnt_t2.
      ENDIF.
      IF cnt_max LT cnt_t3.
        cnt_max = cnt_t3.
      ENDIF.
      ADD 1 TO cnt_max.
      IF cnt_max LE 10.
        RESERVE cnt_max LINES.
      ELSE.
        RESERVE 5 LINES.
      ENDIF.
      SUBTRACT 1 FROM cnt_max.
    Farbe setzen
      IF flg_color EQ 0.
        FORMAT COLOR 2 INTENSIFIED OFF.
        flg_color = 1.
      ELSE.
        FORMAT COLOR 2 INTENSIFIED.
        flg_color = 0.
      ENDIF.
    Index fuer optische Archivierung
      PERFORM new-group(rsbtchh0).
      DO cnt_max TIMES.
      Belegkopfinformationen
        WRITE     /1 sy-vline NO-GAP.
        IF sy-index LE cnt_t0.
          READ TABLE t0 INDEX sy-index.
          CASE t0-info.
            WHEN 0.                        "Belegkopf
              hlp_belnr = bkpf-belnr.      "Belegnr. mit führenden Nullen
            Referenz auf Originalbeleg
              PERFORM start_doc_reference(rsbtchh0)
                USING bkpf-bukrs bkpf-belnr bkpf-gjahr bkpf-bktxt. " change*
              WRITE:
                     bkpf-bukrs,
                     hlp_belnr,
                     bkpf-blart,
                     bkpf-budat DD/MM/YYYY.
            Ende der Referenz auf Originalbeleg
              PERFORM end_doc_reference(rsbtchh0).
            WHEN 1.                        "Vorerfaßter Beleg
              WRITE:
                (29) text-507.
            WHEN 2.                        "Referenz
              WRITE:
                (12) text-503,
                     bkpf-xblnr.
            WHEN 3.                        "Storno
              WRITE:
                (12) text-504,
                     bkpf-stblg.
            WHEN 4.                        "Gelöschter vorerfaßter Beleg
              WRITE:
                (29) text-507,
                (40) text-508.
            WHEN 5.                        "Ersetzter vorerfaßter Beleg
              txt_line = text-509.
              REPLACE:
                '&BLN' WITH bkpf-xblnr(10) INTO txt_line,
                '&GJR' WITH bkpf-xblnr+10  INTO txt_line.
              WRITE:
                (29) text-507,
                (40) txt_line.
            WHEN 6.                        "Ausgleichsbeleg
              WRITE:                       "
                (29) text-510.             "
            WHEN 7.                        "zurückgen. Ausgleichsbeleg
              WRITE:                       "
                (29) text-511.             "
          ENDCASE.
        ENDIF.
      Personenkonteninformationen
      Subledger Account Information
        WRITE  31(1) sy-vline NO-GAP.
      Internal tables T0 - T5 hold data for each section.
        IF sy-index LE cnt_t1.
          READ TABLE t1 INDEX sy-index.
          IF par_hkto EQ 'X'.
            PERFORM kontonummer USING t1-ktonr hlp_sakan.
          ELSE.
            hlp_sakan = t1-ktonr.
          ENDIF.
          IF t1-xfwae EQ space.
            IF t1-xnegp = 'X'.
              t1-xnegp = '-'.
            ENDIF.
          Write the vendor number.
            WRITE:   t1-koart,
                     hlp_sakan,
                     t1-bschl NO-GAP.
            IF t1-umskz IS INITIAL.
              WRITE:    t1-xnegp NO-GAP,
                        t1-umskz.
            ELSE.
              WRITE:    t1-umskz NO-GAP,
                        t1-xnegp.
            ENDIF.
            WRITE: t1-zlspr. "CR 21709 / 23588
            WRITE: (22) t1-dmshb CURRENCY t001-waers.
          ELSE.
          Write the document currency, amount and the
          vendor/ customer

    Hi,
    Please see documentation of enhancement MM06E005 (transaction SMOD).          
    Userexit EXIT_SAPMM06E_016 is a component of enhancement MM06E005.            
    With that enhancement, you can                                                
      -   Maintain/supply your own customer fields                                
      -   Update your own customer-specific tables                                
    You cannot:                                                                   
      -   Change standard fields                                                  
      -   Change data that depends on the document header in the items            
      -   Change data that depends on an item in the document header                                                                               
    Please have a look at Business Add-In (BAdI) ME_PROCESS_PO_CUST.              
    Regards,
    Edit

  • Wrong Display of Japanese Currency in ALV Report

    Dear Friends,
           I am facing a problem in Displaying a Japanese Currency in the ALV Report Output. I am mentioning the Currency Key field and the Currency field in the Report.
    For example, the amount field should be displaying as 22838 instead of 228.38 where this is correct in case of USD but not correct in case of JPY.
    Code where the i am appending the fieldcatlog:
        ls_fieldcat-fieldname = 'WAERK'.
        ls_fieldcat-datatype  = 'CUKY'.
        ls_fieldcat-outputlen = 8.
        ls_fieldcat-seltext_l  = Text-088.
        ls_fieldcat-seltext_m  = Text-088.
        ls_fieldcat-seltext_s  = Text-088.
        ls_fieldcat-reptext_ddic  = Text-088.
        APPEND ls_fieldcat TO lt_fieldcat.
        CLEAR ls_fieldcat.
        ls_fieldcat-fieldname = 'BUCK0'.
        ls_fieldcat-datatype  = 'CURR'.
        ls_fieldcat-outputlen = 16.
        ls_fieldcat-seltext_l  = Text-017.
        ls_fieldcat-seltext_m  = Text-017.
        ls_fieldcat-seltext_s  = Text-017.
        ls_fieldcat-reptext_ddic  = Text-017.
    Please do suggest if any inputs on the same.
    Thanks in Advance for you reply.
    Thanks and Regards,
    Saritha K

    Hi,
    All the Decimals related to currency fields will be stored in the table tcurx.
    You have to get the currency and respective decimals into internal table.
    Read the internal the table with key equal to currency.
    And calculate the values as below :
    loop at gt_output.
          READ TABLE gt_tcurx WITH KEY currkey = gt_output-zwaers.
          IF sy-subrc EQ 0.
            IF gt_tcurx-currdec = '0'.
              gt_output-dmbtr = gt_output-dmbtr * 100.
            ELSEIF gt_tcurx-currdec = '3'.
              gt_output-dmbtr = gt_output-dmbtr / 10.
            ENDIF.
          ENDIF.
          MODIFY gt_output.
    endloop. Then pass the gt_output to ALV FM.
    In the above code gt_output is my final internal table which i am passing to the ALV FM. And gt_tcurx is the internal table consists of all the currency and their decimals.
    Thanks,
    Sri.

  • Decimal places for JPY currency in change documents

    Hi Gurus,
    For opportunities in SAP GUI the change documents for JPY show incorrect numbers.
    The number is divided by 100 (two decimal places added).
    Checked the CDPOS table and found the values already divided (two decimal places added).
    SPRO->General Settings->Currencies->Set decimal places for currencies is set for 0 decimals for JPY.
    Is there any way I can get correct values in the change documents?
    Please advice. Any hint is useful.
    Thx,
    Martin Kuma

    Hi Naren,
    Thank you for the tip, however the TCURX table is changed via customizing and should be changed only during the system initialization.
    What I would like to do, is to assure that the system displays the values in change documents correctly. It should apply the currency conversion for the data displayed the same way it does for all the tables.
    Do you have any idea, how should I do this?
    Regards,
    Martin Kuma

  • Problem with JPY and KRW currency in PDf printing

    Hello,
    we are printing the PDF account statement. Till today for KRW and JPY currencies, if the value is 30000 ( I mean more than 3 digits ), then it is printing as 30 000 ( space as seperator ). But we have tried to post a document and checked it for the value 300. in the output PDF, it is printing 300,00 which is wrong.
    It should print as 300 only as this dont have any decimals ( from TCURX table). I have declared the amount variable as char16. Because I had other requirement where I need to print space as thousand seperator and comma as decimal seperator ( eg: 1 221,85 ). Now everything is printing fine except for JPY and KRW currencies amounts.
    I understood that this problem is occuring only when the amount for JPY or KRW currency is less than or equal to 3 digits.
    I have checked some of the posts and gone through the some of the OSS notes, but i couldnot the exact one which could solve my issue.
    Can anyone please help me in fixing this issue ?
    Thanks in advance..!!!
    Best regards,
    Karthik.

    Hello Karthik
    You can explicitly multiply the amount by 100 for JPY KRW currency and display the rounded figure (use function trunc)
    Have you tried using FM FM  BAPI_CURRENCY_CONV_TO_EXTERNAL to format the currency amount.
    Regards
    Sandy

  • Error in task -Downloading a file from report

    Hi all,
    This is my code to download the content of report to Excel,Problem i am getting when trying to put heading for numerical fields .Its getting '0' in the heading .For remaining  Fields which are non-numberic its displaying nicely.Could any one solve this for me.
    report zt11.
      data :  itab type mard occurs 0 .
    select  * from mard into table itab .
    data: it_t001   type t001  occurs 0,
          it_fields type dfies occurs 0  with header line,
          begin of it_fnames occurs 0,
            reptext like dfies-reptext,
          end of it_fnames.
          CALL FUNCTION 'GET_FIELDTAB'
      EXPORTING
      LANGU                     = SY-LANGU
      ONLY                      = ' '
        TABNAME                   = 'MARD'
      WITHTEXT                  = 'X'
    IMPORTING
      HEADER                    =
      RC                        =
      TABLES
        FIELDTAB                  = it_fields
      EXCEPTIONS
        INTERNAL_ERROR            = 1
        NO_TEXTS_FOUND            = 2
        TABLE_HAS_NO_FIELDS       = 3
        TABLE_NOT_ACTIV           = 4
        OTHERS                    = 5
    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 it_fields.
      it_fnames-reptext = it_fields-reptext.
      append it_fnames.
    endloop.
    CALL FUNCTION 'EXCEL_OLE_STANDARD_DAT'
      EXPORTING
        FILE_NAME                       = 'C:\T001'
      CREATE_PIVOT                    = 0
        DATA_SHEET_NAME                 = 'Companies'
      PIVOT_SHEET_NAME                = ' '
      PASSWORD                        = ' '
      PASSWORD_OPTION                 = 0
      TABLES
      PIVOT_FIELD_TAB                 =
        DATA_TAB                        = itab
       FIELDNAMES                      = it_fnames
      EXCEPTIONS
        FILE_NOT_EXIST                  = 1
        FILENAME_EXPECTED               = 2
        COMMUNICATION_ERROR             = 3
        OLE_OBJECT_METHOD_ERROR         = 4
        OLE_OBJECT_PROPERTY_ERROR       = 5
        INVALID_FILENAME                = 6
        INVALID_PIVOT_FIELDS            = 7
        DOWNLOAD_PROBLEM                = 8
        OTHERS                          = 9
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    short dump :  unable to interpret the "..... " as number.

    Hi,
    You are not formatting the internal table for field labels correctly.
    See the attached code and do accordingly.
    This will help you.
    Reward for useful answers.
    report zesdr001
           line-size 215
           line-count 65
           no standard page heading
           message-id zv.
                          Tables Declaration
    tables:vbrk,       " Sales Document: Billing Header Data
           mara,       " Material Master Data
           mbew,       " Material Valuation data
           mbewh,      " Material Valuation: History Data
           t001,       " Company Codes
           t001w,      " Plants/Branches
           konv,       " Pricing Conditions Data
           t179t,      " Materials: Product hierarchies: Texts
           tcurx,      " Currency Conversion Table
           vbuk,       " Sales Document: Header Status data
           tvko,       " Organizational Unit: Sales Organizations
           tvtw,       " Organizational Unit: Dist.Channels
           tspa,       " Organizational Unit: Divisions
           tvfk,       " Billing Document Types
           kna1.       " Customer Master Data
                 Declaration of Data and Internal Tables
    Internal table to store the Billing Details data.(VBRK,VBRP)
    data: begin of itab_bill occurs 0,
            vbeln like vbrk-vbeln,            " Billing Document Number
            fktyp like vbrk-fktyp,            " Billing Category
            vbtyp like vbrk-vbtyp,            " Sales Doc Category
            fkdat like vbrk-fkdat,            " Billing doc date
            fkart like vbrk-fkart,            " Billing Doc type
            bukrs like vbrk-bukrs,            " Company Code
            kurrf like vbrk-kurrf,            " Exchange type
            knumv like vbrk-knumv,            " Condition Number
            waerk like vbrk-waerk,            " Currency
            kunag like vbrk-kunag,            " Sold to Party
            vrkme like vbrp-vrkme,            " sales Unit
            posnr like vbrp-posnr,            " Item Number
            charg like vbrp-charg,            " Batch Number
            fkimg like vbrp-fkimg,            " Billed quantity
            werks like vbrp-werks,            " Plant
            matnr like vbrp-matnr,            " Material Number
            netwr like vbrp-netwr,            " Net Value of the doc
            wavwr like vbrp-wavwr,            " Cost in Doc Currency
            kdmat like vbap-kdmat,            " Customer Material
          end of itab_bill.
    Internal table to write the report output when Customer Mode
    Radiobutton is selected
    data: begin of itab_out occurs 0,
            kunag like vbrk-kunag,            " Customer No
            vbeln like vbrk-vbeln,            " Billing Document Number
            fkart like vbrk-fkart,            " Billing Doc type
            fktyp like vbrk-fktyp,            " Billing Category
            vbtyp like vbrk-vbtyp,            " Sales Doc Category
            fkdat like vbrk-fkdat,            " Billing doc date
            kunnr like kna1-kunnr,            " Customer
            bukrs like vbrk-bukrs,            " Company Code
            kurrf like vbrk-kurrf,            " Exchange Rate
            waerk like vbrk-waerk,            " Currency
            vrkme like vbrp-vrkme,            " Sales Unit
            posnr like vbrp-posnr,            " Item Number
            charg like vbrp-charg,            " Batch Number
            fkimg like vbrp-fkimg,            " Billed quantity
            werks like vbrp-werks,            " Plant
            matnr like vbrp-matnr,            " Material NUmber
            kdmat like vbap-kdmat,            " Customer Material
            bil_amt(16) type p decimals 2,    " Bill Amount
            mode(10),                         " Mode
            density(10),                      " Density
            sel_prc(16) type p decimals 2,    " Selling Price
            mvg_prs like mbew-verpr,          " Moving Price
            gp_mvp_amt like vbrp-netwr,       " GrossProfit Amount(MVP)
            gp_mvp_pr(6)  type p decimals 2,  "   ,, percentage
          end of itab_out.
    Internal table to write the report output when Mode
    Radiobutton is selected
    data: begin of itab_out2 occurs 0,
            mode(10),
            vbeln like vbrk-vbeln,             " Billing Document Number
            fktyp like vbrk-fktyp,             " Billing Category
            vbtyp like vbrk-vbtyp,             " Sales Doc Category
            fkdat like vbrk-fkdat,             " Billing doc date
            kunag like vbrk-kunag,             " Sold to party
            kunnr like kna1-kunnr,             " Customer
            bukrs like vbrk-bukrs,             " Company Code
            kurrf like vbrk-kurrf,             " Exchange Rate
            waerk like vbrk-waerk,             " Currency
            vrkme like vbrp-vrkme,             " Sales UNit
            posnr like vbrp-posnr,             " Item No
            charg like vbrp-charg,             " Batch Number
            fkimg like vbrp-fkimg,             " Billed quantity
            werks like vbrp-werks,             " Plant
            matnr like vbrp-matnr,             " Material Number
            kdmat like vbap-kdmat,             " Customer Material No
            bil_amt(16)   type p decimals 2,   " Billing Amount
            density(10),                       " density
            sel_prc(16) type p decimals 4,     " Selling Price
            mvg_prs like mbew-verpr,           " Moving Price
            gp_mvp_amt like vbrp-netwr,        " GrossProfit Amount(MVP)
            gp_mvp_pr(6)  type p decimals 2,   "   ,, percentage
          end of itab_out2.
    Internal table to write the report output when Density
    Radiobutton is selected
    data: begin of itab_out3 occurs 0,
            mode(10),
            density(10),
            vbeln like vbrk-vbeln,            " Billing Document Number
            fktyp like vbrk-fktyp,            " Billing Category
            vbtyp like vbrk-vbtyp,            " Sales Doc Category
            fkdat like vbrk-fkdat,            " Billing doc date
            kunag like vbrk-kunag,            " Sold to Party
            kunnr like kna1-kunnr,            " Customer
            bukrs like vbrk-bukrs,            " Company Code
            kurrf like vbrk-kurrf,            " Exchange Rate
            waerk like vbrk-waerk,            " Currency
            vrkme like vbrp-vrkme,            " Sales Unit
            posnr like vbrp-posnr,            " Item Number
            charg like vbrp-charg,            " Batch Number
            fkimg like vbrp-fkimg,            " Billed quantity
            werks like vbrp-werks,            " Plant
            matnr like vbrp-matnr,            " Material Number
            kdmat like vbap-kdmat,            " Customer Material
            bil_amt(16)   type p decimals 2,  " Bill Amount
            sel_prc(16) type p decimals 4,    " Selling Price
            mvg_prs like mbew-verpr,          " Moving Price
            gp_mvp_amt like vbrp-netwr,       " GrossProfit Amount(MVP)
            gp_mvp_pr(6)  type p decimals 2,  "   ,, percentage
          end of itab_out3.
    *-Internal Table to Hold data to be downloaded to file
    data: begin of itab_out1 occurs 0,
            kunag(10),                       " Customer
            vbeln(10),                       " Billing Doc No
            fkdat(10),                       " Bill Date
            posnr(6),                        " Item No
            mode(6),                         " Mode
            density(6),                      " Density
            matnr(18),                       " Material
            charg(10),                       " Batch Number
            fkimg like vbrp-fkimg,           " Billed quantity
            vrkme(4),                        " Sales Unit
            sel_prc(14),                     " Selling Price
            bil_amt(15)  type p decimals 2,  " Billing Amount
            waerk(4),                        " Currency
            mvg_prs(15),                     " Moving Price
            gp_mvp_amt like vbrp-netwr,      " Gross profit Amount(MVP)
            gp_mvp_pr(15),                   "    ,,  percentage
            kdmat(35),                       " Customer Material
          end of itab_out1.
    *Internal Table
    data: begin of fieldnames occurs 0,
            title(25) type c,
            table(5)  type c,
            field(5)  type c,
            type(1)   type c,
          end of fieldnames.
    Declaration Of Variables
    data: w_period like bapi0002_4-fiscal_period,
          w_year   like bapi0002_4-fiscal_year,
          w_date   like bsad-budat,
          w_lin type i.       "No.of lines in Internal Table
    data: t_fkimg             like vbrp-fkimg,
          t_bil_amt(8)        type p decimals 2,
          t_gp_mvp_amt(8)     type p decimals 2,
          t_gr_fkimg          like vbrp-fkimg,
          t_gr_bil_amt(8)     type p decimals 2,
          t_gr_gp_mvp_amt(8)  type p decimals 2,
          t_efkimg            like vbrp-fkimg,
          t_ebil_amt(8)       type p decimals 2,
          t_egp_mvp_amt(8)    type p decimals 2.
    data:f_flg .
                       Select-Options
    selection-screen: begin of block b with frame.
    selection-screen : begin of block b1 with frame title text-001.
    select-options:s_bukrs for t001-bukrs no intervals no-extension
                                                         obligatory,
                   s_vkorg for tvko-vkorg no intervals no-extension,
                   s_vtweg for tvtw-vtweg no intervals no-extension,
                   s_spart for tspa-spart no intervals no-extension,
                   s_werks for t001w-werks no intervals no-extension,
                   s_kunag for kna1-kunnr,
                   s_vbeln for vbuk-vbeln,
                   s_fkart for tvfk-fkart,
                   s_fkdat for vbrk-fkdat obligatory.
    selection-screen begin of line.
    selection-screen comment 1(20) text-008.
    selection-screen end   of line.
    selection-screen begin of line.
    parameters p_cust type c radiobutton group cust.
    selection-screen comment 3(20) text-004 for field p_cust.
    selection-screen end of line.
    selection-screen begin of line.
    parameters p_mode type c radiobutton group cust.
    selection-screen comment 3(20) text-006 for field p_mode.
    selection-screen end of line.
    selection-screen begin of line.
    parameters p_dens type c radiobutton group cust.
    selection-screen comment 3(20) text-007 for field p_dens.
    selection-screen end of line.
    selection-screen: end of block b1.
    selection-screen : begin of block b2 with frame title text-002.
    parameters:  p_dwnlod as checkbox,
                 p_file like rlgrap-filename. " default 'C:\zesdr001'.
    selection-screen: end of block b2.
    selection-screen: end of block b.
    *******At Selection Screen********************************************
    at selection-screen.
    At Selection Screen on Value Request
    at selection-screen on value-request for p_file.
      perform f4_help.
    Checking for the input values of selection screen.
      perform screen_check.
    Top Of Page***************************************************
    top-of-page.
      perform rep_headers.
    *******Start of Selection*********************************************
    start-of-selection.
    Selecting data from the database tables
      perform invoice_selection.
      describe table itab_bill lines w_lin.
      if w_lin = 0.
        message i008.   " No Data Found for the Given Selection Criteria
      else.
    Moving the data records into output internal table
        perform bill_details.
    When Customer Radio button is selected
        if p_cust eq 'X'.
          perform invoice_output_cust.
    When Mode Radio button is selected
        elseif p_mode eq 'X'.
          perform invoice_output_mode.
    When density Radio button is selected
        elseif p_dens eq 'X'.
          perform invoice_output_dens.
        endif.
      endif.
    *******End of Selection***********************************************
    end-of-selection.
      perform init_fieldnames.
      if p_dwnlod = 'X'.
        perform read_data_for_dowlload.
      perform down_load_to_file using p_file.
        perform download_excel using p_file.
      endif.
    *&      Form  screen_check
       Ckecking for Selection Screen fields Validation
    form screen_check.
    Validation of Sales Organization
      clear tvko.
      if not s_vkorg-low is initial.
        select vkorg from tvko up to 1 rows
               into tvko-vkorg
               where vkorg in s_vkorg.
        endselect.
        if sy-subrc ne 0.
          message e009.  " Invalid Sales Organization
        endif.
      endif.
    Validation of Distribution Channel
      clear tvtw.
      if not s_vtweg-low is initial.
        select vtweg from tvtw up to 1 rows
               into tvtw-vtweg
               where vtweg in s_vtweg.
        endselect.
        if sy-subrc ne 0.
          message e010.  " Invalid Distribution Channel
        endif.
      endif.
    Validation of Division
      clear tspa.
      if not s_spart-low is initial.
        select spart from tspa up to 1 rows
               into tspa-spart
               where spart in s_spart.
        endselect.
        if sy-subrc ne 0.
          message e011.  " Invalid Division
        endif.
      endif.
    Validation for company code
      clear t001.
      if not s_bukrs-low is initial.
        select single bukrs from t001
             into t001-bukrs
             where bukrs in s_bukrs.
        if sy-subrc <> 0.
          message e007.   " Enter valid Company Code
        endif.
      endif.
    Validation of billing Document Type
      clear tvfk.
      if not s_fkart is initial.
        select fkart from tvfk up to 1 rows
               into tvfk-fkart
               where fkart in s_fkart.
        endselect.
        if sy-subrc ne 0.
          message e012.  " Invalid Billing Document Type
        endif.
      endif.
    Validation of Billing Document Number
      clear vbuk.
      if not s_vbeln is initial.
        select vbeln from vbuk up to 1 rows
               into vbuk-vbeln
               where vbeln in s_vbeln and
                     vbtyp = 'M'.
        endselect.
        if sy-subrc ne 0.
          message e013.   " Invalid Billing Doc Number
        endif.
      endif.
    Validation of Customer
      clear kna1.
      if not s_kunag is initial.
        select kunnr from kna1 up to 1 rows
               into kna1-kunnr
               where kunnr in s_kunag.
        endselect.
        if sy-subrc ne 0.
          message e014.    " Invalid Customer Number
        endif.
      endif.
    Validation of Plant
      clear t001w.
      if not s_werks is initial.
        select werks from t001w up to 1 rows
               into t001w-werks
               where werks in s_werks.
        endselect.
        if sy-subrc ne 0.
          message e004.    " Invalid Plant Number
        endif.
      endif.
    Validation for File path to download
      if p_dwnlod = 'X'.
        if p_file is initial.
          message e006.  " Enter the Valid file path to Download
        endif.
      endif.
    endform.             "screen_check
          FORM invoice_selection                                        *
    Selecting data from the database tables
    form invoice_selection.
      select
            a~vbeln                   " Billing Doc Number
            a~fktyp                   " Billing Category
            a~vbtyp                   " Sales Doc category
            a~fkdat                   " Billing doc date
            a~fkart                   " Billing doc type
            a~bukrs                   " Company code
            a~kurrf                   " Exchange rate
            a~knumv                   " Condition record Number
            a~waerk                   " Currency
            a~kunag                   " Sold to Party
            b~vrkme                   " Sales Unit
            b~posnr                   " Item Number
            b~charg                   " Batch Number
            b~fkimg                   " Billed quantity
            b~werks                   " Plant
            b~matnr                   " Material Number
            b~netwr                   " Net Value of Bill Doc
            b~wavwr                   " Cost in Doc Currency
            c~kdmat                   " Customer Material
                     into table itab_bill
                     from vbrk as a join vbrp as b
                            on bvbeln = avbeln
                            join vbap as c
                            on baubel = cvbeln and
                               baupos = cposnr
                      where a~vbeln in s_vbeln and
                            a~fkdat in s_fkdat and
                            a~bukrs in s_bukrs and
                            a~vtweg in s_vtweg and
                            a~vkorg in s_vkorg and
                            a~spart in s_spart and
                            a~fkart in s_fkart and
                            b~werks in s_werks and
                            a~kunag in s_kunag and
                            a~sfakn eq ' ' and
                            a~fksto eq ' ' .
    endform .
          FORM bill_details                                             *
    appending data into itab_out internal table
    form bill_details.
      sort itab_bill by vbeln.
      select single waers from t001 into t001-waers
                              where bukrs in s_bukrs.
      data:f_txt1(10),f_txt2(10),f_txt3(10).
      loop at itab_bill.
        itab_out-vbeln   = itab_bill-vbeln.
        itab_out-fktyp   = itab_bill-fktyp.
        itab_out-vbtyp   = itab_bill-vbtyp.
        itab_out-fkdat   = itab_bill-fkdat.
        itab_out-fkart   = itab_bill-fkart.
        itab_out-bukrs   = itab_bill-bukrs.
        itab_out-kurrf   = itab_bill-kurrf.
        itab_out-waerk   = itab_bill-waerk.
        itab_out-kunag   = itab_bill-kunag.
        itab_out-vrkme   = itab_bill-vrkme.
        itab_out-posnr   = itab_bill-posnr.
        itab_out-charg   = itab_bill-charg.
        itab_out-fkimg   = itab_bill-fkimg.
        itab_out-werks   = itab_bill-werks.
        itab_out-matnr   = itab_bill-matnr.
        itab_out-kdmat   = itab_bill-kdmat.
       select single currdec from tcurx into tcurx-currdec
              where currkey eq itab_out-waerk.
        if sy-subrc eq '0' .
          if tcurx-currdec eq '0'.
            itab_bill-netwr = itab_bill-netwr * 100.
            itab_bill-wavwr = itab_bill-wavwr * 100.
          endif.
        endif.
        itab_out-bil_amt = itab_bill-netwr.
        clear : konv.
    Pricing data from KONV table
        select single kbetr kwert kpein from konv into
                                      (konv-kbetr,konv-kwert,konv-kpein)
                                       where knumv = itab_bill-knumv and
                                             kposn = itab_bill-posnr and
                                             kschl eq 'ZSP1' and
                                             krech eq 'C' and
                                             kinak eq ' '.
    Currency conversion
        select single currdec from tcurx into tcurx-currdec
                           where currkey eq itab_out-waerk.
        if sy-subrc eq '0' .
          if tcurx-currdec eq '0'.
            konv-kbetr = konv-kbetr * 100.
          endif.
        endif.
    Unit Price
        itab_out-sel_prc = konv-kbetr.
    Unit Price Calculation
        if not konv-kpein is initial.
          itab_out-sel_prc = itab_out-sel_prc / konv-kpein .
        endif.
    Call Function to get the Period for the given Billing date
    and Company Code
        perform get_period.
    Selecting Material Valuation Data
        clear:mbew.
        if itab_out-fktyp eq 'L'.
          select single
              lfmon lfgja verpr stprs vmver vmstp
                 from mbew
                 into (mbew-lfmon,mbew-lfgja,mbew-verpr,
                       mbew-stprs,mbew-vmver,mbew-vmstp)
                          where matnr = itab_out-matnr
                          and   bwkey = itab_out-werks.
          if mbew-lfmon = w_period and mbew-lfgja = w_year.
            select single currdec from tcurx into tcurx-currdec
                  where currkey eq t001-waers.
            if sy-subrc eq '0' .
              if tcurx-currdec eq '0'.
                mbew-stprs = mbew-stprs * 100.
                mbew-verpr = mbew-verpr * 100.
              endif.
            endif.
            if itab_out-waerk eq t001-waers.
              itab_out-mvg_prs = mbew-verpr  ."/ itab_out-kurrf.
            else.
              itab_out-mvg_prs = mbew-verpr  / itab_out-kurrf.
            endif.
          else.
            clear:mbewh.
            select single
             lfmon lfgja verpr stprs
                from mbewh
                into (mbewh-lfmon,mbewh-lfgja,mbewh-verpr,
                      mbewh-stprs)
                         where matnr = itab_out-matnr
                         and   bwkey = itab_out-werks
                         and   lfmon = w_period
                         and   lfgja = w_year.
            select single currdec from tcurx into tcurx-currdec
                    where currkey eq t001-waers.
            if sy-subrc eq '0' .
              if tcurx-currdec eq '0'.
                mbewh-verpr = mbewh-verpr * 100.
              endif.
            endif.
            if itab_out-waerk eq t001-waers.
              itab_out-mvg_prs = mbewh-verpr ."/ itab_out-kurrf.
            else.
              itab_out-mvg_prs = mbewh-verpr  / itab_out-kurrf.
            endif.
            if itab_out-mvg_prs is initial.
              select single
                      lfmon lfgja verpr stprs vmver vmstp
                         from mbew
                         into (mbew-lfmon,mbew-lfgja,mbew-verpr,
                               mbew-stprs,mbew-vmver,mbew-vmstp)
                                  where matnr = itab_out-matnr
                                  and   bwkey = itab_out-werks.
              select single currdec from tcurx
                 into tcurx-currdec
                 where currkey eq t001-waers.
              if sy-subrc eq '0' .
                if tcurx-currdec eq '0'.
                  mbew-verpr = mbew-verpr * 100.
                endif.
              endif.
              if itab_out-waerk eq t001-waers.
                itab_out-mvg_prs = mbew-verpr  ."/ itab_out-kurrf.
              else.
                itab_out-mvg_prs = mbew-verpr  / itab_out-kurrf.
              endif.
            endif.
          endif.
        endif.
    To find Density and Mode from MARA and T179T tables
        clear :mara,t179t.
        select single prdha from mara
              into mara-prdha
              where matnr = itab_out-matnr.
        select single vtext from t179t
               into t179t-vtext
               where spras = 'EN' and
               prodh = mara-prdha(4).
        split t179t-vtext at ' ' into f_txt1 f_txt2 f_txt3.
        itab_out-mode = f_txt2.
        itab_out-density = f_txt3.
        if not itab_out-mvg_prs is initial.
          if itab_out-fktyp eq 'L'.
            itab_out-gp_mvp_amt = itab_out-bil_amt - itab_out-mvg_prs *
                                                       itab_out-fkimg.
          else.
            itab_out-gp_mvp_amt = '0'.
          endif.
        endif.
        if not itab_out-mvg_prs is initial
           and not itab_out-sel_prc is initial.
          itab_out-gp_mvp_pr = ( itab_out-sel_prc - itab_out-mvg_prs )
                                         / itab_out-sel_prc * 100.
        endif.
        append itab_out.
        clear itab_out.
      endloop.
      loop at itab_out.
        if itab_out-vbtyp eq 'N' or itab_out-vbtyp eq 'O'.
          itab_out-fkimg   = itab_out-fkimg * -1.
          itab_out-sel_prc = itab_out-sel_prc * -1.
          itab_out-bil_amt = itab_out-bil_amt * -1.
          itab_out-mvg_prs = itab_out-mvg_prs * -1.
          itab_out-gp_mvp_amt = itab_out-gp_mvp_amt * -1.
          itab_out-gp_mvp_pr = itab_out-gp_mvp_pr * -1.
    If the bill amount is 0 then the quantity should also be 0.
          if itab_out-bil_amt = 0.
            itab_out-fkimg = 0.
          endif.
    Check if the Bill amount is Credit memo amount, then the gross profit
    should also be the same bill amount irrespecitve of +ve or -ve.
          if itab_out-gp_mvp_amt = 0.
            move: itab_out-bil_amt to itab_out-gp_mvp_amt.
          endif.
          modify itab_out.
          clear itab_out.
        endif.
      endloop.
    endform.
    *&      Form  get_period
    Getting Document Period
    form get_period.
      clear :w_period,w_year,w_date.
      concatenate itab_out-fkdat(4)
                   itab_out-fkdat+4(2)
                   itab_out-fkdat+6(2)
                   into w_date.
      call function 'BAPI_COMPANYCODE_GET_PERIOD'
           exporting
                companycodeid = itab_out-bukrs
                posting_date  = w_date
           importing
                fiscal_year   = w_year
                fiscal_period = w_period.
    endform.                    " get_period
    *&      Form  invoice_output_cust
          Report Output when customer is selected
    form invoice_output_cust.
      write at /1(214) sy-uline.
      sort itab_out  by kunag vbeln fkart posnr fkdat.
      loop at itab_out.
        if f_flg = 'X'.
          format color col_normal intensified off.
          f_flg = ' '.
        else.
          format color col_normal intensified on.
          f_flg = 'X'.
        endif.
        at new kunag.
          read table itab_out index sy-tabix.
        endat.
        write:  /01 sy-vline,  2(10) itab_out-kunag,
                 12 sy-vline, 13(10) itab_out-vbeln,
                 23 sy-vline, 24(6)  itab_out-posnr,
                 30 sy-vline, 31(10) itab_out-fkdat,
                 41 sy-vline, 42(6)  itab_out-mode,
                 48 sy-vline, 49(7)  itab_out-density,
                 56 sy-vline, 57(18) itab_out-matnr,
                 75 sy-vline, 76(10) itab_out-charg,
                 86 sy-vline,
                 87(13) itab_out-fkimg unit itab_out-vrkme no-sign,
                 102(3) itab_out-vrkme,
                105 sy-vline,
                106(14) itab_out-sel_prc currency konv-waers no-sign,
                120 sy-vline,
                121(15) itab_out-bil_amt currency vbrk-waerk no-sign,
                138(3) itab_out-waerk,
                141 sy-vline,
                142(15) itab_out-mvg_prs currency vbrk-waerk no-sign,
                157 sy-vline,
                158(15) itab_out-gp_mvp_amt currency vbrk-waerk no-sign,
                173 sy-vline,174(6)  itab_out-gp_mvp_pr no-sign ,
                180 sy-vline,181(33) itab_out-kdmat,
                214 sy-vline.
        t_fkimg = t_fkimg + itab_out-fkimg.
        t_bil_amt = t_bil_amt + itab_out-bil_amt.
        t_gp_mvp_amt = t_gp_mvp_amt + itab_out-gp_mvp_amt.
        t_gr_fkimg      = t_gr_fkimg         + itab_out-fkimg.
        t_gr_bil_amt    = t_gr_bil_amt       + itab_out-bil_amt.
        t_gr_gp_mvp_amt = t_gr_gp_mvp_amt    + itab_out-gp_mvp_amt.
        at end of kunag.
          format reset.
          format color col_total intensified off.
          write:/1(214) sy-uline.
          write:/01 sy-vline,
                 02 'Sub Total of Customer:'(035), itab_out-kunag,
                 87(13) t_fkimg unit itab_out-vrkme no-sign,
                121(15) t_bil_amt no-sign,
                158(15) t_gp_mvp_amt no-sign,
                214 ' ',
                /1(214)  sy-uline.
          clear: t_fkimg, t_bil_amt, t_gp_mvp_amt.
        endat.
        at last.
          write:/01 sy-vline,
                 02 'Grand Total :'(032),
                 87(13) t_gr_fkimg unit itab_out-vrkme no-sign,
                121(15) t_gr_bil_amt no-sign,
                158(15) t_gr_gp_mvp_amt no-sign,
                214 ' '.
        endat.
        format color off.
      endloop.
      write at /1(214) sy-uline.
    endform.    "invoice_output_cust
    *&      Form  invoice_output_mode
          Report Output
    form invoice_output_mode.
      loop at itab_out.
        move-corresponding itab_out to itab_out2.
        append itab_out2.
        clear: itab_out2.
      endloop.
      write at /1(214) sy-uline.
      sort itab_out2  by mode vbeln posnr fkdat.
      loop at itab_out2.
        if f_flg = 'X'.
          format color col_normal intensified off.
          f_flg = ' '.
        else.
          format color col_normal intensified on.
          f_flg = 'X'.
        endif.
        at new mode.
          read table itab_out2 index sy-tabix.
        endat.
        write: /01 sy-vline,  2(10) itab_out2-kunag,
                12 sy-vline, 13(10) itab_out2-vbeln,
                23 sy-vline, 24(6)  itab_out2-posnr,
                30 sy-vline, 31(10) itab_out2-fkdat,
                41 sy-vline, 42(6)  itab_out2-mode,
                48 sy-vline, 49(7)  itab_out2-density,
                56 sy-vline, 57(18) itab_out2-matnr,
                75 sy-vline, 76(10) itab_out2-charg,
                86 sy-vline,
                87(13) itab_out2-fkimg unit itab_out2-vrkme no-sign,
                102(3) itab_out2-vrkme,
                105 sy-vline,
                106(14) itab_out2-sel_prc currency vbrk-waerk no-sign,
                120 sy-vline,
                121(15) itab_out2-bil_amt currency vbrk-waerk no-sign,
                             138(3)  itab_out2-waerk,
                141 sy-vline,
                142(15) itab_out2-mvg_prs currency vbrk-waerk no-sign,
                157 sy-vline,
                158(15) itab_out2-gp_mvp_amt currency vbrk-waerk no-sign,
                173 sy-vline,174(6)  itab_out2-gp_mvp_pr no-sign,
                180 sy-vline,181(33) itab_out2-kdmat,
                214 sy-vline.
        t_fkimg = t_fkimg + itab_out2-fkimg.
        t_bil_amt = t_bil_amt + itab_out2-bil_amt.
        t_gp_mvp_amt = t_gp_mvp_amt + itab_out2-gp_mvp_amt.
        t_gr_fkimg      = t_gr_fkimg         + itab_out2-fkimg.
        t_gr_bil_amt    = t_gr_bil_amt       + itab_out2-bil_amt.
        t_gr_gp_mvp_amt = t_gr_gp_mvp_amt    + itab_out2-gp_mvp_amt.
        at end of mode.
          format reset.
          format color col_total intensified off.
          write:/1(214) sy-uline.
          write:/01 sy-vline,
                 02 'Sub Total of Mode :'(033), itab_out2-mode,
                 87(13) t_fkimg unit itab_out-vrkme no-sign,
                121(15) t_bil_amt no-sign,
                158(15) t_gp_mvp_amt no-sign,
                214 ' ',
                /1(214)  sy-uline.
          clear: t_fkimg, t_bil_amt, t_gp_mvp_amt.
        endat.
        at last.
          write:/01 sy-vline,
                 02 'Grand Total :'(032),
                 87(13) t_gr_fkimg unit itab_out-vrkme no-sign,
                121(15) t_gr_bil_amt no-sign,
                158(15) t_gr_gp_mvp_amt no-sign,
                214 ' '.
        endat.
        format color off.
      endloop.
      write at /1(214) sy-uline.
    endform.    "invoice_output_mode
    *&      Form  invoice_output_dens
          Report Output
    form invoice_output_dens.
      loop at itab_out.
        move-corresponding itab_out to itab_out3.
        append itab_out3.
        clear: itab_out3.
      endloop.
      write at /1(214) sy-uline.
      sort itab_out3  by mode density vbeln posnr fkdat.
      loop at itab_out3.
        if f_flg = 'X'.
          format color col_normal intensified off.
          f_flg = ' '.
        else.
          format color col_normal intensified on.
          f_flg = 'X'.
        endif.
        at new mode.
        endat.
        at new density.
          read table itab_out3 index sy-tabix.
        endat.
        write:  /01 sy-vline,  2(10) itab_out3-kunag,
                 12 sy-vline, 13(10) itab_out3-vbeln,
                 23 sy-vline, 24(6)  itab_out3-posnr,
                 30 sy-vline, 31(10) itab_out3-fkdat,
                 41 sy-vline, 42(6)  itab_out3-mode,
                 48 sy-vline, 49(7)  itab_out3-density,
                 56 sy-vline, 57(18) itab_out3-matnr,
                 75 sy-vline, 76(10) itab_out3-charg,
                 86 sy-vline,
                 87(13) itab_out3-fkimg unit itab_out3-vrkme no-sign,
                 102(3) itab_out3-vrkme,
                 105 sy-vline,106(14) itab_out3-sel_prc no-sign,
                 120 sy-vline,
                 121(15) itab_out3-bil_amt currency vbrk-waerk no-sign,
                              138(3)  itab_out3-waerk,
                 141 sy-vline,142(15) itab_out3-mvg_prs no-sign
                                      currency vbrk-waerk,
                 157 sy-vline,158(15) itab_out3-gp_mvp_amt no-sign
                                      currency vbrk-waerk,
                 173 sy-vline,174(6)  itab_out3-gp_mvp_pr no-sign,
                 180 sy-vline,181(33) itab_out3-kdmat,
                 214 sy-vline.
        t_efkimg      = t_efkimg      + itab_out3-fkimg.
        t_ebil_amt    = t_ebil_amt    + itab_out3-bil_amt.
        t_egp_mvp_amt = t_egp_mvp_amt + itab_out3-gp_mvp_amt.
        t_fkimg = t_fkimg + itab_out3-fkimg.
        t_bil_amt = t_bil_amt + itab_out3-bil_amt.
        t_gp_mvp_amt = t_gp_mvp_amt + itab_out3-gp_mvp_amt.
        t_gr_fkimg      = t_gr_fkimg         + itab_out3-fkimg.
        t_gr_bil_amt    = t_gr_bil_amt       + itab_out3-bil_amt.
        t_gr_gp_mvp_amt = t_gr_gp_mvp_amt    + itab_out3-gp_mvp_amt.
        at end of density.
          format reset.
          format color col_total intensified off.
          write:/1(214) sy-uline.
          write:/01 sy-vline,
                 02 'Sub Total of Density :'(034), itab_out3-density,
                87(13) t_efkimg unit itab_out-vrkme no-sign,
               121(15) t_ebil_amt currency vbrk-waerk no-sign,
               158(15) t_egp_mvp_amt currency vbrk-waerk no-sign,
               214 ' ',
                /1(214) sy-uline.
          clear: t_efkimg, t_ebil_amt,t_egp_mvp_amt.
        endat.
        at end of mode.
          format reset.
          format color col_total intensified off.
          write:/01 sy-vline,
                 02 'Sub Total of Mode :'(033), itab_out3-mode,
                 87(13) t_fkimg unit itab_out-vrkme no-sign,
                121(15) t_bil_amt no-sign,
                158(15) t_gp_mvp_amt no-sign,
                214 ' ',
                /1(214) sy-uline.
          clear: t_fkimg, t_bil_amt, t_gp_mvp_amt.
        endat.
        at last.
          write:/01 sy-vline,
                 02 'Grand Total :'(032),
                87(13) t_gr_fkimg unit itab_out-vrkme no-sign,
               121(15) t_gr_bil_amt no-sign,
               158(15) t_gr_gp_mvp_amt no-sign,
               214 ' '.
        endat.
        format color off.
      endloop.
      write at /1(214) sy-uline.
    endform.    "invoice_output_dens
    *&      Form  f4_help
          To Get F4 Help to Select File Name
    form f4_help.
      call function 'F4_FILENAME'
           exporting
                program_name  = sy-cprog
                dynpro_number = syst-dynnr
                field_name    = 'P_FILE'
           importing
                file_name     = p_file.
    endform.                                                    " f4_help
    *&      Form  rep_headers
          Report Header
    form rep_headers.
      format color col_heading on.
      format color col_heading on.
      select single butxt from t001 into t001-butxt
                                    where bukrs = s_bukrs-low.
      skip 2.
      write: /2 t001-butxt, 92 'BILLING ANALYSIS'(003),
             190 'Date :'(010),sy-datum.
      write :/2 'Company Code :'(011), s_bukrs-low ,
            85 'Billing Date :'(012) , s_fkdat-low , '-' ,s_fkdat-high ,
            190 'Page :'(013), sy-pagno,
            214 ' '.
      write at /1(214) sy-uline.
      write: /1 sy-vline,  2(10) 'Customer'(004) centered,
             12 sy-vline, 13(10) 'Billing'(009) centered,
             23 sy-vline, 24(6)  'Billing'(009) centered,
             30 sy-vline, 31(10) 'Billing'(009) centered,
             41 sy-vline, 42(6)  'Mode'(006) centered,
             48 sy-vline, 49(7)  'Density'(014) centered,
             56 sy-vline, 57(18) 'Material'(015) centered,
             75 sy-vline, 76(10) 'Batch'(016) centered,
             86 sy-vline, 87(13) 'Quantity'(017) centered,102(3) 'UOM'(027),
             105 sy-vline, 106(14) 'Selling'(018) centered ,
             120 sy-vline, 121(15) 'Billing'(009) centered,
                           138(3) 'Cur'(028),
             141 sy-vline, 142(15) 'Mvg.Avg.Price'(020) centered,
             157 sy-vline, 158(22) 'Gross Profit(MVP)'(022) centered,
             180 sy-vline, 181(33) 'Customer Material'(023) centered,
             214 sy-vline.
      write: /1 sy-vline,  2(10) 'Code'(024) centered,
             12 sy-vline, 13(10) 'Document'(025) centered,
             23 sy-vline, 24(6)  'Item'(026) centered,
             30 sy-vline, 31(10) 'Date'(036) centered,
             41 sy-vline,
             48 sy-vline,
             56 sy-vline,
             75 sy-vline,
             86 sy-vline,
            105 sy-vline, 106(14) 'Price'(030) centered ,
            120 sy-vline, 121(15) 'Amount'(031) centered,
            141 sy-vline, 142(15) '(per Unit)'(019) centered,
            157 sy-vline, 158(15) 'Amount'(031) centered,
            173 sy-vline, 174(6) ' % '(029) centered,
            180 sy-vline,
            214 sy-vline.
      format color off.
    endform.                    " rep_headers
    *&      Form  init_fieldnames
    Initialise all the fields to download in Excel Data File
    form init_fieldnames.
      perform append_fieldname using text-004 'itab_out1'
                                     'KUNAG'    'X'.
      perform append_fieldname using text-037 'itab_out1'
                                     'VBELN'   'X'.
      perform append_fieldname using text-036 'itab_out1'
                                     'FKDAT'  'X'.
      perform append_fieldname using text-038 'itab_out1'
                                     'POSNR'    'X'.
      perform append_fieldname using text-006 'itab_out1'
                                     'MODE' 'X'.
      perform append_fieldname using text-014 'itab_out1'
                                     'DENSITY' 'X'.
      perform append_fieldname using text-015 'itab_out1'
                                     'MATNR'    'X'.
      perform append_fieldname using text-016 'itab_out1'
                                     'CHARG' 'X'.
      perform append_fieldname using text-017 'itab_out1'
                                     'FKIMG'    'X'.
      perform append_fieldname using text-039 'itab_out1'
                                     'VRKME' 'X'.
      perform append_fieldname using text-040 'itab_out1'
                                     'SEL_PRC' 'X'.
      perform append_fieldname using text-041 'itab_out1'
                                     'BIL_AMT' 'X'.
      perform append_fieldname using text-028 'itab_out1'
                                     'WAERK' 'X'.
      perform append_fieldname using text-020 'itab_out1'
                                     'MVG_PRS' 'X'.
      perform append_fieldname using text-044 'itab_out1'
                                     'GP_MVP_AMT' 'X'.
      perform append_fieldname using text-045 'itab_out1'
                                     'GP_MVP_PR' 'X'.
      perform append_fieldname using text-023 'itab_out1'
                                     'KDMAT'         'X'.
    endform.
    *&      Form  append_fieldname
    Appending field Names
    form append_fieldname using p_title p_table p_field p_type.
      clear: fieldnames.
      fieldnames-title = p_title.
      fieldnames-ta

Maybe you are looking for

  • Duplicate Sales Order - UserExit or BADI

    Hi, I have a requirement for one of my workflow. When duplicate sales order is received through EDI , I need to notify to Customer service team. If purchase order and ship-to is same and PO date is within 30 days, need to notify that it is a duplicat

  • Simple Delete messages in XI/PI

    We have scheduled these jobs to simple delete and it's working fine. One of the questions arrived that why Moni messages are still there, even though it's not required. Can we delete any trace of messages after 30 days? Is it duable? Please let me kn

  • Nodes versus Attributes

    Given: <abc attrib1="attrib1" attrib2="attrib2"></abc> Versus: <abc> <attrib1>attrib1</attrib1> <attrib2>attrib2</attrib2> </abc> I notice that the nodes would be indexed as "attribute" in the first case and "element" in the latter case. Is there any

  • Adobe Acrobat 8 Pro and digital signature

    cannot use and register my digital signature in Adobe Acrobat 8 for Mac. I managed to use it under Windows, by the way. The Siemens HiPath SIM card uses OpenSC SCA http://www.opensc-project.org/sca It's on USB token, using built-in Mac OS X driver. I

  • Just got back from exchanging

    Got a week 38 with Macy Gray...it's GORGEOUS! I hope iskin releases their case for it soon.