Validation on KNA1-STCD1

Hi,
I need to keep a validation on the field KNA1-STCD1 (Tax Number 1) without using any user exits etc...
Is there any simple configuration by displaying a warning message when the Tax number 1 already exists in the system.
Thanks,
Srini

Hi,
No, you'll have to make it through user-exit (you can use SAPMF02D enhancement).
Regards,
Eli

Similar Messages

  • [3.10] Foreignid Errado - idEstrangeiro

    Olá Experts,
    Seguindo o entendimento do meu cliente (e meu também), olhando o manual da NT2013.005, o campo foreignid = tag <idEstrangeiro> só deveria ser preenchido no XML 3.10 quando:
    1) A operação for Importação / Exportação E
    2) O parceiro destinatário for uma Pessoa Natural;
    Nesta linha de raciocínio temos que o Sap Standard, após a nota 2039647, está usando uma lógica errada para preenchimento do campo, pois ele busca primeiro KNA1-STCD1, caso vazio tenta KNA1-STCD2 e caso este esteja vazio, por ultimo vai no campo novo KNA1-RN, conforme o trecho de código abaixo:
    Para Fornecedor:
    Função J_1B_NF_VENDOR_READ
        IF NOT lfa1-stcd1 IS INITIAL.                         "2039647
          MOVE lfa1-stcd1     TO parnad-foreignid.            "2039647
        ELSEIF NOT lfa1-stcd2 IS INITIAL.                     "2039647
          MOVE lfa1-stcd2     TO parnad-foreignid.            "2039647
        ELSE.                                                 "2039647
          MOVE lfa1-rne       TO parnad-foreignid.            "2039647
        ENDIF.                                                "2039647
    Para Cliente:
    Função J_1B_NF_CUSTOMER_READ
        IF NOT kna1-stcd1 IS INITIAL.                         "2039647
          MOVE kna1-stcd1     TO parnad-foreignid.            "2039647
        ELSEIF NOT kna1-stcd2 IS INITIAL.                     "2039647
          MOVE kna1-stcd2     TO parnad-foreignid.            "2039647
        ELSE.                                                 "2039647
          MOVE kna1-rne       TO parnad-foreignid.            "2039647
        ENDIF.                                                "2039647
    Em nenhum momento o standard está verificando se o estrangeiro se trata de uma pessoa natural (flag KNA1-STKZN) antes de sair preenchendo o campo foreignid na Nota Fiscal.
    Alguém já passou por este problema? Alguma solução oficial ou não?
    Att.,
    Flavio Albuquerque

    Olá Flávio,
    seguindo a nota técnica 2013.005 na versão 1.21 de novembro 2014 o tag <idEstrangeiro> deverá ser preenchido
    1) A operação for Importação / Exportação
    OU
    2) O parceiro destinatário for uma Pessoa Natural estrangeiro como consumidor final;
    Veja a descrição do campo nas páginas 19, 50 (No. campo 64a), e a descrição das regras de validação (E03a) na página 103:
    Por isto, a lógica da SAP está correto. Se o pais do parceiro é diferente de BR = Operação com exterior, que necessita o ID estrangeiro.
    Espero de ter ajudado. Abraços, Titus.

  • Script modification need

    DOCU – WINDOW
    This is the window on the top right side
    1.Document no (hard coded)
    2.Then display the document number for the first document for the current row. Maybe you should check prior to printing if the current row was posted error free   
       and invoke printing only if this is the case. Then get the first(!!!) document number from the error/message log for this row. ZGF_ICO_RECHR_L-DOCFR
    3. Document date (hard coded) it is P_BLDAT on the selection screen, already correct in the form
    4. VAT No (hard coded)
    5. Then display the EU VAT reg.no of that company. This is in table KNA1, where KUNNR = L_ROW-CUSTFR. The field is KNA1-STCEG, if it is empty, try to populate
         KNA1-STCD1.
    6. Order number(Hard coded)
    7. Just concatenate L_ROW-REF + the last number for that reference from the log table ZGF_ICO_RECHR_L (notice this table has not yet been created!!! and also
        the part is missing where we populate that table when posting both documents for a particular row) ZGF_ICO_RECHR_L-REF+NUMBER
    report  ZG00F_.
    Top Include for the data declarations
    class LCL_REF definition deferred.
    include ZG00F_INT_POST_INVOICE_TOP.
    data: G_ALV_TREE         type ref to CL_GUI_ALV_TREE,
          G_CUSTOM_CONTAINER type ref to CL_GUI_CUSTOM_CONTAINER,
          G_TEXT_CONTAINER   type ref to CL_GUI_CUSTOM_CONTAINER,
          G_LOGGER           type ref to CL_GUI_TEXTEDIT,
          G_TOOLBAR          type ref to CL_GUI_TOOLBAR.
    data: " gt_zgf_ico_rechr      type zgf_ico_rechr occurs 0,
                           "Output-Table
          OKCODE like SY-UCOMM.
          CLASS LCL_REF DEFINITION
    class LCL_REF definition.
      public section.
        data : VALID type BOOLEAN,
               CAN type BOOLEAN.
        methods : CONSTRUCTOR
                    importing IM_REF type ZGF_ICO_RECHR,
                  CAN_POST
                    returning VALUE(CAN) type BOOLEAN,
                  IS_VALID
                    returning VALUE(IS_VALID) type BOOLEAN,
                  GET_DIVA  returning VALUE(DIVA) type LVC_S_LAYN,
                  GET_DIVAC returning VALUE(DIVAC) type LVC_S_LACN,
                  FILL_BAPI_TABLES,
                  GET_REF returning VALUE(R_REF) type ZGF_ICO_RECHR-REF,
                  POST_INVOICE,
                  PRINT_INVOICE,
                  GET_ERRORS returning
                  VALUE(R_ERROR_TAB) type ABAPTXT255_TAB,
                  GET_PRDATA returning
                  VALUE(PR_REF) type ZGF_ICO_RECHR.
      private section.
        data: LINE type ABAPTXT255,
              ERROR_TAB type ABAPTXT255_TAB,
              FIELD like LINE.
        methods :  CHECK_VALIDITY.
    endclass.                    "lcl_ref DEFINITION
          CLASS lcl_ref IMPLEMENTATION
    class LCL_REF implementation.
      method GET_ERRORS.
        R_ERROR_TAB = ME->ERROR_TAB.
      endmethod.                    "get_errors
      method IS_VALID.
        IS_VALID = ME->VALID.
      endmethod.                    "is_valid
      method GET_PRDATA.
        PR_REF = L_REF.
      endmethod.                    "is_valid
      method PRINT_INVOICE.
        data: L_KUNNR type KNA1-KUNNR.
        data: L_ROW type ZGF_ICO_RECHR.
        call function 'OPEN_FORM'
         exporting
           APPLICATION                       = 'TX'
        ARCHIVE_INDEX                     =
        ARCHIVE_PARAMS                    =
           DEVICE                            = 'PRINTER'
           DIALOG                            = 'X'
             FORM                              = 'ZGF_INVOICE'
             LANGUAGE                          = SY-LANGU
         OPTIONS                           = is_options
         exceptions
             CANCELED                          = 1
             DEVICE                            = 2
             others                            = 12.
        if SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        endif.
        call function 'START_FORM'
         exporting
           ARCHIVE_INDEX          =
           FORM                   = 'ZGF_INVOICE'
           LANGUAGE               = SY-LANGU
         exceptions
           FORM                   = 1
           others                 = 8.
        if SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        endif.
        IF L_REF-TOTAL >= 0.
          IV_INVOICE = 'INVOICE  (COMCoE Recharge)'.
        ELSE.
          IV_INVOICE = 'Credit Memo  (COMCoE Recharge)'.
        ENDIF.
        call method ME->GET_PRDATA
          receiving
            PR_REF = L_ROW.
        L_KUNNR = L_ROW-CUSTFR.
        select single RCOMP ADRNR LAND1 ORT01
        into (IV_RCOMP, IV_ADRNR, IV_COMPLAND1, IV_COMPORT01)
        from T001 where BUKRS = L_ROW-CCFR.
        call function 'WRITE_FORM'
          exporting
            WINDOW  = 'INVOICE'
            ELEMENT = 'T3'
          exceptions
            WINDOW  = 1
            ELEMENT = 2.
        IV_DOCDATE = P_BLDAT.
        IV_ORDNU = L_ROW-REF.
        call function 'WRITE_FORM'
          exporting
            WINDOW  = 'DOCU'
            ELEMENT = 'T2'
          exceptions
            WINDOW  = 1
            ELEMENT = 2.
        select single KUNNR STRAS NAME1 LAND1 ORT01 STCEG
        into
        (IV_CUSTNO, IV_CUSTADD, IV_CUSTNAME1, IV_CUSTLAND1, IV_CUSTCITY,
    IV_DOCVAT)
        from KNA1
        where KUNNR = L_KUNNR.
        call function 'WRITE_FORM'
          exporting
            WINDOW  = 'CUST'
            ELEMENT = 'T6'
          exceptions
            WINDOW  = 1
            ELEMENT = 2.
        IV_CUSTNO = L_KUNNR.
        IV_CURR = L_ROW-CURR.
        call function 'WRITE_FORM'
          exporting
            WINDOW  = 'CUSTNO'
            ELEMENT = 'T4'
          exceptions
            WINDOW  = 1
            ELEMENT = 2.
        data: L_VAR(21).
        concatenate P_DATEFR0(4) '/' P_DATEFR4(2) '/' P_DATEFR+6(2)
        '-' P_DATETO0(4) '/' P_DATETO4(2) '/' P_DATETO+6(2)
        into L_VAR.
        IV_PERDAT = L_VAR.
        call function 'WRITE_FORM'
          exporting
            WINDOW  = 'MAIN'
            ELEMENT = 'T1'
          exceptions
            WINDOW  = 1
            ELEMENT = 2.
        call function 'WRITE_FORM'
          exporting
            WINDOW  = 'FOOTER'
            ELEMENT = 'T5'
          exceptions
            WINDOW  = 1
            ELEMENT = 2.
    *CALL FUNCTION 'END_FORM'
    IMPORTING
      RESULT                         =
    EXCEPTIONS
      UNOPENED                       = 1
      BAD_PAGEFORMAT_FOR_PRINT       = 2
      SPOOL_ERROR                    = 3
    CODEPAGE                        = 4
      OTHERS                         = 5.
        call function 'END_FORM'
          exceptions
            UNOPENED = 1.
        if SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        endif.
        call function 'CLOSE_FORM'
          exceptions
            others = 6.
        if SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        endif.
      endmethod.                    "is_valid
      method GET_REF.
        R_REF = REF.
      endmethod.                    "get_ref
      method CONSTRUCTOR.
        L_REF = IM_REF.
        REF = IM_REF-REF.
        call method ME->CHECK_VALIDITY.
      endmethod.                    "constructor
      method GET_DIVA.
        DIVA-ISFOLDER = ''.
        if VALID <> 'X'.
          DIVA-N_IMAGE = ICON_NEGATIVE.
        else.
          DIVA-N_IMAGE = ICON_POSITIVE.
        endif.
      endmethod.                    "get_diva
      method GET_DIVAC.
        if V_ERROR1 = 'Y' or V_ERROR2 = 'Y'.
          DIVAC-N_IMAGE = ICON_RED_LIGHT.
        elseif V_ERROR1 = 'N' and V_ERROR2 = 'N'.
          DIVAC-N_IMAGE = ICON_GREEN_LIGHT.
        endif.
        DIVAC-U_N_IMAGE = 'X'.
      endmethod.                    "get_divac
      method CAN_POST.
        CAN = 'X'.
        call method ME->FILL_BAPI_TABLES.
      endmethod.                    "can_post
      method CHECK_VALIDITY.
    *Reference field must begin with M, Q, Y or J. Otherwise display an
    *error msg with text symbol TEXT-001 (ZGF_ICO_RECHR validation error –
    *Reference incorrect – rec.x) where x ist the numebr of the incorrect
    *record.
        data:  L_CHAR(1),
               L_REF1 type ZGF_ICO_RECHR-REF,
               L_ERR type OUTTAB_LINE_ERROR,
               L_NUM type N,
               L_KNB1 type KNB1,
               L_TBSL type TBSL,
               L_CSKS type CSKS,
               L_LFB1 type LFB1.
              l_flag(1).
        clear: L_CHAR, L_NUM, VALID.
        VALID = 'X'.
        L_REF1 = L_REF-REF.
        L_CHAR = L_REF1+0(1).
        if not ( L_CHAR = 'M'  or L_CHAR = 'Q'
                 or L_CHAR = 'Y' or L_CHAR = 'J').
         MESSAGE E398(00) WITH TEXT-001 ' ' ' ' ' '.
          clear L_ERR.
          L_ERR = L_REF.
          L_ERR-ERR_MESG = TEXT-001.
          L_ERR-REC_NO = G_CNTR.
          append L_ERR to GT_ZGF_ICO_RECHR_ERRORS.
          append L_ERR-ERR_MESG to ERROR_TAB.
          VALID = 'F'.
        endif.
        clear: L_CHAR, L_NUM.
        L_CHAR = L_REF1+1(1).
        L_NUM = L_CHAR.
        if not L_CHAR = '0'.
          if L_NUM = 0.
            clear L_ERR.
            L_ERR = L_REF.
            L_ERR-ERR_MESG = TEXT-001.
            L_ERR-REC_NO = G_CNTR.
            append L_ERR to GT_ZGF_ICO_RECHR_ERRORS.
            append L_ERR-ERR_MESG to ERROR_TAB.
            VALID = 'F'.
          endif.
        endif.
        clear: L_CHAR, L_NUM.
        L_CHAR = L_REF1+2(1).
        L_NUM = L_CHAR.
        if not L_CHAR = '0'.
          if L_NUM = 0.
            clear L_ERR.
            L_ERR = L_REF.
            L_ERR-ERR_MESG = TEXT-001.
            L_ERR-REC_NO = G_CNTR.
            append L_ERR to GT_ZGF_ICO_RECHR_ERRORS.
            append L_ERR-ERR_MESG to ERROR_TAB.
            VALID = 'F'.
          endif.
        endif.
        clear: L_CHAR, L_NUM.
        L_CHAR = L_REF1+3(1).
        L_NUM = L_CHAR.
        if not L_CHAR = '0'.
          if L_NUM = 0.
            clear L_ERR.
            L_ERR = L_REF.
            L_ERR-ERR_MESG = TEXT-001.
            L_ERR-REC_NO = G_CNTR.
            append L_ERR-ERR_MESG to GT_ZGF_ICO_RECHR_ERRORS.
            VALID = 'F'.
          endif.
        endif.
        if not ( L_REF-FREQ = 'M' or L_REF-FREQ = 'Q' or L_REF-FREQ = 'Y').
          clear L_ERR.
          L_ERR = L_REF.
          L_ERR-ERR_MESG = TEXT-002.
          L_ERR-REC_NO = G_CNTR.
          append L_ERR to GT_ZGF_ICO_RECHR_ERRORS.
          append L_ERR-ERR_MESG to ERROR_TAB.
          VALID = 'F'.
        endif.
        if not ( L_REF-CODE = 'A' or L_REF-CODE = 'B' or L_REF-CODE = 'C'
                 or L_REF-CODE = 'D' or L_REF-CODE = 'E'
                 or L_REF-CODE = 'F' ).
          clear L_ERR.
          L_ERR = L_REF.
          L_ERR-ERR_MESG = TEXT-003.
          L_ERR-REC_NO = G_CNTR.
          append L_ERR to GT_ZGF_ICO_RECHR_ERRORS.
          append L_ERR-ERR_MESG to ERROR_TAB.
          VALID = 'F'.
        endif.
    *Customer FROM must not be flagged for deletion in KNB1. (KNB1-LOEVM
    *must be space), otherwise error message with TEXT-007. (ZGF_ICO_RECHR
    *validation error – From customer marked for deletion– rec.x) where x
    *ist the number of the incorrect record.
        select single * from KNB1 into L_KNB1
               where KUNNR = L_REF-CUSTFR.
        if SY-SUBRC = 0.
          if not L_KNB1-LOEVM is initial.
            clear L_ERR.
            L_ERR = L_REF.
            L_ERR-ERR_MESG = TEXT-007.
            L_ERR-REC_NO = G_CNTR.
            append L_ERR to GT_ZGF_ICO_RECHR_ERRORS.
            append L_ERR-ERR_MESG to ERROR_TAB.
            VALID = 'F'.
          endif.
          if not L_KNB1-SPERR  is initial.
            clear L_ERR.
            L_ERR = L_REF.
            L_ERR-ERR_MESG = TEXT-006.
            L_ERR-REC_NO = G_CNTR.
            append L_ERR to GT_ZGF_ICO_RECHR_ERRORS.
            append L_ERR-ERR_MESG to ERROR_TAB.
            VALID = 'F'.
          endif.
        endif.
       select single * from TBSL into L_TBSL
              where BSCHL = L_REF-PKFRD.
       if not L_TBSL-KOART = 'D'.
         clear L_ERR.
         L_ERR = L_REF.
         L_ERR-ERR_MESG = TEXT-008.
         L_ERR-REC_NO = G_CNTR.
         append L_ERR to GT_ZGF_ICO_RECHR_ERRORS.
         append L_ERR-ERR_MESG to ERROR_TAB.
         VALID = 'F'.
       endif.
       select single * from TBSL into L_TBSL
              where BSCHL = L_REF-PKFRS.
       if not L_TBSL-KOART = 'S'.
         clear L_ERR.
         L_ERR = L_REF.
         L_ERR-ERR_MESG = TEXT-009.
         L_ERR-REC_NO = G_CNTR.
         append L_ERR to GT_ZGF_ICO_RECHR_ERRORS.
         append L_ERR-ERR_MESG to ERROR_TAB.
         VALID = 'F'.
       endif.
       if not L_REF-PLTFR is initial.
         select single * from CSKS into L_CSKS
         where ZZWERKS = L_REF-PKFRS.
         if SY-SUBRC <> 0.
           clear L_ERR.
           L_ERR = L_REF.
           L_ERR-ERR_MESG = TEXT-012.
           L_ERR-REC_NO = G_CNTR.
           append L_ERR to GT_ZGF_ICO_RECHR_ERRORS.
           append L_ERR-ERR_MESG to ERROR_TAB.
           VALID = 'F'.
         endif.
       endif.
        select single * from LFB1 into L_LFB1
               where LIFNR = L_REF-CUSTTO.
        if not L_LFB1-LOEVM is initial.
          clear L_ERR.
          L_ERR = L_REF.
          L_ERR-ERR_MESG = TEXT-018.
          L_ERR-REC_NO = G_CNTR.
          append L_ERR to GT_ZGF_ICO_RECHR_ERRORS.
          append L_ERR-ERR_MESG to ERROR_TAB.
          VALID = 'F'.
        endif.
        if not LFB1-SPERR is initial.
          clear L_ERR.
          L_ERR = L_REF.
          L_ERR-ERR_MESG = TEXT-019.
          L_ERR-REC_NO = G_CNTR.
          append L_ERR to GT_ZGF_ICO_RECHR_ERRORS.
          append L_ERR-ERR_MESG to ERROR_TAB.
          VALID = 'F'.
        endif.
       select single * from TBSL into L_TBSL
              where BSCHL = L_REF-PKTOK.
       if not L_TBSL-KOART = 'K'.
         clear L_ERR.
         L_ERR = L_REF.
         L_ERR-ERR_MESG = TEXT-020.
         L_ERR-REC_NO = G_CNTR.
         append L_ERR to GT_ZGF_ICO_RECHR_ERRORS.
         append L_ERR-ERR_MESG to ERROR_TAB.
         VALID = 'F'.
       endif.
       select single * from TBSL into L_TBSL
              where BSCHL = L_REF-PKTOS.
       if not L_TBSL-KOART = 'S'.
         clear L_ERR.
         L_ERR = L_REF.
         L_ERR-ERR_MESG = TEXT-021.
         L_ERR-REC_NO = G_CNTR.
         append L_ERR to GT_ZGF_ICO_RECHR_ERRORS.
         append L_ERR-ERR_MESG to ERROR_TAB.
         VALID = 'F'.
       endif.
        if not L_REF-TOTAL > 0.
          clear L_ERR.
          L_ERR = L_REF.
          L_ERR-ERR_MESG = TEXT-017.
          L_ERR-REC_NO = G_CNTR.
          append L_ERR to GT_ZGF_ICO_RECHR_ERRORS.
          append L_ERR-ERR_MESG to ERROR_TAB.
          VALID = 'F'.
        endif.
       return valid.
      endmethod.                    "check_validity
    --- Method Post Invoice Start ---
      method POST_INVOICE.
      endmethod.                    "post_invoice
    --- Method Post Invoice End ---
    --- Method Filling Bapi Tables Start ---
      method FILL_BAPI_TABLES.
    *---- Populating Bapi for Customer
        V_TOTAL = L_REF-TOTAL.
        perform FILL_BAPI_CUSTOMER.
        V_ERROR1 = 'N'.
        V_ERROR2 = 'N'.
        delete IT_ERROR where NODE_ID = L_SELECTED_NODE.
        IS_ERROR-NODE_ID = L_SELECTED_NODE.
        IS_ERROR-ERROR  = SY-ULINE(30).
        append IS_ERROR to IT_ERROR.
        IS_ERROR-NODE_ID = L_SELECTED_NODE.
        IS_ERROR-ERROR  = L_REF-REF.
        append IS_ERROR to IT_ERROR.
        IS_ERROR-NODE_ID = L_SELECTED_NODE.
        IS_ERROR-ERROR  = SY-ULINE(30).
        append IS_ERROR to IT_ERROR.
        IS_ERROR-NODE_ID = L_SELECTED_NODE.
        IS_ERROR-ERROR   = '*** Checking Customer Document ***'.
        append IS_ERROR to IT_ERROR.
        clear IS_ERROR.
    *---- Checking for 1st Document
        call function 'BAPI_ACC_DOCUMENT_CHECK'
          exporting
            DOCUMENTHEADER       = WA_DOCUMENTHEADER
          tables
            ACCOUNTGL            = LT_ACCOUNTGL
            ACCOUNTRECEIVABLE     =
            LT_ACCOUNTRECEIVABLE
            ACCOUNTTAX           = LT_ACCOUNTTAX
            CURRENCYAMOUNT       = LT_CURRENCYAMOUNT
            RETURN               = LT_RETURN.
        loop at LT_RETURN into WA_RETURN.
          if WA_RETURN-TYPE = 'E' or WA_RETURN-TYPE = 'A'.
            V_ERROR1 = 'Y'.
          endif.
          IS_ERROR-NODE_ID = L_SELECTED_NODE.
          concatenate WA_RETURN-TYPE WA_RETURN-MESSAGE into IS_ERROR-ERROR
            separated by '-'.
          append IS_ERROR to IT_ERROR.
        endloop.
    *--- Checking for 2nd Document
        if V_ERROR1 = 'N'.
    *---- Populating Bapi for Vendor
          L_REF-TOTAL = V_TOTAL.
          perform FILL_BAPI_VENDOR.
          IS_ERROR-NODE_ID = L_SELECTED_NODE.
          IS_ERROR-ERROR   = '*** Checking for Vendor Document ***'.
          append IS_ERROR to IT_ERROR.
          clear IS_ERROR.
          call function 'BAPI_ACC_DOCUMENT_CHECK'
            exporting
              DOCUMENTHEADER = WA_DOCUMENTHEADER2
            tables
              ACCOUNTGL      = LT_ACCOUNTGL2
              ACCOUNTPAYABLE = LT_ACCOUNTPAYABLE
              ACCOUNTTAX     = LT_ACCOUNTTAX2
              CURRENCYAMOUNT = LT_CURRENCYAMOUNT2
              RETURN         = LT_RETURN2.
          loop at LT_RETURN2 into WA_RETURN2.
            if WA_RETURN-TYPE = 'E' or WA_RETURN-TYPE = 'A'.
              V_ERROR2 = 'Y'.
            endif.
            IS_ERROR-NODE_ID = L_SELECTED_NODE.
            concatenate WA_RETURN2-TYPE WA_RETURN2-MESSAGE into
             IS_ERROR-ERROR separated by '-'.
            append IS_ERROR to IT_ERROR.
          endloop.
        endif.
    *--- CHECK WHETHER BOTH DOCUMENTS ARE CORRECT OR NOT returned SUCCESS
        if V_ERROR1 = 'N' and V_ERROR2 = 'N'.
    *--- Posting 1st Document - Customer
          IS_ERROR-NODE_ID = L_SELECTED_NODE.
          IS_ERROR-ERROR   = '*** Posting Customer Document ***'.
          append IS_ERROR to IT_ERROR.
          clear IS_ERROR.
          call function 'BAPI_ACC_DOCUMENT_POST'
            exporting
              DOCUMENTHEADER       = WA_DOCUMENTHEADER
            tables
              ACCOUNTGL            = LT_ACCOUNTGL
              ACCOUNTRECEIVABLE     =
              LT_ACCOUNTRECEIVABLE
              ACCOUNTTAX           = LT_ACCOUNTTAX
              CURRENCYAMOUNT       = LT_CURRENCYAMOUNT
              RETURN               = LT_RETURN.
          call function 'BAPI_TRANSACTION_COMMIT'.
          loop at LT_RETURN into WA_RETURN.
            IS_ERROR-NODE_ID = L_SELECTED_NODE.
           concatenate WA_RETURN-TYPE WA_RETURN-MESSAGE into IS_ERROR-ERROR
             separated by '-'.
            append IS_ERROR to IT_ERROR.
          endloop.
    *--- Posting 2nd Document - Vendor
          IS_ERROR-NODE_ID = L_SELECTED_NODE.
          IS_ERROR-ERROR   = '*** Posting Vendor Document ***'.
          append IS_ERROR to IT_ERROR.
          clear IS_ERROR.
          call function 'BAPI_ACC_DOCUMENT_POST'
            exporting
              DOCUMENTHEADER = WA_DOCUMENTHEADER2
            tables
              ACCOUNTGL      = LT_ACCOUNTGL2
              ACCOUNTPAYABLE = LT_ACCOUNTPAYABLE
              ACCOUNTTAX     = LT_ACCOUNTTAX2
              CURRENCYAMOUNT = LT_CURRENCYAMOUNT2
              RETURN         = LT_RETURN2.
          call function 'BAPI_TRANSACTION_COMMIT'.
          loop at LT_RETURN2 into WA_RETURN2.
            IS_ERROR-NODE_ID = L_SELECTED_NODE.
            concatenate WA_RETURN2-TYPE WA_RETURN2-MESSAGE into
             IS_ERROR-ERROR separated by '-'.
            append IS_ERROR to IT_ERROR.
          endloop.
        endif. "if V_ERROR1 = 'N' and V_ERROR2 = 'N'.
    *--- Setting colour of node.
        data:  LO_REF type ref to LCL_REF,
               IS_NODE_LAYOUT type LVC_S_LACN,
               L_NODE_TEXT type LVC_VALUE,
               WA_OREF type TY_REF.
        clear :IS_NODE_LAYOUT,L_NODE_TEXT, WA_OREF, LO_REF.
        create object LO_REF exporting IM_REF = LS_ZGF_ICO_RECHR.
        IS_NODE_LAYOUT = LO_REF->GET_DIVAC( ).
        read table GT_ZGF_ICO_RECHR into L_REF index L_SELECTED_NODE.
        L_NODE_TEXT = L_REF-REF.
        call method G_ALV_TREE->CHANGE_NODE
          exporting
            I_NODE_KEY     = L_SELECTED_NODE
            I_OUTTAB_LINE  = L_REF
            IS_NODE_LAYOUT = IS_NODE_LAYOUT
            I_NODE_TEXT    = L_NODE_TEXT
            I_U_NODE_TEXT  = 'X'
          exceptions
            NODE_NOT_FOUND = 1
            others         = 2.
        call method G_ALV_TREE->FRONTEND_UPDATE.
        call method CL_GUI_CFW=>FLUSH
          exceptions
            CNTL_SYSTEM_ERROR = 1
            CNTL_ERROR        = 2.
      endmethod.                    "fill_int_tables
    endclass.                    "lcl_ref IMPLEMENTATION
          CLASS lcl_event_handler DEFINITION
    class LCL_EVENT_HANDLER definition.
      public section.
        class-methods : ON_NODE_CLICK for event
          NODE_DOUBLE_CLICK of CL_GUI_ALV_TREE
            importing NODE_KEY.
        methods: ON_FUNCTION_SELECTED
                   for event FUNCTION_SELECTED of CL_GUI_TOOLBAR
                     importing FCODE.
    endclass.                    "lcl_event_handler DEFINITION
          CLASS lcl_event_handler IMPLEMENTATION
    class LCL_EVENT_HANDLER implementation.
      method  ON_NODE_CLICK.
      endmethod.                    "on_node_click
      method ON_FUNCTION_SELECTED.
        data: LT_SELECTED_NODES type LVC_T_NKEY,
              L_RC              type C,
              L_CAN             type C,
              L_REC             type I,
              WA_OREF           type TY_REF,
              L_LINE            type SY-TABIX.
    Determine which line is selected
        call method G_ALV_TREE->GET_SELECTED_NODES
          changing
            CT_SELECTED_NODES = LT_SELECTED_NODES.
        call method CL_GUI_CFW=>FLUSH.
    remark: The user can not select more than one node since the
            default value of NODE_SELECTION_MODE is
            cl_gui_column_Tree=>NODE_SEL_MODE_SINGLE (see constructor).
        describe table LT_SELECTED_NODES lines L_REC.
        if L_REC = 0 and FCODE = 'ERROR'.
    *--- Show log for all if nothing is selected then.
          refresh LT_ERRORS.
          clear LT_ERRORS.
          loop at IT_ERROR into IS_ERROR.
            IS_ERRORS-LINE = IS_ERROR-ERROR.
            append IS_ERRORS to LT_ERRORS.
          endloop.
          call method G_LOGGER->SET_TEXT_AS_R3TABLE
            exporting
              TABLE = LT_ERRORS.
        endif.
        loop at  LT_SELECTED_NODES into L_SELECTED_NODE.
          clear : L_REF, WA_OREF.
          L_LINE = SY-TABIX.
          read table GT_OREF into WA_OREF index L_SELECTED_NODE.
          read table GT_ZGF_ICO_RECHR into L_REF index L_SELECTED_NODE.
          if SY-SUBRC = 0.
            case FCODE.
              when 'ERROR'.
                refresh LT_ERRORS.
                clear LT_ERRORS.
                loop at IT_ERROR into IS_ERROR where NODE_ID =
                                                      L_SELECTED_NODE.
                  IS_ERRORS-LINE = IS_ERROR-ERROR.
                  append IS_ERRORS to LT_ERRORS.
                endloop.
                call method G_LOGGER->SET_TEXT_AS_R3TABLE
                  exporting
                    TABLE = LT_ERRORS.
              when 'POST'.
                if L_LINE = 1.
                  if WA_OREF-O_REF->IS_VALID( ) = 'X'.
                    clear L_RC.
                    call function 'POPUP_TO_CONFIRM_STEP'
                      exporting
                        TEXTLINE1      = 'Do you want to post'  "(902)
                        TEXTLINE2      = '?'                    "(903)
                        TITEL          = 'Confirmation'         "(904)
                        CANCEL_DISPLAY = ' '
                      importing
                        ANSWER         = L_RC.
                  else.
                    call function 'POPUP_TO_INFORM'
                      exporting
                        TITEL = 'Select Another Record..'
                        TXT1  = 'Data Wrong,'
                        TXT2  = 'Posting Can Not be Done'.
                  endif.
                else.
                  L_RC = 'J'.
                endif.
                if L_RC eq 'J'.
    *---Post Invoice.
                  if WA_OREF-O_REF->CAN_POST( ) = 'X'.
                    call method WA_OREF-O_REF->POST_INVOICE.
    *---Printing Log.
                    refresh LT_ERRORS.
                    clear LT_ERRORS.
                    loop at IT_ERROR into IS_ERROR.
                      IS_ERRORS-LINE = IS_ERROR-ERROR.
                      append IS_ERRORS to LT_ERRORS.
                    endloop.
                    call method G_LOGGER->SET_TEXT_AS_R3TABLE
                      exporting
                        TABLE = LT_ERRORS.
                  endif.
                endif.
              when 'PRINT'.
                call method WA_OREF-O_REF->PRINT_INVOICE.
            endcase.
          else.
            message I000(0K) with 'Please select a node.'.
          endif.
        endloop.
      endmethod.                    "on_function_selected
    endclass.                    "lcl_event_handler IMPLEMENTATION
    START-OF-SELECTION.
    start-of-selection.
    end-of-selection.
      call screen 100.
    *&      Module  STATUS_0100  OUTPUT
    module STATUS_0100 output.
      set pf-status 'MAIN100'.
      set titlebar 'MAINTITLE'.
      if G_ALV_TREE is initial.
        perform INIT_TREE.
        call method CL_GUI_CFW=>FLUSH
          exceptions
            CNTL_SYSTEM_ERROR = 1
            CNTL_ERROR        = 2.
        if SY-SUBRC ne 0.
         call function 'POPUP_TO_INFORM'
           exporting
             titel = 'Automation Queue failure'(801)
             txt1  = 'Internal error:'(802)
             txt2  = 'A method in the automation queue'(803)
             txt3  = 'caused a failure.'(804).
        endif.
      endif.
    endmodule.                 " STATUS_0100  OUTPUT
    *&      Form  init_tree
          text
    -->  p1        text
    <--  p2        text
    form INIT_TREE .
      data: L_TREE_CONTAINER_NAME(30) type C.
    *Reference tree
      L_TREE_CONTAINER_NAME = 'ZCONTAINER'.
      create object G_CUSTOM_CONTAINER
         exporting
               CONTAINER_NAME = L_TREE_CONTAINER_NAME
         exceptions
               CNTL_ERROR                  = 1
               CNTL_SYSTEM_ERROR           = 2
               CREATE_ERROR                = 3
               LIFETIME_ERROR              = 4
               LIFETIME_DYNPRO_DYNPRO_LINK = 5.
      if SY-SUBRC <> 0.
       MESSAGE x208(00) WITH 'ERROR'(100).
      endif.
    create tree control
      create object G_ALV_TREE
        exporting
            PARENT              = G_CUSTOM_CONTAINER
            NODE_SELECTION_MODE = CL_GUI_COLUMN_TREE=>NODE_SEL_MODE_MULTIPLE
           NODE_SELECTION_MODE = CL_GUI_COLUMN_TREE=>NODE_SEL_MODE_SINGLE
            ITEM_SELECTION      = 'X'
            NO_HTML_HEADER      = ''
            NO_TOOLBAR          = ''
        exceptions
            CNTL_ERROR                   = 1
            CNTL_SYSTEM_ERROR            = 2
            CREATE_ERROR                 = 3
            LIFETIME_ERROR               = 4
            ILLEGAL_NODE_SELECTION_MODE  = 5
            FAILED                       = 6
            ILLEGAL_COLUMN_NAME          = 7.
      if SY-SUBRC <> 0.
        message X208(00) with 'ERROR'.                          "#EC NOTEXT
      endif.
    ****logger
      L_TREE_CONTAINER_NAME = 'ZLOGGER'.
      create object G_TEXT_CONTAINER
         exporting
               CONTAINER_NAME = L_TREE_CONTAINER_NAME
         exceptions
               CNTL_ERROR                  = 1
               CNTL_SYSTEM_ERROR           = 2
               CREATE_ERROR                = 3
               LIFETIME_ERROR              = 4
               LIFETIME_DYNPRO_DYNPRO_LINK = 5.
      create object G_LOGGER
          exporting PARENT = G_TEXT_CONTAINER
          NAME = 'Error Log'.
      call method G_LOGGER->SET_READONLY_MODE.
    endlogger
      data L_HIERARCHY_HEADER type TREEV_HHDR.
      data: LT_LIST_COMMENTARY type SLIS_T_LISTHEADER,
            L_LOGO             type SDYDO_VALUE.
      data : WA_FIELDCATALOG type LVC_S_FCAT.
      perform BUILD_HIERARCHY_HEADER changing L_HIERARCHY_HEADER.
      perform BUILD_COMMENT using LT_LIST_COMMENTARY
                                  L_LOGO.
      clear : WA_FIELDCATALOG, GT_FIELDCATALOG.
    get fieldcatalog
      call function 'LVC_FIELDCATALOG_MERGE'
        exporting
          I_STRUCTURE_NAME = 'ZGF_ICO_RECHR'
        changing
          CT_FIELDCAT      = GT_FIELDCATALOG.
      loop at GT_FIELDCATALOG into WA_FIELDCATALOG.
        case WA_FIELDCATALOG-FIELDNAME.
          when 'REF'.
            WA_FIELDCATALOG-NO_OUT = 'X'.
        endcase.
        WA_FIELDCATALOG-OUTPUTLEN = 15.
        modify GT_FIELDCATALOG from WA_FIELDCATALOG.
      endloop.
      call method G_ALV_TREE->SET_TABLE_FOR_FIRST_DISPLAY
        exporting
          IT_LIST_COMMENTARY  = LT_LIST_COMMENTARY
          I_LOGO              = L_LOGO
         i_structure_name    = 'ZGF_ICO_RECHR'
          IS_HIERARCHY_HEADER = L_HIERARCHY_HEADER
        changing
          IT_FIELDCATALOG     = GT_FIELDCATALOG
          IT_OUTTAB           = GT_ZGF_ICO_RECHR. "table must be empty !
      perform CREATE_HIERARCHY.
      perform CHANGE_TOOLBAR.
      perform REGISTER_EVENTS.
      call method G_ALV_TREE->FRONTEND_UPDATE.
    endform.                    " init_tree
    *&      Form  build_hierarchy_header
    form BUILD_HIERARCHY_HEADER  changing
            P_HIERARCHY_HEADER type TREEV_HHDR.
      P_HIERARCHY_HEADER-HEADING = 'Reference Number'(300).
      P_HIERARCHY_HEADER-TOOLTIP = 'Reference numbers for invoices'(400).
      P_HIERARCHY_HEADER-WIDTH = 30.
      P_HIERARCHY_HEADER-WIDTH_PIX = ' '.
    endform.                    " build_hierarchy_header
    *&      Form  create_hierarchy
    form CREATE_HIERARCHY .
      clear : LS_ZGF_ICO_RECHR, L_LAST_KEY.
    §4a. Select data
      refresh GT_ZGF_ICO_RECHR.
      select * from ZGF_ICO_RECHR into table LT_ZGF_ICO_RECHR
       where FREQ in SO_FREQ
         and  REF in SO_REF.
      sort LT_ZGF_ICO_RECHR by REF.
    Note: The top level nodes do not correspond to a field of the
    output table. Instead we use data of the table to invent another
    hierarchy level above the levels that can be build by sorting.
    §4c. Add data to tree
      G_CNTR = 1.
    sort by oref->get_diva->image .
      loop at LT_ZGF_ICO_RECHR into LS_ZGF_ICO_RECHR.
        perform ADD_COMPLETE_LINE using  LS_ZGF_ICO_RECHR
                                          changing L_LAST_KEY.
        G_CNTR = G_CNTR + 1.
    perform add_node using ls_zgf_ico_rechr-ref
                      changing l_last_key.
      endloop.
    endform.                    " create_hierarchy
    *&      Module  USER_COMMAND_0100  INPUT
    module USER_COMMAND_0100 input.
      SAVE_OK = OKCODE.
      clear OKCODE.
      case SAVE_OK.
        when 'EXIT' or 'BACK' or 'CANC'.
          perform EXIT_PROGRAM.
        when others.
    §6. Call dispatch to process toolbar functions
          call method CL_GUI_CFW=>DISPATCH.
      endcase.
      call method CL_GUI_CFW=>FLUSH.
    endmodule.                 " USER_COMMAND_0100  INPUT
    *&      Form  exit_program
          text
    form EXIT_PROGRAM .
      call method G_CUSTOM_CONTAINER->FREE.
      leave to screen 0.
    endform.                    " exit_program
    *&      Form  add_complete_line
    form ADD_COMPLETE_LINE  using    P_LS_ZGF_ICO_RECHR type ZGF_ICO_RECHR
                                     P_RELAT_KEY type LVC_NKEY
                            changing P_NODE_KEY type LVC_NKEY.
      data: L_NODE_TEXT type LVC_VALUE,
            LO_REF type ref to LCL_REF,
            L_NODE_LAYOUT type LVC_S_LAYN.
    add leaf:
    ALV Tree firstly inserts this node as a leaf if you do not provide
    IS_NODE_LAYOUT with field ISFOLDER set.
    Since these nodes will never get children they stay leaves
    (as intended).
      clear L_NODE_LAYOUT.
      create object LO_REF exporting IM_REF = P_LS_ZGF_ICO_RECHR.
      data : WA_OREF type TY_REF.
      clear WA_OREF.
      WA_OREF-O_REF = LO_REF.
      append WA_OREF to GT_OREF.
      L_NODE_LAYOUT = LO_REF->GET_DIVA( ).
      L_NODE_TEXT = P_LS_ZGF_ICO_RECHR-REF.
      call method G_ALV_TREE->ADD_NODE
        exporting
          I_RELAT_NODE_KEY = P_RELAT_KEY
          I_RELATIONSHIP   = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD
          IS_OUTTAB_LINE   = P_LS_ZGF_ICO_RECHR   "_REF
          I_NODE_TEXT      = L_NODE_TEXT
          IS_NODE_LAYOUT   = L_NODE_LAYOUT
        importing
          E_NEW_NODE_KEY   = P_NODE_KEY.
    endform.                    " add_complete_line
    *&      Form  add_node
    form ADD_NODE  using    P_REF
                   changing P_NODE_KEY type LVC_NKEY.
      clear L_NODE_LAYOUT.
      L_NODE_LAYOUT-ISFOLDER = ''.
      L_NODE_LAYOUT-N_IMAGE = ICON_POSITIVE.
      L_NODE_TEXT =  'Reference1'. " ps_sflight-carrid.
      call method G_ALV_TREE->ADD_NODE
        exporting
          I_RELAT_NODE_KEY = '' " p_relat_key
          I_RELATIONSHIP   = CL_GUI_COLUMN_TREE=>RELAT_LAST_CHILD
          I_NODE_TEXT      = L_NODE_TEXT
          IS_OUTTAB_LINE   = P_REF
          IS_NODE_LAYOUT   = L_NODE_LAYOUT
        importing
          E_NEW_NODE_KEY   = P_NODE_KEY.
    endform.                    " add_node
    *&      Form  register_events
    form REGISTER_EVENTS .
      data: LT_EVENTS type CNTL_SIMPLE_EVENTS,
            L_EVENT type CNTL_SIMPLE_EVENT,
            L_EVENT_RECEIVER type ref to LCL_EVENT_HANDLER.
      call method G_ALV_TREE->GET_REGISTERED_EVENTS
        importing
          EVENTS = LT_EVENTS.
    *NODE_DOUBLE_CLICK
      clear L_EVENT.
      move CL_GUI_COLUMN_TREE=>EVENTID_NODE_DOUBLE_CLICK to L_EVENT-EVENTID.
      append L_E

    Ok fine that can be acchived by setting the retention policy and by issuing delete obsolete command.That's perfect.If FRA is configured then even delete obsolete command is also not required.
    but i want to keep the last full backup for 15 days and archived logs only for one day.In this case can we set seperate retention policy for full backup and backup of archived logs
    for the time being i just want to modify my present existing OS script to acchive my task and i will conside changing RMAN script later on.Can u provide me the modified OS script so that my work gets finishes succesfully.
    Thank You...

  • Location of Indian Tax IDs in Customer Master Record.

    We are enabling India as company code/sales organization. One of the requirements put upon us is to carry 2 tax id numbers on the customer master and at the transaction level. We are being requested to carry a CST (Central Sales Tax) id and a VAT tax id. I am using the VAT registration field kna1-STCEG which is 20 characters long. The business is telling us that they need the CST to be 25 characters. Our original intent was to store it in kna1-STCD1, however this field is only 16 characters long. The business is telling us that the validity years need to be appended to the tax id number which pushes it over the alloted 16 characters. Has anyone else run into this, if so what was the chosen method.
    Message was edited by:
            Gino Ruggiero

    Hi,
    I had the same problem in my previous implementation. If the tax condition types in your customer master and material master are not in the same sequence, then your condition records would not behave properly. They would either throw out some junk values or multiple condition types may appear in your sales order.
    To over come this, I have made the sequence of the condition types in material master through OVK1 T.code as the same order as the customer master condition types.
    This resolved my problem and the condition records were correctly picked.
    By doing this your issue also would be resolved. Please update the forum if you still face issues or if you use a different method to over ride this.
    Regards,
    Rohan Gudavalli

  • Query urgent help need

    hi friends,
    Could u please help me how to do this
    tables : knb1,     "customer master (companycode)
             kna1,     "genaral data in customer master
             knvp.     "customer master partener functions
            zvarv.    "Program Hard Coded Values support table
           TYPE-POOLS DEFINATION
    type-pools : slis.
           TYPES DECLARATION
          Customer Master Company code Data
    types : begin of t_knb1,
              kunnr like knb1-kunnr,
              akont like knb1-akont,
            end of t_knb1.
    data : i_knb1 type t_knb1 occurs 0 with header line .
          Customer Master
    types : begin of t_kna1,
              kunnr like kna1-kunnr,
              name1 like kna1-name1,
              stras like kna1-stras,
              ort01 like kna1-ort01,
              stcd1 like kna1-stcd1,
              pstlz like kna1-pstlz,
            end of t_kna1.
    data  : i_kna1 type t_kna1 occurs 0 with header line.
          Customer Partner Functions
    types : begin of t_knvp,
              kunnr like knvp-kunnr,
              vkorg like knvp-vkorg,
              parvw like knvp-parvw,
              kunn2 like knvp-kunn2,
            end of t_knvp.
    data : i_knvp type t_knvp occurs 0 with header line.
          Output data
    types : begin of t_output,
              recordtype      type c,
              soldtocust(10)  type c,
              payer(10)       type c,
              sequence(5)     type n,
              custname(35)    type c,
              custaddress(35) type c,
              custcity(35)    type c,
              taxid(16)       type c,
              postalcode(5)   type c,
              branch          type c,
              delivery(3)     type c,
            end of t_output.
    data : i_output type t_output occurs 0 with header line.
          ZVARV Table
    *types : begin of t_zvarv,
             zobject1 like zvarv-zobject1,
             zobject2 like zvarv-zobject2,
             zseqnumb like zvarv-zseqnumb,
             zobjval  like zvarv-zobjval,
           end of t_zvarv.
    *data : i_zvarv  type  t_zvarv occurs 0 with header line.
          Error messages and total records
    types : begin of t_error_log,
              message(200) type c,
            end of t_error_log.
    data : i_error_log type t_error_log occurs 0 with header line.
         Field catalog
    data : t_fieldcat_tab type slis_t_fieldcat_alv with header line.
    Variables
    data : "v_aufsd like i_zvarv-zobjval,   "Central order block for cust
           v_knb1 type t_knb1,             "Customer master company code
           v_kna1 type t_kna1,             "Customer master
           v_knvp type t_knvp,             "Customer masterpartenerfunctions
           v_output type t_output,         "Output data
           v_error_log type t_error_log,   "Error data
           v_sequence(5) type n,           "Total records
           v_line type i,                  "Message
           v_count type i,                 "Counter for KNA1 records
           v_count1 type i,                "Counter for KNVP records
           v_result(100) type c,           "Totals for KNA1
           v_result1(100) type c,          "Totals for KNVP
           v_vkorg like knvp-vkorg.        "Message for Validation
    Constants
    data : c_program(30) type c value 'ZSDI0215', " Program Name
           c_parvw_rg    like  knvp-parvw value 'RG', "Partner type
           c_aufsd(2)    type c value 'CD'.    "Central order block for Cust
                       Selection-screen
    selection-screen begin of block b1 with frame title text-001.
    parameters       : p_vkorg like knvp-vkorg obligatory. "Sales Org
    select-options   : s_akont for knb1-akont obligatory default
                           '0001050100'.      "Reconciliation Account
    selection-screen end of block b1.
    selection-screen begin of block b2 with frame title text-002.
    parameters       : p_alv as checkbox,
                       p_df as checkbox.
    selection-screen end of block b2.
    selection-screen begin of block b3 with frame title text-003.
    parameters : p_lfile like  filetextci-fileintern
                   default 'Z_IO01989_CUSTOMER_MASTER_DATA', " Logical file
                 p_pfile like  rfpdo-rfbifile.               " Physical File
    selection-screen end of block b3.
         At selection-screen
    at selection-screen on p_vkorg.
    Validation of Sales Organization
      select single vkorg
        into v_vkorg
        from tvko
        where vkorg = p_vkorg.
      if v_vkorg is initial.
         message e045 with text-030.
      endif.
         Start-of-selection
    start-of-selection.
    Fetch data
      perform get_data.
    Processing the data
      perform process_data.
        End-of-Selection
    end-of-selection.
      if p_alv eq 'X'.
    Field catalog
        perform f_prepare_fieldcat.
    Disply  alv report
        perform f_display_report.
    Disply error log
        perform f_error_log.
    elseif p_df eq 'x'.
    Disply logical file & physical file
        perform f_logical_file.
        perform f_physical_file.
      else.
    Display the list
        perform f_list_display.
    Disply logical file & physical file
       perform f_logical_file.
       perform f_physical_file.
      endif.
         Form  get_data
         Fetch data and store in internal tables
    form get_data .
    Get zvarv data.
      perform get_zvarv.
    Get knb1 data
      perform get_knb1.
    Get kna1 data
      perform get_kna1.
    Get knvp data
      perform get_knvp.
    endform.                   " get_data
         form  get_zvarv
         zvarv data
    form get_zvarv .
    Fetch data from zvarv.
    select zobject1 zobject2 zseqnumb zobjval
       from zvarv
       into table i_zvarv
      where zobject1 eq c_program.
    sort i_zvarv by zobject2.
    endform.                    " get_zvarv
         form  get_knb1
         Get KNB1 data
    form get_knb1 .
    Fetch data from knb1.
      select kunnr akont
        from knb1
        into table i_knb1
       where akont in s_akont.
      describe table i_knb1 lines v_line.
    endform.                                                    " get_knb1
          Form  get_kna1
          Get KNB1 data
    form get_kna1 .
    Fetch data from kna1.
      select kunnr name1 stras ort01 stcd1 pstlz
        from kna1
        into table i_kna1
        for all entries in i_knb1
       where kunnr = i_knb1-kunnr and
       aufsd ne 'cd'."v_aufsd.
    endform.                                                    " get_kna1
          Form  get_knvp
          Get KNVP data
    form get_knvp .
    Fetch data from knvp
      select kunnr parvw kunn2 vkorg
        from knvp
        into table i_knvp
        for all entries in i_knb1
       where kunnr = i_knb1-kunnr
       and vkorg = p_vkorg
       and parvw = c_parvw_rg.
    endform.                    " get_knvp
          Form  process_data
          Processing output data
    form process_data .
    Get AUFSD value from ZVARV
      perform zvarv_read.
    loop at i_knb1.
        read table i_kna1 with key kunnr = i_knb1-kunnr.
        if sy-subrc ne 0.
         concatenate: 'in kna1 no record found for Customer number'
                       i_knb1-kunnr
                       into v_result separated by space.
          move v_result to v_error_log-message.
          append v_error_log to i_error_log.
          v_count = v_count + 1.
        else.
        move :  i_kna1-name1 to i_output-custname,
                i_kna1-stras to i_output-custaddress,
                i_kna1-ort01 to i_output-custcity,
                i_kna1-stcd1 to i_output-taxid,
                i_kna1-pstlz to i_output-postalcode.
    append i_output
    endif.
       loop at i_knvp where kunnr eq knb1-kunnr.
        read table i_knvp  with key kunnr = i_knb1-kunnr.
        if sy-subrc <> 0.
          concatenate : 'in knvp no record found for customer number'
                         v_knb1-kunnr
                         into v_result1 separated by space.
          move v_result1 to v_error_log-message.
          append v_error_log to i_error_log.
          v_count1 = v_count1 + 1.
         else.
      Move the knvp data to output
         move : i_knvp-kunnr to i_output-soldtocust,
                i_knvp-kunn2 to i_output-payer.
    append i_output
    endif.
         endloop.
        v_sequence = v_sequence + 1.
    Move non table related data to output
        move : 'C'          to i_output-recordtype,
                v_sequence  to i_output-sequence,
               '1'          to i_output-branch,
               'ABC'        to i_output-delivery.
    append i_output.
    endif.
    endloop.
    when i execute this one same data is displaying two times
    for example total records is two
    first record displaying two times and second one is displaying two times
    please tell me how to do
    regards
    harshavi

    Hi ,
    first check all APPEND stmts ?. In any report u have to maintain one BASE internal table .
    If u are working on KUNNR level , So maintain one final Internal table with all KUNNRS then Process all the data for final output.
    regards
    prabhu

  • Problem :ALV:Deletion Flags not showing in output

    hi all !
    I have a alv program which displays customer data.there are three deletion flags columns in the output.
    First deletion flag will be: KNA1-LOEVM
    Second deletion flag will be: KNB1-LOEVM
    Third deletion flag will be: KNVV-LOEVM
    earlier all three were showing.but now no one is showing.i'm pasting my code here if any expert can have a look and find out the BUG.
    CODE STARTS----
    report zqsdcap_cust.
    INCLUDE DECLARATIONS
    include:
      ziabapcapph_macros.                   "Holcim Useful Macros
    TABLE DECLARATIONS
    tables:
      tvko,                                "Org. Unit: Sales Organizations
      t001,                                "Company codes
      kna1,                                "Customer Master
      knvv,                                "Customer master sales
      knvi,                                "Customer tax classificat'n
      knb1,                                "Customer master company code
         <<CR003-DEVK949538 start ins
      adr6.                                "SMTP numbers
         <<CR003-DEVK949538 end ins
    TYPE DECLARATIONS
    type-pools:
      slis.
    STRUCTURE DECLARATIONS
    Define structure for keep data in ALV list
    data: begin of gs_output_list,
            vkorg   like  knvv-vkorg,                "Sales organization
            ktokd   like  kna1-ktokd,                "Customer A/C grp
            kunnr   like  kna1-kunnr,                "Customer number
            vtweg   like  knvv-vtweg,                "Distribution channel
            name1   like  kna1-name1,                           "Name1
            name3   like  kna1-name3,                           "Name3
            name4   like  kna1-name4,                           "Name4
            stras   like  kna1-stras,                "Street
            cityc   like  kna1-cityc,                "City
            bezei1  like  t005h-bezei,               "Sales office
            land1   like  kna1-land1,                "Country
            regio   like  kna1-regio,                "Region
            bezei2  like  t005u-bezei,               "Region decription
            kdgrp   like  knvv-kdgrp,                "Customer group
            ktext   like  t151t-ktext,               "Cust grp name
            bzirk   like  knvv-bzirk,                "Sales district
            bztxt   like  t171t-bztxt,               "Description
            zterm   like  knvv-zterm,                "Payment term
            lzone   like  kna1-lzone,                "Transport zone
            vtext   like  tzont-vtext,               "Description
            erdat   like  kna1-erdat,                "Creation date
          end of gs_output_list.
    Internal table for customer tax data
    data: begin of gs_output_tax,
            vkorg  like  knvv-vkorg,                 "Sales organization
            kunnr  like  kna1-kunnr,                 "Customer number
            vtweg  like  knvv-vtweg,                 "Distribution channel
            name1  like  kna1-name1,                            "Name1
            name3  like  kna1-name3,                            "Name3
            name4  like  kna1-name4,                            "Name4
            ort01  like  kna1-ort01,                 "City
            stcd1  like  kna1-stcd1,                 "STD code
            spart  like  knvv-spart,                 "Division
            taxkd  like  knvi-taxkd,                 "Tax classific'n
            tatyp  like  knvi-tatyp,                 "Tax category
            vtext  like  tskdt-vtext,                "Tax description
          end of gs_output_tax.
    Internal table for HVL customer master
    data: begin of gs_output_hvl,
            kunnr  like  kna1-kunnr,                 "Customer number
            stceg  like  kna1-stceg,                 "VAT registration no
            telfx  like  kna1-telfx,                 "Fax number
            telf1  like  kna1-telf1,                 "First telephone number
            stras  like  kna1-stras,                 "House number and stret
            ort02  like  kna1-ort02,                 "District
            cityc  like  kna1-cityc,                 "City code
            bezei  like  t005h-bezei,                "City description
            regio  like  kna1-regio,                 "Region
            ort01  like  kna1-ort01,                 "City
            name2  like  kna1-name2,                            "Name2
            name1  like  kna1-name1,                            "Name1
            bzirk  like  knvv-bzirk,                 "Sales district
            spart  like  knvv-spart,                 "Division
            vtweg  like  knvv-vtweg,                 "Distribution channel
            vkorg  like  knvv-vkorg,                 "Sales organization
          end of gs_output_hvl.
    Internal table for customer database CRM
    data: begin of gs_output_crm,
            vkorg      like  knvv-vkorg,             "Sales organization
            vtweg      like  knvv-vtweg,             "Distribution channel
            bzirk      like  knvv-bzirk,             "Sales district
            kunnr      like  kna1-kunnr,             "Customer number
            name1      like  kna1-name1,                        "Name1
            name2      like  kna1-name2,                        "Name2
            stras      like  kna1-stras,             "House number street
            ort01      like  kna1-ort01,             "City
            ort02      like  kna1-ort02,             "District
            pstlz      like  kna1-pstlz,             "Postal code
            cityc      like  kna1-cityc,             "City code
            telf1      like  kna1-telf1,             "First telephone number
            telfx      like  kna1-telfx,             "Fax number
            vkbur      like  knvv-vkbur,             "Sales office
            regio      like  kna1-regio,             "Region
            vkgrp      like  knvv-vkgrp,             "Sales group
            kdgrp      like  knvv-kdgrp,             "Customer group
            kvgr3      like  knvv-kvgr3,             "Customer group 3
            altkn      like  knb1-altkn,             "Previous record number
            erdat      like  knvv-erdat,             "Creation date
            found_dat  like  zcrm_bp_ext-found_dat,  "Found date
          <<CR000-DEVK943142 start del
          versg      like  knvv-versg,             "Customer statistic grp
          bukrs      like  knb1-bukrs,             "Company code
          <<CR000-DEVK943142 end del
          end of gs_output_crm.
    Internal table for customer information
    data: begin of gs_output_info,
            kunnr           like  kna1-kunnr,        "Customer number
            vkorg           like  knvv-vkorg,        "Sales organization
            vtweg           like  knvv-vtweg,        "Distribution channel
            stcd2           like  kna1-stcd2,        "Tax code
            name1           like  kna1-name1,        "Name1
            name2           like  kna1-name2,        "Name2
          <<CR002-DEVK944835 start ins
            name3           like  kna1-name3,        "Name3
          <<CR002-DEVK944835 end ins
            stras           like  kna1-stras,        "House number street
            ort01           like  kna1-ort01,        "City
            ort02           like  kna1-ort02,        "District
            pstlz           like  kna1-pstlz,        "Postal code
            regio           like  kna1-regio,        "Region
            land1           like  kna1-land1,        "Country code
            cityc           like  kna1-cityc,        "City code
            telf1           like  kna1-telf1,        "First telephone number
            telfx           like  kna1-telfx,        "Fax number
          <<CR001-DEVK944239 start ins
            bzirk           like  knvv-bzirk,        "Sales District
            vkbur           like  knvv-vkbur,        "Sales Office
            kdgrp           like  knvv-kdgrp,        "Customer group
          <<CR001-DEVK944239 end ins
            vkgrp           like  knvv-vkgrp,        "Sales group
            kvgr3           like  knvv-kvgr3,        "Customer group 3
            versg           like  knvv-versg,        "Customer stat grp
            kdkg2           like  kna1-kdkg2,        "Customer condition gp2
            kdkg1           like  kna1-kdkg1,        "Customer condition gp1
          <<CR001-DEVK944239 start del
          kdgrp           like  knvv-kdgrp,        "Customer group
          <<CR001-DEVK944239 end del
            altkn           like  knb1-altkn,        "Previous record#
            erdat           like  knvv-erdat,        "Creation date
            note_text(200)  type  c,                 "<<CR003-DEVK949538 ins
            smtp_addr       like  adr6-smtp_addr,    "<<CR003-DEVK949538 ins
            loevm1          like  kna1-loevm,        "Deletion flag all
            loevm2          like  knb1-loevm,        "Deletion flag Cd
            loevm3          like  knvv-loevm,        "Deletion flag sal
          end of gs_output_info.
    ALV Grid Declaration
    data:
      gs_fieldcat             type  slis_fieldcat_alv,
      gs_layout               type  slis_layout_alv,
      gs_event                type  slis_t_event,
      gs_variant              like  disvariant,
      gs_sort_info            type  slis_sortinfo_alv,
      gs_exit_caused_by_user  type  slis_exit_by_user,
      gs_tabname              type  slis_tabname,
      gs_header               type  slis_entry.
    INTERNAL TABLE DECLARATIONS
    Define internal table for keep data in ALV list
    data:
      gt_output_list       like  table of gs_output_list,
      gt_output_tax        like  table of gs_output_tax,
      gt_output_hvl        like  table of gs_output_hvl,
      gt_output_crm        like  table of gs_output_crm,
      gt_output_info       like  table of gs_output_info,
    <<CR003-DEVK949538 start ins
      gv_text              like  tline occurs 0 with header line,
    <<CR003-DEVK949538 start ins
    ALV Grid Declaration
      gt_fieldcat           type  slis_t_fieldcat_alv,
      gt_list_top_of_page   type  slis_t_listheader,
      gt_list_top_of_page2  type  slis_t_listheader,
      gt_sort_info          type  slis_t_sortinfo_alv.
    VARIABLE DECLARATIONS
    data:
    ALV Grid Declaration
      gv_save,
      gv_exit_caused_by_caller,
      gv_repid         type  sy-repid,
      gv_user_command  type  slis_formname value 'USER_COMMAND',
      gv_top_of_page   type  slis_formname value 'TOP_OF_PAGE',
      gv_top_of_list   type  slis_formname value 'TOP_OF_LIST',
      gv_end_of_list   type  slis_formname value 'END_OF_LIST',
      lv_store         like  thead-tdname,           "<<CR003-DEVK949538 ins
      lv_id            like  thead-tdid,             "<<CR003-DEVK949538 ins
      lv_lines         type  i.                      "<<CR003-DEVK949538 ins
    SELECTION SCREEN DECLARATIONS
    Define selection-screen of query
    selection-screen: begin of block blk with frame title text-001.
    select-options:   s_vkorg  for   knvv-vkorg           "Sales org
                                     obligatory
                                     memory id vko,
                      s_bzirk  for   knvv-bzirk,          "Sales district
                      s_vtweg  for   knvv-vtweg,          "Dist channel
                      s_spart  for   knvv-spart           "Division
                                     default 'CM',
                      s_taxkd  for   knvi-taxkd,          "Tax classific'n
                      s_kunnr  for   kna1-kunnr,          "Customer number
                      s_regio  for   kna1-regio,          "Region
                      s_kdgrp  for   knvv-kdgrp,          "Customer group
                      s_vkgrp  for   knvv-vkgrp,          "Sales group
                      s_vkbur  for   knvv-vkbur,          "Sales office
                      s_lzone  for   kna1-lzone,          "Zone
                      s_erdat  for   kna1-erdat,          "Creation date
                      s_zuawa  for   knb1-zuawa,          "Key for sorting
                      s_ktokd  for   kna1-ktokd,          "Customer A/C grp
                      s_altkn  for   knb1-altkn,          "Previous rec no
                      s_bukrs  for   knb1-bukrs           "Company code
                                     obligatory
                                     memory id buk,
                     s_loevm1 for   kna1-loevm,          "Deletion flag all
                     s_loevm2 for   knb1-loevm,          "Deletion flag Cd
                     s_loevm3 for   knvv-loevm.          "Deletion flag sal
    selection-screen: end of block blk.
    selection-screen: begin of block b2 with frame title text-002.
    parameters:       pr_cust1  radiobutton group a1
                                default 'X'
                                user-command bkg,
                      pr_cust2  radiobutton group a1,
                      pr_cust3  radiobutton group a1,
                      pr_cust4  radiobutton group a1,
                      pr_cust5  radiobutton group a1.
    selection-screen: end of block b2.
    AT SELECTION-SCREEN ON S_VKORG
    at selection-screen on s_vkorg.
      select  vkorg
        into  tvko-vkorg
        from  tvko
       where  vkorg in s_vkorg.
      authorization check for sales org.
        authority-check object 'V_VBRK_VKO'
                            id 'VKORG' field tvko-vkorg
                            id 'ACTVT' field '03'.
        check sy-subrc ne 0.
        message e002(zgen) with 'No authorization for sales org.'
                                 tvko-vkorg.
      endselect.
    AT SELECTION-SCREEN ON S_BUKRS
    at selection-screen on s_bukrs.
      if pr_cust4 eq 'X' or
         pr_cust5 eq 'X'.
        select  bukrs
          into  t001-bukrs
          from  t001
         where  bukrs in s_bukrs.
        authorization check for plant and company code
          authority-check object 'A_S_WERK'
                              id 'BUKRS' field t001-bukrs
                              id 'WERKS' dummy.
          check sy-subrc ne 0.
          message e002(zgen) with 'No authorization for this company code.'
                                   t001-bukrs.
        endselect.
      endif.
    AT SELECTION-SCREEN OUTPUT
    at selection-screen output.
      loop at screen .
        if pr_cust1 eq 'X'.
          if screen-name = 'S_VTWEG-LOW'   or
             screen-name = 'S_VTWEG-HIGH'  or
             screen-name = 'S_SPART-LOW'   or
             screen-name = 'S_SPART-HIGH'  or
             screen-name = 'S_TAXKD-LOW'   or
             screen-name = 'S_TAXKD-HIGH'  or
             screen-name = 'S_BUKRS-LOW'   or
             screen-name = 'S_BUKRS-HIGH'  or
             screen-name = 'S_ERDAT-LOW'   or
             screen-name = 'S_ERDAT-HIGH'  or
             screen-name = 'S_ALTKN-LOW'   or
             screen-name = 'S_ALTKN-HIGH'  or
             screen-name = 'S_VKBUR-LOW'   or
             screen-name = 'S_VKBUR-HIGH'  or
             screen-name = 'S_LOEVM1-LOW'  or
             screen-name = 'S_LOEVM1-HIGH' or
             screen-name = 'S_LOEVM2-LOW'  or
             screen-name = 'S_LOEVM2-HIGH' or
             screen-name = 'S_LOEVM3-LOW'  or
             screen-name = 'S_LOEVM3-HIGH'.
            screen-input = 0.
          endif.
        elseif pr_cust2 eq 'X'.
          if screen-name = 'S_BZIRK-LOW'    or
             screen-name = 'S_BZIRK-HIGH'   or
             screen-name = 'S_KDGRP-LOW'    or
             screen-name = 'S_KDGRP-HIGH'   or
             screen-name = 'S_LZONE-LOW'    or
             screen-name = 'S_LZONE-HIGH'   or
             screen-name = 'S_KTOKD-LOW'    or
             screen-name = 'S_KTOKD-HIGH'   or
             screen-name = 'S_ERDAT-LOW'    or
             screen-name = 'S_ERDAT-HIGH'   or
             screen-name = 'S_KTOKD-LOW'    or
             screen-name = 'S_KTOKD-HIGH'   or
             screen-name = 'S_ALTKN-LOW'    or
             screen-name = 'S_ALTKN-HIGH'   or
             screen-name = 'S_VKBUR-LOW'    or
             screen-name = 'S_VKBUR-HIGH'   or
             screen-name = 'S_LOEVM1-LOW'   or
             screen-name = 'S_LOEVM1-HIGH'  or
             screen-name = 'S_LOEVM2-LOW'   or
             screen-name = 'S_LOEVM2-HIGH'  or
             screen-name = 'S_LOEVM3-LOW'   or
             screen-name = 'S_LOEVM3-HIGH'  or
             screen-name = 'S_BUKRS-LOW'    or
             screen-name = 'S_BUKRS-HIGH'   or
             screen-name = 'S_VKGRP-LOW'    or
             screen-name = 'S_VKGRP-HIGH'.
            screen-input = 0.
          endif.
        elseif pr_cust3 eq 'X'.
          if screen-name = 'S_BZIRK-LOW'   or
             screen-name = 'S_BZIRK-HIGH'  or
             screen-name = 'S_KDGRP-LOW'   or
             screen-name = 'S_KDGRP-HIGH'  or
             screen-name = 'S_LZONE-LOW'   or
             screen-name = 'S_LZONE-HIGH'  or
             screen-name = 'S_ERDAT-LOW'   or
             screen-name = 'S_ERDAT-HIGH'  or
             screen-name = 'S_KTOKD-LOW'   or
             screen-name = 'S_KTOKD-HIGH'  or
             screen-name = 'S_SPART-LOW'   or
             screen-name = 'S_SPART-HIGH'  or
             screen-name = 'S_TAXKD-LOW'   or
             screen-name = 'S_TAXKD-HIGH'  or
             screen-name = 'S_REGIO-LOW'   or
             screen-name = 'S_REGIO-HIGH'  or
             screen-name = 'S_ALTKN-LOW'   or
             screen-name = 'S_ALTKN-HIGH'  or
             screen-name = 'S_VKBUR-LOW'   or
             screen-name = 'S_VKBUR-HIGH'  or
             screen-name = 'S_LOEVM1-LOW'  or
             screen-name = 'S_LOEVM1-HIGH' or
             screen-name = 'S_LOEVM2-LOW'  or
             screen-name = 'S_LOEVM2-HIGH' or
             screen-name = 'S_LOEVM3-LOW'  or
             screen-name = 'S_LOEVM3-HIGH' or
             screen-name = 'S_BUKRS-LOW'   or
             screen-name = 'S_BUKRS-HIGH'  or
             screen-name = 'S_VKGRP-LOW'   or
             screen-name = 'S_VKGRP-HIGH'  or
             screen-name = 'S_VTWEG-LOW'   or
             screen-name = 'S_VTWEG-HIGH'.
            screen-input = 0.
          endif.
        elseif pr_cust4 eq 'X'.
          if screen-name = 'S_LZONE-LOW'  or
             screen-name = 'S_LZONE-HIGH' or
             screen-name = 'S_TAXKD-LOW'  or
             screen-name = 'S_TAXKD-HIGH' or
             screen-name = 'S_REGIO-LOW'  or
             screen-name = 'S_REGIO-HIGH' or
             screen-name = 'S_ZUAWA-LOW'  or
             screen-name = 'S_ZUAWA-HIGH'.
            screen-input = 0.
          endif.
        else.
          if screen-name = 'S_LZONE-LOW'   or
             screen-name = 'S_LZONE-HIGH'  or
             screen-name = 'S_TAXKD-LOW'   or
             screen-name = 'S_TAXKD-HIGH'.
            screen-input = 0.
          endif.
        endif.
        modify screen.
      endloop.
    INITIALIZATION
    initialization.
      perform deactivate_program using sy-cprog.
    START OF SELECTION
    start-of-selection.
    Customized function to get data from database table
      perform get_data.
    <<CR003-DEVK949538 start ins
      perform get_internal_note_text tables gt_output_info.
    <<CR003-DEVK949538 end ins
    Create sort of ALV list
      perform build_sort.
    Send data to ALV list to display
      if pr_cust1 eq 'X'.
        gs_tabname = text-003.
        gs_header  = text-004.
        perform write_alv_report tables gt_output_list
                                        gt_sort_info.
      elseif pr_cust2 eq 'X'.
        gs_tabname = text-005.
        gs_header  = text-006.
        perform write_alv_report tables gt_output_tax
                                        gt_sort_info.
      elseif pr_cust3 eq 'X'.
        gs_tabname = text-007.
        gs_header  = text-008.
        perform write_alv_report tables gt_output_hvl
                                        gt_sort_info.
      elseif pr_cust4 eq 'X'.
        gs_tabname = text-009.
        gs_header  = text-010.
        perform write_alv_report tables gt_output_crm
                                        gt_sort_info.
      else.
        gs_tabname = text-011.
        gs_header  = text-012.
        perform write_alv_report tables gt_output_info
                                        gt_sort_info .
      endif.
    FORM EVENTTAB_FIELD
    Fill Event tab, for ALV Grid Display
    form eventtab_field using gs_events type slis_t_event.
      data:
        ls_event  type  slis_alv_event.
      call function 'REUSE_ALV_EVENTS_GET'
           exporting
                i_list_type = 0
           importing
                et_events   = gs_events.
      read table gs_events with key name = slis_ev_top_of_page
                               into ls_event.
      if sy-subrc = 0.
        move gv_top_of_page to ls_event-form.
        append ls_event     to gs_events.
      endif.
    endform.                    " eventtab_field
    FORM TOP_OF_PAGE
    Write at Top of Page of ALV grid
    form top_of_page.
      call function 'REUSE_ALV_COMMENTARY_WRITE'
           exporting
                it_list_commentary = gt_list_top_of_page.
    endform.                    "top_of_page
    FORM COMMENT_BUILD
    Write header of ALV grid
    form comment_build using lt_top_of_page type slis_t_listheader
                             gs_header.
      data:
        lv_tdate(10),
        lv_fdate(10),
        ls_line   type  slis_listheader.
      clear: ls_line.
      ls_line-typ  = 'H'.
      ls_line-info = gs_header.
      append ls_line to lt_top_of_page.
    endform.                    "comment_build
    FORM INIT_FIELDCAT
    Fill Field Catalog for ALV Grid
    form init_fieldcat using gs_tabname.
      refresh: gt_fieldcat.
    use this function to get the all fields in the structure.
      call function 'REUSE_ALV_FIELDCATALOG_MERGE'
           exporting
                i_program_name     = gv_repid
                i_internal_tabname = gs_tabname
                i_inclname         = gv_repid
           changing
                ct_fieldcat        = gt_fieldcat.
      if sy-subrc eq 0.
      clear mark for key field to set color of key column
        gs_fieldcat-key = ''.
        modify gt_fieldcat from gs_fieldcat transporting key
                          where fieldname ne space.
        read table gt_fieldcat with key fieldname = 'FOUND_DAT'
                                   into gs_fieldcat.
        gs_fieldcat-seltext_l = text-013.
        modify gt_fieldcat from gs_fieldcat
                   transporting seltext_l
                          where fieldname = 'FOUND_DAT'.
      <<CR003-DEVK949538 start ins
        read table gt_fieldcat with key fieldname = 'NOTE_TEXT'
                                   into gs_fieldcat.
        gs_fieldcat-seltext_l = text-014.
        modify gt_fieldcat from gs_fieldcat
                   transporting seltext_l
                          where fieldname = 'NOTE_TEXT'.
      <<CR003-DEVK949538 start ins
      endif.
    endform.                    "init_fieldcat
    FORM INIT_LAYOUT
    Layout initial
    form init_layout using gs_layout type slis_layout_alv.
      gs_layout-info_fieldname    = 'LINECOLOR'.
      gs_layout-colwidth_optimize = 'X'.
      gs_layout-zebra             = 'X'.
    endform.                    " init_layout
    FORM WRITE_ALV_REPORT
    form write_alv_report tables gt_output
                                 gt_sort_info.
    ALV Grid display
      clear: gv_repid,
             gv_save.
      gv_repid          = sy-repid.
      gs_variant-report = gv_repid.
      gv_save           = 'A'.
    Build fieldcatalog
      perform init_fieldcat using gs_tabname.
    Build list events
      perform eventtab_field using gs_event.
    Show in ALV Grid form
      perform init_layout using gs_layout.
    Build comments
      perform comment_build using gt_list_top_of_page[]
                                  gs_header.
      call function 'REUSE_ALV_GRID_DISPLAY'
           exporting
                i_buffer_active         = ' '
                i_callback_program      = gv_repid
                is_layout               = gs_layout
                i_save                  = gv_save
                is_variant              = gs_variant
                it_events               = gs_event[]
                it_sort                 = gt_sort_info[]
                it_fieldcat             = gt_fieldcat[]
           importing
                e_exit_caused_by_caller = gv_exit_caused_by_caller
                es_exit_caused_by_user  = gs_exit_caused_by_user
           tables
                t_outtab                = gt_output
           exceptions
                program_error           = 1
                others                  = 2.
    endform.                    "write_alv_report
    FORM GET_DATA
    form get_data.
    Get customer list
      if pr_cust1 eq 'X'.
        select  knvv~vkorg
                kna1~ktokd
                kna1~kunnr
                knvv~vtweg
                kna1~name1
                kna1~name3
                kna1~name4
                kna1~stras
                kna1~cityc
                kna1~regio
                kna1~land1
                knvv~kdgrp
                knvv~bzirk
                knvv~zterm
                kna1~lzone
                kna1~erdat
          from  kna1 join  knvv
            on  kna1kunnr = knvvkunnr
          into  corresponding fields of table gt_output_list
         where  kna1~kunnr in s_kunnr
           and  knvv~vkorg in s_vkorg
           and  knvv~bzirk in s_bzirk
           and  kna1~regio in s_regio
           and  knvv~kdgrp in s_kdgrp
           and  kna1~lzone in s_lzone
           and  kna1~erdat in s_erdat
           and  kna1~ktokd in s_ktokd.
        loop at gt_output_list into gs_output_list.
        Get City decsription
          perform get_city_description using gs_output_list-cityc
                                    changing gs_output_list-bezei1.
        Get Region description
          select single  bezei
                   from  t005u
                   into  gs_output_list-bezei2
                  where  bland = gs_output_list-regio
                    and  land1 = gs_output_list-land1"<<CR000-DEVK942345 ins
                    and  spras = sy-langu.
        Get customer group description
          select single  ktext
                   from  t151t
                   into  gs_output_list-ktext
                  where  kdgrp = gs_output_list-kdgrp
                    and  spras = sy-langu.
        Get sales district description
          select single  bztxt
                   from  t171t
                   into  gs_output_list-bztxt
                  where  bzirk = gs_output_list-bzirk
                    and  spras = sy-langu.
        Get zone decription
          select single  vtext
                   from  tzont
                   into  gs_output_list-vtext
                  where  zone1 = gs_output_list-lzone
                    and  spras = sy-langu.
          modify gt_output_list from gs_output_list index sy-tabix
                                             transporting bezei1
                                                          bezei2
                                                          ktext
                                                          bztxt
                                                          vtext.
          clear gs_output_list.
        endloop.
    Get customer tax data
      elseif pr_cust2 eq 'X'.
        select  kna1~kunnr
                kna1~name1
                kna1~name3
                kna1~name4
                kna1~ort01
                kna1~stcd1
                knvv~vkorg
                knvv~spart
                knvv~vtweg
                knvi~taxkd
                knvi~tatyp
          from  kna1 join  knvv
            on  kna1kunnr = knvvkunnr
                join  knvi
            on  kna1kunnr = knvikunnr
          into  corresponding fields of table gt_output_tax
         where  kna1~kunnr in s_kunnr
           and  knvv~vkorg in s_vkorg
           and  knvv~vtweg in s_vtweg
           and  knvv~spart in s_spart
           and  kna1~regio in s_regio
           and  knvi~taxkd in s_taxkd.
      Get customer tax description
        loop at gt_output_tax into gs_output_tax.
          select single  vtext
                   from  tskdt
                   into  gs_output_tax-vtext
                  where  tatyp = gs_output_tax-tatyp
                    and  taxkd = gs_output_tax-taxkd
                    and  spras = sy-langu.
          if sy-subrc eq 0.
            modify gt_output_tax from gs_output_tax index sy-tabix
                                             transporting vtext.
            clear gs_output_tax.
          endif.
        endloop.
    Get customer HVL data
      elseif pr_cust3 eq 'X'.
        select  kna1~kunnr
                kna1~stceg
                kna1~telfx
                kna1~telf1
                kna1~stras
                kna1~ort02
                kna1~cityc
                kna1~regio
                kna1~ort01
                kna1~name2
                kna1~name1
                knvv~bzirk
                knvv~spart
                knvv~vtweg
                knvv~vkorg
          from  kna1 join  knvv
            on  kna1kunnr = knvvkunnr
          into  corresponding fields of table gt_output_hvl
         where  kna1~kunnr in s_kunnr
           and  knvv~vkorg in s_vkorg.
        loop at gt_output_hvl into gs_output_hvl.
        Get city description.
          perform get_city_description using gs_output_hvl-cityc
                                    changing gs_output_hvl-bezei.
          if sy-subrc eq 0.
            modify gt_output_hvl from gs_output_hvl index sy-tabix
                                             transporting bezei.
            clear gs_output_hvl.
          endif.
        endloop.
    Get cust CRM data
      elseif pr_cust4 eq 'X'.
        select  kna1~kunnr
              knvv~versg                           "<<CR000-DEVK943142 del
                knvv~vkorg
                knvv~vtweg
                knvv~bzirk
                knvv~vkgrp
                knvv~kdgrp
                knvv~vkbur
                kna1~name1
                kna1~name2
                kna1~ort01
                kna1~pstlz
                kna1~regio
                kna1~stras
                kna1~telf1
                kna1~telfx
                kna1~ort02
                kna1~cityc
                knvv~kvgr3
                knb1~altkn
              knb1~bukrs                           "<<CR000-DEVK943142 del
                knvv~erdat
                zcrm_bp_ext~found_dat
          from  kna1 join knvv
            on  kna1kunnr = knvvkunnr
          join  knb1
            on  knvvkunnr = knb1kunnr
          join  zcrm_bp_ext
            on  knb1kunnr = zcrm_bp_extkunnr
          into  corresponding fields of table gt_output_crm
         where  kna1~kunnr in s_kunnr
           and  knvv~vkorg in s_vkorg
           and  knvv~vtweg in s_vtweg
           and  knvv~spart in s_spart
           and  knvv~bzirk in s_bzirk
           and  knvv~kdgrp in s_kdgrp
           and  knvv~vkgrp in s_vkgrp
           and  knvv~vkbur in s_vkbur
           and  knvv~erdat in s_erdat
           and  kna1~ktokd in s_ktokd
           and  kna1~loevm in s_loevm1
           and  knb1~loevm in s_loevm2
           and  knvv~loevm in s_loevm3
           and  knb1~bukrs in s_bukrs
           and  knb1~altkn in s_altkn.
      else.
      Get customer information
       <<CR001-DEVK944342 start del
       select  kna1~kunnr
               knvv~vkorg
               knvv~vtweg
               kna1~stcd2
               kna1~name1
               kna1~name2
               kna1~ort01
               kna1~land1
               kna1~pstlz
               kna1~regio
               kna1~stras
               kna1~telf1
               kna1~telfx
               knvv~bzirk                          "<<CR001-DEVK944239 ins
               knvv~vkbur                          "<<CR001-DEVK944239 ins
               kna1~ort02
               kna1~cityc
               knvv~vkgrp
               knvv~kvgr3
               knvv~versg
               kna1~kdkg2
               kna1~kdkg1
               knvv~kdgrp
               knb1~altkn
               knvv~erdat
               kna1~loevm
               knb1~loevm
               knvv~loevm
       <<CR001-DEVK944342 end del
      <<CR001-DEVK944342 start ins
        select  kna1~kunnr
                knvv~vkorg
                knvv~vtweg
                kna1~stcd2
                kna1~name1
                kna1~name2
                kna1~name3                           "<<CR002-DEVK944835 ins
                kna1~stras
                kna1~ort01
                kna1~ort02
                kna1~pstlz
                kna1~regio
                kna1~land1
                kna1~cityc
                kna1~telf1
                kna1~telfx
                knvv~bzirk
                knvv~vkbur
                knvv~kdgrp
                knvv~vkgrp
                knvv~kvgr3
                knvv~versg
                kna1~kdkg2
                kna1~kdkg1
                knb1~altkn
                knvv~erdat
                kna1~loevm
                knb1~loevm
                knvv~loevm
      <<CR001-DEVK944342 end ins
          from  kna1 join knvv
            on  kna1kunnr = knvvkunnr
                join knb1
            on  kna1kunnr = knb1kunnr
        <<CR001-DEVK944252 start del
        into  corresponding fields of table gt_output_info
        <<CR001-DEVK944252 end del
        <<CR003-DEVK949538 start del
          into  table gt_output_info                "<<CR001-DEVK944342 ins
        <<CR003-DEVK949538 end del
        <<CR003-DEVK949538 start ins
          into  corresponding fields of table gt_output_info
        <<CR003-DEVK949538 end ins
         where  kna1~kunnr in s_kunnr
           and  knvv~vkorg in s_vkorg
           and  knvv~vtweg in s_vtweg
           and  knvv~spart in s_spart
           and  knvv~bzirk in s_bzirk
           and  knvv~kdgrp in s_kdgrp
           and  knvv~vkgrp in s_vkgrp
           and  knvv~vkbur in s_vkbur
           and  knvv~erdat in s_erdat
           and  kna1~ktokd in s_ktokd
           and  kna1~regio in s_regio
         <<CR001-DEVK944252 start del
         and  kna1~loevm in s_loevm1
         and  knb1~loevm in s_loevm2
         and  knvv~loevm in s_loevm3
         <<CR001-DEVK944252 end del
         <<CR001-DEVK944252 start ins
           and ( kna1~loevm in s_loevm1
            or   knb1~loevm in s_loevm2
            or   knvv~loevm in s_loevm3 )
         <<CR001-DEVK944252 end ins
           and  knb1~zuawa in s_zuawa
           and  knb1~bukrs in s_bukrs
           and  knb1~altkn in s_altkn.
         <<CR003-DEVK949538 start ins
           loop at gt_output_info into gs_output_info.
          select single  adrnr
                   into  kna1-adrnr
                   from  kna1
                  where  kunnr = gs_output_info-kunnr.
          check sy-subrc eq 0.
          select single  smtp_addr
                   into  adr6-smtp_addr
                   from  adr6
                  where  addrnumber = kna1-adrnr.
          check sy-subrc eq 0.
          gs_output_info-smtp_addr = adr6-smtp_addr.
          modify gt_output_info from gs_output_info.
        endloop.
         <<CR003-DEVK949538 end ins
      endif.
    <<CR003-DEVK949538 start ins
      loop at gt_output_info into gs_output_info.
        lv_store = gs_output_info-loevm1.
      endloop.
    <<CR003-DEVK949538 end ins
    endform.
    FORM BUILD_SORT
    form build_sort.
      if pr_cust1 eq 'X' or
         pr_cust2 eq 'X'.
        clear gs_sort_info.
        gs_sort_info-fieldname = 'VKORG'.
        gs_sort_info-spos      = 1.
        gs_sort_info-up        = 'X'.
        append gs_sort_info to gt_sort_info.
      endif.
      clear gs_sort_info.
      gs_sort_info-fieldname = 'KUNNR'.
      gs_sor

    hi shivaji!
    thx for the reply.
    can u chk whether there is any problem with the queries or not.
    regards
    sachin

  • Urgent help need

    hi friends,
      Help me how to do this
    REPORT  ZINTERFACE_SAMPLE.
    type-pools:SLIS.
    TABLES:knb1, "Customer Master (Company Code)
           kna1,
           knvp. "Customer Master Partner Functions
    TYPES:BEGIN OF T_knb1,
          kunnr like knb1-kunnr,
          bukrs like knb1-bukrs,
          akont like knb1-akont,
          END OF T_knb1.
    TYPES:BEGIN OF T_kna1,
          kunnr like kna1-kunnr, "customer number
          NAME1 like KNA1-NAME1, "customer name
          stras like KNA1-STRAS, "Customer address
          ort01 like KNA1-ORT01, "Customer city
          stcd1 like KNA1-STCD1, "Tax id
          pstlz like KNA1-PSTLZ, "Postal code
          END OF   T_kna1.
    TYPES:BEGIN OF T_knvp,
          kunnr like knvp-kunnr, "customer number
          parvw like knvp-parvw,
          kunn2 like knvp-kunn2, "Customer number of business partner
          END OF T_KNVP.
    TYPES:BEGIN OF T_final,
          Record_type      TYPE c,
          Sold_to_cust(10) TYPE c,
          Payer(10)        TYPE c,
          Sequence(5)      TYPE n,
          Cust_name(35)    TYPE c,
          Cust_adreess(35) TYPE c,
          Cust_city(35)    TYPE c,
          Tax_id(16)       TYPE c,
          Postal_code(5)   TYPE c,
          Branch           TYPE c,
          Delivery(3)      TYPE c,
          END OF T_final.
    *Internal table declaration
    DATA:I_knb1  TYPE STANDARD TABLE OF t_knb1  initial size 0,
         i_kna1  TYPE STANDARD TABLE OF t_kna1  initial size 0,
         i_knvp  TYPE STANDARD TABLE OF t_knvp  initial size 0,
         i_final TYPE STANDARD TABLE OF t_final initial size 0.
    DATA: t_fieldcat_tab TYPE slis_t_fieldcat_alv WITH HEADER LINE.
    *Work area declaration
    DATA:wa_knb1  TYPE t_knb1,
         wa_kna1  TYPE t_kna1,
         wa_knvp  TYPE t_knvp,
         wa_final TYPE t_final.
               *variable declaration
    data:sequence TYPe n,
         g_line TYPE i.
                    selection screen                        *
    SELECTION-screen begin of block b1 with frame title text-001.
    parameters:p_bukrs like knb1-bukrs, "Company code
               p_akont like knb1-akont .
    selection-screen end of block b1.
    SELECTION-screen begin of block b2 with frame title text-002.
    PARAMETERS:R1 RADIOBUTTON GROUP G1,
               R2 RADIOBUTTON GROUP G1.
    Parameters:p_file like rlgrap-filename.
                                       "Recon Account in General Ledger
    selection-screen end of block b2.
    *AT selection-screen ON VALUE-REQUEST FOR P_FILE.
    CALL FUNCTION 'F4_FILENAME'
       IMPORTING
         FILE_NAME = P_FILE.
    START-OF-selection.
    PERFORM f_fetchdata.
    PERFORM f_prepare_fieldcat.
    PERFORM f_display_report.
    *END-OF-SELECTION.
    *IF R1 EQ 'X'.
    *perform F_DOWNLOAD.
    *ENDIF.
    *IF R2 EQ 'X'.
    *OPEN DATASET P_FILE FOR OUTPUT IN text mode ENCODING DEFAULT.
    *LOOP AT i_final INTO WA_final.
    *TRANSFER WA_final TO P_FILE.
    *ENDLOOP.
    *CLOSE DATASET P_FILE.
    *ENDIF.
    *&      Form  f_fetchdata
    FORM f_fetchdata .
    select kunnr
           bukrs
           akont
           from knb1
           into table i_knb1
           where bukrs = p_bukrs
           AND   akont = p_akont.
    DESCRIBE TABLE i_knb1 LINES g_line.
    LOOP AT i_knb1 INTO wa_knb1.
    SELECT single KUNNR
                  NAME1
                  STRAS
                  ORT01
                  STCD1
                  PSTLZ
                  FROM kna1
                  INTO wa_kna1
                  where kunnr = wa_knb1-kunnr.
    if sy-subrc <> 0.
    *Error KNA1 record not found.
    endif.
    SELECT single kunnr
                  parvw
                  kunn2
                  FROM KNVP
                  INTO wa_knvp
                  where kunnr = wa_knb1-kunnr
                  AND parvw = 'RG'.
    if sy-subrc <> 0.
    *Error KNA1 record not found.
    endif.
    sequence = sequence + 1.
    MOVE: 'c'              TO    wa_final-Record_type,
          wa_knvp-kunnr    TO    wa_final-Sold_to_cust,
          sequence         TO    wa_final-Sequence,
          wa_KNA1-NAME1    TO    wa_final-Cust_name,
          wa_kna1-STRAS    TO    wa_final-Cust_adreess ,
          wa_kna1-ort01    TO    wa_final-Cust_city,
          wa_kna1-STCD1    TO    wa_final-Tax_id,
          wa_kna1-PSTLZ    TO    wa_final-Postal_code,
          '1'              TO    wa_final-branch,
          'abc'            TO    wa_final-Delivery.
    INSERT wa_final INTO TABLE i_final.
    endloop.
    ENDFORM.                    " f_fetchdata
    FORM f_prepare_fieldcat.
      t_fieldcat_tab-col_pos = 1.
      t_fieldcat_tab-tabname  = 'i_final'.
      t_fieldcat_tab-fieldname  = 'Record_type'.
      t_fieldcat_tab-seltext_l = 'Record type'.
      APPEND t_fieldcat_tab.
      t_fieldcat_tab-col_pos = 2.
      t_fieldcat_tab-tabname  = 'i_final'.
      t_fieldcat_tab-fieldname  = 'Sold_to_cust'.
      t_fieldcat_tab-seltext_l = 'Sold to cust'.
      APPEND t_fieldcat_tab.
      t_fieldcat_tab-col_pos = 3.
      t_fieldcat_tab-tabname  = 'i_final'.
      t_fieldcat_tab-fieldname  = 'payer'.
      t_fieldcat_tab-seltext_l = 'Payer'.
      APPEND t_fieldcat_tab.
      t_fieldcat_tab-col_pos = 4.
      t_fieldcat_tab-tabname  = 'i_final'.
      t_fieldcat_tab-fieldname  = 'Sequence'.
      t_fieldcat_tab-seltext_l = 'sequence'.
      APPEND t_fieldcat_tab.
      t_fieldcat_tab-col_pos = 5.
      t_fieldcat_tab-tabname  = 'i_final'.
      t_fieldcat_tab-fieldname  = 'Cust_name'.
      t_fieldcat_tab-seltext_l = 'Cust name'.
      APPEND t_fieldcat_tab.
      t_fieldcat_tab-col_pos = 6.
      t_fieldcat_tab-tabname  = 'i_final'.
      t_fieldcat_tab-fieldname  = 'Cust_adreess'.
      t_fieldcat_tab-seltext_l = 'Cust adreess'.
      APPEND t_fieldcat_tab.
      t_fieldcat_tab-col_pos = 7.
      t_fieldcat_tab-tabname  = 'i_final'.
      t_fieldcat_tab-fieldname  = 'Cust_city'.
      t_fieldcat_tab-seltext_l = 'Cust city'.
      APPEND t_fieldcat_tab.
      t_fieldcat_tab-col_pos = 8.
      t_fieldcat_tab-tabname  = 'i_final'.
      t_fieldcat_tab-fieldname  = 'Tax_id'.
      t_fieldcat_tab-seltext_l = 'Tax id'.
      APPEND t_fieldcat_tab.
      t_fieldcat_tab-col_pos = 9.
      t_fieldcat_tab-tabname  = 'i_final'.
      t_fieldcat_tab-fieldname  = 'Postal_code'.
      t_fieldcat_tab-seltext_l = 'Postal code'.
      APPEND t_fieldcat_tab.
      t_fieldcat_tab-col_pos = 10.
      t_fieldcat_tab-tabname  = 'i_final'.
      t_fieldcat_tab-fieldname  = 'Branch'.
      t_fieldcat_tab-seltext_l = 'Branch'.
      APPEND t_fieldcat_tab.
      t_fieldcat_tab-col_pos = 11.
      t_fieldcat_tab-tabname  = 'i_final'.
      t_fieldcat_tab-fieldname  = 'KWMENG'.
      t_fieldcat_tab-seltext_l = 'Order Qty'.
      APPEND t_fieldcat_tab.
      t_fieldcat_tab-col_pos = 12.
      t_fieldcat_tab-tabname  = 'i_final'.
      t_fieldcat_tab-fieldname  = 'Delivery'.
      t_fieldcat_tab-seltext_l = 'Delivery'.
      APPEND t_fieldcat_tab.
      ENDFORM.                    " f_prepare_fieldcat
    *&      Form  f_display_report
    *To display the ALV Report
    FORM f_display_report.
      DATA: l_repid LIKE sy-repid.
      l_repid = sy-repid.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
           EXPORTING
                   I_CALLBACK_PROGRAM  = l_repid
                   i_buffer_active     = 'X'
                   IT_FIELDCAT         = t_fieldcat_tab[]
                   I_DEFAULT           = 'X'
                   I_SAVE              = 'A'
             TABLES
                   T_OUTTAB            = i_final[].
            EXCEPTIONS
                  PROGRAM_ERROR                  = 1
                  OTHERS                         = 2
              IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
             ENDIF.
              ENDFORM." f_display_report
    *&      Form  F_DOWNLOAD
          text
    -->  p1        text
    <--  p2        text
    FORM F_DOWNLOAD .
    *CALL FUNCTION 'WS_DOWNLOAD'
    EXPORTING
      FILENAME                      = p_file
      FILETYPE                      = 'ASC'
      MODE                          = ' '
      WK1_N_FORMAT                  = ' '
      WK1_N_SIZE                    = ' '
      WK1_T_FORMAT                  = ' '
      WK1_T_SIZE                    = ' '
      COL_SELECT                    = ' '
      COL_SELECTMASK                = ' '
      NO_AUTH_CHECK                 = ' '
    IMPORTING
      FILELENGTH                    =
    TABLES
       DATA_TAB                      = i_final
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_WRITE_ERROR              = 2
      INVALID_FILESIZE              = 3
      INVALID_TYPE                  = 4
      NO_BATCH                      = 5
      UNKNOWN_ERROR                 = 6
      INVALID_TABLE_WIDTH           = 7
      GUI_REFUSE_FILETRANSFER       = 8
      CUSTOMER_ERROR                = 9
      NO_AUTHORITY                  = 10
      OTHERS                        = 11
    *IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    *ENDIF.
    ENDFORM.                    " F_DOWNLOAD
    for this one when i given the proper input
    it showing the Runtime error.
    Could u please tell me what mistake i have done
    Urgent help
    Regards
    harshavi N.

    HI,
    Run this program..
    REPORT ZINTERFACE_SAMPLE.
    type-pools:SLIS.
    TABLES:knb1, "Customer Master (Company Code)
    kna1,
    knvp. "Customer Master Partner Functions
    TYPES:BEGIN OF T_knb1,
    kunnr like knb1-kunnr,
    bukrs like knb1-bukrs,
    akont like knb1-akont,
    END OF T_knb1.
    TYPES:BEGIN OF T_kna1,
    kunnr like kna1-kunnr, "customer number
    NAME1 like KNA1-NAME1, "customer name
    stras like KNA1-STRAS, "Customer address
    ort01 like KNA1-ORT01, "Customer city
    stcd1 like KNA1-STCD1, "Tax id
    pstlz like KNA1-PSTLZ, "Postal code
    END OF T_kna1.
    TYPES:BEGIN OF T_knvp,
    kunnr like knvp-kunnr, "customer number
    parvw like knvp-parvw,
    kunn2 like knvp-kunn2, "Customer number of business partner
    END OF T_KNVP.
    TYPES:BEGIN OF T_final,
    Record_type TYPE c,
    Sold_to_cust(10) TYPE c,
    Payer(10) TYPE c,
    Sequence(5) TYPE n,
    Cust_name(35) TYPE c,
    Cust_adreess(35) TYPE c,
    Cust_city(35) TYPE c,
    Tax_id(16) TYPE c,
    Postal_code(5) TYPE c,
    Branch TYPE c,
    Delivery(3) TYPE c,
    END OF T_final.
    *Internal table declaration
    DATA:I_knb1 TYPE STANDARD TABLE OF t_knb1 initial size 0,
    i_kna1 TYPE STANDARD TABLE OF t_kna1 initial size 0,
    i_knvp TYPE STANDARD TABLE OF t_knvp initial size 0,
    i_final TYPE STANDARD TABLE OF t_final initial size 0.
    DATA: t_fieldcat_tab TYPE slis_t_fieldcat_alv WITH HEADER LINE.
    *Work area declaration
    DATA:wa_knb1 TYPE t_knb1,
    wa_kna1 TYPE t_kna1,
    wa_knvp TYPE t_knvp,
    wa_final TYPE t_final.
    *variable declaration
    data:sequence TYPe n,
    g_line TYPE i.
    selection screen *
    SELECTION-screen begin of block b1 with frame title text-001.
    parameters:p_bukrs like knb1-bukrs, "Company code
    p_akont like knb1-akont .
    selection-screen end of block b1.
    SELECTION-screen begin of block b2 with frame title text-002.
    PARAMETERS:R1 RADIOBUTTON GROUP G1,
    R2 RADIOBUTTON GROUP G1.
    Parameters:p_file like rlgrap-filename.
    "Recon Account in General Ledger
    selection-screen end of block b2.
    *AT selection-screen ON VALUE-REQUEST FOR P_FILE.
    CALL FUNCTION 'F4_FILENAME'
    IMPORTING
    FILE_NAME = P_FILE.
    START-OF-selection.
    PERFORM f_fetchdata.
    PERFORM f_prepare_fieldcat.
    PERFORM f_display_report.
    *END-OF-SELECTION.
    *IF R1 EQ 'X'.
    *perform F_DOWNLOAD.
    *ENDIF.
    *IF R2 EQ 'X'.
    *OPEN DATASET P_FILE FOR OUTPUT IN text mode ENCODING DEFAULT.
    *LOOP AT i_final INTO WA_final.
    *TRANSFER WA_final TO P_FILE.
    *ENDLOOP.
    *CLOSE DATASET P_FILE.
    *ENDIF.
    *& Form f_fetchdata
    FORM f_fetchdata .
    select kunnr
    bukrs
    akont
    from knb1
    into table i_knb1
    where bukrs = p_bukrs
    AND akont = p_akont.
    DESCRIBE TABLE i_knb1 LINES g_line.
    LOOP AT i_knb1 INTO wa_knb1.
    SELECT single KUNNR
    NAME1
    STRAS
    ORT01
    STCD1
    PSTLZ
    FROM kna1
    INTO wa_kna1
    where kunnr = wa_knb1-kunnr.
    if sy-subrc <> 0.
    *Error KNA1 record not found.
    endif.
    SELECT single kunnr
    parvw
    kunn2
    FROM KNVP
    INTO wa_knvp
    where kunnr = wa_knb1-kunnr
    AND parvw = 'RG'.
    if sy-subrc <> 0.
    *Error KNA1 record not found.
    endif.
    sequence = sequence + 1.
    MOVE: 'c' TO wa_final-Record_type,
    wa_knvp-kunnr TO wa_final-Sold_to_cust,
    sequence TO wa_final-Sequence,
    wa_KNA1-NAME1 TO wa_final-Cust_name,
    wa_kna1-STRAS TO wa_final-Cust_adreess ,
    wa_kna1-ort01 TO wa_final-Cust_city,
    wa_kna1-STCD1 TO wa_final-Tax_id,
    wa_kna1-PSTLZ TO wa_final-Postal_code,
    '1' TO wa_final-branch,
    'abc' TO wa_final-Delivery.
    INSERT wa_final INTO TABLE i_final.
    endloop.
    ENDFORM. " f_fetchdata
    FORM f_prepare_fieldcat.
    t_fieldcat_tab-col_pos = 1.
    t_fieldcat_tab-tabname = 'I_FINAL'.
    t_fieldcat_tab-fieldname = 'RECORD_TYPE'.
    t_fieldcat_tab-seltext_l = 'Record type'.
    APPEND t_fieldcat_tab.
    t_fieldcat_tab-col_pos = 2.
    t_fieldcat_tab-tabname = 'I_FINAL'.
    t_fieldcat_tab-fieldname = 'SOLD_TO_CUST'.
    t_fieldcat_tab-seltext_l = 'Sold to cust'.
    APPEND t_fieldcat_tab.
    t_fieldcat_tab-col_pos = 3.
    t_fieldcat_tab-tabname = 'I_FINAL'.
    t_fieldcat_tab-fieldname = 'PAYER'.
    t_fieldcat_tab-seltext_l = 'Payer'.
    APPEND t_fieldcat_tab.
    t_fieldcat_tab-col_pos = 4.
    t_fieldcat_tab-tabname = 'I_FINAL'.
    t_fieldcat_tab-fieldname = 'SEQUENCE'.
    t_fieldcat_tab-seltext_l = 'sequence'.
    APPEND t_fieldcat_tab.
    t_fieldcat_tab-col_pos = 5.
    t_fieldcat_tab-tabname = 'I_FINAL'.
    t_fieldcat_tab-fieldname = 'CUST_NAME'.
    t_fieldcat_tab-seltext_l = 'Cust name'.
    APPEND t_fieldcat_tab.
    t_fieldcat_tab-col_pos = 6.
    t_fieldcat_tab-tabname = 'I_FINAL'.
    t_fieldcat_tab-fieldname = 'CUST_ADREESS'.
    t_fieldcat_tab-seltext_l = 'Cust adreess'.
    APPEND t_fieldcat_tab.
    t_fieldcat_tab-col_pos = 7.
    t_fieldcat_tab-tabname = 'I_FINAL'.
    t_fieldcat_tab-fieldname = 'CUST_CITY'.
    t_fieldcat_tab-seltext_l = 'Cust city'.
    APPEND t_fieldcat_tab.
    t_fieldcat_tab-col_pos = 8.
    t_fieldcat_tab-tabname = 'I_FINAL'.
    t_fieldcat_tab-fieldname = 'TAX_ID'.
    t_fieldcat_tab-seltext_l = 'Tax id'.
    APPEND t_fieldcat_tab.
    t_fieldcat_tab-col_pos = 9.
    t_fieldcat_tab-tabname = 'I_FINAL'.
    t_fieldcat_tab-fieldname = 'POSTAL_CODE'.
    t_fieldcat_tab-seltext_l = 'Postal code'.
    APPEND t_fieldcat_tab.
    t_fieldcat_tab-col_pos = 10.
    t_fieldcat_tab-tabname = 'I_FINAL'.
    t_fieldcat_tab-fieldname = 'BRANCH'.
    t_fieldcat_tab-seltext_l = 'Branch'.
    APPEND t_fieldcat_tab.
    t_fieldcat_tab-col_pos = 11.
    t_fieldcat_tab-tabname = 'I_FINAL'.
    t_fieldcat_tab-fieldname = 'KWMENG'.
    t_fieldcat_tab-seltext_l = 'Order Qty'.
    APPEND t_fieldcat_tab.
    t_fieldcat_tab-col_pos = 12.
    t_fieldcat_tab-tabname = 'I_FINAL'.
    t_fieldcat_tab-fieldname = 'DELIVERY'.
    t_fieldcat_tab-seltext_l = 'Delivery'.
    APPEND t_fieldcat_tab.
    ENDFORM. " f_prepare_fieldcat
    *& Form f_display_report
    *To display the ALV Report
    FORM f_display_report.
    DATA: l_repid LIKE sy-repid.
    l_repid = sy-repid.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    I_CALLBACK_PROGRAM = l_repid
    IT_FIELDCAT = t_fieldcat_tab[]
    I_DEFAULT = 'X'
    I_SAVE = 'A'
    TABLES
    T_OUTTAB = I_FINAL[].
    EXCEPTIONS
    PROGRAM_ERROR = 1
    OTHERS = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM." f_display_report
    *& Form F_DOWNLOAD
    text
    --> p1 text
    <-- p2 text
    FORM F_DOWNLOAD .
    *CALL FUNCTION 'WS_DOWNLOAD'
    EXPORTING
    FILENAME = p_file
    FILETYPE = 'ASC'
    MODE = ' '
    WK1_N_FORMAT = ' '
    WK1_N_SIZE = ' '
    WK1_T_FORMAT = ' '
    WK1_T_SIZE = ' '
    COL_SELECT = ' '
    COL_SELECTMASK = ' '
    NO_AUTH_CHECK = ' '
    IMPORTING
    FILELENGTH =
    TABLES
    DATA_TAB = i_final
    EXCEPTIONS
    FILE_OPEN_ERROR = 1
    FILE_WRITE_ERROR = 2
    INVALID_FILESIZE = 3
    INVALID_TYPE = 4
    NO_BATCH = 5
    UNKNOWN_ERROR = 6
    INVALID_TABLE_WIDTH = 7
    GUI_REFUSE_FILETRANSFER = 8
    CUSTOMER_ERROR = 9
    NO_AUTHORITY = 10
    OTHERS = 11
    *IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    *ENDIF.
    ENDFORM. " F_DOWNLOAD
    It is perfectly working for me..
    I made the field name and table name as CAPs in the field catalog internal table.
    I removed the buffer paramter in the ALV FM.
    Thanks,
    Naren

  • How to retrieve data from a CGI to SAP?

    Hi guys,
    I'm looking for a way to retrieve information from a CGI page into SAP. This CGI generates a XML with the response from the parameters I use on the URL.
    I can xsl transform the result into ABAP variables, but first I need to know how to get that information.
    As anyone come across this or knows how to do it?
    Thanks in advance,
    Ricardo

    Hi,
    In your case, Include prog is part of FM, no need to treat it as an Entity.
    Now, Your Answer -
    In SCRIPT - IN Page Window -->
         PERFORM GET_MVAT_TIN IN PROGRAM Z_SCRIPT_PERFORMS_ABAPDB3
         USING &VBDKR-KUNRE&
         CHANGING &STCD1&
         CHANGING &STCD2&
         ENDPERFORM
         IF &STCD1& <> ' '
         <B>MVAT Number :</> &STCD1&
         ENDIF
    Then go to SE38 --> Creat prog with type - Subroutine pool
    In that Write FORM statement for this PERFORM.
    FORM get_mvat_tin TABLES inttab STRUCTURE itcsy
                             outtab STRUCTURE itcsy.
      DATA : v_kunre TYPE kna1-kunnr,
             v_stcd1 TYPE kna1-stcd1,
             v_stcd2 TYPE kna1-stcd2.
      LOOP AT outtab.
        CLEAR outtab-value.
        MODIFY outtab.
      ENDLOOP.
      READ TABLE inttab INDEX 1.
      v_kunre = inttab-value.
      IF v_kunre CA sy-abcde.
      ELSE.
        UNPACK v_kunre TO v_kunre.
      ENDIF.
       " Here You can take your Funcion module ***************************
      SELECT SINGLE stcd1 stcd2 FROM kna1 INTO (v_stcd1, v_stcd2)
                                         WHERE kunnr = v_kunre.
      IF sy-subrc = 0.
        READ TABLE outtab INDEX 1.
        WRITE v_stcd1 TO outtab-value.
        MODIFY outtab INDEX 1.
        READ TABLE outtab INDEX 2.
        WRITE v_stcd2 TO outtab-value.
        MODIFY outtab INDEX 2.
      ENDIF.
    ENDFORM.                                

  • How to retrieve data from a function module and use it in sap script??

    I have a report program, which calls a function module. This function module internally calls an include program. In this program, I have a variable which is to be used in the sap script. How can I send this variable to the sap script

    Hi,
    In your case, Include prog is part of FM, no need to treat it as an Entity.
    Now, Your Answer -
    In SCRIPT - IN Page Window -->
         PERFORM GET_MVAT_TIN IN PROGRAM Z_SCRIPT_PERFORMS_ABAPDB3
         USING &VBDKR-KUNRE&
         CHANGING &STCD1&
         CHANGING &STCD2&
         ENDPERFORM
         IF &STCD1& <> ' '
         <B>MVAT Number :</> &STCD1&
         ENDIF
    Then go to SE38 --> Creat prog with type - Subroutine pool
    In that Write FORM statement for this PERFORM.
    FORM get_mvat_tin TABLES inttab STRUCTURE itcsy
                             outtab STRUCTURE itcsy.
      DATA : v_kunre TYPE kna1-kunnr,
             v_stcd1 TYPE kna1-stcd1,
             v_stcd2 TYPE kna1-stcd2.
      LOOP AT outtab.
        CLEAR outtab-value.
        MODIFY outtab.
      ENDLOOP.
      READ TABLE inttab INDEX 1.
      v_kunre = inttab-value.
      IF v_kunre CA sy-abcde.
      ELSE.
        UNPACK v_kunre TO v_kunre.
      ENDIF.
       " Here You can take your Funcion module ***************************
      SELECT SINGLE stcd1 stcd2 FROM kna1 INTO (v_stcd1, v_stcd2)
                                         WHERE kunnr = v_kunre.
      IF sy-subrc = 0.
        READ TABLE outtab INDEX 1.
        WRITE v_stcd1 TO outtab-value.
        MODIFY outtab INDEX 1.
        READ TABLE outtab INDEX 2.
        WRITE v_stcd2 TO outtab-value.
        MODIFY outtab INDEX 2.
      ENDIF.
    ENDFORM.                                

  • JAMAL NOORANI

    report ZSD_CUST_CREATE
           no standard page heading line-size 255.
    include bdcrecx1.
       Selection-screen                                 **
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    PARAMETERS : p_fnam LIKE rlgrap-filename.
    SELECTION-SCREEN END OF BLOCK blk1.
            Declaration                               **
    DATA : p_fname TYPE string.
    data : val(2).
    DATA : BEGIN OF it_xd01 OCCURS 0,
           KTOKD(4),     "ACCOUNT GROUP
           BUKRS(4),     "COMPANY CODE
           VKORG(4),     "SALES ORGANISATION
           VTWEG(2),     "DISTRIBUTION CHANNEL
           SPART(2),     "DIVISION
          ZAV(1),       "ADDRESS
           NAME1(35),                                           "NAME1
           NAME2(40),                                           "NAME2
           NAME3(40),                                           "NAME3
           NAME4(40),                                           "NAME4
           SORT1(20),     "SEARCH TERM A
           SORT2(20),     "SEARCH TERM B
           STRAS(35),    "STREET
           HOUSE1(10),   "HOUSE NUMBER 1
           HOUSE2(10),   "HOUSE NUMBER 2
          STREET(60),                                        "Street
    *"Rajat
           STREET2(35),                                         "STREET2
           STREET3(35),                                         "STREET3
           STREET4(35),                                         "STREET4
           STREET5(35),                                         "STREET5
           ORT02(35),    "DISTRICT
           PSTLZ(10),    "POSTAL CODE
           ORT01(35),    "CITY
           land1(3),     "Country key
           regio(3),     "Region (State, Province, County)
           TXJCD(15),      "TAX JURISDICTION
           LZONE(10),      "TRANSPORTATION ZONE
           spras(2),     "Language key
           TELF1(16),    "TELEPHONE
           TELEXT(10),   "EXTENSION TEL
           TELFX(31),    "TELEFAX
           TELFEXT(10),  "TELEFAX EXTENSION
           KNURL(132),   "EMAIL ID
           COMM(13),    "STANDRAD COMMUNICATION TYPE
           VENDOR(10),  "VENDOR
           begru(4),     "Authorization group
           STCD1(16),                                           "TAX CODE1
           STCD2(11),                                           "TAX CODE2
           STCEG(20),      "VAT REGISTRATION NUMBER
           KUKLA(2),       "CUSTOMER CLASS
           BRAN1(10),      "INDUSTRY CODE
           BRAN2(10),      "INDUSTRY CODE1
           BRAN3(10),      "INDUSTRY CODE2
           BRAN4(10),      "INDUSTRY CODE3
           BRAN5(10),      "INDUSTRY CODE4
           ABLAD1(25),     "UNLOADING POINT
           ABLAD2(25),     "UNLOADING POINT
          DEFAB(1) ,      "CHECKBOX
           KNFAK(2),       "CALENDAR KEY
           KNFAK1(2),      "CALENDAR KEY
           WANID(3),       "GOODS RECIEVING HOURS FOR BN
           WANID1(3),      "GOODS RECIEVING HOURS FOR SV
           name11(40),                                          "Name 1
           name12(35),                                          "Name 2
           ABTNR11(4),     "DEPARTMENT
           pafkt11(2),     "Contact person function
           PARLA11(2),     "CONTACT PERSON LANGUAGE
           TELEF11(16),    "TELEPHONE NUMBER
           TELEX11(10),    "TELEPHONE EXTENSION
           TELFA11(31),    "FAX
           TELFX11(10),    "FAX EXTENSION
           EMAIL11(40),    "EMAIL
           COMMU11(10),    "COMMUNICATION TYPE
           name21(40),                                          "Name 1
           name22(35),                                          "Name 2
           ABTNR21(4),     "DEPARTMENT
           pafkt21(2),     "Contact person function
           PARLA21(2),     "CONTACT PERSON LANGUAGE
           TELEF21(16),    "TELEPHONE NUMBER
           TELEX21(10),    "TELEPHONE EXTENSION
           TELFA21(31),    "FAX
           TELFX21(10),    "FAX EXTENSION
           EMAIL21(40),    "EMAIL
           COMMU21(10),    "COMMUNICATION TYPE
           name31(40),                                          "Name 1
           name32(35),                                          "Name 2
           ABTNR31(4),     "DEPARTMENT
           pafkt31(2),     "Contact person function
           PARLA31(2),     "CONTACT PERSON LANGUAGE
           TELEF31(16),    "TELEPHONE NUMBER
           TELEX31(10),    "TELEPHONE EXTENSION
           TELFA31(31),    "FAX
           TELFX31(10),    "FAX EXTENSION
           EMAIL31(40),    "EMAIL
           COMMU31(10),    "COMMUNICATION TYPE
           name41(40),                                          "Name 1
           name42(35),                                          "Name 2
           ABTNR41(4),     "DEPARTMENT
           pafkt41(2),     "Contact person function
           PARLA41(2),     "CONTACT PERSON LANGUAGE
           TELEF41(16),    "TELEPHONE NUMBER
           TELEX41(10),    "TELEPHONE EXTENSION
           TELFA41(42),    "FAX
           TELFX41(10),    "FAX EXTENSION
           EMAIL41(40),    "EMAIL
           COMMU41(10),    "COMMUNICATION TYPE
           name51(40),                                          "Name 1
           name52(35),                                          "Name 2
           ABTNR51(4),     "DEPARTMENT
           pafkt51(2),     "Contact person function
           PARLA51(2),     "CONTACT PERSON LANGUAGE
           TELEF51(16),    "TELEPHONE NUMBER
           TELEX51(10),    "TELEPHONE EXTENSION
           TELFA51(42),    "FAX
           TELFX51(10),    "FAX EXTENSION
           EMAIL51(40),    "EMAIL
           COMMU51(10),    "COMMUNICATION TYPE
           akont(10),    "Reconciliation Account in General Ledger
           zuawa(3),     "Key for sorting according to assignment numbers
           BEGRU1(4),   "Authorization group
           fdgrv(10),    "Planning group
           ZTERM(4),     "Terms of payment key
          XZVER(1),     "Indicator: Record Payment History
           MAHNS(1),     "DUNNING LEVEL
           BUSAB(2),     "ACCOUNTING CLERK
          AWAHR(3),
           VKBUR(4),     "SALES OFFICE
           BEGRU2(2),     "AUTHORIZATION GROUP
           VKGRP(3),      "SALES GROUP
           ORDER(3),      "ORDER PROBABILITY
           KDGRP(2),      "CUSTOMER GROUP
           WAERS(3),      "CURRENCY
           KONDA(2),      "PRICE GROUP
           KALKS(1),      "CUSTOMER PRICING PROCEDURE
           VSBED(2),      "DELIVERY PRIORITY
           VWERK(4),     "DELIVERING PLANT
          AUTLF(1),      "COMPLETE DELIVERY
           KZTLF(1),      "Partial delivery at line item
           ANTLF(2),      "MAXIMUM PARTIAL DELIVERY
           PERFK(2),     "Invoice dates (calendar identification)
           PERRL(2),     "Invoice list schedule (calendar identification)
           INCO1(3),     "Incoterms (part 1)
           INCO2(28),    "Incoterms (part 2)
           ZTERM1(6),    "Terms of payment key
           KKBER(4),     "Credit control area
           KTGRD(2),     "Account assignment group for this customer
           TAX(5),       "Tax
           KTONR1(10),   "CUSTOMER NUMBER OF  FOR BP
           KTONR2(10),   "CUSTOMER NUMBER OF FOR PY
           KTONR3(10),   "CUSTOMER NUMBER OF FOR SH
           KTONR4(10),   "CUSTOMER NUMBER OF FOR Y1
           KTONR5(10),   "CUSTOMER NUMBER OF FOR Y2
           KTONR6(10),   "CUSTOMER NUMBER OF FOR Y3
           KTONR7(10),   "CUSTOMER NUMBER OF FOR ZF
           KTONR8(10),   "CUSTOMER NUMBER OF FOR ZR
           KTONR9(10),   "CUSTOMER NUMBER OF FOR ZS
           KTONR10(10),  "CUSTOMER NUMBER OF FOR ZZ
           END OF IT_XD01.
    I N I T I A L I Z A T I O N
    INITIALIZATION.
    VALUE_REQUEST FOR FILE UPLOAD                                        *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fnam.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
      EXPORTING
      PROGRAM_NAME        = SYST-REPID
      DYNPRO_NUMBER       = SYST-DYNNR
      FIELD_NAME          = ' '
      STATIC              = ' '
       MASK                = '*.TXT'
        CHANGING
          file_name           = p_fnam
       EXCEPTIONS
         mask_too_long       = 0
         OTHERS              = 0.
    S T A R T   O F   S E L E C T I O N
    START-OF-SELECTION.
      perform upload.
    The data from presentation server is being uploaded to R/3 system
    start-of-selection.
      perform open_group.
      LOOP AT IT_XD01.
      data : txjcd(15).
        REFRESH BDCDATA.
        perform bdc_dynpro      using 'SAPMF02D'               '0100'.
    *perform bdc_field       using 'BDC_CURSOR'             'USE_ZAV'.
        perform bdc_field       using 'BDC_OKCODE'             '/00'.
       perform bdc_field       using 'RF02D-BUKRS'            IT_XD01-BUKRS.
       perform bdc_field       using 'RF02D-VKORG'            IT_XD01-VKORG.
       perform bdc_field       using 'RF02D-VTWEG'            IT_XD01-VTWEG.
       perform bdc_field       using 'RF02D-SPART'            IT_XD01-SPART.
       perform bdc_field       using 'RF02D-KTOKD'            IT_XD01-KTOKD.
        perform bdc_field       using 'USE_ZAV'                'X'.
        perform bdc_dynpro      using 'SAPMF02D'              '0111'.
        perform bdc_field       using 'BDC_OKCODE'             '=$2OC'.
        perform bdc_field       using 'BDC_CURSOR' 'SZA1_D0100-SMTP_ADDR'.
       perform bdc_field  using 'BDC_CURSOR'     'ADDR1_DATA-TAXJURCODE'.
    *"Rajat
    perform bdc_field       using 'ADDR1_DATA-NAME1'         IT_XD01-NAME1.
    perform bdc_field       using 'ADDR1_DATA-NAME2'         IT_XD01-NAME2.
      perform bdc_field       using 'ADDR1_DATA-NAME3'        IT_XD01-NAME3.
    perform bdc_field       using 'ADDR1_DATA-NAME4'         IT_XD01-NAME4.
      perform bdc_field       using 'ADDR1_DATA-SORT1'        IT_XD01-SORT1.
      perform bdc_field       using 'ADDR1_DATA-SORT2'        IT_XD01-SORT2.
       perform bdc_field       using 'ADDR1_DATA-STREET'      IT_XD01-STRAS.
    perform bdc_field       using 'ADDR1_DATA-HOUSE_NUM1'   IT_XD01-HOUSE1.
    perform bdc_field       using 'ADDR1_DATA-HOUSE_NUM2'    IT_XD01-HOUSE2.
    perform bdc_field       using 'ADDR1_DATA-CITY2'          IT_XD01-ORT02.
    perform bdc_field       using 'ADDR1_DATA-POST_CODE1'     IT_XD01-PSTLZ.
    perform bdc_field    using 'ADDR1_DATA-CITY1'            IT_XD01-ORT01.
    perform bdc_field       using 'ADDR1_DATA-COUNTRY'        IT_XD01-LAND1.
    perform bdc_field       using 'ADDR1_DATA-REGION'         IT_XD01-REGIO.
    if it_xd01-LAND1 = 'US'.
    CALL FUNCTION 'DETERMINE_TXJCD_EXTERNALLY'
      EXPORTING
        country                             = it_xd01-land1
        region                              = it_xd01-regio
        city                                = it_xd01-ORT01
        COUNTY                              = it_xd01-ORT02
        zipcode                             = it_xd01-pstlz
    IMPORTING
       TXJCD                               = txjcd.
    perform bdc_field       using 'ADDR1_DATA-TAXJURCODE'       txjcd.
      ENDIF.
    perform bdc_field       using 'ADDR1_DATA-TRANSPZONE'    IT_XD01-LZONE.
    perform bdc_field       using 'ADDR1_DATA-LANGU'          IT_XD01-SPRAS.
      perform bdc_field       using 'SZA1_D0100-TEL_NUMBER'   IT_XD01-TELF1.
    perform bdc_field       using 'SZA1_D0100-TEL_EXTENS'    IT_XD01-TELEXT.
    perform bdc_field       using 'SZA1_D0100-FAX_NUMBER'    IT_XD01-TELFX.
    perform bdc_field       using 'SZA1_D0100-FAX_EXTENS'  IT_XD01-TELFEXT.
       perform bdc_field       using 'SZA1_D0100-SMTP_ADDR'   IT_XD01-KNURL.
        perform bdc_field       using 'ADDR1_DATA-DEFLT_COMM'  IT_XD01-COMM.
        perform bdc_dynpro      using 'SAPMF02D'               '0111'.
        perform bdc_field       using 'BDC_OKCODE'             '/00'.
    perform bdc_field       using 'BDC_CURSOR'        'ADDR1_DATA-LOCATION'.
    *perform bdc_field       using 'ADDR1_DATA-NAME1'          'NAME1'.
    *perform bdc_field       using 'ADDR1_DATA-NAME2'          'NAME2'.
    *perform bdc_field       using 'ADDR1_DATA-NAME3'          'NAME3'.
    *perform bdc_field       using 'ADDR1_DATA-NAME4'          'NAME4'.
    *perform bdc_field       using 'ADDR1_DATA-SORT1'         'SITECODE'.
    *perform bdc_field       using 'ADDR1_DATA-SORT2'         'DUNS NUMBER'.
    perform bdc_field       using 'ADDR1_DATA-STR_SUPPL1'   IT_XD01-STREET2.
    perform bdc_field       using 'ADDR1_DATA-STR_SUPPL2'   IT_XD01-STREET3.
    *perform bdc_field       using 'ADDR1_DATA-STREET' IT_XD01-STREET3.
    *"Rajat
    *perform bdc_field       using 'ADDR1_DATA-HOUSE_NUM1'      '129'.
    *perform bdc_field       using 'ADDR1_DATA-HOUSE_NUM2'      'YY'.
    perform bdc_field       using 'ADDR1_DATA-STR_SUPPL3'  IT_XD01-STREET4.
    perform bdc_field       using 'ADDR1_DATA-LOCATION'    IT_XD01-STREET5.
    *perform bdc_field       using 'ADDR1_DATA-CITY2'           'DISTRICT'.
    *perform bdc_field       using 'ADDR1_DATA-POST_CODE1'      '44087'.
    *perform bdc_field       using 'ADDR1_DATA-CITY1'           'TWINSBERG'.
    *perform bdc_field       using 'ADDR1_DATA-COUNTRY'         'US'.
    *perform bdc_field       using 'ADDR1_DATA-REGION'           'OH'.
    *perform bdc_field       using 'ADDR1_DATA-TAXJURCODE'      '3615325401'
    *perform bdc_field       using 'ADDR1_DATA-TRANSPZONE'     '0000000001'.
    *perform bdc_field       using 'ADDR1_DATA-LANGU'           'EN'.
    *perform bdc_field       using 'SZA1_D0100-TEL_NUMBER'     '3304258926'.
    *perform bdc_field       using 'SZA1_D0100-TEL_EXTENS'      '8926'.
    *perform bdc_field       using 'SZA1_D0100-FAX_NUMBER'     '3304258926'.
    *perform bdc_field       using 'SZA1_D0100-FAX_EXTENS'      '8926'.
    *perform bdc_field       using 'SZA1_D0100-SMTP_ADDR'   '[email protected]'
    *perform bdc_field       using 'ADDR1_DATA-DEFLT_COMM'       'FAX'.
        perform bdc_dynpro      using 'SAPMF02D'           '0120'.
        perform bdc_field       using 'BDC_CURSOR'         'KNA1-STCD2'.
        perform bdc_field       using 'BDC_OKCODE'         '/00'.
        perform bdc_field       using 'KNA1-LIFNR'     IT_XD01-VENDOR."Rajat
        perform bdc_field       using 'KNA1-BEGRU'         IT_XD01-BEGRU.
        perform bdc_field       using 'KNA1-STCD1'         IT_XD01-STCD1.
        perform bdc_field       using 'KNA1-STCD2'         IT_XD01-STCD2.
        perform bdc_field       using 'KNA1-STCEG'         IT_XD01-STCEG.
        perform bdc_field       using 'KNA1-TXJCD'         IT_XD01-TXJCD.
        perform bdc_field       using 'KNA1-LZONE'         IT_XD01-LZONE.
        perform bdc_dynpro      using 'SAPMF02D'           '0125'.
        perform bdc_field       using 'BDC_CURSOR'         'KNA1-BRAN1'.
        perform bdc_field       using 'BDC_OKCODE'         '=BRAN'.
        perform bdc_field       using 'KNA1-KUKLA'         IT_XD01-KUKLA.
        perform bdc_field       using 'KNA1-BRAN1'         IT_XD01-BRAN1.
        perform bdc_dynpro      using 'SAPMF02D'           '1250'.
        perform bdc_field       using 'BDC_CURSOR'         'KNA1-BRAN5'.
        perform bdc_field       using 'BDC_OKCODE'         '=ENTR'.
        perform bdc_field       using 'KNA1-BRAN2'         IT_XD01-BRAN2.
        perform bdc_field       using 'KNA1-BRAN3'         IT_XD01-BRAN3.
        perform bdc_field       using 'KNA1-BRAN4'         IT_XD01-BRAN4.
        perform bdc_field       using 'KNA1-BRAN5'         IT_XD01-BRAN5.
        perform bdc_dynpro      using 'SAPMF02D'           '0125'.
        perform bdc_field       using 'BDC_CURSOR'         'KNA1-KUKLA'.
        perform bdc_field       using 'BDC_OKCODE'          '/00'.
        perform bdc_field       using 'KNA1-KUKLA'         IT_XD01-KUKLA.
        perform bdc_field       using 'KNA1-BRAN1'         IT_XD01-BRAN1.
        perform bdc_dynpro      using 'SAPMF02D'             '0130'.
       perform bdc_field       using 'BDC_CURSOR'          'KNBK-BANKS(01)'.
        perform bdc_field       using 'BDC_OKCODE'           '=ENTR'.
        perform bdc_dynpro      using 'SAPMF02D'            '0340'.
       perform bdc_field       using 'BDC_CURSOR'          'KNVA-KNFAK(02)'.
        perform bdc_field       using 'BDC_OKCODE'          '=ENTR'.
        perform bdc_field       using 'KNVA-ABLAD(01)'      IT_XD01-ABLAD1.
        perform bdc_field       using 'KNVA-ABLAD(02)'      IT_XD01-ABLAD2.
        perform bdc_field       using 'KNVA-DEFAB(01)'      'X'.
        perform bdc_field       using 'KNVA-KNFAK(01)'      IT_XD01-KNFAK.
        perform bdc_field       using 'KNVA-KNFAK(02)'      IT_XD01-KNFAK1.
        perform bdc_dynpro      using 'SAPMF02D'            '0340'.
       perform bdc_field       using 'BDC_CURSOR'          'KNVA-KNFAK(01)'.
        perform bdc_field       using 'BDC_OKCODE'           '=WANZ'.
        perform bdc_dynpro      using 'SAPMF02D'              '1340'.
        perform bdc_field       using 'BDC_CURSOR'            'KNVA-WANID'.
        perform bdc_field       using 'BDC_OKCODE'            '=ENTR'.
        perform bdc_field       using 'KNVA-WANID'           IT_XD01-WANID.
        perform bdc_dynpro      using 'SAPMF02D'               '0340'.
    perform bdc_field       using 'BDC_CURSOR'             'KNVA-KNFAK(02)'.
        perform bdc_field       using 'BDC_OKCODE'             '=WANZ'.
        perform bdc_dynpro      using 'SAPMF02D'               '1340'.
        perform bdc_field       using 'BDC_CURSOR'             'KNVA-WANID'.
        perform bdc_field       using 'BDC_OKCODE'             '=ENTR'.
      perform bdc_field       using 'KNVA-WANID'             IT_XD01-WANID1.
        perform bdc_dynpro      using 'SAPMF02D'               '0340'.
       perform bdc_field       using 'BDC_CURSOR'             'RF02D-KUNNR'.
        perform bdc_field       using 'BDC_OKCODE'             '=ENTR'.
        perform bdc_dynpro      using 'SAPMF02D'               '0370'.
       perform bdc_field       using 'BDC_CURSOR'             'RF02D-KUNNR'.
        perform bdc_field       using 'BDC_OKCODE'             '=ENTR'.
        perform bdc_field       using 'KNA1-CIVVE'             'X'.
        perform bdc_dynpro      using 'SAPMF02D'             '0360'.
    perform bdc_field       using 'BDC_CURSOR'            'KNVK-PAFKT(01)'.
        perform bdc_field       using 'BDC_OKCODE'             '=ENTR'.
        IF IT_XD01-NAME11 <> 'X'.
    perform bdc_field       using 'KNVK-NAMEV(01)'          IT_XD01-NAME12.
      perform bdc_field       using 'KNVK-NAME1(01)'         IT_XD01-NAME11.
    perform bdc_field       using 'KNVK-ABTNR(01)'         IT_XD01-ABTNR11.
    perform bdc_field       using 'KNVK-PAFKT(01)'         IT_XD01-PAFKT11.
          perform bdc_dynpro      using 'SAPMF02D'                 '0360'.
    perform bdc_field       using 'BDC_CURSOR'             'KNVK-NAME1(01)'.
          perform bdc_field       using 'BDC_OKCODE'               '=LSDP'.
          perform bdc_dynpro      using 'SAPMF02D'                '1361'.
          perform bdc_field       using 'BDC_OKCODE'              '/00'.
    perform bdc_field       using 'KNVK-ABTNR'              IT_XD01-ABTNR11.
    perform bdc_field       using 'KNVK-PAFKT'              IT_XD01-PAFKT11.
    perform bdc_field       using 'BDC_CURSOR'       'SZA5_D0700-SMTP_ADDR'.
    perform bdc_field       using 'ADDR3_DATA-NAME_LAST'     IT_XD01-NAME12.
    perform bdc_field       using 'ADDR3_DATA-NAME_FIRST'    IT_XD01-NAME11.
    perform bdc_field       using 'ADDR3_DATA-LANGU_P'     IT_XD01-PARLA11.
    perform bdc_field       using 'SZA5_D0700-TEL_NUMBER' IT_XD01-TELEF11  .
      perform bdc_field       using 'SZA5_D0700-TEL_EXTENS' it_xd01-telex11.
       perform bdc_field      using 'SZA5_D0700-FAX_NUMBER' IT_XD01-TELFA11.
    perform bdc_field       using 'SZA5_D0700-FAX_EXTENS'  IT_XD01-TELFX11.
    perform bdc_field       using 'SZA5_D0700-SMTP_ADDR'    IT_XD01-EMAIL11.
    perform bdc_field       using 'ADDR3_DATA-DEFLT_COMM'   IT_XD01-COMMU11.
          perform bdc_dynpro      using 'SAPMF02D'                '1361'.
          perform bdc_field       using 'BDC_OKCODE'              '/00'.
          perform bdc_dynpro      using 'SAPMF02D'                '0360'.
    perform bdc_field       using 'BDC_CURSOR'            'KNVK-PAFKT(02)'.
          perform bdc_field       using 'BDC_OKCODE'               '=ENTR'.
        ENDIF.
        IF IT_XD01-NAME21 <> 'X'.
    perform bdc_field       using 'KNVK-NAMEV(02)'          IT_XD01-NAME22.
    perform bdc_field       using 'KNVK-NAME1(02)'           IT_XD01-NAME21.
    perform bdc_field       using 'KNVK-ABTNR(02)'          IT_XD01-ABTNR21.
      perform bdc_field       using 'KNVK-PAFKT(02)'        IT_XD01-PAFKT21.
          perform bdc_dynpro      using 'SAPMF02D'                  '0360'.
    perform bdc_field       using 'BDC_CURSOR'             'KNVK-NAME1(02)'.
          perform bdc_field       using 'BDC_OKCODE'              '=LSDP'.
          perform bdc_dynpro      using 'SAPMF02D'                 '1361'.
          perform bdc_field       using 'BDC_OKCODE'               '/00'.
    perform bdc_field       using 'KNVK-ABTNR'              IT_XD01-ABTNR21.
      perform bdc_field       using 'KNVK-PAFKT'            IT_XD01-PAFKT21.
    perform bdc_field       using 'BDC_CURSOR'      'ADDR3_DATA-DEFLT_COMM'.
        perform bdc_field       using 'ADDR3_DATA-NAME_LAST' IT_XD01-NAME22.
       perform bdc_field       using 'ADDR3_DATA-NAME_FIRST' IT_XD01-NAME21.
      perform bdc_field       using 'ADDR3_DATA-LANGU_P'    IT_XD01-PARLA21.
          perform bdc_field   using 'SZA5_D0700-TEL_NUMBER' IT_XD01-TELEF21.
    perform bdc_field       using 'SZA5_D0700-TEL_EXTENS'   IT_XD01-TELEX21.
    perform bdc_field       using 'SZA5_D0700-FAX_NUMBER'   IT_XD01-TELFA21.
    perform bdc_field       using 'SZA5_D0700-FAX_EXTENS'   IT_XD01-TELFX21.
    perform bdc_field       using 'SZA5_D0700-SMTP_ADDR'    IT_XD01-EMAIL21.
    perform bdc_field       using 'ADDR3_DATA-DEFLT_COMM'   IT_XD01-COMMU21.
          perform bdc_dynpro      using 'SAPMF02D'                '1361'.
          perform bdc_field       using 'BDC_OKCODE'              '/00'.
          perform bdc_dynpro      using 'SAPMF02D'                 '0360'.
    perform bdc_field       using 'BDC_CURSOR'             'KNVK-PAFKT(03)'.
          perform bdc_field       using 'BDC_OKCODE'              '=ENTR'.
        ENDIF.
        IF IT_XD01-NAME31 <> 'X'.
       perform bdc_field       using 'KNVK-NAMEV(03)'        IT_XD01-NAME32.
       perform bdc_field       using 'KNVK-NAME1(03)'        IT_XD01-NAME31.
      perform bdc_field       using 'KNVK-ABTNR(03)'        IT_XD01-ABTNR31.
      perform bdc_field       using 'KNVK-PAFKT(03)'        IT_XD01-PAFKT31.
          perform bdc_dynpro      using 'SAPMF02D'                 '0360'.
      perform bdc_field       using 'BDC_CURSOR'           'KNVK-NAME1(03)'.
          perform bdc_field       using 'BDC_OKCODE'              '=LSDP'.
          perform bdc_dynpro      using 'SAPMF02D'             '1361'.
          perform bdc_field       using 'BDC_OKCODE'           '/00'.
        perform bdc_field       using 'KNVK-ABTNR'          IT_XD01-ABTNR31.
       perform bdc_field       using 'KNVK-PAFKT'           IT_XD01-PAFKT31.
    perform bdc_field       using 'BDC_CURSOR'     'ADDR3_DATA-DEFLT_COMM'.
    perform bdc_field       using 'ADDR3_DATA-NAME_LAST'     IT_XD01-NAME32.
    perform bdc_field       using 'ADDR3_DATA-NAME_FIRST'   IT_XD01-NAME31.
    perform bdc_field       using 'ADDR3_DATA-LANGU_P'      IT_XD01-PARLA31
    perform bdc_field       using 'SZA5_D0700-TEL_NUMBER'   IT_XD01-TELEF31.
    perform bdc_field       using 'SZA5_D0700-TEL_EXTENS'   IT_XD01-TELEX31.
    perform bdc_field       using 'SZA5_D0700-FAX_NUMBER'   IT_XD01-TELFA31.
    perform bdc_field       using 'SZA5_D0700-FAX_EXTENS'   IT_XD01-TELFX31.
    perform bdc_field       using 'SZA5_D0700-SMTP_ADDR'    IT_XD01-EMAIL31.
    perform bdc_field       using 'ADDR3_DATA-DEFLT_COMM'   IT_XD01-COMMU31.
          perform bdc_dynpro      using 'SAPMF02D'                '1361'.
          perform bdc_field       using 'BDC_OKCODE'              '/00'.
          perform bdc_dynpro      using 'SAPMF02D'             '0360'.
         perform bdc_field       using 'BDC_CURSOR'        'KNVK-PAFKT(04)'.
          perform bdc_field       using 'BDC_OKCODE'          '=ENTR'.
        ENDIF.
        IF IT_XD01-NAME41 <> 'X'.
          perform bdc_field       using 'KNVK-NAMEV(04)'    IT_XD01-NAME42.
          perform bdc_field       using 'KNVK-NAME1(04)'    IT_XD01-NAME41.
          perform bdc_field       using 'KNVK-ABTNR(04)'    IT_XD01-ABTNR41.
          perform bdc_field       using 'KNVK-PAFKT(04)'    IT_XD01-PAFKT41.
          perform bdc_dynpro      using 'SAPMF02D'               '0360'.
        perform bdc_field       using 'BDC_CURSOR'         'KNVK-NAME1(04)'.
          perform bdc_field       using 'BDC_OKCODE'           '=LSDP'.
          perform bdc_dynpro      using 'SAPMF02D'             '1361'.
          perform bdc_field       using 'BDC_OKCODE'          '/00'.
          perform bdc_field       using 'KNVK-ABTNR'       IT_XD01-ABTNR41.
          perform bdc_field       using 'KNVK-PAFKT'       IT_XD01-PAFKT41.
       perform bdc_field       using 'BDC_CURSOR'   'ADDR3_DATA-DEFLT_COMM'.
        perform bdc_field       using 'ADDR3_DATA-NAME_LAST' IT_XD01-NAME42.
         perform bdc_field     using 'ADDR3_DATA-NAME_FIRST' IT_XD01-NAME41.
       perform bdc_field       using 'ADDR3_DATA-LANGU_P'   IT_XD01-PARLA41.
      perform bdc_field       using 'SZA5_D0700-TEL_NUMBER' IT_XD01-TELEF41.
      perform bdc_field       using 'SZA5_D0700-TEL_EXTENS' IT_XD01-TELEX41.
      perform bdc_field       using 'SZA5_D0700-FAX_NUMBER' IT_XD01-TELFA41.
      perform bdc_field       using 'SZA5_D0700-FAX_EXTENS' IT_XD01-TELFX41.
      perform bdc_field       using 'SZA5_D0700-SMTP_ADDR'  IT_XD01-EMAIL41.
      perform bdc_field       using 'ADDR3_DATA-DEFLT_COMM' IT_XD01-COMMU41.
          perform bdc_dynpro      using 'SAPMF02D'                '1361'.
          perform bdc_field       using 'BDC_OKCODE'              '/00'.
        perform bdc_dynpro      using 'SAPMF02D'                     '0360'.
         perform bdc_field       using 'BDC_CURSOR'        'KNVK-PAFKT(05)'.
          perform bdc_field       using 'BDC_OKCODE'         '=ENTR'.
        ENDIF.
        IF IT_XD01-NAME51 <> 'X'.
    perform bdc_field       using 'KNVK-NAMEV(05)'          IT_XD01-NAME52.
    perform bdc_field       using 'KNVK-NAME1(05)'          IT_XD01-NAME51.
    perform bdc_field       using 'KNVK-ABTNR(05)'          IT_XD01-ABTNR51.
    perform bdc_field       using 'KNVK-PAFKT(05)'          IT_XD01-PAFKT51.
          perform bdc_dynpro      using 'SAPMF02D'          '0360'.
         perform bdc_field       using 'BDC_CURSOR'        'KNVK-NAME1(05)'.
          perform bdc_field       using 'BDC_OKCODE'         '=LSDP'.
          perform bdc_dynpro      using 'SAPMF02D'                '1361'.
          perform bdc_field       using 'BDC_OKCODE'              '/00'.
       perform bdc_field       using 'KNVK-ABTNR'           IT_XD01-ABTNR51.
       perform bdc_field       using 'KNVK-PAFKT'           IT_XD01-PAFKT51.
    perform bdc_field       using 'BDC_CURSOR'      'ADDR3_DATA-DEFLT_COMM'.
       perform bdc_field       using 'ADDR3_DATA-NAME_LAST'  IT_XD01-NAME52.
       perform bdc_field       using 'ADDR3_DATA-NAME_FIRST' IT_XD01-NAME51.
      perform bdc_field       using 'ADDR3_DATA-LANGU_P'    IT_XD01-PARLA51.
      perform bdc_field       using 'SZA5_D0700-TEL_NUMBER' IT_XD01-TELEF51.
      perform bdc_field       using 'SZA5_D0700-TEL_EXTENS' IT_XD01-TELEX51.
      perform bdc_field       using 'SZA5_D0700-FAX_NUMBER' IT_XD01-TELFA51.
      perform bdc_field       using 'SZA5_D0700-FAX_EXTENS' IT_XD01-TELFX51.
      perform bdc_field       using 'SZA5_D0700-SMTP_ADDR'  IT_XD01-EMAIL51.
      perform bdc_field       using 'ADDR3_DATA-DEFLT_COMM' IT_XD01-COMMU51.
          perform bdc_dynpro      using 'SAPMF02D'                '1361'.
          perform bdc_field       using 'BDC_OKCODE'              '/00'.
          perform bdc_dynpro      using 'SAPMF02D'                  '0360'.
    perform bdc_field       using 'BDC_CURSOR'             'KNVK-NAMEV(01)'.
          perform bdc_field       using 'BDC_OKCODE'               '=ENTR'.
        ENDIF.
        perform bdc_dynpro      using 'SAPMF02D'             '0210'.
        perform bdc_field       using 'BDC_CURSOR'           'KNB1-BEGRU'.
        perform bdc_field       using 'BDC_OKCODE'           '/00'.
        perform bdc_field       using 'KNB1-AKONT'            IT_XD01-AKONT.
        perform bdc_field       using 'KNB1-ZUAWA'            IT_XD01-ZUAWA.
       perform bdc_field       using 'KNB1-BEGRU'            IT_XD01-BEGRU1.
        perform bdc_field       using 'KNB1-FDGRV'            IT_XD01-FDGRV.
        perform bdc_dynpro      using 'SAPMF02D'             '0215'.
        perform bdc_field       using 'BDC_CURSOR'         'KNB1-XZVER'.
        perform bdc_field       using 'BDC_OKCODE'          '/00'.
        perform bdc_field       using 'KNB1-ZTERM'          IT_XD01-ZTERM.
        perform bdc_field       using 'KNB1-XZVER'          'X'..
        perform bdc_dynpro      using 'SAPMF02D'            '0220'.
        perform bdc_field       using 'BDC_CURSOR'         'KNB1-TLFNS'.
        perform bdc_field       using 'BDC_OKCODE'         '/00'.
        perform bdc_field       using 'KNB5-MAHNS'          IT_XD01-MAHNS.
        perform bdc_field       using 'KNB1-BUSAB'          IT_XD01-BUSAB.
        perform bdc_dynpro      using 'SAPMF02D'            '0230'.
        perform bdc_field       using 'BDC_CURSOR'          'RF02D-KUNNR'.
        perform bdc_field       using 'BDC_OKCODE'          '/00'.
        perform bdc_dynpro      using 'SAPMF02D'              '0310'.
        perform bdc_field       using 'BDC_CURSOR'          'KNVV-KONDA'.
        perform bdc_field       using 'BDC_OKCODE'         '/00'.
        perform bdc_field       using 'KNVV-VKBUR'         IT_XD01-VKBUR.
        perform bdc_field       using 'KNVV-BEGRU'         IT_XD01-BEGRU2.
        perform bdc_field       using 'KNVV-VKGRP'         IT_XD01-VKGRP.
        perform bdc_field       using 'KNVV-AWAHR'         IT_XD01-ORDER.
        perform bdc_field       using 'KNVV-KDGRP'         IT_XD01-KDGRP.
        perform bdc_field       using 'KNVV-WAERS'         IT_XD01-WAERS.
        perform bdc_field       using 'KNVV-KONDA'          IT_XD01-KONDA.
        perform bdc_field       using 'KNVV-KALKS'         IT_XD01-KALKS.
        perform bdc_dynpro      using 'SAPMF02D'            '0315'.
        perform bdc_field       using 'BDC_CURSOR'          'KNVV-KZTLF'.
        perform bdc_field       using 'BDC_OKCODE'              '/00'.
        perform bdc_field       using 'KNVV-VSBED'         IT_XD01-VSBED.
        perform bdc_field       using 'KNVV-VWERK'         IT_XD01-VWERK.
    *IF IT_XD01-AUTLF = 'X'.
        perform bdc_field       using 'KNVV-AUTLF'         'X'.
        perform bdc_field       using 'KNVV-KZTLF'         IT_XD01-KZTLF.
    *ELSE.
        perform bdc_field       using 'KNVV-ANTLF'         IT_XD01-ANTLF.
    *ENDIF.
        perform bdc_dynpro      using 'SAPMF02D'             '0320'.
        perform bdc_field       using 'BDC_CURSOR'          'KNVV-KTGRD'.
        perform bdc_field       using 'BDC_OKCODE'           '/00'.
        perform bdc_field       using 'KNVV-PERFK'           IT_XD01-PERFK.
        perform bdc_field       using 'KNVV-PERRL'           IT_XD01-PERRL.
        perform bdc_field       using 'KNVV-INCO1'           IT_XD01-INCO1.
        perform bdc_field       using 'KNVV-INCO2'           IT_XD01-INCO2.
        perform bdc_field       using 'KNVV-ZTERM'           IT_XD01-ZTERM1.
        perform bdc_field       using 'KNVV-KKBER'           IT_XD01-KKBER.
        perform bdc_field       using 'KNVV-KTGRD'           IT_XD01-KTGRD.
        perform bdc_dynpro      using 'SAPMF02D'             '1350'.
      perform bdc_field       using 'BDC_CURSOR'           'KNVI-TAXKD(01)'.
        perform bdc_field       using 'BDC_OKCODE'           '=ENTR'.
        perform bdc_field       using 'KNVI-TAXKD(01)'       IT_XD01-TAX.
        perform bdc_dynpro      using 'SAPMF02D'             '1350'.
        perform bdc_field       using 'BDC_CURSOR'          'RF02D-KUNNR'.
        perform bdc_field       using 'BDC_OKCODE'         '=ENTR'.
        perform bdc_dynpro      using 'SAPMF02D'            '0324'.
      perform bdc_field       using 'BDC_CURSOR'          'RF02D-KTONR(11)'.
        perform bdc_field       using 'BDC_OKCODE'          '=ENTR'.
        perform bdc_field       using 'RF02D-KTONR(02)'     IT_XD01-KTONR1.
        perform bdc_field       using 'RF02D-KTONR(03)'     IT_XD01-KTONR2.
        perform bdc_field       using 'RF02D-KTONR(04)'     IT_XD01-KTONR3.
        perform bdc_field       using 'RF02D-KTONR(05)'     IT_XD01-KTONR4.
        perform bdc_field       using 'RF02D-KTONR(06)'     IT_XD01-KTONR5.
        perform bdc_field       using 'RF02D-KTONR(07)'     IT_XD01-KTONR6.
        perform bdc_field       using 'RF02D-KTONR(08)'     IT_XD01-KTONR7.
        perform bdc_field       using 'RF02D-KTONR(10)'     IT_XD01-KTONR8.
        perform bdc_field       using 'RF02D-KTONR(11)'     IT_XD01-KTONR9.
        if session = 'X'.
          PERFORM BDC_FIELD       USING 'BDC_OKCODE'          'FCNP'.
          perform bdc_dynpro      using 'SAPMF02D'            '0324'.
        perform bdc_field       using 'BDC_CURSOR'        'RF02D-KTONR(01)'.
          perform bdc_field       using 'BDC_OKCODE'           '=ENTR'.
      perform bdc_field       using 'RF02D-KTONR(01)'       IT_XD01-KTONR10.
        else.
        perform bdc_field       using 'RF02D-KTONR(12)'     IT_XD01-KTONR10.
        endif.
        perform bdc_dynpro      using 'SAPMF02D'              '0324'.
    perform bdc_field       using 'BDC_CURSOR'            'KNVP-PARVW(01)'.
        perform bdc_field       using 'BDC_OKCODE'            '=UPDA'.
        perform bdc_transaction using 'XD01'.
      ENDLOOP.
    refresh it_xd01.
      perform close_group.
    *&      Form  upload
          text
    -->  p1        text
    <--  p2        text
    form upload.
      move p_fnam to p_fname.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                      = p_fname
          FILETYPE                      = 'ASC'
          HAS_FIELD_SEPARATOR           = 'X'
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
        tables
          data_tab                      = it_xd01
    EXCEPTIONS
      FILE_OPEN_ERROR               = 1
      FILE_READ_ERROR               = 2
      NO_BATCH                      = 3
      GUI_REFUSE_FILETRANSFER       = 4
      INVALID_TYPE                  = 5
      NO_AUTHORITY                  = 6
      UNKNOWN_ERROR                 = 7
      BAD_DATA_FORMAT               = 8
      HEADER_NOT_ALLOWED            = 9
      SEPARATOR_NOT_ALLOWED         = 10
      HEADER_TOO_LONG               = 11
      UNKNOWN_DP_ERROR              = 12
      ACCESS_DENIED                 = 13
      DP_OUT_OF_MEMORY              = 14
      DISK_FULL                     = 15
      DP_TIMEOUT                    = 16
      OTHERS                        = 17
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    *Rajat Change
    *End Change
    endform.                    " upload
    *&      Form  US
          text
    -->  p1        text
    <--  p2        texT
    NOTE : THAT I HAVE NOT USED AN LOOP FOR TABLE CONTROL BECOZ MY FLAT FILE WAS IN DIFFERENT FORMAT

    What's the problem?
    Regds
    Manohar

  • Structure set_table_for_first_display

    Hi abappers,
    I want fill the ALV with the data of my table internal TAB2:
    LOOP AT TAB1.
        MOVE TAB1-CAMPO+2(9) TO STCD1_OLD.
        MOVE TAB1-CAMPO+11(9) TO STCD1_NEW.
        SELECT SINGLE * FROM KNA1 WHERE STCD1 EQ STCD1_OLD.
        IF SY-SUBRC = 0.
          MOVE KNA1-KUNNR TO TAB2-KUNNR.
          MOVE KNA1-KTOKD TO TAB2-KTOKD.
          MOVE KNA1-LAND1 TO TAB2-LAND1.
          MOVE KNA1-NAME1 TO TAB2-NAME1.
            MOVE KNA1-STCD1 TO TAB2-STCD1_OLD.
            MOVE STCD1_NEW TO TAB2-STCD1_NEW.
          MOVE KNA1-STCEG TO TAB2-STCEG.
          MOVE KNA1-STCD4 TO TAB2-STCD4.
          MOVE KNA1-YYCTC TO TAB2-YYCTC.
          MOVE KNA1-AUFSD TO TAB2-AUFSD.
          MOVE KNA1-CASSD TO TAB2-CASSD.
          MOVE KNA1-LOEVM TO TAB2-LOEVM.
          MOVE KNA1-SPERR TO TAB2-SPERR.
          MOVE KNA1-SPERZ TO TAB2-SPERZ.
          APPEND TAB2.
        ELSE.
          WRITE: / TEXT-100, STCD1_OLD.
        ENDIF.
    ENDLOOP.
        CALL METHOD go_grid->set_table_for_first_display
          EXPORTING i_structure_name = 'XXXXXXXX'
          CHANGING  it_outtab        = TAB2[].
    But when I want call method, I don´t know the structure, and I can not pass the structure fo KNA1, because 2 fields are different STCD1_OLD and STCD1_NEW.
    Can you help me, please?
    Cordial greetings.

    Then you will not use the structure parameter, instead fill a field catalog and pass that. Here is an example.
    REPORT ZRICH_0001.
    TABLES: MARA.
    DATA: BEGIN OF I_ALV OCCURS 0,
          MATNR TYPE MARA-MATNR,
          MAKTX TYPE MAKT-MAKTX,
          END OF I_ALV.
    DATA: ALV_CONTAINER  TYPE REF TO CL_GUI_CUSTOM_CONTAINER.
    DATA: ALV_GRID       TYPE REF TO CL_GUI_ALV_GRID.
    DATA: FIELDCAT  TYPE LVC_T_FCAT.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001 .
    SELECT-OPTIONS: S_MATNR FOR MARA-MATNR.
    SELECTION-SCREEN END OF BLOCK B1.
    START-OF-SELECTION.
      PERFORM GET_DATA.
      CALL SCREEN 100.
    *      Module  status_0100  OUTPUT
    MODULE STATUS_0100 OUTPUT.
      SET PF-STATUS '0100'.
      SET TITLEBAR '0100'.
    * Create Controls
      CREATE OBJECT ALV_CONTAINER
             EXPORTING
                   CONTAINER_NAME    = 'ALV_CONTAINER'.
      CREATE OBJECT ALV_GRID
             EXPORTING
                   I_PARENT          =  ALV_CONTAINER.
    *  ALV Specific. Data selection.
    *  Populate Field Catalog
      PERFORM GET_FIELDCATALOG.
      CALL METHOD ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY
          CHANGING
               IT_OUTTAB       = I_ALV[]
               IT_FIELDCATALOG = FIELDCAT[].
    ENDMODULE.
    *      Module  USER_COMMAND_0100  INPUT
    MODULE USER_COMMAND_0100 INPUT.
      CASE SY-UCOMM.
        WHEN 'BACK' OR 'CANC'.
          IF NOT ALV_CONTAINER IS INITIAL.
            CALL METHOD ALV_CONTAINER->FREE.
            CLEAR: ALV_CONTAINER.
            FREE : ALV_CONTAINER.
          ENDIF.
          IF SY-SUBRC = 0.
            SET SCREEN 0.
            LEAVE SCREEN.
          ELSE.
            LEAVE PROGRAM.
          ENDIF.
        WHEN 'EXIT'.
          IF NOT ALV_CONTAINER IS INITIAL.
            CALL METHOD ALV_CONTAINER->FREE.
            CLEAR: ALV_CONTAINER.
            FREE : ALV_CONTAINER.
          ENDIF.
          LEAVE PROGRAM.
      ENDCASE.
    ENDMODULE.
    * FORM GET_DATA
    FORM GET_DATA.
      SELECT * INTO CORRESPONDING FIELDS OF TABLE I_ALV
            FROM MARA
              INNER JOIN MAKT
                ON MARA~MATNR = MAKT~MATNR
                   WHERE MARA~MATNR IN S_MATNR
                     AND MAKT~SPRAS = SY-LANGU.
      SORT I_ALV ASCENDING BY MATNR.
    ENDFORM.
    *      Form  Get_Fieldcatalog - Set Up Columns/Headers
    FORM GET_FIELDCATALOG.
      DATA: LS_FCAT TYPE LVC_S_FCAT.
      REFRESH: FIELDCAT.
      CLEAR: LS_FCAT.
      LS_FCAT-REPTEXT    = 'Material Number'.
      LS_FCAT-COLTEXT    = 'Material Number'.
      LS_FCAT-FIELDNAME  = 'MATNR'.
      LS_FCAT-REF_TABLE  = 'I_ALV'.
      LS_FCAT-OUTPUTLEN  = '18'.
      LS_FCAT-COL_POS    = 1.
      APPEND LS_FCAT TO FIELDCAT.
      CLEAR: LS_FCAT.
      LS_FCAT-REPTEXT    = 'Material Description'.
      LS_FCAT-COLTEXT    = 'Material Description'.
      LS_FCAT-FIELDNAME  = 'MAKTX'.
      LS_FCAT-REF_TABLE  = 'I_ALV'.
      LS_FCAT-OUTPUTLEN  = '40'.
      LS_FCAT-COL_POS    = 2.
      APPEND LS_FCAT TO FIELDCAT.
    ENDFORM.
    Regards,
    Rich Heilman

  • Uploading info records by using BDC

    Hi all,
    Does any one having knowledge in uploading info records (ME11) by using BDC.
    Problem arises when going for multiple scales.
    Can any one let me know how proceed this BDC.
    Regards,
    Raj

    Goto transaction SHBD enter a recording name and specify the transaction code.
    Enter the test data and save it , it will actomatically create a bdc program.
    now select that recording name and click create program icon and specify the program name.
    This is the program which was created using transaction SHDB for XD01.
    include bdcrecx1.
    parameters: dataset(132) lower case.
    DO NOT CHANGE - the generated data section - DO NOT CHANGE ***
    If it is nessesary to change the data section use the rules:
    1.) Each definition of a field exists of two lines
    2.) The first line shows exactly the comment
    '* data element: ' followed with the data element
    which describes the field.
    If you don't have a data element use the
    comment without a data element name
    3.) The second line shows the fieldname of the
    structure, the fieldname must consist of
    a fieldname and optional the character '_' and
    three numbers and the field length in brackets
    4.) Each field must be type C.
    Generated data section with specific formatting - DO NOT CHANGE ***
    data: begin of record,
    data element: KUN16
    KUNNR_001(016),
    data element: BUKRS
    BUKRS_002(004),
    data element: VKORG
    VKORG_003(004),
    data element: VTWEG
    VTWEG_004(002),
    data element: SPART
    SPART_005(002),
    data element: KTOKD
    KTOKD_006(004),
    data element: ANRED
    ANRED_007(015),
    data element: NAME1_GP
    NAME1_008(035),
    data element: SORTL
    SORTL_009(010),
    data element: NAME2_GP
    NAME2_010(035),
    data element: STRAS_GP
    STRAS_011(035),
    data element: PFACH
    PFACH_012(010),
    data element: ORT01_GP
    ORT01_013(035),
    data element: PSTLZ
    PSTLZ_014(010),
    data element: ORT02_GP
    ORT02_015(035),
    data element: PFORT_GP
    PFORT_016(035),
    data element: PSTL2
    PSTL2_017(010),
    data element: LAND1_GP
    LAND1_018(003),
    data element: REGIO
    REGIO_019(003),
    data element: SPRAS
    SPRAS_020(002),
    data element: TELX1
    TELX1_021(030),
    data element: TELF1
    TELF1_022(016),
    data element: TELFX
    TELFX_023(031),
    data element: TELF2
    TELF2_024(016),
    data element: TELTX
    TELTX_025(030),
    data element: TELBX
    TELBX_026(015),
    data element: URL
    KNURL_027(132),
    data element: STCD1
    STCD1_028(016),
    data element: STCD2
    STCD2_029(011),
    data element: BBBNR
    BBBNR_030(007),
    data element: BBSNR
    BBSNR_031(005),
    data element: BUBKZ
    BUBKZ_032(001),
    data element: BRSCH
    BRSCH_033(004),
    data element: LZONE
    LZONE_034(010),
    data element: KUKLA
    KUKLA_035(002),
    data element: BRSCH
    BRSCH_036(004),
    data element: UMSA1
    UMSA1_037(020),
    data element: UWAER
    UWAER_038(005),
    data element: UMJAH
    UMJAH_039(004),
    data element: JMZAH
    JMZAH_040(006),
    data element: JMJAH
    JMJAH_041(004),
    data element: BANKS
    BANKS_01_042(003),
    data element: BANKK
    BANKL_01_043(015),
    data element: BANKN
    BANKN_01_044(018),
    data element: ABLAD
    ABLAD_01_045(025),
    data element: KNKAL
    KNFAK_01_046(002),
    data element: CIVVE
    CIVVE_047(001),
    data element: ANRED_AP
    ANRED_01_048(030),
    data element: ANRED_AP
    ANRED_02_049(030),
    data element: NAMEV_VP
    NAMEV_01_050(035),
    data element: NAMEV_VP
    NAMEV_02_051(035),
    data element: NAME1_GP
    NAME1_01_052(035),
    data element: NAME1_GP
    NAME1_02_053(035),
    data element: TELF1
    TELF1_01_054(016),
    data element: TELF1
    TELF1_02_055(016),
    data element: ABTNR_PA
    ABTNR_01_056(004),
    data element: ABTNR_PA
    ABTNR_02_057(004),
    data element: AKONT
    AKONT_058(010),
    data element: DZTERM
    ZTERM_059(004),
    data element: MAHNA
    MAHNA_060(004),
    data element: BZIRK
    BZIRK_061(006),
    data element: AWAHR
    AWAHR_062(003),
    data element: WAERS_V02D
    WAERS_063(005),
    data element: KALKS
    KALKS_064(001),
    data element: LPRIO
    LPRIO_065(002),
    data element: KZAZU_D
    KZAZU_066(001),
    data element: ANTLF
    ANTLF_067(001),
    data element: PERFK
    PERFK_068(002),
    end of record.
    End generated data section ***
    start-of-selection.
    perform open_dataset using dataset.
    perform open_group.
    do.
    read dataset dataset into record.
    if sy-subrc <> 0. exit. endif.
    perform bdc_dynpro using 'SAPMF02D' '0100'.
    perform bdc_field using 'BDC_CURSOR'
    'RF02D-KTOKD'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'RF02D-KUNNR'
    record-KUNNR_001.
    perform bdc_field using 'RF02D-BUKRS'
    record-BUKRS_002.
    perform bdc_field using 'RF02D-VKORG'
    record-VKORG_003.
    perform bdc_field using 'RF02D-VTWEG'
    record-VTWEG_004.
    perform bdc_field using 'RF02D-SPART'
    record-SPART_005.
    perform bdc_field using 'RF02D-KTOKD'
    record-KTOKD_006.
    perform bdc_dynpro using 'SAPMF02D' '0110'.
    perform bdc_field using 'BDC_CURSOR'
    'KNA1-KNURL'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'KNA1-ANRED'
    record-ANRED_007.
    perform bdc_field using 'KNA1-NAME1'
    record-NAME1_008.
    perform bdc_field using 'KNA1-SORTL'
    record-SORTL_009.
    perform bdc_field using 'KNA1-NAME2'
    record-NAME2_010.
    perform bdc_field using 'KNA1-STRAS'
    record-STRAS_011.
    perform bdc_field using 'KNA1-PFACH'
    record-PFACH_012.
    perform bdc_field using 'KNA1-ORT01'
    record-ORT01_013.
    perform bdc_field using 'KNA1-PSTLZ'
    record-PSTLZ_014.
    perform bdc_field using 'KNA1-ORT02'
    record-ORT02_015.
    perform bdc_field using 'KNA1-PFORT'
    record-PFORT_016.
    perform bdc_field using 'KNA1-PSTL2'
    record-PSTL2_017.
    perform bdc_field using 'KNA1-LAND1'
    record-LAND1_018.
    perform bdc_field using 'KNA1-REGIO'
    record-REGIO_019.
    perform bdc_field using 'KNA1-SPRAS'
    record-SPRAS_020.
    perform bdc_field using 'KNA1-TELX1'
    record-TELX1_021.
    perform bdc_field using 'KNA1-TELF1'
    record-TELF1_022.
    perform bdc_field using 'KNA1-TELFX'
    record-TELFX_023.
    perform bdc_field using 'KNA1-TELF2'
    record-TELF2_024.
    perform bdc_field using 'KNA1-TELTX'
    record-TELTX_025.
    perform bdc_field using 'KNA1-TELBX'
    record-TELBX_026.
    perform bdc_field using 'KNA1-KNURL'
    record-KNURL_027.
    perform bdc_dynpro using 'SAPMF02D' '0120'.
    perform bdc_field using 'BDC_CURSOR'
    'KNA1-LZONE'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'KNA1-STCD1'
    record-STCD1_028.
    perform bdc_field using 'KNA1-STCD2'
    record-STCD2_029.
    perform bdc_field using 'KNA1-BBBNR'
    record-BBBNR_030.
    perform bdc_field using 'KNA1-BBSNR'
    record-BBSNR_031.
    perform bdc_field using 'KNA1-BUBKZ'
    record-BUBKZ_032.
    perform bdc_field using 'KNA1-BRSCH'
    record-BRSCH_033.
    perform bdc_field using 'KNA1-LZONE'
    record-LZONE_034.
    perform bdc_dynpro using 'SAPMF02D' '0125'.
    perform bdc_field using 'BDC_CURSOR'
    'KNA1-JMJAH'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'KNA1-KUKLA'
    record-KUKLA_035.
    perform bdc_field using 'KNA1-BRSCH'
    record-BRSCH_036.
    perform bdc_field using 'KNA1-UMSA1'
    record-UMSA1_037.
    perform bdc_field using 'KNA1-UWAER'
    record-UWAER_038.
    perform bdc_field using 'KNA1-UMJAH'
    record-UMJAH_039.
    perform bdc_field using 'KNA1-JMZAH'
    record-JMZAH_040.
    perform bdc_field using 'KNA1-JMJAH'
    record-JMJAH_041.
    perform bdc_dynpro using 'SAPMF02D' '0130'.
    perform bdc_field using 'BDC_CURSOR'
    'KNBK-BANKN(01)'.
    perform bdc_field using 'BDC_OKCODE'
    '=ENTR'.
    perform bdc_field using 'KNBK-BANKS(01)'
    record-BANKS_01_042.
    perform bdc_field using 'KNBK-BANKL(01)'
    record-BANKL_01_043.
    perform bdc_field using 'KNBK-BANKN(01)'
    record-BANKN_01_044.
    perform bdc_dynpro using 'SAPMF02D' '0130'.
    perform bdc_field using 'BDC_CURSOR'
    'KNBK-BANKS(01)'.
    perform bdc_field using 'BDC_OKCODE'
    '=ENTR'.
    perform bdc_dynpro using 'SAPMF02D' '0340'.
    perform bdc_field using 'BDC_CURSOR'
    'KNVA-KNFAK(01)'.
    perform bdc_field using 'BDC_OKCODE'
    '=ENTR'.
    perform bdc_field using 'KNVA-ABLAD(01)'
    record-ABLAD_01_045.
    perform bdc_field using 'KNVA-KNFAK(01)'
    record-KNFAK_01_046.
    perform bdc_dynpro using 'SAPMF02D' '0340'.
    perform bdc_field using 'BDC_CURSOR'
    'RF02D-KUNNR'.
    perform bdc_field using 'BDC_OKCODE'
    '=ENTR'.
    perform bdc_dynpro using 'SAPMF02D' '0370'.
    perform bdc_field using 'BDC_CURSOR'
    'KNA1-CIVVE'.
    perform bdc_field using 'BDC_OKCODE'
    '=ENTR'.
    perform bdc_field using 'KNA1-CIVVE'
    record-CIVVE_047.
    perform bdc_dynpro using 'SAPMF02D' '0360'.
    perform bdc_field using 'BDC_CURSOR'
    'KNVK-ABTNR(02)'.
    perform bdc_field using 'BDC_OKCODE'
    '=ENTR'.
    perform bdc_field using 'KNVK-ANRED(01)'
    record-ANRED_01_048.
    perform bdc_field using 'KNVK-ANRED(02)'
    record-ANRED_02_049.
    perform bdc_field using 'KNVK-NAMEV(01)'
    record-NAMEV_01_050.
    perform bdc_field using 'KNVK-NAMEV(02)'
    record-NAMEV_02_051.
    perform bdc_field using 'KNVK-NAME1(01)'
    record-NAME1_01_052.
    perform bdc_field using 'KNVK-NAME1(02)'
    record-NAME1_02_053.
    perform bdc_field using 'KNVK-TELF1(01)'
    record-TELF1_01_054.
    perform bdc_field using 'KNVK-TELF1(02)'
    record-TELF1_02_055.
    perform bdc_field using 'KNVK-ABTNR(01)'
    record-ABTNR_01_056.
    perform bdc_field using 'KNVK-ABTNR(02)'
    record-ABTNR_02_057.
    perform bdc_dynpro using 'SAPMF02D' '0360'.
    perform bdc_field using 'BDC_CURSOR'
    'KNVK-NAMEV(01)'.
    perform bdc_field using 'BDC_OKCODE'
    '=ENTR'.
    perform bdc_dynpro using 'SAPMF02D' '0210'.
    perform bdc_field using 'BDC_CURSOR'
    'KNB1-AKONT'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'KNB1-AKONT'
    record-AKONT_058.
    perform bdc_dynpro using 'SAPMF02D' '0215'.
    perform bdc_field using 'BDC_CURSOR'
    'KNB1-ZTERM'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'KNB1-ZTERM'
    record-ZTERM_059.
    perform bdc_dynpro using 'SAPMF02D' '0220'.
    perform bdc_field using 'BDC_CURSOR'
    'KNB5-MAHNA'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'KNB5-MAHNA'
    record-MAHNA_060.
    perform bdc_dynpro using 'SAPMF02D' '0230'.
    perform bdc_field using 'BDC_CURSOR'
    'KNB1-VRSNR'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_dynpro using 'SAPMF02D' '0310'.
    perform bdc_field using 'BDC_CURSOR'
    'KNVV-WAERS'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'KNVV-BZIRK'
    record-BZIRK_061.
    perform bdc_field using 'KNVV-AWAHR'
    record-AWAHR_062.
    perform bdc_field using 'KNVV-WAERS'
    record-WAERS_063.
    perform bdc_field using 'KNVV-KALKS'
    record-KALKS_064.
    perform bdc_dynpro using 'SAPMF02D' '0315'.
    perform bdc_field using 'BDC_CURSOR'
    'KNVV-LPRIO'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'KNVV-LPRIO'
    record-LPRIO_065.
    perform bdc_field using 'KNVV-KZAZU'
    record-KZAZU_066.
    perform bdc_field using 'KNVV-ANTLF'
    record-ANTLF_067.
    perform bdc_dynpro using 'SAPMF02D' '0320'.
    perform bdc_field using 'BDC_CURSOR'
    'KNVV-PERFK'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'KNVV-PERFK'
    record-PERFK_068.
    perform bdc_dynpro using 'SAPMF02D' '1350'.
    perform bdc_field using 'BDC_CURSOR'
    'RF02D-KUNNR'.
    perform bdc_field using 'BDC_OKCODE'
    '=ENTR'.
    perform bdc_dynpro using 'SAPMF02D' '0324'.
    perform bdc_field using 'BDC_CURSOR'
    'KNVP-PARVW(01)'.
    perform bdc_field using 'BDC_OKCODE'
    '=ENTR'.
    perform bdc_transaction using 'XD01'.
    enddo.
    perform close_group.
    perform close_dataset using dataset.
    Reward if found helpful....
    Cheers,
    Chandra Sekhar.

  • How to call driver program internal table in a form

    how to call driver program internal table in a form? Given below is my code
    TABLES: VBRK,VBAK,ADRC,KNA1,VBRP,VBAP,J_1IMOCOMP.
    DATA: BEGIN OF IT_CUST_ADD OCCURS 0,
    STREET LIKE ADRC-STREET,
    NAME LIKE ADRC-NAME1,
    POST_CODE LIKE ADRC-PSTCD1,
    CITY LIKE ADRC-CITY1,
    CUST_TIN LIKE KNA1-STCD1,
    END OF IT_CUST_ADD.
    DATA: BEGIN OF IT_IN_DA OCCURS 0,
    VBELN LIKE VBRK-VBELN,
    FKDAT LIKE VBRK-FKDAT,
    END OF IT_IN_DA.
    now suppose these are my internal table. what should i write in FORM INTERFACE (associated type)

    Hi Sashi, this will solve ur problem.
    Check the below link.
    REG:PEFORM IN SCRIPT
    kindly reward if found helpful.
    cheers,
    Hema.

  • Sales to cash..........problem with field addr1_data-name_co

    Hi guys,
    Im really stuck and i need to know where the field in the screen 301 of program
    saplsza1 is getting stored in pai... because ive got some issue wherei have to store the tax value in kna1-stcd1 instead of co field in the xd02 transaction and therby i have to point this field to the sapscript form..
    Will award points for this

    answered

  • Sap form

    INVOICE WINDOW
    1. Company Address - Details FS: 5
    - LOGIC ADRC-ADRNR = T001-ADRNR(T001-BUKRS = L_ROW-CCFR)
    - GET : NAME1, STREET, HOUSE NUM1,CITY1, POST CODE1, COUNTRY
    2. Bank Details : Details FS : 6
    - LOGIC
    LFBK first record where LIFNR = L_ROW-CUSTTO
    BNKA where BANKS = LFBK-BANKS and BANKL = LFBK-BANKL (select single)
    print out the following:
    BNKA-BANKA (1st line)
    BNKA-STRAS (2nd line), only if not empty
    BNKA-ORT01 (3rd line, only if not empty)
    Account number BNKA-BANKN
    DOCU – WINDOW
    This is the window on the top right side
    1.Document no (hard coded)
    2.Then display the document number for the first document for the current row. Maybe you should check prior to printing if the current row was posted error free   
       and invoke printing only if this is the case. Then get the first(!!!) document number from the error/message log for this row. ZGF_ICO_RECHR_L-DOCFR
    3. Document date (hard coded) it is P_BLDAT on the selection screen, already correct in the form
    4. VAT No (hard coded)
    5. Then display the EU VAT reg.no of that company. This is in table KNA1, where KUNNR = L_ROW-CUSTFR. The field is KNA1-STCEG, if it is empty, try to populate
         KNA1-STCD1.
    6. Order number(Hard coded)
    7. Just concatenate L_ROW-REF + the last number for that reference from the log table ZGF_ICO_RECHR_L (notice this table has not yet been created!!! and also
        the part is missing where we populate that table when posting both documents for a particular row) ZGF_ICO_RECHR_L-REF+NUMBER

    Hi
    There are different ways of doing it. It all depends on how flexible you want to be about a solution.
    1. You can create a standard text (transaction SO10) and in your sapscript insert the INCLUDE statement with the name of your text.
    2. Or if your document supports texts at the header level then you can create a new text type and have a user to type it in. In your sapscript you will need to insert the INCLUDE statement as well. You can even set a default text for this new text type to get it from the standard text (created in 1.)
    In both cases you will need to create a new Element in MAIN window of your sapscript:
    /E SPECIAL_INSTRUCTIONS
    INCLUDE &MY_NAME& OBJECT ... etc.
    and call this element from within the print program after the items have been processed. There must be a kind of loop in the program to go through all the items. Insert your WRITE_FORM FM after that loop.
    Thanks,
    Wojtek

Maybe you are looking for

  • Macbook pro takes long to boot up 30 minutes

    Hi all, First of all, thanks for all the help this community has provided so far. Unfortunately I haven't been able to find a solution so far. Product: MacBook Pro (13-inch, Mid 2010) OS X 10.6.8 2.4GHz Intel core 2 duo 4GB 1067 MHz DDR3 It is quite

  • HT1349 I over scratched the code on my $25 iTunes Gift Card and I cant read it, what do I do?

    i overscratched the label on my $25 itunes card and about half of the redemption code is unavailble i dont want to waste the money value and i already went back to the retailer i purchased the card and they couldnt do anything and then i tried going

  • No COPA document for Cost of Goods Sold

    I am using both account-based and costing-based COPA.  All transactions from SD billing and FI are posted to COPA. However, document type WL (goods issue/delivery) does not create a profitability analysis document even if the profitability segment in

  • Question on forms property

    I'm trying to upgrade from forms 4.5 to 9i. We have properties of buttons with background color of white. I want to change it to gray. Can we do this without opening a form, in a batch. Because we have 500 forms. Can any one help me please. Or is the

  • REASON OF REJECTION AT SALES ORDER ITEM LEVEL

    In sales order item level after putting reason of rejection wether net value of sales order changed to ZERO Value? In Sales infromation system for that particular customer & material sales  order value reflects in report? Kindly send your comments on