Reminder letter against PO

Hi ,
How can I send reminder letter to vendor against PO . What are the settings and T.Code.
Regards
nandini

HI,
the T.code  is  ME91F .
There are I4 purhasing value keys_
1-reminder days
2-Tolerance limits
3-shipping instructions
4-order acknowledgment requirement
1-reminder days
Number of days representing the time interval at which reminders or
urging letters/messages are to be issued to the vendor.
Example
In the event of a delay in delivery, you can send messages urging
the vendor to deliver ordered materials a total of three times,
at intervals of 10 days:
Reminder 1: 10 days (after delivery date)
Reminder 2: 20 days (after delivery date)
Reminder 3: 30 days (after delivery date).
2-Tolerance limits
Underdelivery tolerance limit ->
Percentage (based on the order quantity) up to which an
underdelivery of this item will be accepted.
Overdelivery tolerance limit ->
Percentage (based on the order quantity) up to which an overdelivery
of this item will be accepted.
3-shipping instructions
Specifies the packaging and shipping instructions issued to the vendor.
4-order acknowledgment requirement
Determines whether the purchasing document ( purchase order, outline
purchase agreement, etc.) is to be acknowledged by the vendor.
This data appears as default data in purchasing documents and is
taken from the material master record (unless a purchasing info record
exists, in which case it is taken from the latter source).
These messages are created using TA: ME91F using the defined reminder
days defined in the detail screen of the item in the p.o.
Messages of type MAHN are always created delivery date plus the reminder
days. You can also use negative reminder days so that the vendor is
reminded some days before the requested delivery date.
I hope this information helps!.
Best Regards,
Arminda Jack

Similar Messages

  • Reminder number logic in PO reminder letter

    Hi All,
    I am doing a smartform for PO reminder letter. I want to print the reminder number in the layout.
    Is there any standard FM or code where i can find the reminder number of PO?
    Thanks
    Kapil

    LMEXF001
    MM06E003

  • How to define reminder letter before due date

    Dear Expert,
    How to define dunning procedure in FBMP (for tcode F150) for this condition:
    1st reminder letter should be generated 7 days before due date.
    Currently the setting for dunning level is 4 (days in arrears: blank, 14, 60, 180)
    But I confuse how to be set in 'Days in Arrears' for the first reminder letter?(I set blank since could not set as negative, e.g -7 (7 days before due dates)
    Kindly advice
    Thank you.

    Hi
    maintain Denning Level like Below
    Days in arrears            0    7  53   173
    Calculate interest
    Print Parameters
    Always dun?
    Print all items
    Payment deadline      7     7     7   7
    hope it will resolve your issue
    satish

  • Material expiry reminder letter to user

    Hi ,
    In cases where there is shelf life of material we have made a provision that upon expiry date the material will automatically move to blocked stock. Is there anyway that user is prompted with reminder letter about what material has reached expiry date so that such items can be used .
    Regards
    Nandini

    Hi ,
    i think you can MB5M Report a to generate and send it to the user email box..
    you can standared Configs ..like we do for batch jobs...Weekly or monthly....

  • Collection / Reminder Letter

    Hi Gurus,
    Is there a transaction code in SAP where we can readily print a collection or reminder letters for Customers with overdue accounts.  As of now, we are creating the letter manually per Customer.
    Thank You.

    Hi.
    In SAP ,  you can Use Dunning Procedure to Send Reminder Letters to Customers in different Levels ..up to 9 Maximum.
    you can know more details go throw the details in the below Notes for Configuration go to T.code FBMP , Below is the Path
    SPRO -Financial Accounting (New)-Accounts Receivable and Accounts Payable-Business Transactions-Dunning
    Definition:
    Dunning is a reminder to the customer or vendor to make payment on outstanding invoices. It typically consists of a letter that summarizes the invoices that are past due and politely requests payment to be made. When you customize dunning you have to create dunning area like at what level you want to use the dunning, like business area level or company code level. After that you have to make settings for dunning procedure, in that you have to define no of due dates and no of dunning levels. there are maximum 9 levels are there.
    Thanks
    Goutam

  • Vendor reminder letter by email

    Hi all,
    I want reminder letters to be sent to vendors automatically by email, till he supplies all the qty of PO. Pls guide for the complete pro. Have configured the system til MAHN output type.
    Regards,

    Hi
    Follow the procedure
    Dunning Procedure. For PO through Mail
    Spro - SAP NetWeaver - Application Server - Basis Services - Message Control - Determine communication Strategy
    1) Here Select Strategy CS01 ans click communication Type on Left side and select INT in Position 1 and save.
    2 ) Spro - MM- Purchasing - Messages - Output Control - Message types - Define Message types to PO execute
    here select Message type MAHN and click Processing Routines .In Medium select option 5(External Send).Select MAHN line item andclick details and maintain Medium as External for Funt OA,VN,DP then save.
    Go back to  
    Spro - MM- Purchasing - Messages - Output Control - Message types - Define Message types to PO - select  "Fine-Tuned Control: Purchase Order"
    Here maintain operation as 3,CType as MAHN and do nat check the box. Save.
    Next proceed as follow :
    Me21n
    ME9F-PO print Hard copy
    ME91F u2013 Generate Messages,Save.
    ME9f- output type u2013 MAHN .
    Maintain Conditionj Record  In MN04 for PO and for RFQ MN01
    Go to /nSOST and double click on Status to check the mail is delivered.
    Hope this helps you.
    Regards,
    JNRKMM

  • F150 - Dunning Reminder letter with Open Line Items

    Hi to all
    I have requirement from client.
    Standard SAP provides Dunning for only Overdue items,  but my client is having the procedure of considering all open items for legal dunning in their legacy system.  They expecting the same in SAP. 
    Please help me out in this reg.
    Thank you very much for your co-operation.
    regards,
    Zeenath.

    In FBMP, select the dunning procedure, Select dunning levels, and select the Print all items.
    Print All Items?
    This indicator determines that all open items are to be printed in the dunning notices that have this dunning level. The dunning level of the dunning notice is the same as the highest dunning level of the items in the notice.
    This is generally required for higher dunning levels in order to give the customer/vendor an overview of the whole account balance.
    Items blocked for dunning or where automatic debit is allowed, are not displayed.
    Items paid before the due date that have a special G/L indicator are only displayed if the special G/L indicator is defined for the dunning notice.
    Note
    The indicator does not have any effect if the creation of separate dunning notices per dunning level was selected in a  company code. The open items not yet due cannot then be assigned properly to a dunning notice.

  • Purchase order reminder letter printing

    Hi all
    I have a purchase order with more than one line item with different statuses and i want to print the line items as separate documents, in other words i want to generate one separate form for line items with same status and if the purchase order has line items with 2 different statuses then 2 forms should be generated. At the moment the functionality only generates one form irregardless of statuses

    U need to make changes to ur driver program, loop at ur line items table and depending on the line items u want to print in one form append them to an internal table and pass it to smartform fm inside the loop and clear this temp table at the end.
    кu03B1ятu03B9к

  • Dunning letter

    hi experts,
    iam asked to modify one standard sapscript and respective print program of dunning letter , for fi module. for tcode f150. original object is displaying dunning letter output for each customer. when i copied the same object and tried to execute, output is nil. i activated each and every include program etc, but in vain. according to FI consultant they dont maintain application in NACE. so i dnt know how to interlink print program and sapscript, in the original print program form name is not mentioned, i dnt know how the output is displayed in the form of sapscript.
    my requirement is as follows
    The customer is sent the gentle reminder letter for the out standing balances to be received by them. When ever the dunning program is run based on the dunning procedure assigned in the customer master and the level in the customer master, F150 program should be able to print the dunning letter for the customer correspondence.
    MY STANDARD PROGRAM IS FOLLOWS
    REPORT RFMAHN20 MESSAGE-ID FM NO STANDARD PAGE HEADING.
    declaration for dunning lists
    INCLUDE RFMAHNXXTOP.
    tables declaration
    TABLES: T001.
    declaration for independend forms
    INCLUDE RFMAHNXXFORM.
    declaration
    DATA: BEGIN OF MHNK_ACC,
            KOART       LIKE MHNK-KOART,
            BUKRS       LIKE MHNK-BUKRS,
            KUNNR       LIKE MHNK-KUNNR,
            LIFNR       LIKE MHNK-LIFNR,
            KONTO       LIKE MHNK-KUNNR,
            SELKEY      LIKE SY-TABIX,
            L_INCL      LIKE F150V-L_INCL,
            HSORT1(16)  TYPE C,
            HSORT2(16)  TYPE C,
            HSORT3(16)  TYPE C,
            HSORT4(16)  TYPE C,
            HSORT5(16)  TYPE C,
          END OF MHNK_ACC.
    declaration
    DATA:   T_MHNK     LIKE MHNK     OCCURS 10 WITH HEADER LINE.
    DATA    T_MHNK_ACC LIKE standard table of MHNK_ACC
              with key koart bukrs konto  WITH HEADER LINE.
    parameters & select options
    SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS: P_KOART FOR MHNK-KOART,
                    P_BUKRS FOR MHNK-BUKRS,
                    P_KUNNR FOR MHNK-KUNNR,
                    P_LIFNR FOR MHNK-LIFNR.
    SELECTION-SCREEN END OF BLOCK 1.
    INITIALIZATION.
      H_REPID               = SY-REPID.
      H_ACTVT               = '13'.        "display dunning history
      H_TABNAME_HEADER      = 'MHNK_ACC'.
      H_TABNAME_ITEM        = 'MHNK_EXT'.
      H_SET_PF_STATUS       = 'SET_PF_STATUS'.
      H_USER_COMMAND        = 'USER_COMMAND_0001'.
      H_VARIANT-REPORT      = H_REPID.
      H_VARIANT-LOG_GROUP   = '0001'.
      H_VARIANT-HANDLE      = '0001'.
      H_LAYOUT-DETAIL_POPUP = 'X'.
    START-OF-SELECTION.
      select the information from MHNK
      SELECT * FROM MHNK INTO  TABLE T_MHNK
                         WHERE KOART IN P_KOART AND
                               BUKRS IN P_BUKRS AND
                               KUNNR IN P_KUNNR AND
                               LIFNR IN P_LIFNR.
      build the tables for the listviewer
      PERFORM CREATE_TABLES    TABLES   T_MHNK T_MHNK_ACC T_MHNK_EXT.
    END-OF-SELECTION.
      fill the fieldcatalog
      PERFORM FILL_FIELDCAT TABLES   T_FIELDCAT
                            USING    H_TABNAME_HEADER H_TABNAME_ITEM.
      determine the keyinfo
      PERFORM FILL_KEYINFO  CHANGING H_KEYINFO.
      register the list events
      PERFORM REGISTER_EVENTS TABLES T_EVENTS.
    Check if default-variant is existing (default or user-default )
    h_variant-variant has to be empty for this check, otherwise it is
    checked whether this variant is existing.
      H_VARIANT-VARIANT = SPACE.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
           EXPORTING
                I_SAVE        = 'A'
           CHANGING
                CS_VARIANT    = H_VARIANT
           EXCEPTIONS
                WRONG_INPUT   = 1
                NOT_FOUND     = 2
                PROGRAM_ERROR = 3
                OTHERS        = 4.
      IF SY-SUBRC = 2.
      default-variant not existing, therefor get variant 0
        H_VARIANT-VARIANT = '0'.
      ELSEIF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      display the list
      CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
           EXPORTING
                I_INTERFACE_CHECK        = ' '
                I_CALLBACK_PROGRAM       = H_REPID
                I_CALLBACK_PF_STATUS_SET = H_SET_PF_STATUS
                I_CALLBACK_USER_COMMAND  = H_USER_COMMAND
                IS_LAYOUT                = H_LAYOUT
                IT_FIELDCAT              = T_FIELDCAT[]
                IT_EXCLUDING             =
                IT_SPECIAL_GROUPS        =
                it_sort                  = t_sort[]
                IT_FILTER                =
                IS_SEL_HIDE              =
    *--              i_screen_start_column    = 5
    *--              i_screen_start_line      = 5
    *--              i_screen_end_column      = 80
    *--              i_screen_end_line        = 25
                I_DEFAULT                = 'X'
                I_SAVE                   = 'A'
                IS_VARIANT               = H_VARIANT
                  IT_EVENTS                = T_EVENTS[]
                IT_EVENT_EXIT            =
                I_TABNAME_HEADER         = H_TABNAME_HEADER
                I_TABNAME_ITEM           = H_TABNAME_ITEM
                I_STRUCTURE_NAME_HEADER  =
                I_STRUCTURE_NAME_ITEM    =
                IS_KEYINFO               = H_KEYINFO
                IS_PRINT                 =
           IMPORTING
                E_EXIT_CAUSED_BY_CALLER  =
                ES_EXIT_CAUSED_BY_USER   =
           TABLES
                T_OUTTAB_HEADER          = T_MHNK_ACC
                T_OUTTAB_ITEM            = T_MHNK_EXT
           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.
    *&      Form  FILL_FIELDCAT
          text
         -->P_T_FIELDCAT  text                                           *
         -->P_H_TABNAME_HEADER  text                                     *
         -->P_H_TABNAME_ITEM  text                                       *
    FORM FILL_FIELDCAT TABLES TI_FIELDCAT STRUCTURE T_FIELDCAT
                       USING  I_HEADER TYPE SLIS_TABNAME
                              I_ITEM   TYPE SLIS_TABNAME.
    create the header fieldcat
      PERFORM APPEND_SEL_FIELDS  TABLES TI_FIELDCAT
                                 USING  I_HEADER.
      CLEAR TI_FIELDCAT.
      TI_FIELDCAT-TABNAME       = I_HEADER.
      TI_FIELDCAT-FIELDNAME     = 'KOART'.
      TI_FIELDCAT-SELTEXT_L     = TEXT-052.
      TI_FIELDCAT-SELTEXT_M     = TEXT-052.
      TI_FIELDCAT-SELTEXT_S     = TEXT-052.
      TI_FIELDCAT-REPTEXT_DDIC  = TEXT-052.
      TI_FIELDCAT-REF_FIELDNAME = 'KOART'.
      TI_FIELDCAT-REF_TABNAME   = 'MHNK'.
      APPEND TI_FIELDCAT.
      CLEAR TI_FIELDCAT.
      TI_FIELDCAT-TABNAME       = I_HEADER.
      TI_FIELDCAT-FIELDNAME     = 'BUKRS'.
      TI_FIELDCAT-SELTEXT_L     = TEXT-051.
      TI_FIELDCAT-SELTEXT_M     = TEXT-051.
      TI_FIELDCAT-SELTEXT_S     = TEXT-051.
      TI_FIELDCAT-REPTEXT_DDIC  = TEXT-051.
      TI_FIELDCAT-REF_FIELDNAME = 'BUKRS'.
      TI_FIELDCAT-REF_TABNAME   = 'MHNK'.
      APPEND TI_FIELDCAT.
      CLEAR TI_FIELDCAT.
      TI_FIELDCAT-TABNAME       = I_HEADER.
      TI_FIELDCAT-FIELDNAME     = 'KONTO'.
      TI_FIELDCAT-SELTEXT_L     = TEXT-050.
      TI_FIELDCAT-SELTEXT_M     = TEXT-050.
      TI_FIELDCAT-SELTEXT_S     = TEXT-050.
      TI_FIELDCAT-REPTEXT_DDIC  = TEXT-050.
      TI_FIELDCAT-REF_FIELDNAME = 'KONTO'.
      TI_FIELDCAT-REF_TABNAME   = 'F150V'.
      APPEND TI_FIELDCAT.
      CLEAR TI_FIELDCAT.
      TI_FIELDCAT-TABNAME       = I_HEADER.
      TI_FIELDCAT-FIELDNAME     = 'L_INCL'.
      TI_FIELDCAT-SELTEXT_L     =  TEXT-041.  " Kennz: Mahn. gedruckt
      TI_FIELDCAT-REPTEXT_DDIC  = 'L_INCL'.
      TI_FIELDCAT-REF_FIELDNAME = 'L_INCL'.
      TI_FIELDCAT-REF_TABNAME   = 'F150V'.
      APPEND TI_FIELDCAT.
      clear ti_fieldcat.
      ti_fieldcat-tabname       = 'MHNK_EXT'.
      ti_fieldcat-fieldname     = 'COMP_CURR'.
      ti_fieldcat-seltext_l     = text-053.
      ti_fieldcat-seltext_m     = text-053.
      ti_fieldcat-seltext_s     = text-053.
      ti_fieldcat-ref_fieldname = 'WAERS'.
      ti_fieldcat-ref_tabname   = 'MHNK'.
      append ti_fieldcat.
    perform append_sort_fields tables ti_fieldcat
                                using  i_header h_sort_info 'H'.
    create the item fieldcat
      PERFORM APPEND_SEL_FIELDS  TABLES TI_FIELDCAT
                                 USING  I_ITEM.
    generate fieldcat
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
           EXPORTING
                I_PROGRAM_NAME         = H_REPID
                I_INTERNAL_TABNAME     = I_ITEM
                I_STRUCTURE_NAME       = 'MHNK'
                I_CLIENT_NEVER_DISPLAY = 'X'
               i_inclname             = 'RFMAHNXXTOP'
           CHANGING
                CT_FIELDCAT            = TI_FIELDCAT[]
           EXCEPTIONS
                INCONSISTENT_INTERFACE = 1
                PROGRAM_ERROR          = 2
                OTHERS                 = 3.
    for amounts in company currency establish link to MHNK_EXT-COMP_CURR
    so that summation in ALV is possible
      loop at ti_fieldcat.
        if ti_fieldcat-fieldname = 'SALHW' or
           ti_fieldcat-fieldname = 'FAEHW' or
           ti_fieldcat-fieldname = 'ZINHW' or
           ti_fieldcat-fieldname = 'FAMSH' or
           ti_fieldcat-fieldname = 'MHNGH'.
              ti_fieldcat-cfieldname = 'COMP_CURR'.
              ti_fieldcat-ctabname = 'MHNK_EXT'.
              modify ti_fieldcat.
        endif.
      endloop.
      CLEAR TI_FIELDCAT.
      TI_FIELDCAT-TABNAME       = I_ITEM.
      TI_FIELDCAT-SELTEXT_L     = TEXT-042. " 'Nur gedruckte Posten'.
    ti_fieldcat-seltext_m     = text-'Nur gedr. Posten'.
    ti_fieldcat-seltext_s     = 'Nur gedr. Post.'.
      TI_FIELDCAT-FIELDNAME     = 'L_INCL'.
      TI_FIELDCAT-REPTEXT_DDIC  = 'L_INCL'.
      TI_FIELDCAT-REF_FIELDNAME = 'L_INCL'.
      TI_FIELDCAT-REF_TABNAME   = 'F150V'.
      APPEND TI_FIELDCAT.
    perform append_sort_fields tables ti_fieldcat
                                using  i_item h_sort_info 'H'.
    select the fields to be shown
      PERFORM HIDE_ALL_FIELDS TABLES TI_FIELDCAT USING I_HEADER.
    select the fields to be shown
      PERFORM HIDE_ALL_FIELDS TABLES TI_FIELDCAT USING I_ITEM.
    ENDFORM.                               " FILL_FIELDCAT
    *&      Form  CREATE_TABLES
          text
    -->  p1        text
    <--  p2        text
    FORM CREATE_TABLES TABLES TI_MHNK     STRUCTURE MHNK
                              TI_MHNK_ACC STRUCTURE MHNK_ACC
                              TI_MHNK_EXT STRUCTURE MHNK_EXT.
      data : begin of comp_curr,
             bukrs like mhnk-bukrs,
             waers like mhnk-waers,
           end of comp_curr.
      data bukrs_tab like comp_curr occurs 0 with header line.
    sort the table
      SORT TI_MHNK BY KOART BUKRS KUNNR LIFNR ASCENDING.
    build t_mhnk_ext
      LOOP AT TI_MHNK.
      check authority
        PERFORM CHECK_AUTHORITY USING    '13' TI_MHNK-KOART TI_MHNK-BUKRS
                                CHANGING H_AUTHORITY_OK.
        IF H_AUTHORITY_OK = SPACE.
          CONTINUE.
        ENDIF.
      save wa
        MHNK = TI_MHNK.
      create item entry
        MOVE-CORRESPONDING MHNK TO TI_MHNK_EXT.
        IF TI_MHNK_EXT-KOART = 'D'.
          TI_MHNK_EXT-KONTO = TI_MHNK_EXT-KUNNR.
        ELSE.
          TI_MHNK_EXT-KONTO = TI_MHNK_EXT-LIFNR.
        ENDIF.
        TI_MHNK_EXT-HSORT1 = <F1>.
        TI_MHNK_EXT-HSORT1 = <F2>.
        TI_MHNK_EXT-HSORT1 = <F3>.
        TI_MHNK_EXT-HSORT1 = <F4>.
        TI_MHNK_EXT-HSORT1 = <F5>.
      check if item has been printed already
        IF NOT TI_MHNK_EXT-PRNDT IS INITIAL.
          TI_MHNK_EXT-L_INCL = 'X'.
        ELSE.
          TI_MHNK_EXT-L_INCL = SPACE.
        endif.
        read table bukrs_tab with key bukrs = ti_mhnk_ext-bukrs.
        if sy-subrc <> 0.
          select single * from t001 where bukrs = ti_mhnk_ext-bukrs.
          if sy-subrc = 0.
            bukrs_tab-waers = t001-waers.
            bukrs_tab-bukrs = ti_mhnk_ext-bukrs.
            append bukrs_tab.
          endif.
        endif.
        ti_mhnk_ext-comp_curr = bukrs_tab-waers.
        APPEND TI_MHNK_EXT.
      create header entry
        MOVE-CORRESPONDING MHNK TO TI_MHNK_ACC.
        IF TI_MHNK_ACC-KOART = 'D'.
          TI_MHNK_ACC-KONTO = TI_MHNK_ACC-KUNNR.
        ELSE.
          TI_MHNK_ACC-KONTO = TI_MHNK_ACC-LIFNR.
        ENDIF.
        COLLECT TI_MHNK_ACC.
      ENDLOOP.
    determine if account has at least one printed dunning
      LOOP AT TI_MHNK_ACC.
        READ TABLE TI_MHNK_EXT WITH KEY  KOART  = TI_MHNK_ACC-KOART
                                         BUKRS  = TI_MHNK_ACC-BUKRS
                                         KUNNR  = TI_MHNK_ACC-KUNNR
                                         LIFNR  = TI_MHNK_ACC-LIFNR
                                         KONTO  = TI_MHNK_ACC-KONTO
                                         L_INCL = 'X'.
        IF SY-SUBRC = 0.
          TI_MHNK_ACC-L_INCL = 'X'.
          MODIFY TI_MHNK_ACC.
        ENDIF.
      ENDLOOP.
    ENDFORM.                               " CREATE_TABLES
    *&      Form  FILL_KEYINFO
          text
         <--P_H_KEYINFO  text                                            *
    FORM FILL_KEYINFO CHANGING E_KEYINFO TYPE SLIS_KEYINFO_ALV.
      MOVE 'KOART' TO : E_KEYINFO-HEADER01,E_KEYINFO-ITEM01.
      MOVE 'BUKRS' TO : E_KEYINFO-HEADER02,E_KEYINFO-ITEM02.
      MOVE 'KONTO' TO : E_KEYINFO-HEADER03,E_KEYINFO-ITEM03.
    ENDFORM.                               " FILL_KEYINFO
    *&      Form  SET_PF_STATUS
          text
         -->P_RT_EXTAB  text                                             *
         -->P_TYPE  text                                                 *
         -->P_SLIS_T_EXTAB  text                                         *
    FORM SET_PF_STATUS USING I_EXTAB TYPE SLIS_T_EXTAB.
      SET PF-STATUS 'HIST_MAX' EXCLUDING I_EXTAB.
    ENDFORM.                               " SET_PF_STATUS
    *&      Form  USER_COMMAND_0001
          text
    -->  p1        text
    <--  p2        text
    FORM USER_COMMAND_0001 USING I_UCOMM     LIKE SY-UCOMM
                                 I_SELFIELD  TYPE SLIS_SELFIELD.
      CASE I_UCOMM.
        WHEN 'DISP'.
          PERFORM COMMAND_DISP USING I_SELFIELD.
      ENDCASE.
    ENDFORM.
    *&      Form  COMMAND_DISP
          text
    -->  p1        text
    <--  p2        text
    FORM COMMAND_DISP CHANGING E_SELFIELD TYPE SLIS_SELFIELD.
    declaration
      DATA: TH_MHND     LIKE MHND OCCURS 10 WITH HEADER LINE,
            TH_MHNK     LIKE MHNK OCCURS 1 WITH HEADER LINE.
    determine the current line
      IF E_SELFIELD-TABNAME = H_TABNAME_ITEM.
        READ TABLE T_MHNK_EXT INDEX E_SELFIELD-TABINDEX.
        MOVE-CORRESPONDING T_MHNK_EXT TO TH_MHNK.
        APPEND TH_MHNK.
      ELSE.
        MESSAGE E481.
        EXIT.
      ENDIF.
    determine the mhnd entries for the actual mhnk
      SELECT * FROM  MHND INTO TABLE TH_MHND
             WHERE  LAUFD       = TH_MHNK-LAUFD
             AND    LAUFI       = TH_MHNK-LAUFI
             AND    KOART       = TH_MHNK-KOART
             AND    BUKRS       = TH_MHNK-BUKRS
             AND    KUNNR       = TH_MHNK-KUNNR
             AND    LIFNR       = TH_MHNK-LIFNR
             AND    CPDKY       = TH_MHNK-CPDKY
             AND    SKNRZE      = TH_MHNK-SKNRZE
             AND    SMABER      = TH_MHNK-SMABER
             AND    SMAHSK      = TH_MHNK-SMAHSK.
    change the dunning data
      CALL FUNCTION 'EDIT_DUNNING_DATA'
           EXPORTING
                I_MHNK     = TH_MHNK
                I_XDISPLAY = 'X'
           TABLES
                T_MHND     = TH_MHND
                T_MHNK     = TH_MHNK
           EXCEPTIONS
                OTHERS     = 1.
    ENDFORM.                               " COMMAND_DISP
    *&      Form  REGISTER_EVENTS
          text
         -->P_T_EVENT  text                                              *
    FORM REGISTER_EVENTS TABLES T_EVENT TYPE SLIS_T_EVENT.
    determine the events
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                I_LIST_TYPE     = 1
           IMPORTING
                ET_EVENTS       = T_EVENT[]
           EXCEPTIONS
                LIST_TYPE_WRONG = 1
                OTHERS          = 2.
    set top of page form
      READ TABLE T_EVENT WITH KEY NAME = SLIS_EV_TOP_OF_PAGE.
      IF SY-SUBRC EQ 0.
        T_EVENT-FORM = 'TOP_OF_PAGE'. MODIFY T_EVENT INDEX SY-TABIX.
      ENDIF.
    set top of list form
      READ TABLE T_EVENT WITH KEY NAME = SLIS_EV_TOP_OF_LIST.
      IF SY-SUBRC EQ 0.
        T_EVENT-FORM = 'TOP_OF_LIST'. MODIFY T_EVENT INDEX SY-TABIX.
      ENDIF.
    set end of list
      READ TABLE T_EVENT WITH KEY NAME = SLIS_EV_END_OF_LIST.
      IF SY-SUBRC EQ 0.
        T_EVENT-FORM = 'END_OF_LIST'. MODIFY T_EVENT INDEX SY-TABIX.
      ENDIF.
    ENDFORM.                               " REGISTER_EVENTS
          FORM TOP_OF_PAGE                                              *
    FORM TOP_OF_PAGE.
      PERFORM BATCH-HEADING(RSBTCHH0).
    ENDFORM.                               " TOP_OF_PAGE
          FORM TOP_OF_LIST                                              *
    FORM TOP_OF_LIST.
    *- Standardseitenkopf fuellen -
      MOVE '0'      TO BHDGD-INIFL.
      MOVE SY-LINSZ TO BHDGD-LINES.
      MOVE SY-UNAME TO BHDGD-UNAME.
      MOVE SY-REPID TO BHDGD-REPID.
      CLEAR: LINE.
      WRITE TEXT-040 TO BHDGD-LINE2.
    ENDFORM.
          FORM END_OF_LIST                                              *
    FORM END_OF_LIST.
      WRITE: / TEXT-039.
    ENDFORM
    regards
    maaya

    Hi,
    I copied your program and executed it. First of all, I dont think its a print program for any script. Its a plain ALV report program. I think you mis-understood the requirement or I totally lost the question.
    Make sure you are changing the correct program.
    Regards
    Aneesh.

  • Problem in Display Dunning Letter - F150

    Dear Experts,
    While I run F150, for example for Customer XXXX.
    The Customer have 3 open item/ document number with different arrears (14, 60 and 180)
    which is the customer shoud be have 3 reminder letter (1, 2 and 3).
    But when I check the sample letters and display dunning notice, the dunning letter displayed
    only reminder 1 with detail list of his line items.
    Why reminder 2 and 3 not display in each document to be done?
    Fyi in FBMP the setting is:
    Days in arrears 14  60   180
    always dunn
    print all item
    Dunning interval in days : 1 ( my user want dunning run in everyday)
    Kindly advice.
    Thank you

    Hi Mohit,     
    Thanks for your respond.     
    It means: for 1 Customer, he will only have 1 reminder letter, depends on his previous dunning level;     
    even the customer have 3 documents/open items which have fullfill for 3 arrears? Therefore, 1 Customer will not have 3 reminder letter for 1 dunning run?     
    Is it correct?Kindly your respond.     
    Thank you in advance.

  • Smart Form for Reminder Letters (Purchase Orders)

    Hi All,
    Is there a standard form for the reminder/urging letters for undelivered items in a purchase order. I've defined the purchasing value keys and I'm trying to see what the reminder letter looks like. Can anyone layout the steps to search for or update a smart form?
    Many thanks in advance!

    I believe I have configured everything correctly, however, when I try to generate the message from ME22N I get an error "incorrectly processed". What does that mean?
    My processing routine is:
    Medium - 5 External Send
    Program: SAPFM06P
    Form Routine - ENTRY_MAHN
    Form: MEDRUCK
    Smartform: /SMB40/MMPO_L

  • Adding icloud account reminder, adding icloud account reminder

    I deleted an iCloud account from my reminder list. Now I can't figure out how to get it back. Reminder lets me add new lists but there doesn't seem to be a way to tie new lists to an actve account.

    Hello,
    I have an Ipda mini with iOS 6.1.2 and I'm facing the same issue on Email.
    I've got notification on lockscreen for received email and after several minutes there is the notification sound.
    Same email accounts on my iphone 6.1.2, but it works perfectly. Once new email comes, notification on lockcreen and sound arrive too!
    Any thoughts?

  • Reminder Letters

    I have a PO that has a delivery date of 06/30/2007.
    The PO also has:
    REMINDER 1 (EKPO-MAHN1) = -18
    REMINDER 2 (EKPO-MAHN2) = -17
    REMINDER 3 (EKPO-MAHN3) = 0
    I ran the RM06ENMA program today with a reference date of 06/12/2007, and I was able to generate 1 Reminder Letter.
    When I run the same program today with a reference date of 06/13/2007, it shows me the PO on the list display, but I cannot generate and save the message.  I get the message:  "ME590 Not possible to generate urging messages for all documents"
    Why doesn't it create the second message?

    Hi jurgen,
    The settting  mentioned in note is already in place.The messege diagonasis given by system through ME509 are already maintained.
    any more inputs.
    Regards
    Manish Kumar

  • Checking for consistent consumer behaviour

    Hi All,
    I have a table which looks something like this (the data is not accurate):
    CUSTOMER     CREDIT ACTION     TIME_GAP
    123     15-Aug-11     
    123     18-Aug-11     3
    123     24-Aug-11     6
    123     9-Nov-11     77
    123     14-Nov-11     5
    123     18-Nov-11     4
    123     30-Nov-11     12
    123     14-Aug-12     258
    123     20-Aug-12     6
    123     24-Aug-12     4
    The table shows me for a list of customers, the date on which some sort of credit action was necessary (reminder letter, phone call, threat of legal action etc.) and the time gap (days) between one action and the preceding action.
    I am looking for consistent behaviour, e.g. if a customer has 3 credit actions required each within 90 days of the other, then we say that they are a credit risk as they consistently show that it is difficult to collect debt from them.
    However if there is a break (e.g. 180 days) between the string of credit actions then we say that they have broken the habit of not paying on time and we would start counting the 3 consecutive credit actions (within 90 days of each other) again.
    What is the most efficient way to write a query that will return customers for who the above description hold true?
    TIA
    ec :-)

    Interesting problem.
    Initial thought is to create a derived data set that contains a list of customers, with consecutive 3 credit actions, and the total days between these 3 actions.
    Basic approach:
    // sample table
    SQL> create table customer_actions(
      2          cust_id integer,
      3          day date,
      4          constraint pk_customer_actions primary key
      5          ( cust_id, day )
      6  ) organization index;
    Table created.
    // sample random data for 2 customers
    SQL> insert into customer_actions
      2  select     distinct
      3          123,
      4          trunc(sysdate,'yyyy')+trunc(dbms_random.value(1,1000))
      5  from       dual
      6  connect by level < 11;
    10 rows created.
    SQL>
    SQL> insert into customer_actions
      2  select     distinct
      3          456,
      4          trunc(sysdate,'yyyy')+trunc(dbms_random.value(1,200))
      5  from       dual
      6  connect by level < 21;
    20 rows created.
    // credit actions against customers
    SQL> select * from customer_actions order by 1,2;
       CUST_ID DAY
           123 2012/05/20
           123 2012/05/28
           123 2012/06/05
           123 2012/10/05
           123 2013/04/03
           123 2013/07/25
           123 2014/01/20
           123 2014/05/19
           123 2014/05/25
           123 2014/05/26
           456 2012/01/07
           456 2012/01/18
           456 2012/01/30
           456 2012/02/03
           456 2012/02/23
           456 2012/02/29
           456 2012/03/05
           456 2012/03/23
           456 2012/04/05
           456 2012/04/11
           456 2012/04/16
           456 2012/04/24
           456 2012/04/26
           456 2012/05/15
           456 2012/05/21
           456 2012/06/23
           456 2012/06/30
           456 2012/07/02
           456 2012/07/04
           456 2012/07/10
    30 rows selected.
    // basic derived data set - creating rows with 3 consecutive actions
    // against a customer (rows without 3 actual dates need to be discarded
    // when processing the data set)
    SQL> select
      2          cust_id,
      3          lag(day,2) over (partition by cust_id order by day)     as DAY1,
      4          lag(day,1) over (partition by cust_id order by day)     as DAY2,
      5          day                                                     as DAY3
      6  from       customer_actions
      7  order by 1,4,3,2;
       CUST_ID DAY1       DAY2       DAY3
           123                       2012/05/20
           123            2012/05/20 2012/05/28
           123 2012/05/20 2012/05/28 2012/06/05
           123 2012/05/28 2012/06/05 2012/10/05
           123 2012/06/05 2012/10/05 2013/04/03
           123 2012/10/05 2013/04/03 2013/07/25
           123 2013/04/03 2013/07/25 2014/01/20
           123 2013/07/25 2014/01/20 2014/05/19
           123 2014/01/20 2014/05/19 2014/05/25
           123 2014/05/19 2014/05/25 2014/05/26
           456                       2012/01/07
           456            2012/01/07 2012/01/18
           456 2012/01/07 2012/01/18 2012/01/30
           456 2012/01/18 2012/01/30 2012/02/03
           456 2012/01/30 2012/02/03 2012/02/23
           456 2012/02/03 2012/02/23 2012/02/29
           456 2012/02/23 2012/02/29 2012/03/05
           456 2012/02/29 2012/03/05 2012/03/23
           456 2012/03/05 2012/03/23 2012/04/05
           456 2012/03/23 2012/04/05 2012/04/11
           456 2012/04/05 2012/04/11 2012/04/16
           456 2012/04/11 2012/04/16 2012/04/24
           456 2012/04/16 2012/04/24 2012/04/26
           456 2012/04/24 2012/04/26 2012/05/15
           456 2012/04/26 2012/05/15 2012/05/21
           456 2012/05/15 2012/05/21 2012/06/23
           456 2012/05/21 2012/06/23 2012/06/30
           456 2012/06/23 2012/06/30 2012/07/02
           456 2012/06/30 2012/07/02 2012/07/04
           456 2012/07/02 2012/07/04 2012/07/10
    30 rows selected.
    // using this derived data set, we determine the total lapsed days
    // for the 3 credit actions (period between day1 and day2, plus period
    // between day2 and day3) - the result can then be used (via a case or
    // filter clause) to determine the customer's behaviour
    SQL> with data_set as(
      2          select
      3                  cust_id,
      4                  lag(day,2) over (partition by cust_id order by day)     as DAY1,
      5                  lag(day,1) over (partition by cust_id order by day)     as DAY2,
      6                  day                                                     as DAY3
      7          from    customer_actions
      8  )
      9  select
    10          cust_id,
    11          day1, day2, day3,
    12          round( (day2-day1)+(day3-day2) )        as DAYS
    13  from       data_set
    14  where      day1 is not null
    15  and        day2 is not null
    16  and        day3 is not null
    17  order by 1,2;
       CUST_ID DAY1       DAY2       DAY3             DAYS
           123 2012/05/20 2012/05/28 2012/06/05         16
           123 2012/05/28 2012/06/05 2012/10/05        130
           123 2012/06/05 2012/10/05 2013/04/03        302
           123 2012/10/05 2013/04/03 2013/07/25        293
           123 2013/04/03 2013/07/25 2014/01/20        292
           123 2013/07/25 2014/01/20 2014/05/19        298
           123 2014/01/20 2014/05/19 2014/05/25        125
           123 2014/05/19 2014/05/25 2014/05/26          7
           456 2012/01/07 2012/01/18 2012/01/30         23
           456 2012/01/18 2012/01/30 2012/02/03         16
           456 2012/01/30 2012/02/03 2012/02/23         24
           456 2012/02/03 2012/02/23 2012/02/29         26
           456 2012/02/23 2012/02/29 2012/03/05         11
           456 2012/02/29 2012/03/05 2012/03/23         23
           456 2012/03/05 2012/03/23 2012/04/05         31
           456 2012/03/23 2012/04/05 2012/04/11         19
           456 2012/04/05 2012/04/11 2012/04/16         11
           456 2012/04/11 2012/04/16 2012/04/24         13
           456 2012/04/16 2012/04/24 2012/04/26         10
           456 2012/04/24 2012/04/26 2012/05/15         21
           456 2012/04/26 2012/05/15 2012/05/21         25
           456 2012/05/15 2012/05/21 2012/06/23         39
           456 2012/05/21 2012/06/23 2012/06/30         40
           456 2012/06/23 2012/06/30 2012/07/02          9
           456 2012/06/30 2012/07/02 2012/07/04          4
           456 2012/07/02 2012/07/04 2012/07/10          8
    26 rows selected.I kept on wanting to write Day Z... as in World War Z.... ;-)

  • Sending Smart forms O/P as an attachment thru e-mail...

    Hi friends...
    I have dveloped a new Smartform for PO reminder letter..
    and I am trying to send it as an attachment thru mail...
    the code I wrote for that is given...
    but I am getting a runtime error like
    In program "CL_TRACE_BCS==================CP ", the following syntax error
    occurred                                                                 
    in the Include "CL_TRACE_BCS==================CU " in line 85:            
    "Implementation missing for method "END_FUNC". "END_FUNC"."               
    Plz help me....
    *******CODE********
    REPORT  zmm_vendor_reminder_mail.
    TABLES : ekko,ekpo,eket,makt,adrc,adr6,lfa1.
    DATA: fm_name TYPE rs38l_fnam.
    DATA: BEGIN OF itab1 OCCURS 0.
            INCLUDE STRUCTURE lfa1.
    DATA: END OF itab1.
    DATA : BEGIN OF itab OCCURS 0.
            INCLUDE STRUCTURE zmm_podetails.
    DATA: END OF itab.
    DATA : BEGIN OF it_pos OCCURS 0 ,
            bukrs LIKE ekpo-bukrs,
            werks LIKE ekpo-werks,
            ebeln LIKE eket-ebeln,
            ebelp LIKE eket-ebelp,
            etenr LIKE eket-etenr,
            bedat LIKE eket-bedat,
            matnr LIKE ekpo-matnr,
            meins LIKE ekpo-meins,
            menge LIKE eket-menge,
            wemng LIKE eket-wemng,
            eindt LIKE eket-eindt,
            lifnr LIKE ekko-lifnr,
    END OF it_pos.
    DATA : BEGIN OF it_vendor OCCURS 0 ,
            lifnr LIKE lfa1-lifnr,
            name1  LIKE adrc-name1,
            street LIKE adrc-street,
            str_suppl1 LIKE adrc-str_suppl1,
            str_suppl2 LIKE adrc-str_suppl2,
            city1 LIKE adrc-city1,
            post_code1 LIKE adrc-post_code1,
            smtp_addr LIKE adr6-smtp_addr,
            adrnr LIKE lfa1-adrnr,
            telf1 LIKE lfa1-telf1,
            telf2 LIKE lfa1-telf2,
    END OF it_vendor.
    *RAMESH **********
    tables: soud.
    data: control_parameters TYPE ssfctrlop,
    output_options TYPE ssfcompop,
    EMail_Subject(50) TYPE c value 'abc'.
    DATA: email_recipient TYPE SWOTOBJID,
    email_sender TYPE SWOTOBJID,
    g_mail_app_obj type SWOTOBJID.
    *concatenate text-004 '400000124' into EMail_Subject.
    control_parameters-device = 'MAIL'.
    control_parameters-no_dialog = 'X'.
    control_parameters-preview = space.
    output_options-tdnewid = 'X'.
    output_options-tdtitle = EMail_Subject.
    SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS : s_bukrs FOR ekpo-bukrs,
                     s_werks FOR ekpo-werks,
                     s_ekgrp FOR ekko-ekgrp,
                     s_lifnr FOR ekko-lifnr,
                     s_ebeln FOR ekko-ebeln,
                     s_eindt FOR eket-eindt,
                     s_mtart FOR ekpo-mtart,
                     s_matkl FOR ekpo-matkl,
                     s_matnr FOR ekpo-matnr.
    SELECTION-SCREEN : END OF BLOCK b1.
    PERFORM mail_recipient_object.
    PERFORM mail_sender_object.
    PERFORM mail_appl_object changing g_mail_app_obj.
    *RAMESH **********
    *******************************SELECTION-SCREEN************
    AT SELECTION-SCREEN.
    Validate test for Plant in selections
      LOOP AT s_werks.
        IF NOT s_werks-high IS INITIAL.
          SELECT SINGLE * FROM ekpo
                          WHERE werks = s_werks-high.
          IF sy-subrc NE 0.
            MESSAGE e600(fr) WITH 'This Plant'
                                      s_werks-high ' does not exist.'
          ENDIF.
        ENDIF.
        IF NOT s_werks-low IS INITIAL.
          SELECT SINGLE * FROM ekpo
                          WHERE werks = s_werks-low.
          IF sy-subrc NE 0.
            MESSAGE e600(fr) WITH 'This Plant'
                                    s_werks-low ' does not exist.'
          ENDIF.
        ENDIF.
      ENDLOOP.
    START-OF-SELECTION.
      PERFORM get_data.
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname                 = 'ZMM_VENDOR_REMINDER_MAIL'
      VARIANT                  = ' '
      DIRECT_CALL              = ' '
        IMPORTING
          fm_name                  = fm_name
        EXCEPTIONS
          no_form                  = 1
          no_function_module       = 2
          OTHERS                   = 3.
      IF sy-subrc <> 0.
        WRITE: / 'ERROR 1'.
      ENDIF.
    CALL FUNCTION fm_name
    EXPORTING
      ARCHIVE_INDEX              =
      ARCHIVE_INDEX_TAB          =
      ARCHIVE_PARAMETERS         =
       CONTROL_PARAMETERS         = control_parameters
       MAIL_APPL_OBJ              = g_mail_app_obj
       MAIL_RECIPIENT             = email_recipient
       MAIL_SENDER                = email_sender
       OUTPUT_OPTIONS             = output_options
       USER_SETTINGS              = 'X'
    IMPORTING
      DOCUMENT_OUTPUT_INFO       =
      JOB_OUTPUT_INFO            =
      JOB_OUTPUT_OPTIONS         =
      TABLES
        itab1                      = itab1
        itab                       = itab
    EXCEPTIONS
      FORMATTING_ERROR           = 1
      INTERNAL_ERROR             = 2
      SEND_ERROR                 = 3
      USER_CANCELED              = 4
      OTHERS                     = 5
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    *&      Form  get_data
          text
    FORM get_data.
      SELECT a~bukrs a~werks a~ebeln a~ebelp
               b~bedat a~matnr a~meins b~menge
               b~wemng b~eindt c~lifnr b~etenr
         FROM ekpo AS a
               INNER JOIN eket AS b
                  ON a~ebeln = b~ebeln AND
                     a~ebelp = b~ebelp
               INNER JOIN ekko AS c
                  ON a~ebeln = c~ebeln AND
                     a~bukrs = c~bukrs
                INTO CORRESPONDING FIELDS OF TABLE it_pos
              WHERE a~bukrs  IN s_bukrs
                AND a~werks  IN s_werks
                AND b~eindt  IN s_eindt
                AND c~lifnr  IN s_lifnr
                AND c~ekgrp  IN s_ekgrp
                AND c~ebeln  IN s_ebeln
                AND a~mtart  IN s_mtart
                AND a~matkl  IN s_matkl
                AND a~matnr  IN s_matnr
                AND c~bstyp EQ 'F'
                AND c~loekz EQ space
                AND a~loekz EQ space
                AND b~menge > b~wemng.
      SELECT DISTINCT a~lifnr b~name1 b~street b~str_suppl1 b~str_suppl2
             b~city1 b~post_code1 a~adrnr a~telf1 a~telf2
        FROM lfa1 AS a
             INNER JOIN adrc AS b
             ON a~adrnr = b~addrnumber
            INTO CORRESPONDING FIELDS OF TABLE it_vendor
            FOR ALL ENTRIES IN it_pos
          WHERE a~lifnr = it_pos-lifnr.
      LOOP AT it_vendor.
        SELECT SINGLE * FROM adr6
         WHERE addrnumber = it_vendor-adrnr
           AND persnumber EQ space.
        IF sy-subrc = 0.
          it_vendor-smtp_addr = adr6-smtp_addr.
        ENDIF.
        MODIFY  it_vendor.
        SELECT SINGLE * FROM lfa1
         WHERE lifnr = it_vendor-lifnr.
        IF sy-subrc EQ 0.
          MOVE-CORRESPONDING lfa1 TO itab1.
          APPEND itab1.
        ENDIF.
      ENDLOOP.
      LOOP AT it_pos.
        itab-bukrs = it_pos-bukrs.
        itab-ebeln = it_pos-ebeln.
        itab-ebelp = it_pos-ebelp.
        itab-matnr = it_pos-matnr.
        itab-bedat = it_pos-bedat.
        itab-meins = it_pos-meins.
        itab-eindt = it_pos-eindt.
        itab-lifnr = it_pos-lifnr.
        itab-etenr = it_pos-etenr.
        APPEND itab.
        CLEAR itab.
      ENDLOOP.
    ENDFORM.                    "get_data
    *&      Form  mail_recipient_object
          text
    -->  p1        text
    <--  p2        text
    form mail_recipient_object .
    data: email_address TYPE SO_NAME.
    email_address = '[email protected]'.
    CALL FUNCTION 'CREATE_RECIPIENT_OBJ_PPF'
    EXPORTING
      IP_COUNTRY              =
      IP_FAXNO                =
       IP_MAILADDR             = email_address
       IP_TYPE_ID              = 'U'
    IMPORTING
       EP_RECIPIENT_ID         = email_recipient
      EP_ADDRESS              =
      ET_RECIPIENT            =
    EXCEPTIONS
       INVALID_RECIPIENT       = 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.                    " mail_recipient_object
    *&      Form  mail_sender_object
          text
    -->  p1        text
    <--  p2        text
    form mail_sender_object .
    CALL FUNCTION 'CREATE_SENDER_OBJECT_PPF'
    EXPORTING
       IP_SENDER            = sy-uname
    IMPORTING
       EP_SENDER_ID         = email_sender
    EXCEPTIONS
       INVALID_SENDER       = 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.                    " mail_sender_object
    *&      Form  mail_appl_object
          text
         <--P_G_MAIL_APP_OBJ  text
    form mail_appl_object  changing p_g_mail_app_obj.
    include <cntn01>.
    DATA: FOLDER TYPE swc_object,
    BEGIN OF SOFMFOL_KEY,
    FOLDERTYPE LIKE SOFM-FOLTP,
    FOLDERYEAR LIKE SOFM-FOLYR,
    FOLDERNUMBER LIKE SOFM-FOLNO,
    TYPE LIKE SOFM-DOCTP,
    YEAR LIKE SOFM-DOCYR,
    NUMBER LIKE SOFM-DOCNO,
    FORWARDER LIKE SOUB-USRNAM,
    END OF SOFMFOL_KEY,
    BOR_KEY LIKE SWOTOBJID-OBJKEY.
    SELECT single * FROM soud WHERE sapnam LIKE sy-uname AND deleted = ' '.
    IF sy-subrc NE 0.
    CALL FUNCTION 'SO_USER_AUTOMATIC_INSERT'
    EXPORTING
       SAPNAME                       = SY-UNAME
      SO_KEY                        = ' '
      SEND_MAIL_IF_NO_ADDRESS       = 'X'
    IMPORTING
      USRADR                        =
    EXCEPTIONS
       NO_INSERT                     = 1
       SAP_NAME_EXIST                = 2
       X_ERROR                       = 3
       SAP_NAME_NOT_EXIST            = 4
       OTHERS                        = 5
    *IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    clear sofmfol_key.
    sofmfol_key-type = 'FOL'.
    sofmfol_key-year = soud-inbyr.
    sofmfol_key-number = soud-inbno.
    bor_key = sofmfol_key.
    IF not bor_key is initial.
    swc_create_object folder 'SOFMFOL' bor_key.
    IF sy-subrc = 0.
    swc_object_to_persistent folder g_mail_app_obj.
    IF sy-subrc ne 0.
    clear g_mail_app_obj.
    ENDIF.
    ENDIF.
    ELSE.
    clear g_mail_app_obj.
    ENDIF.
    endform.                    " mail_appl_object

    Hi Ramesh
    Just checkout the FORM interface whether you are passing the proper parameters or not. Also, check their datatypes....
    I couldnot find any error in your code by seeing it....
    Regards

Maybe you are looking for

  • Alternative USB Keyboard - Recommendations?

    Don't like these aluminium keyboards, and looking for a good USB one to use instead. Something with substantial keys and a good positive action, like these http://arstechnica.com/reviews/4q00/g4cube_cd/images/keyboard-big.jpg The two requirements are

  • DVD's just spit out, how do I fix this on iBook G4

    I just bought an iBook G4 from eBay and I need to know how can I get any DVD's to play without having to buy an external hard drive? I have videos that I need to watch and I need to get this fixed asap.

  • Oracle  10g License

    Hi, We have licensed version of 11 g. Can we install Oracle 10g without paying any extra cost using the current license? Please suggest. Thanks in advance deb

  • Combining nawk with find

    How can I make these two commands have an output on one line? My script: find . \( -name "*.htm" -o -name "*.html" \) \ -exec ls {} \; nawk '/<TITLE>/{print $0}' *.html Output from script: ./jer.html ./isp.html <TITLE>Phone List</TITLE> <TITLE>Jersey

  • Saludos a todos y todas

    Bueno he esperado por tener una comunidad en español en este sitio, sin embargo, aún no me han contestado. Así que será un placer poderles apoyar en la medida que este a mi alcance. Pueden hacerme sus consultas e intentaré responder lo más pronto pos