How to SUDO from Grid

This was originally posted on the Database thread.
I'm running Oracle database 11.2.0.2.5 on Linux Redhat 2.6.18-x86-64
We have a user, Grid for the Oracle GRID Control and our daily jobs are scheduled on the GRID Control. But the scripts, owned by Oracle are on the servers and we want to run the jobs as Oracle.
On the GRID Control, when we "sudo Oracle" to run the jobs, we get the below error. I need your input on how to resolve this and perhaps, to set up sudo on GRID.
stty: : Invalid argument
stty: : Invalid argument
Must be attached to terminal for 'am I' option
DISPLAY=
I am testing a simple script scheduled on GRID to do a list: 'ls -l'. The user Grid is running the script from GRID Control and has to 'su oracle' to execute the script own by Oracle on the server.
Thanks

The following link provides some more options: http://tldp.org/LDP/abs/html/intandnonint.html
# if [ -t 0 ] works ... when you're logged in locally
# but fails when you invoke the command remotely via ssh.
# So for a true test you also have to test for a socket.
if [[ -t 0 || -p /dev/stdin ]]
then
  echo interactive
else
  echo non-interactive
fiI' probably prefer the following:
[ `echo $- | grep i` ] && who am iEdited by: Dude on Feb 11, 2012 2:29 PM

Similar Messages

  • How to sudo in GRID

    I'm running Oracle database 11.2.0.2.5 on Linux Redhat 2.6.18-x86-64
    We have a user, Grid for the Oracle GRID Control and our daily jobs are scheduled on the GRID Control. But the scripts, owned by Oracle are on the servers and we want to run the jobs as Oracle.
    On the GRID Control, when we "sudo Oracle" to run the jobs, we get the below error. I need your input on how to resolve this and perhaps, to set up sudo on GRID.
    stty: : Invalid argument
    stty: : Invalid argument
    Must be attached to terminal for 'am I' option
    DISPLAY=
    Thanks,
    Edited by: user12027834 on Feb 9, 2012 9:01 AM
    I am testing a simple script scheduled on GRID to list: 'ls -l'. The user Grid is running the script but has to 'su oracle' on GRID to logon the server as Oracle.
    Edited by: user12027834 on Feb 9, 2012 12:27 PM

    user12027834 wrote:
    stty: : Invalid argument
    Must be attached to terminal for 'am I' optionExactly what it says - the whoami needs to be run in a real/proper terminal. Will need to see the actual script and commands to comment as to what went wrong where.
    Linux issue - not an Oracle one. So the issue is off topic here. Suggest you close your thread here and open it in forum {forum:id=822} and include as much detail as possible.
    E.g. Such as from what o/s user are you using sudo? What is the syntax you're using? Have to tried to sudo su - into the grid account instead? Does that work? Etc.

  • How to print a grid from windows phone 8.1 application

    Hello ,
    I want to print a grid from a windows phone application.
    For tablet I can print using this namespace:
    using Windows.Graphics.Printing;
    using Windows.UI.Xaml.Printing;
    But they are only for Tablet.
    Please suggest a solution of printing from windows 8.1 phone application.
    Thanks

    Hi waqar.haider.confiz,
    >>How to print a grid from windows phone 8.1 application                                 
    As far as I known, in Windows Phone 8.1 app it does not have such API for us to print a grid. I will recommand you submit this feature request on this
    UserVoice forum.
    Best Regards,
    Amy Peng
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Values From Grid

    Hi All,
    How can I get the values from Grid. I would like to take a cell value from a selected row directly from grid instead of DataTable.

    Hi All,
    The above stated queries is somewhat true. we can take values directly from grid. we have to use datatable. I tried datatable also but it does not give the values selected values when collapse level is set.
    When we set the collapse level, datarow arrange as per the collapse level on the fly. lets take an example
    In datatable rows are like
    1   A    B
    2   A    B1
    3   B    C1
    4   C    C1
    5   C    BV
    when we set the collapse level rows are like
    1
          ..A...
                .. B...
               ..  B1..
          ..B..
                  ..C1..
         .. C..
                  ...C1..
                  ...BV..
    like this.....  In this case when I select the datarow from grid. it gives me row of selected index and the selected row does not match with the datarow position in datatable. Hence values varies.....
    Edited by: Manish Chourasia on Aug 20, 2008 6:45 AM

  • Statistics report from Grid Control

    Hi All,
    How to generate a report from Oracle 10.2.0.5 Grid Control with the details about when the statistics were last collected in all the databases. A mail with these details from all the databases should be sent from Grid Control.
    Why is this script not working?
    SELECT ui.index_name, ui.last_analyzed, ui.table_name
    FROM user_indexes ui
    INNER JOIN user_tables ut ON ut.table_name = ui.table_name
    WHERE ut.temporary = 'N'
    Please help.
    Thanks,
    Dan

    906051 wrote:
    Hi All,
    How to generate a report from Oracle 10.2.0.5 Grid Control with the details about when the statistics were last collected in all the databases. A mail with these details from all the databases should be sent from Grid Control.
    Why is this script not working?
    SELECT ui.index_name, ui.last_analyzed, ui.table_name
    FROM user_indexes ui
    INNER JOIN user_tables ut ON ut.table_name = ui.table_name
    WHERE ut.temporary = 'N'
    Please help.
    Thanks,
    Danwhat does "not work" mean?
      1  SELECT ui.index_name, ui.last_analyzed, ui.table_name
      2  FROM user_indexes ui
      3  INNER JOIN user_tables ut ON ut.table_name = ui.table_name
      4* WHERE ut.temporary = 'N'
    21:24:48 SQL> /
    INDEX_NAME                 LAST_ANALYZED        TABLE_NAME
    TEST_DEPARTMENT_PK            2011-06-23 18:23:46 TEST_DEPARTMENT
    SYS_IL0000420684C00001$$                  TEST
    SYS_C0046851                 2011-09-15 22:00:45 TB_DELETE
    SYS_C0046852                 2011-09-15 22:00:46 TB_CHILD
    XPKTAB2                  2011-08-26 22:00:31 TAB2
    XPKTAB1                  2011-08-26 22:00:31 TAB1
    SYS_C0031937                 2011-06-23 18:23:45 SURVEYS
    SYS_C0031903                 2011-06-23 18:23:44 SUPPLIERS
    SYS_C0045632                 2011-07-26 22:00:29 SHELTER
    SYS_C0031943                 2011-06-23 18:23:44 SCHEDULE
    ROOM_CON                 2011-06-23 18:23:43 ROOM
    INDEX_NAME                 LAST_ANALYZED        TABLE_NAME
    SYS_C0031904                 2011-06-23 18:23:43 RATING
    SYS_C0031922                 2011-06-23 18:23:43 PROGRAM
    PK_PRID                  2011-06-23 18:23:42 PRODUCTS
    SYS_C0048548                 2011-12-15 22:00:29 PATIENT
    SYS_C0031907                 2011-06-23 18:23:42 PACKAGE
    SYS_C0048255                 2011-12-04 15:05:04 P
    SYS_IL0000284470C00003$$                  LONG_CLOB
    SYS_C0048549                 2011-12-15 22:00:29 ITEMS_USED
    SYS_C0048547                 2011-12-15 22:00:29 ITEM
    SYS_IL0000337403C00008$$                  IDB_IMAGE_MNU_TEMP
    HOTEL_CON                 2011-06-23 18:23:40 HOTEL
    INDEX_NAME                 LAST_ANALYZED        TABLE_NAME
    GUEST_CON                 2011-06-23 18:23:40 GUEST
    PK_FRIENDS                 2011-06-23 18:23:40 FRIENDS
    PK_FREG                  2011-06-23 18:23:40 FIRMAS
    SYS_C0032526                 2011-06-23 18:23:40 E_SERVICE
    E_EMP_PK                 2011-06-23 18:23:40 E_EMP
    SYS_C0031948                 2011-06-23 18:23:39 EPISODE
    SYS_C0031895                 2011-06-23 18:23:39 EMPLOYEES
    SYS_C0031913                 2011-06-23 18:23:38 CUSTOMER
    SYS_C0031898                 2011-06-23 18:23:37 CHANNEL_TYPES
    SYS_C0031918                 2011-06-23 18:23:37 CHANNELS
    CASE_PK                  2011-06-23 18:23:37 CASE_DETAILS
    INDEX_NAME                 LAST_ANALYZED        TABLE_NAME
    SYS_C0027803                 2011-06-23 18:23:37 BRANCH
    BOOKING_CON                 2011-06-23 18:23:37 BOOKING
    SYS_C0031932                 2011-06-23 18:23:36 BILLING
    SYS_IL0000226980C00002$$                  BASELINE_TEST
    37 rows selected.
    21:24:50 SQL>

  • How can I make GRID view the default view? The icons for view that used to be located in the upper right top of the page near the 'search library' are gone.

    How can I make GRID view the default view? The icons for view that used to be located in the upper right top of the page near the 'search library' are gone.

    99jon wrote:
    Perhaps it’s a design feature to speed up the Organizer launch.
    I am sure it is.
    - The normal use of the Organizer is not the folder view, it's the thumbnail view with an organization based on categories and folder. That way you should forget completely where your pictures are stored. Anyway, the folder view in the Explorer is not a map of the location of the different bits of your file, it's only a logical representation. That's easy to see when you are doing a defragmentation.
    - The folder view is useful even for those using normally the thumbnail view, but that is only for rare cases when you must change the folder organization, for instance moving files to another drive. The folder view is here to prevent you from changing things from the explorer and outside of the Organizer.
    - The new folder list view, which you find 'funny' is there to help better organizing using tags. Its huge advantage is that such a view is created extremely quickly by extracting the last subfolder in the media table : it's the way the database sees the folders, based on its own content,  totally ignoring the complex folder organization of your disk with media files or any unrelated other kind of data. You should use it in many cases, the main purpose being assigning tags when you have assigned descriptive folder names. I had suggested such a solution to prevent the long standing bugs in the folder view of previous versions.
    So yes, the purpose is:
    - to speed up switching modes
    - to help folder organization fans to migrate to tags organization
    - to hopefully get rid of the old folder organization bugs

  • How to send ALV Grid report to Email?

    hai all,
    How to send ALV Grid report to Email.
    please its very urgent.....

    Hi,
    when u run the Alv, u will button 'Mail Recepiant' in tool bar.When u click it and enter to new screen, go to the Recipient Tab(down) enter ur maild id and click 'Send' button on tool bar.
    or.
    if u want to send the Alv content to mail id thru prg, go thru the following code.
                              TABLES
    TABLES: BSID. " Accounting: Secondary Index for Customers.
                              TYPE-POOLS
    TYPE-POOLS: SLIS.
                              INTERNAL TABLES
        Internal table to hold Customer data.
    DATA: BEGIN OF TB_BSID OCCURS 0,
            BUKRS   LIKE BSID-BUKRS,    " Company code
            KUNNR   LIKE BSID-KUNNR,    " Customer number
            AUGDT   LIKE BSID-AUGDT,    " Clearing Date
            BLDAT   LIKE BSID-BLDAT,    " Doc date in document
            SHKZG   LIKE BSID-SHKZG,    " Debit/credit indicator
            DMBTR   LIKE BSID-DMBTR,    " Amount in local currency
            ZFBDT   LIKE BSID-ZFBDT,    " Baseline date for due date calc
            ZBD1T   LIKE BSID-ZBD1T,    " Cash discount days 1
            ZBD2T   LIKE BSID-ZBD2T,    " Cash discount days 2
            ZBD3T   LIKE BSID-ZBD3T,    " Net Payment Terms Period
            REBZG   LIKE BSID-REBZG,    " No Of the Inv the Tran Belongs to
            REBZT   LIKE BSID-REBZT,    " Follow-On Document Type
          END OF TB_BSID.
        Internal table to hold Open Items.
    DATA: TB_BSID_OPEN LIKE TABLE OF TB_BSID WITH HEADER LINE.
        Internal table to hold Cleared Items.
    DATA: TB_BSAD_CLEAR LIKE TABLE OF TB_BSID WITH HEADER LINE.
        Internal table to hold General Data in Customer Master
    DATA: BEGIN OF TB_KNA1 OCCURS 0,
            KUNNR LIKE KNA1-KUNNR,      " Customer Number
            NAME1 LIKE KNA1-NAME1,      " Name Line 1
            TELF1 LIKE KNA1-TELF1,      " Telephone Number
            ADRNR LIKE KNA1-ADRNR,      " Address
          END OF TB_KNA1.
        Internal table to hold Customer Master (Company Code)
    DATA: BEGIN OF TB_KNB1 OCCURS 0,
            KUNNR LIKE KNB1-KUNNR,     " Customer Number
            BUKRS LIKE KNB1-BUKRS,     " Company code
            ERDAT LIKE KNB1-ERDAT,     " Rec Created Date
            ZAMIB LIKE KNB1-ZAMIB,     " DMS Managed Indicator
          END OF TB_KNB1.
        Internal table to hold Final Output Data
    DATA: BEGIN OF TB_FINAL OCCURS 0,
            KUNNR           LIKE KNA1-KUNNR, " Customer Number
            NAME1           LIKE KNA1-NAME1, " Name Line 1
            ADDRESS1(25)    TYPE C,          " Address line 1
            ADDRESS2(25)    TYPE C,          " Address line 2
            ADDRESS3(25)    TYPE C,          " Address line 3
            ADDRESS4(25)    TYPE C,          " Address line 4
            PHONE           LIKE KNA1-TELF1, " Telephone Number
            DAYS_SLOW(3)    TYPE C,          " Days Slow
            LAST_DATE(8)    TYPE C,          " Date of Last Invoice
            AVG(4)          TYPE C,          " Average Days to Pay
            CURRENT(10)     TYPE N,          " Current
            AVG_1_30(10)    TYPE N,          " 1-30 past due
            AVG_31_60(10)   TYPE N,          " 31-60 past due
            AVG_61_90(10)   TYPE N,          " 61-90 past due
            AVG_90G(10)     TYPE N,          " 90+ past due
          END OF TB_FINAL.
         ALV Internal tables
    DATA : TB_FIELDCAT       TYPE SLIS_T_FIELDCAT_ALV,  " Field Catalog
           TB_EVENTS         TYPE SLIS_T_EVENT,         " ALV Events
           TB_COMMENTS       TYPE SLIS_T_LISTHEADER.    " Comment
        Internal tables for the sending mail data
    DATA: TB_OBJPACK  TYPE SOPCKLSTI1 OCCURS 2  WITH HEADER LINE,
          TB_OBJHEAD  TYPE SOLISTI1   OCCURS 1  WITH HEADER LINE,
          TB_OBJTXT   TYPE SOLISTI1   OCCURS 10 WITH HEADER LINE,
          TB_RECLIST  TYPE SOMLRECI1  OCCURS 5  WITH HEADER LINE,
          TB_OBJBIN   LIKE SOLISTI1   OCCURS 0  WITH HEADER LINE,
          TB_DOC_CHNG TYPE SODOCCHGI1.
        Internal table to get mail Receivers Address
    DATA: TB_ZRECEIVE LIKE YSMTP_ADDRESS OCCURS 0 WITH HEADER LINE.
                               STRUCTURES
    DATA: X_SADR            TYPE SADR,                 " For Address
          X_FIELDCAT        TYPE SLIS_FIELDCAT_ALV,    " For Field Catalog
          X_LAYOUT          TYPE SLIS_LAYOUT_ALV,      " For Layout
          X_EVENTS          TYPE SLIS_ALV_EVENT,       " For Events
          X_COMMENTS        TYPE SLIS_LISTHEADER,      " For Comments
          X_ADDR1_SEL       LIKE ADDR1_SEL,            " For Address
          WA_FAEDE          TYPE FAEDE.                " For FAEDE struct
                               VARIABLES
    DATA: G_REPID        LIKE SY-REPID,             " Prog ID
          G_DAYS_SLOW(3) TYPE N,                    " Days Slow
          G_OPEN         TYPE I,                    " Counter
          G_AVG(4)       TYPE C,                    " Avg Days
          G_COUNT        TYPE I,                    " Counter
          G_TITLE        TYPE SOLISTI1-LINE,        " Description
          G_TAB_LINES    TYPE SY-TABIX,             " Internal data count
          G_REC_COUNT    TYPE I,                    " Total records
          G_CURR_BAL     TYPE N,                    " Account balance
          G_FILE_NAME    LIKE EDI_PATH-PTHNAM.      " Output File Name
                               CONSTANTS
    CONSTANTS: C_D            TYPE C VALUE 'D',     " Account type
               C_X            TYPE C VALUE 'X',     " Check Value
               C_0(4)         TYPE N VALUE '0.00',  " Constant for char
               C_1(2)         TYPE C VALUE '01',    " Posting key const
               C_H            TYPE C VALUE 'H',     " For Commenet-Type
               C_TXT(3)       TYPE N VALUE 'TXT',   " File type
               C_RAW(3)       TYPE C VALUE 'RAW',   " File type
               C_DELIMITER    TYPE X VALUE '09',    " ASCII CODE LINE
               C_TOP_OF_PAGE  TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
               C_INTERFACE    TYPE YWFSALOFFICNOTIF-INTERFACE_ID VALUE 'AP',
               C_FILENAME(20) TYPE N VALUE 'TEXT.TXT'," File name
               C_TITLE(30)    TYPE N VALUE 'Z21614_DB_CREDIT_AGENCY',
               C_Z001 TYPE RF035-RASID VALUE 'Z001'." Net 30/60/90/120/150
                               SELECTION SCREEN.
    Selection Screen for Selection Criteria.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-T01.
    SELECT-OPTIONS:  S_BUKRS FOR  BSID-BUKRS OBLIGATORY,    " Company Code
                     S_BLDAT FOR  BSID-BLDAT," OBLIGATORY,  " Doc Date
                     S_KUNNR FOR  BSID-KUNNR,               " Cust No
                     S_ZUONR FOR  BSID-ZUONR.               " Assignment
    PARAMETERS:      P_GRACE(2)   TYPE N OBLIGATORY,        " Grace Days
                     P_ZAMIB LIKE KNB1-ZAMIB AS CHECKBOX.   " DMS Indicator
    SELECTION-SCREEN END OF BLOCK B1.
    Selection Screen for Output Options.
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-T02.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 01.
    PARAMETERS: P_REPORT RADIOBUTTON GROUP R1.             " Report Only
    SELECTION-SCREEN COMMENT 5(25) TEXT-016.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 01.
    PARAMETERS: P_DOWN RADIOBUTTON GROUP R1.               " Dwnld to Unix
    SELECTION-SCREEN COMMENT 5(25) TEXT-017.
    SELECTION-SCREEN POSITION 30.
    PARAMETERS: P_FILE LIKE FILENAME-FILEINTERN DEFAULT
                                 'Z21614_DB_CREDIT_AGENCY'. " File Name
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK B2.
    Selection Screen for E-mail.
    SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE TEXT-T03.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 01.
    PARAMETERS: P_EMAIL AS CHECKBOX.                        " E-mail
    SELECTION-SCREEN COMMENT 5(25) TEXT-018.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK B3.
                               INITIALIZATION
    INITIALIZATION.
      G_REPID = SY-REPID.
                   AT SELECTION SCREEN.                                  *
    AT SELECTION-SCREEN.
    Validation of selection screen entries
    perform validate_data.
                               START-OF-SELECTION
    START-OF-SELECTION.
    Select Data from Customer Master (Company Code)
      PERFORM SELECT_KNB1.
    Select Custmer Open Items.
      PERFORM SELECT_CUSTOMER_OPEN_ITEMS.
    Select Custmer Cleared Items.
      PERFORM SELECT_CUSTOMER_CLEARED_ITEMS.
    Select General Data in Customer Master
      PERFORM SELECT_KNA1.
    Populate Final Output Data.
      PERFORM POPULATE_TB_FINAL.
                       End of selection                                  *
    END-OF-SELECTION.
    If both display report and send email is checked
      IF P_REPORT = C_X AND P_EMAIL  = C_X.
        MESSAGE E999 WITH
          'Select One Among Report Only & Send E-mail'(023).
    When Radiobutton for Email or if the program is run background
      ELSEIF ( P_EMAIL = C_X OR SY-BATCH = C_X ).
      To send the mail
        PERFORM SEND_EMAIL.
      ELSEIF P_REPORT = C_X .
      To display the Final Output data using ALV's
        PERFORM DISPLAY_ALV_REPORT.
      ENDIF.
    Transfering data to file when downloading to Unix
      IF P_DOWN = C_X.
        IF G_REC_COUNT IS INITIAL.
          MESSAGE I999 WITH
            'No Records Found For Selection Criteria'(024).
          EXIT.
        ELSE.
          IF NOT G_FILE_NAME IS INITIAL.
          Trasefering data to file
            PERFORM TRANSFER_DATA_FILE.
          Interface Audit report
            PERFORM WRITE_REPORT.
          ENDIF.
        ENDIF.
      ENDIF.
                              F O R M S
    *&      Form  VALIDATE_DATA
          Validating selection-screen entries
    FORM VALIDATE_DATA.
    Local variables
      DATA : L_BUKRS LIKE BSEG-BUKRS,          " For Company Code
             L_KUNNR LIKE BSEG-KUNNR.          " For Customer Number
    Validate the Company code.
      SELECT SINGLE BUKRS
        INTO L_BUKRS
        FROM T001
       WHERE BUKRS IN S_BUKRS.
      IF SY-SUBRC <> 0.
        MESSAGE E999 WITH 'Enter valid Company Code'(025).
      ENDIF.
    Validate the Customer number
      IF NOT S_KUNNR[] IS INITIAL.
        SELECT SINGLE KUNNR
          INTO L_KUNNR
          FROM KNA1
         WHERE KUNNR IN S_KUNNR.
        IF SY-SUBRC <> 0.
          MESSAGE E999 WITH 'Enter valid Customer Number'(026).
        ENDIF.
      ENDIF.
    ENDFORM.                    " VALIDATE_DATA
    *&      Form  SELECT_KNB1
          Select Data from Customer Master (Company Code)
    FORM SELECT_KNB1 .
      CLEAR: TB_KNB1,
             TB_KNB1[].
      SELECT KUNNR
             BUKRS
             ERDAT
             ZAMIB
             FROM KNB1
             INTO TABLE TB_KNB1
             WHERE BUKRS IN S_BUKRS
               AND KUNNR IN S_KUNNR.
      IF SY-SUBRC = 0.
      Sort TB_KNB1 by Customer no & Rec Created Date
        SORT TB_KNB1 BY KUNNR ERDAT DESCENDING.
      ENDIF.
    ENDFORM.                    " SELECT_KNB1
    *&      Form  SELECT_CUSTOMER_OPEN_ITEMS
          Select Custmer Open Items.
    FORM SELECT_CUSTOMER_OPEN_ITEMS .
      CLEAR: TB_BSID,
             TB_BSID[].
      SELECT  A~BUKRS
              B~KUNNR
              B~AUGDT
              B~BLDAT
              B~SHKZG
              B~DMBTR
              B~ZFBDT
              B~ZBD1T
              B~ZBD2T
              B~ZBD3T
              B~REBZG
              B~REBZT
         INTO TABLE TB_BSID
         FROM BKPF AS A JOIN BSID AS B
           ON ABUKRS = BBUKRS
          AND ABELNR = BBELNR
          AND AGJAHR = BGJAHR
        WHERE A~BUKRS IN S_BUKRS
          AND A~BLDAT IN S_BLDAT
          AND B~KUNNR IN S_KUNNR
          AND B~ZUONR IN S_ZUONR
          AND B~BSCHL = C_1.
      IF SY-SUBRC = 0.
      DMS Managed Indicator  = ‘X’.
        IF P_ZAMIB = C_X.
          LOOP AT TB_KNB1 WHERE ZAMIB = SPACE.
            DELETE TB_BSID WHERE BUKRS = TB_KNB1-BUKRS
                             AND KUNNR = TB_KNB1-KUNNR.
          ENDLOOP.
        ENDIF.
      Transfering Open Items from TB_BSID to TB_BSID_OPEN
        TB_BSID_OPEN[] = TB_BSID[].
      ENDIF.
    ENDFORM.                    " SELECT_CUSTOMER_OPEN_ITEMS
    *&      Form  SELECT_CUSTOMER_CLEARED_ITEMS
          Select Custmer Cleared Items.
    FORM SELECT_CUSTOMER_CLEARED_ITEMS .
      CLEAR: TB_BSAD_CLEAR,
             TB_BSAD_CLEAR[].
      SELECT   A~BUKRS
               B~KUNNR
               B~AUGDT
               B~BLDAT
               B~SHKZG
               B~DMBTR
               B~ZFBDT
               B~ZBD1T
               B~ZBD2T
               B~ZBD3T
               B~REBZG
               B~REBZT
          INTO TABLE TB_BSAD_CLEAR
          FROM BKPF AS A JOIN BSAD AS B
            ON ABUKRS = BBUKRS
          AND  ABELNR = BBELNR
          AND  AGJAHR = BGJAHR
         WHERE A~BUKRS IN S_BUKRS
           AND A~BLDAT IN S_BLDAT
           AND B~KUNNR IN S_KUNNR
           AND B~ZUONR IN S_ZUONR
           AND B~BSCHL = C_1.
      IF SY-SUBRC = 0.
      DMS Managed Indicator = ‘X’.
        IF P_ZAMIB = C_X.
          LOOP AT TB_KNB1 WHERE ZAMIB = SPACE.
            DELETE TB_BSID WHERE BUKRS = TB_KNB1-BUKRS
                             AND KUNNR = TB_KNB1-KUNNR.
          ENDLOOP.
        ENDIF.
      Sort TB_BSID_CLEAR by Customer number
        SORT TB_BSAD_CLEAR BY KUNNR.
      ENDIF.
    Append lines of TB_BSID_CLEAR to table TB_BSID
      APPEND LINES OF TB_BSAD_CLEAR TO TB_BSID.
    Sort TB_BSID by Cust num AND Doc date in document
      SORT TB_BSID BY KUNNR BLDAT.
    ENDFORM.                    " SELECT_CUSTOMER_CLEARED_ITEMS
    *&      Form  SELECT_KNA1
          Select General Data in Customer Master
    FORM SELECT_KNA1.
      CLEAR: TB_KNA1,
             TB_KNA1[].
      SELECT  KUNNR
              NAME1
              TELF1
              ADRNR
         INTO TABLE TB_KNA1
         FROM KNA1
        WHERE KUNNR IN S_KUNNR.
      IF SY-SUBRC <> 0.
      ENDIF.
    ENDFORM.                    " SELECT_KNA1
    *&      Form  POPULATE_TB_FINAL
          Populate Final Output Data.
    FORM POPULATE_TB_FINAL.
    Local variable
      DATA: L_DAYS_SLOW(3) TYPE N.       " Days Slow
      CLEAR: TB_FINAL,
             TB_FINAL[].
      LOOP AT TB_KNA1.
      Move-corresponding TB_KNA1 to TB_FINAL.
        TB_FINAL-KUNNR = TB_KNA1-KUNNR.  " Customer Number
        TB_FINAL-NAME1 = TB_KNA1-NAME1.  " Name Line 1
        TB_FINAL-PHONE = TB_KNA1-TELF1.  " Telephone Number
      To get Customer Address.
        PERFORM GET_CUSTOMER_ADDRESS.
      To get Date of Last Invoice.
        READ TABLE TB_BSID WITH KEY KUNNR = TB_KNA1-KUNNR.
        IF SY-SUBRC = 0.
          TB_FINAL-LAST_DATE = TB_BSID-BLDAT.
        ENDIF.
      To get past due and current details.
        PERFORM GET_PAST_DUE_CURRENT.
      To get Days Slow.
        CLEAR WA_FAEDE .
        LOOP AT TB_BSID_OPEN WHERE KUNNR = TB_KNA1-KUNNR.
          WA_FAEDE-SHKZG = TB_BSID-SHKZG.
          WA_FAEDE-ZFBDT = TB_BSID-ZFBDT.
          WA_FAEDE-ZBD1T = TB_BSID-ZBD1T.
          WA_FAEDE-ZBD2T = TB_BSID-ZBD2T.
          WA_FAEDE-ZBD3T = TB_BSID-ZBD3T.
          WA_FAEDE-REBZG = TB_BSID-REBZG.
          WA_FAEDE-REBZT = TB_BSID-REBZT.
          WA_FAEDE-KOART = C_D.
        To Determine Due Date.
          CALL FUNCTION 'DETERMINE_DUE_DATE'
               EXPORTING
                    I_FAEDE                    = WA_FAEDE
               IMPORTING
                    E_FAEDE                    = WA_FAEDE
               EXCEPTIONS
                    ACCOUNT_TYPE_NOT_SUPPORTED = 1
                    OTHERS                     = 2.
          IF SY-SUBRC <> 0.
            CLEAR WA_FAEDE.
            MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
          CLEAR: L_DAYS_SLOW.
          L_DAYS_SLOW = SY-DATUM - WA_FAEDE-NETDT - P_GRACE.
          G_DAYS_SLOW = G_DAYS_SLOW + ABS( L_DAYS_SLOW ).
          G_OPEN      = G_OPEN + 1.
        ENDLOOP.
        IF G_OPEN IS INITIAL.
          TB_FINAL-DAYS_SLOW = G_DAYS_SLOW / G_OPEN.  " Days Slow
        ENDIF.
      To get Average days to Pay.
        PERFORM GET_AVG_DAYS_PAY.
      Calculating total records .
        G_REC_COUNT = G_REC_COUNT + 1.
        APPEND TB_FINAL.
        CLEAR  TB_FINAL.
      ENDLOOP.
    Current account balance.
      G_CURR_BAL   = TB_FINAL-CURRENT + TB_FINAL-AVG_1_30  +
                                        TB_FINAL-AVG_31_60 +
                                        TB_FINAL-AVG_61_90 +
                                        TB_FINAL-AVG_90G   .
    ENDFORM.                    " POPULATE_TB_FINAL
    *&      Form  GET_PAST_DUE_CURRENT
          To get past due and current details.
    FORM GET_PAST_DUE_CURRENT.
        Local Varaibles.
      DATA: L_RF035_SFAE1 TYPE RF035-SFAE1,
            L_RF035_SFAE2 TYPE RF035-SFAE2,
            L_RF035_SFAE3 TYPE RF035-SFAE3,
            L_RF035_SFAE4 TYPE RF035-SFAE4,
            L_RF035_SFAE5 TYPE RF035-SFAE5,
            L_RF035_SFAE6 TYPE RF035-SFAE6,
            L_RF035_SFAEL TYPE RF035-SFAEL,
            L_RF035_SNFA1 TYPE RF035-SNFA1,
            L_RF035_SNFA2 TYPE RF035-SNFA2,
            L_RF035_SNFA3 TYPE RF035-SNFA3,
            L_RF035_SNFA4 TYPE RF035-SNFA4,
            L_RF035_SNFA5 TYPE RF035-SNFA5,
            L_RF035_SNFA6 TYPE RF035-SNFA6,
            L_RF035_SNFAE TYPE RF035-SNFAE.
      LOOP AT TB_KNB1 WHERE KUNNR = TB_KNA1-KUNNR.
        CALL FUNCTION 'CUSTOMER_DUE_DATE_ANALYSIS'
             EXPORTING
                  BUKRS          = TB_KNB1-BUKRS
                KKBER          = ' '
                  KUNNR          = TB_KNB1-KUNNR
                  RASID          = C_Z001
             IMPORTING
                  SFAE1          = L_RF035_SFAE1
                  SFAE2          = L_RF035_SFAE2
                  SFAE3          = L_RF035_SFAE3
                  SFAE4          = L_RF035_SFAE4
                  SFAE5          = L_RF035_SFAE5
                  SFAE6          = L_RF035_SFAE6
                  SFAEL          = L_RF035_SFAEL
                  SNFA1          = L_RF035_SNFA1
                  SNFA2          = L_RF035_SNFA2
                  SNFA3          = L_RF035_SNFA3
                  SNFA4          = L_RF035_SNFA4
                  SNFA5          = L_RF035_SNFA5
                  SNFA6          = L_RF035_SNFA6
                  SNFAE          = L_RF035_SNFAE
             EXCEPTIONS
                  INVALID_RASTER = 1
                  NO_OPEN_ITEMS  = 2
                  OTHERS         = 3
        IF SY-SUBRC = 0.
          TB_FINAL-AVG_1_30  = TB_FINAL-AVG_1_30  + L_RF035_SFAE1.
          TB_FINAL-AVG_31_60 = TB_FINAL-AVG_31_60 + L_RF035_SFAE2.
          TB_FINAL-AVG_61_90 = TB_FINAL-AVG_61_90 + L_RF035_SFAE3.
          TB_FINAL-AVG_90G   = TB_FINAL-AVG_90G   + L_RF035_SFAE4
                                                  + L_RF035_SFAE5
                                                  + L_RF035_SFAE6.
          TB_FINAL-CURRENT  = TB_FINAL-CURRENT    + L_RF035_SNFAE.
        ELSE.
          MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " GET_PAST_DUE_CURRENT
    *&      Form  GET_CUSTOMER_ADDRESS
          To get Customer Address.
    FORM GET_CUSTOMER_ADDRESS.
      X_ADDR1_SEL-ADDRNUMBER = TB_KNA1-ADRNR.
      CALL FUNCTION 'ADDR_GET'
           EXPORTING
                ADDRESS_SELECTION = X_ADDR1_SEL
           IMPORTING
                SADR              = X_SADR
           EXCEPTIONS
                PARAMETER_ERROR   = 1
                ADDRESS_NOT_EXIST = 2
                VERSION_NOT_EXIST = 3
                INTERNAL_ERROR    = 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.
      ADDRESS LINE 1.
      TB_FINAL-ADDRESS1 = X_SADR-STRAS.
      ADDRESS LINE 2.
      CONCATENATE X_SADR-PFACH 'CODE' X_SADR-PSTL2 INTO TB_FINAL-ADDRESS2
                                                      SEPARATED BY SPACE.
      ADDRESS LINE 3.
      CONCATENATE  X_SADR-ORT01 X_SADR-ORT02 ',' X_SADR-REGIO X_SADR-PSTLZ
                                INTO TB_FINAL-ADDRESS3 SEPARATED BY SPACE.
      ADDRESS LINE 4.
      TB_FINAL-ADDRESS4 = X_SADR-LAND1.
    ENDFORM.                    " GET_CUSTOMER_ADDRESS
    *&      Form  GET_AVG_DAYS_PAY
          To get Average days to Pay.
    FORM GET_AVG_DAYS_PAY.
    *Local variable
      DATA: L_DAYS TYPE N .                            " Number of Days
      LOOP AT TB_BSAD_CLEAR WHERE KUNNR = TB_KNA1-KUNNR.
        L_DAYS  = TB_BSAD_CLEAR-AUGDT - TB_BSAD_CLEAR-BLDAT.
        G_AVG   = G_AVG + L_DAYS.
        G_COUNT = G_COUNT + 1.
      ENDLOOP.
      IF NOT G_COUNT IS INITIAL.
        TB_FINAL-AVG = G_AVG / G_COUNT. " Average days to Pay.
      ENDIF.
    ENDFORM.                    " GET_AVG_DAYS_PAY
    *&      Form  DISPLAY_ALV_REPORT
          text
    FORM DISPLAY_ALV_REPORT.
    For Populating Field Catalog.
      PERFORM RPT_BUILD_FIELDCATLOG.
    For Modifying Field Catalog.
      PERFORM RPT_MODIFY_FIELDCATLOG.
    For TOP_OF_PAGE Event.
      PERFORM RPT_GET_EVENTS.
    For Displaying Output in Grid Format.
      PERFORM RPT_GRID_DISPLAY.
    ENDFORM.                    " DISPLAY_ALV_REPORT
    *&      Form  RPT_BUILD_FIELDCATLOG
          text
    FORM RPT_BUILD_FIELDCATLOG.
    To build the Field Catlog.
      DATA : L_TABNAME TYPE SLIS_TABNAME.  " Table Name
      L_TABNAME = 'TB_FINAL'.
      REFRESH : TB_FIELDCAT.
      CLEAR   : TB_FIELDCAT.
      CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
           EXPORTING
                I_PROGRAM_NAME         = G_REPID
                I_INTERNAL_TABNAME     = L_TABNAME
                I_INCLNAME             = G_REPID
           CHANGING
                CT_FIELDCAT            = TB_FIELDCAT
           EXCEPTIONS
                INCONSISTENT_INTERFACE = 1
                PROGRAM_ERROR          = 2
                OTHERS                 = 3.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " RPT_BUILD_FIELDCATLOG
    *&      Form  RPT_MODIFY_FIELDCATLOG
          text
    FORM RPT_MODIFY_FIELDCATLOG.
    Getting the Header Text for the Coloumns
      DATA : L_TABIX LIKE SY-TABIX,            " Index
             L_DDICTXT TYPE C  VALUE 'L'.      " Flag
    Getting the Header Text for the Coloumns
      LOOP AT TB_FIELDCAT INTO X_FIELDCAT.
        CLEAR L_TABIX.
        L_TABIX = SY-TABIX.
        CASE X_FIELDCAT-FIELDNAME.
          WHEN 'KUNNR'.                                   " Customer Number
            X_FIELDCAT-SELTEXT_L = 'Customer Number'(001).
            X_FIELDCAT-DDICTXT   =  L_DDICTXT.
          WHEN 'NAME1'.                                   " Name Line 1
            X_FIELDCAT-SELTEXT_L = 'Name'(002).
            X_FIELDCAT-DDICTXT   =  L_DDICTXT.
          WHEN 'ADDRESS1'.                                " Address line 1
            X_FIELDCAT-SELTEXT_L = 'Address 1'(003).
            X_FIELDCAT-DDICTXT   =  L_DDICTXT.
          WHEN 'ADDRESS2'.                                " Address line 2
            X_FIELDCAT-SELTEXT_L = 'Address 2'(004).
            X_FIELDCAT-DDICTXT   =  L_DDICTXT.
          WHEN 'ADDRESS3'.                                " Address line 3
            X_FIELDCAT-SELTEXT_L = 'Address 3'(005).
            X_FIELDCAT-DDICTXT   =  L_DDICTXT.
          WHEN 'ADDRESS4'.                                " Address line 4
            X_FIELDCAT-SELTEXT_L = 'Address 4'(006).
            X_FIELDCAT-DDICTXT   =  L_DDICTXT.
          WHEN 'PHONE'.                                   " Telephone Number
            X_FIELDCAT-SELTEXT_L = 'Telephone Number'(007).
            X_FIELDCAT-DDICTXT   =  L_DDICTXT.
          WHEN 'DAYS_SLOW'.                               " Days Slow
            X_FIELDCAT-SELTEXT_L = 'Days Slow'(008).
            X_FIELDCAT-DDICTXT      =  L_DDICTXT.
          WHEN 'LAST_DATE'.                         " Date of Last Invoice
            X_FIELDCAT-SELTEXT_L = 'Date of Last Invoice'(009).
            X_FIELDCAT-DDICTXT   =  L_DDICTXT.
          WHEN 'AVG'.                               " Average Days to Pay
            X_FIELDCAT-SELTEXT_L = 'Average Days to Pay'(010).
            X_FIELDCAT-DDICTXT   =  L_DDICTXT.
          WHEN 'CURRENT'.                  " Current
            X_FIELDCAT-SELTEXT_L = 'Aging Category 1'(011).
            X_FIELDCAT-DDICTXT   =  L_DDICTXT.
          WHEN 'AVG_1_30'.                  " 1-30 past due
            X_FIELDCAT-SELTEXT_L = 'Aging Category 2'(012).
            X_FIELDCAT-DDICTXT   =  L_DDICTXT.
          WHEN 'AVG_31_60'.                  " 31-60 past due
            X_FIELDCAT-SELTEXT_L = 'Aging Category 3'(013).
            X_FIELDCAT-DDICTXT   =  L_DDICTXT.
          WHEN 'AVG_61_90'.                  " 61-90 past due
            X_FIELDCAT-SELTEXT_L = 'Aging Category 4'(014).
            X_FIELDCAT-DDICTXT   =  L_DDICTXT.
          WHEN 'AVG_90G'.                  " 90+ past due
            X_FIELDCAT-SELTEXT_L = 'Aging Category 5'(015).
            X_FIELDCAT-DDICTXT   =  L_DDICTXT.
        ENDCASE.
        MODIFY TB_FIELDCAT FROM X_FIELDCAT INDEX L_TABIX.
      ENDLOOP.
    ENDFORM.                    " RPT_MODIFY_FIELDCATLOG
    *&      Form  RPT_GET_EVENTS
          text
    FORM RPT_GET_EVENTS.
      DATA : L_TABIX TYPE SY-TABIX.                " Index
      CLEAR   : TB_EVENTS,
                TB_EVENTS[].
    To get the events from this function module
    for ALV display
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                I_LIST_TYPE     = 0
           IMPORTING
                ET_EVENTS       = TB_EVENTS
           EXCEPTIONS
                LIST_TYPE_WRONG = 1
                OTHERS          = 2.
      IF SY-SUBRC <> 0.
        MESSAGE I999 WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    Modifing Top of Page event
      READ TABLE TB_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
                          INTO X_EVENTS.
      IF SY-SUBRC = 0.
        CLEAR L_TABIX.
        L_TABIX = SY-TABIX.
        X_EVENTS-FORM = C_TOP_OF_PAGE.
        MODIFY TB_EVENTS FROM X_EVENTS INDEX L_TABIX.
        CLEAR  X_EVENTS.
      ENDIF.
    ENDFORM.                    " RPT_GET_EVENTS
    *&      Form  TOP_OF_PAGE
          Top Of Page for the ALV format
    FORM  TOP_OF_PAGE.
      REFRESH TB_COMMENTS.
    For heading
      CLEAR   X_COMMENTS.
      X_COMMENTS-TYP  = C_H.
      X_COMMENTS-INFO = 'D&B Credit Agency Interface'(019).
      APPEND X_COMMENTS TO TB_COMMENTS.
    This module outputs formatted simple header information at TOP-OF-PAGE
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
                IT_LIST_COMMENTARY = TB_COMMENTS.
    ENDFORM.                          " TOP_OF_PAGE
    *&      Form  RPT_GRID_DISPLAY
          text
    FORM RPT_GRID_DISPLAY.
    Layout Settings
      CLEAR X_LAYOUT.
      X_LAYOUT-ZEBRA = 'X'.
      X_LAYOUT-COLWIDTH_OPTIMIZE = C_X.
      X_LAYOUT-NO_COLHEAD        = SPACE.
    To Display the Output in ALV Format
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
           EXPORTING
                I_CALLBACK_PROGRAM = G_REPID
                IS_LAYOUT          = X_LAYOUT
                IT_FIELDCAT        = TB_FIELDCAT
                IT_EVENTS          = TB_EVENTS
           TABLES
                T_OUTTAB           = TB_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.                    " RPT_GRID_DISPLAY
    *&      Form  SEND_EMAIL
          text
    -->  p1        text
    <--  p2        text
    FORM SEND_EMAIL.
    Prepare the mail
      PERFORM SEND_MAIL USING C_INTERFACE.
    Sending the mail to Receivers
      PERFORM SENDING_MAIL.
    ENDFORM.                    " SEND_EMAIL
    *&      Form  SEND_MAIL
         Sending the Mail
    FORM SEND_MAIL USING  P_C_INTERFACE TYPE YWFSALOFFICNOTIF-INTERFACE_ID.
    Populating Report name
      G_TITLE = C_TITLE.
      PERFORM POPULATE_EMAIL_REF_DATA USING G_TITLE.
      IF NOT G_REC_COUNT IS INITIAL.
      To populate the data to table tb_objbin
        PERFORM POPULATE_DATA_OBJBIN.
      To get the attached file for the mail
        CLEAR G_TAB_LINES.
        DESCRIBE TABLE TB_OBJBIN LINES G_TAB_LINES.
        TB_OBJHEAD = C_FILENAME.
        APPEND TB_OBJHEAD.
        CLEAR TB_OBJHEAD.
      Creation of the entry for the mail
        TB_OBJPACK-TRANSF_BIN = C_X.
        TB_OBJPACK-HEAD_START = C_1.
        TB_OBJPACK-HEAD_NUM   = C_1.
        TB_OBJPACK-BODY_START = C_1.
        TB_OBJPACK-BODY_NUM   = G_TAB_LINES.
        TB_OBJPACK-DOC_TYPE   = C_TXT.
        TB_OBJPACK-OBJ_NAME   = G_REPID.
        TB_OBJPACK-OBJ_DESCR  = 'Interface Audit Report'(020).
        TB_OBJPACK-DOC_SIZE   = G_TAB_LINES * 255.
        APPEND TB_OBJPACK.
      ENDIF.
    ENDFORM.                    " SEND_MAIL
    *&      Form  SENDING_MAIL
    FORM SENDING_MAIL.
    Function Module to send mail along with attached file
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
           EXPORTING
                DOCUMENT_DATA              = TB_DOC_CHNG
           TABLES
                PACKING_LIST               = TB_OBJPACK
                OBJECT_HEADER              = TB_OBJHEAD
                CONTENTS_BIN               = TB_OBJBIN
                CONTENTS_TXT               = TB_OBJTXT
                RECEIVERS                  = TB_RECLIST
           EXCEPTIONS
                TOO_MANY_RECEIVERS         = 1
                DOCUMENT_NOT_SENT          = 2
                DOCUMENT_TYPE_NOT_EXIST    = 3
                OPERATION_NO_AUTHORIZATION = 4
                PARAMETER_ERROR            = 5
                X_ERROR                    = 6
                ENQUEUE_ERROR              = 7
                OTHERS                     = 8.
      CASE SY-SUBRC.
        WHEN 0.
          MESSAGE S999 WITH 'Mail has been sucessfully sent'(029).
        WHEN 1.
          MESSAGE S999 WITH 'Too Many Parameters'(030).
        WHEN 2.
          MESSAGE S999 WITH 'Doc Could Not Be Sent'(031).
        WHEN 4.
          MESSAGE S999 WITH 'No Authority To Send'(032).
        WHEN 99.
          MESSAGE S999 WITH 'Error While Sending'(033).
      ENDCASE.
    ENDFORM.                    " SENDING_MAIL
    *&      Form  POPULATE_EMAIL_REF_DATA
       Poplulating the body of the mail
    FORM POPULATE_EMAIL_REF_DATA USING TEXT TYPE SOLISTI1-LINE.
    Setting up Mail Subject
      TB_DOC_CHNG-OBJ_DESCR = 'Interface Audit Report'(020).
    Populating body of the mail
      TB_OBJTXT-LINE = 'Interface Audit Report'(020).
      APPEND TB_OBJTXT.
      CLEAR: TB_OBJTXT.
      DESCRIBE TABLE TB_OBJTXT LINES G_TAB_LINES.
      READ TABLE TB_OBJTXT INDEX G_TAB_LINES.
    *To determine the document size
    TB_DOC_CHNG-DOC_SIZE = ( G_TAB_LINES - 1 ) * 255 + STRLEN( TB_OBJTXT ).
    Creation of the entry for the Mail Contents
      CLEAR TB_OBJPACK-TRANSF_BIN.
      TB_OBJPACK-HEAD_START = C_1.
      TB_OBJPACK-HEAD_NUM = C_0.
      TB_OBJPACK-BODY_START = C_1.
      TB_OBJPACK-BODY_NUM = G_TAB_LINES.
      TB_OBJPACK-DOC_TYPE = C_RAW.
      APPEND TB_OBJPACK.
    ENDFORM.                    " POPULATE_EMAIL_REF_DATA
    *&      Form  POPULATE_DATA_OBJBIN
          Populating table for file attachment

  • How to migrate from exchange 2007 to 2013 step by step tutorials please

    Hi
    I am running Windows Server 2008 standard, with exchange 2007 SP2 on it.
    We have 800 mailbox in total
    Our domain controllers are
     Win2012 R2 and I would like to upgrade to Exchange 2013 on Windows server 2012 R2.
    I am running a VM, on VMware environment, so my Windows 2012 R2 is a VM.
    Is there a website or document that explains in detail, step by step how to upgrade from 2007 to 2013.
    I currently only have 1 exchange server 2007, with all the roles on the one server.  I would like to keep that same as
    well with exchange 2013.
    Thanks

    Exchange server deployment assistant is always a good service provider to achieve this task as it simply ask few questions about your current environment and proceed further accordingly.
    You can refer to this blog explained by technet team that will assist you further to gather more information in depth : http://blogs.technet.com/b/meamcs/archive/2013/07/25/part-1-step-by-step-exchange-2007-to-2013-migration.aspx
    Moreover, to avoid the interruptions and proceed a hassle-free migration from exchange 2007 to 2013, this application (http://www.exchangemigrationtool.com/) could also be a good approach to accomplish
    migration task in more secure way.

  • Does anyone know how to upgrade from 4.1 to 4.3 ios?

    After being tricked by the fast talking smoothy helper at Apple store in London to buy a micky mouse ipodtouch (fourth generation) two years ago I am stuck at ios 4.1 and find that all the useful applications need 4.3 or more. So I went to the trouble of letting the macbook stay open all night to load yet another micky mouse version of itunes so that I can upload the more recent version of ios and now (since I don't want to continually have a lot of rubbish on the ipod I disabled the automatic sync "feature") I can only go round in circles  whereby the only real possibility left is to turn on the autosync feature. I have had messages like "your ipod will be completely erased if you proceed" and "do you wish to fiddle another few days with this nasty system, then click on continue" and so on.
    Does anyone know how to upgrade from 4.1 to 4.3 ios?
    That would be great (maybe) because otherwise I will toss this children's waste product on the floor and set up my HD camera to show how easy it is to smash the brightly lit screen into pieces and relieve myself of trash which Apple sell to unsuspecting gullible humans who believe that they are not being tricked by such a nice company who produce shiny colourful gadgets which only work for a month or two before becoming 100% obsolete.
    Great to hear from those who have wasted many months of their lives and discovered how to trick the system into doing a simple update operation!
    I am insulted by the tricks that fool many and that apple pretend are "necessary".
    Germany 2014 01 11 16 19 27

    Illaass, your help is amazing - miles better than anyone working in this part of the world who is paid - and you do this for free - because, like me, you LOVE to help people!
    BUT, as I said above -
    1. There is nothing "mobile" under Application Support. For whatever reason.
    2. Devious - that Apple has set up iPod to not show in Finder - a red herring and sign that corruption is visible.
    I will try iFunBox next and it sounds like they provide this for the more serious users but use a trivial name to excuse further strangeness.
    After
    There are purchased items on the iPod that have not been transferred to your iTunes library. You should transfer these items to your iTunes library before updating the iPod. Are you sure you want to continue?
    I get
    Updating to iOS 6.1.5 will backup and restore the apps, media, contacts, notes, and settings on your iPod touch.
    Please do not interrupt the update, which may take an hour or longer to complete.
    Cancel          Update
    And then I wait for hours to arrive at the above mentioned
    Backing up iPod   \\\\\\\\\\\\\\\\\\\\\\\\\ Stop
    and then as above
    An error occurred while backing up this iPod (0xE8000084). Would you like to continue to update this iPod?
    Continuing will result in the loss of all contents on this iPod.
    Cancel                Continue
    and so we are back to where we always land - the user is left in the Apple designed sabotage situation which annoyed me so much initially.
    "Most users will give up at this point, loose all the data or buy yet another disposable from Apple. Less than 3% will work their way to this site and 90% of the 3% will leave the iPod to gather dust in the hope that someone will help later. In all, Apple gains, since people blame themselves for "mistakes" which Apple programmed to throw out users who do not take the 100% Apple path. But Illaass and myself still play the game of "trying to fix" something which Apple don't allow."  was the comment which I was going to write but decided against it, adding no value to the conversation other than explaining one reality which we all hoped could be wrong but which I thought to have a very high chance of being closer to the truth.
    Apologies for my doubts towards the integrity of the creators.
    2014 01 13 12 11 58 17
    Recheck: Under Application Support "mobilesync" folder has appeared (MobileMeSyncClient has also appeared [while again trying to update iPod] with zero size) - Good news, a Backup file is there, but it is only 3GB while my iPod has 32GB and is close to full (800MB free space).
    Latest at
    2014 01 13 12 09 22
    The iPod could not be restored. An unknown error occurred (9).
    More Infomation    OK
    So it looks like I may have lost all the important pictures documenting various items all around Europe for the last two years - luckily I moved a year ago from the iPod toy camera to a Panasonic real camera with SD card which can be read on any computer. Hence important items lost may only be older than one year rather than the most recent items.
    Glad I have changed to Panasonic since they don't try to screw you when you don't use their system.
    I will now check the "more information" rather than just click on "OK" since I am of the 3% who "don't accept cr*p".
    For full information I quote that the iPod now shows a screen with a USB ikon, an upward arrow and an iTunes ikon (all micky mouse language which reduces transparant, clear and technical discussion and thus covers the trail of "where things went wrong").
    The iPod is still attached to the computer but the above MMTALK may mean that the iPod should be attached via USB to the mac. I record much of this activity on Video to be able to later prove EXACTLY what occurred, rather than having to rely on screenshots and opinions. We are after all dealing with important items which may later be required to be shown in court, as evidence against fraudsters.
    The "More Information" link leads to
    Resolve iOS update and restore errors in iTunes
    which I have already seen before.
    I clicked on OK and a help screen (unnamed as ever because no one like myself demanded that the help screens be named for later discussion) arrived:
    You can help Apple improve its products a
    while copying this into this message the computer began to start up Final Cut Pro and this was cancelled, then iTunes came up with a message:
    iTunes has detected an iPod in recovery mode. You must restore this iPod before it can be used with iTunes.
    ok
    And I presume the earlier message about helping Apple is gone because I keep getting interrupted by this message called
    iTunes has detected an iPod in recovery mode. You must restore this iPod before it can be used with iTunes.
    ok
    it has appeared now at least six times interferring with anything else I do. Each time I try to write, this message appears and blocks, but only when I write. I tried to do a carriage return and the message appeared taking the carriage return as acceptance of the OK in the
    iTunes has detected an iPod in recovery mode. You must restore this iPod before it can be used with iTunes.
    ok
    Message. But since I have not removed the USB and keep returning to this message I am able to write for a few seconds (now 30 seconds or more) and the message remains on the screen but not blocking this conversation. It appears to be random but in fact as you can later see from the video, it is not reappearing each periodic number of seconds but as I reach a new comment.
    I will try to close iTunes so that this can be stopped (I clicked on OK and it appeared another few times, each time I clicked on ok and now it has left me in peace to write here although iTunes is still not yet closed).
    Difficult to log down all the strange behaviour but I think you can get the gist of what is going on.
    2014 01 12 12 49 27
    Should I remove the iPod and stop iTunes? I have a nasty feeling turning to indifference since I have video footage which will verify all the above in a court of law if later required. The truth must always win over any devious attempts at forcing people to do things they don't want to ;-)
    2014 01 13 13 03 48

  • 1) How to Boot from SAN for T4-1 Server with Solaris 11.1 OS on the disk? 2) How to SMI Label/Format a disk while OS Installation in Solaris 11.1?

    FYI....boot from SAN is required for physical server (T4-1) (not OVM).
    1) How to Boot from SAN for T4-1 Server with Solaris 11.1 OS on the disk?
    The SAN disks allocated are visible in ok prompt. below is the output.
    (0) ok show—disks
    a) /pci@400/pci@2/pci@0/pci@f/pci@0/usb@0, 2/hub@2/hub@3/storage@2/disk
    b) /pci@400/pci@2/pci@0/pci€a/SUNW, ezalxs@0, l/fp@0, 0/disk
    e) /pci@400/pci@2/pci@0/pci@a/SUNW, ealxs@0/fp@0, 0/disk
    d) /pci@400/pci@2/pci@0/pci@8/SUNW, emlxs@0, l/fp@0, 0/disk
    e) /pci@400/pci@2/pci@0/pci@8/SUNW,enlxs@0/fp@0,0/disk
    f) /pci@400/pci@2/pci@0/pci@4/scsi@0/disk
    g) /pci@400/pci@1/pci@0/pci@4/scsi@0/disk
    h) /iscsi—hba/disk
    q) NO SELECTION
    valid choice: a. . .h, q to quit c
    /pci@400/pci@2/pci@0/pci@a/SUNW, ealxs@0/fp@0, 0/disk has been selected.
    Type “Y ( Control—Y ) to insert it in the command line.
    e.g. ok nvalias mydev “Y
    for creating devalias mydev for /pci@400/pci@2/pci@0/pci@a/SUNW,emlxs@0/fp@0,0/disk
    (0) ok set—sfs—boot
    set—sfs—boot ?
    We tried selecting a disk and applying sfs-boot at ok prompt.
    Can you please help me providing detailed pre-requesites/steps/procedure to implement this and to start boot from SAN.
    2) How to SMI Label/Format a disk while OS Installation in Solaris 11.1?
    As we know that ZFS is the default filesystem in Solaris 11.
    We have seen in the Oracle documentation that for rpool below are recommended:
    - A disk that is intended for a ZFS root pool must be created with an SMI label, not an EFI label.
    - Create root pools with slices by using the s* identifier.
    - ZFS applies an EFI label when you create a storage pool with whole disks.
    - In general, you should create a disk slice with the bulk of disk space in slice 0.
    I have seen the solution that using format -e, we change the labelling but all the data will be lost, whats the way to apply a SMI Label/Format on a rpool disks while OS Installation itself.
    Please provide me the steps to SMI Label a disk while installaing Solaris 11.1 OS.

    Oracle recommends below things on rpool: (thats reason wanted to apply SMI Label)
    I have seen in the Oracle documentation that for rpool below are recommended:
    - A disk that is intended for a ZFS root pool must be created with an SMI label, not an EFI label.
    - Create root pools with slices by using the s* identifier.
    - ZFS applies an EFI label when you create a storage pool with whole disks.
    - In general, you should create a disk slice with the bulk of disk space in slice 0.

  • ALV  - coulmn names differ from Grid display to Excel download

    Hi,
    When I display report in ALV grid,  the layout looks fine. But the column headings and field output length differs from Grid to Excel sheet data.
    suppose if some column heading is like ABCDEF and content is of 2 characters. Then it grid i am getting like ABCDEF. But in Excel I am getting it like ABC. ( which is seltext_S).
    My question is why the layout is not being copied to Excel as it is like in GRID display??
    Thanks in advance.
    Praneet

    HI,
    Just Try this,
    Eg: suppose this is the field VBELN
    Declare in the internal table like
    vbeln(10) type c,
    instead of         vbeln     LIKE vbak-vbeln,
    Hope it'll work

  • How to out from infinite while loop in sub VI

    Dear Sir,
    how to out from infinite while loop in sub VI from main VI
    attached photo for solution but I can't understand it and i can't find the function in photo 
    please help
    Attachments:
    stop_subVI_frm_main.JPG ‏36 KB

    Asking how to get out of an infinite loop is like asking how to find the end of a circle. I'm not trying to be sarcastic but by definition, if there is a way out of the loop, then it is not infinite. I think what you are asking is how to avoid creating an infinite loop. Is there something about the suggestions you have been given that you do not like? My favorite suggestion is the notifier but maybe you just need an example. Turn on context help and read about the notifier functions in the code below.
    This is your top level VI
    And this is your subVI
    If this seems too complex then a global variable will work too. But what seems simpler can cause much more complex bugs. You can code fast and spend lots of time debugging or you can code slow and spend less time debugging. Personally I perfer writing productive code than looking for bugs any time.
    =====================
    LabVIEW 2012

  • Report from Grid Control:Monthly Growth of each database in Single Report

    Hi,I want to make the report from Grid Control for Monthly Growth of each Database for Capacity planning
    I can See under Report->Storage->Oracle Database Tablespace Monthly Space Usage
    But this is only for once database and I want to include all the database in single report that too with limited INfo
    Want the format something like..just wanted to make you guys
    Database     Actual Size on 1st     Actual Size on 30th     INcrease in Size
    1.
    2.
    Something close to above format will do...
    Thanx
    Gagan

    Hi Thanx for the reply
    But Which Tablespace Metric You are talking about?I can See 5-6 Tablespace Metric and infact I dont want the data at the tablespace level and I want the total size of the database and growth in last month as shown in ' Oracle Database Tablespace Monthly Space Usage '.
    But Thanx again for the reply
    Regards
    Gagan

  • Report from Grid Control:Monthly Growth of Each Database on Single Report

    Hi,I want to make the report from Grid Control for Monthly Growth of each Database for Capacity planning
    I can See under Report->Storage->Oracle Database Tablespace Monthly Space Usage
    But this is only for once database and I want to include all the database in single report that too with limited INfo
    Want the format something like..just wanted to make you guys
    Database     Actual Size on 1st     Actual Size on 30th     INcrease in Size
    1.
    2.
    Something close to above format will do...
    Thanx
    Gagan

    Hi Thanx for the reply
    But Which Tablespace Metric You are talking about?I can See 5-6 Tablespace Metric and infact I dont want the data at the tablespace level and I want the total size of the database and growth in last month as shown in ' Oracle Database Tablespace Monthly Space Usage '.
    But Thanx again for the reply
    Regards
    Gagan

  • How to convert from Grayscale to single color channel

    I hope that someone here might be able to help. I am writing an application which loads in color channels separately, to be merged by the application The images are multi-page TIFF files. The trouble that I am running into is that the application loads the images into grayscale, so when I merge the channels, they are merged as grayscale, not as the correct colors.
    I use the following on each color channel to load them in:
    public static BufferedImage[] loadTiff(File multiPageFile, int colour) {
        BufferedImage[] img = null;
        ArrayList<BufferedImage> tmp = new ArrayList<BufferedImage>();
        try {
            SeekableStream stream = new FileSeekableStream(multiPageFile);
            String[] names = ImageCodec.getDecoderNames(stream);
            ImageDecoder dec = ImageCodec.createImageDecoder(names[0], stream, null);
            int numPages = dec.getNumPages();
            for (int i=0; i<numPages; i++) {
             try {
                    RenderedImage im = dec.decodeAsRenderedImage(i);
                    BufferedImage bi = PlanarImage.wrapRenderedImage(im).getAsBufferedImage();
              //In case not all pages are valid images, we use ArrayList as it is dynamic
              tmp.add(bi);
                }catch (RuntimeException re) {
              //Once the exception is caught, we can decode the layer here for whatever means.   
        }catch (FileNotFoundException fnfe) {
            System.err.println("File not found.");
            fnfe.printStackTrace();
        }catch (Exception e) {
            System.err.println("General Exception caught");
            e.printStackTrace();
        //Convert to an array to be returned.
        img = new BufferedImage[tmp.size()];
        for (int i=0; i<img.length; i++) {
            img[i] = tmp.get(i);
        return img;
    }So a BufferedImage array is returned (one element in the array for each page in the multi-page file). Before I return the BufferedImage array, though, it would be good to convert it to the correct color. I know which channel is currently being loaded. Does anyone have any tips on how to shift from a grayscale intensity to a single color intensity? I have tried a number of things regarding byte shifting, but I am really none the wiser.
    I have tried, for example, reading the int color value:
    int color = bi.getRGB(w,h);The trouble is that this number is not in the region 0..255, so I don't know how I can use it. If I shift the number:
    color = color>>16I get a number smaller than 255 (although it seems to be negative), but I don't know whether I can use this value for a single color channel, i.e. if the current color is red, saying:
    Color redC = new Color(color, 0, 0);
    bi.setRGB(w,h,redC); //Slow and inefficient. There must be a better way.When I try doing that, I end up with nothing drawn or visible.
    Does anyone have any ideas? Thanks in advance.
    Edited by: doughnuts64 on Jun 12, 2008 6:27 AM

    Thanks for the response. It has been helpful in getting my problem sorted. I was not creating a new BufferedImage - I was just using the one that had been loaded in, and as such had not realised that the type was not TYPE_INT_RGB. As soon as I instantiated a new BufferedImage of the same dimensions and colour TYPE_INT_RGB as you suggested, it worked! So thanks for that.
    Whilst that does work, it does slow the application incredibly as it has so much data to cycle through. Ideally, I would be able to load the image in directly as the colour channel in question, rather than loading in as grayscale. This way, the application would only require the amount of time needed to load in the images, not to process them on a pixel-by-pixel basis (typical images are made up of over 16,000,000 pixels for each colour channel, and we typically load two files in at once - both for separate colour channels, so over 32,000,000 pixels to process).
    As I am loading in multi-page tiff files, I am having to use the JAI (Java Advanced Imaging) toolkit. I use the following code to load in my multi-page tiff into a BufferedImage array, where each element of the array represents one of the 'pages' in the multi-page tiff file:
    SeekableStream stream = new FileSeekableStream(multiPageFile);
    String[] names = ImageCodec.getDecoderNames(stream);
    ImageDecoder dec = ImageCodec.createImageDecoder(names[0], stream, null);
    int numPages = dec.getNumPages();
    BufferedImage[] finalImage = new BufferedImage[numPages];
    for (int i=0; i<numPages; i++) {
         RenderedImage im = dec.decodeAsRenderedImage(i);
         finalImage[i] = PlanarImage.wrapRenderedImage(im).getAsBufferedImage();
         //...colour changing code currently here - loops through finalImage array, and on every pixel of every layer
    ...To be able to automatically convert the colour channel without having to loop on every pixel (and thus save an incredible amount of loading time) would be helpful.
    Thanks.

Maybe you are looking for

  • Where is "Done Signing" in Adobe Reader 10.1.9?

    I am using Adobe Reader 10.1.9, and I cannot see a "Done Signing" button as the directions say?

  • Where can I download Apple Hardware Diagnostics for my MacBook Pro ?

    I have a problem of Mac freezing with an alarm sound forcing me to shut down, and someone suggests that I run an Apple Hardware Test. But I have no such CD. Do you know wether such an application can be downloaded for a MacBook Pro (Mac Os X Lion) ?

  • Font size in a TextField

    Hello ! I'm using a javax.microedition.lcdui.TextField to enter a few digits. These digits were shown very small... Is there any way to change the font-size in the text field? Greetings Micha

  • Status Profile in Q Info record

    Hi, I manintained a status profile in Q Info record for PPAP approval process and working fine for status changes from Proto to Pilot to Production lots. The functionality works fine  as long as each status change happenes automatically based on the

  • Video input adapter

    I lately have been looking for a Video input adapter that works with my Mac book. I found a windows VIA but that didn't work on mac and I looked for mac ones but couldn't find one at a reasonable price or just didn't seem reliable. So apple.com do yo