Data ONTAP PowerShell Toolkit - Collect SYSSTAT type of information in CSV format

As part of performance monitoring and analysis collecting performance data is crucial. Even though historical data could be collected with other monitoring tools we are often using SYSSTAT command to collect such data during short period of time of specific activity to analyze performance of NetApp array. Raw output of SYSSTAT command is useful but in some cases it needs to be presented in more visual form such graphs and charts. Producing Comma-Separated-Values file from SYSSTAT command output is long and painful process.
Working with customer on performance analysis made me to develop PowerShell script which can capture such data in CSV format, so that data can be processed much faster and presented to customer in nice graphical format.
Script Get-NaSysStat.ps1 uses Get-NaPerfCounter and Get-NaPerfData commandlets to extract performance data of NetApp array and store them into CSV file. Script uses next parameters:
  NaIP       : IP address or Name of the Filer
  NaUS      : Filer User Name. Default Value - root
  NaPW     : Filer User's Password. Default Value - password.
  Output     : Display/<File Name or Path>. Default Value - Display
  Interval     : Interval in minutes between samples. Default Value - 5 min.
  Iterations  : Number of sample iterations.
               Default Value - 0, for no limit.
               Execution can be ended by pressing Ctrl-C
Example of calling script and screen output:
PS C:\@work\Scripts> .\Get-NaSysStat.ps1 -NaIP 10.58.97.11 -NaUS root -NaPW <password> -Output Perf.csv -Interval 1
Name                                 Value
Time                                  4/7/2011 4:37:03 PM
system_model                    FAS6070
ontap_version                     NetApp Release 8.0.1RC2 7-Mode: Thu Oct 21 01:27:45 PDT 2010
serial_no                            ***
system_id                          ***
hostname                           Array-01
nfs_ops                              0.00
cifs_ops                             0.00
http_ops                             0.00
fcp_ops                              8.50
iscsi_ops                           0.00
read_ops                           0.00
sys_read_latency               0.00
write_ops                           8.50
sys_write_latency               0.32
total_ops                            8.50
sys_avg_latency                 0.32
net_data_recv                     2.20
net_data_sent                    9.25
disk_data_read                  169.61
disk_data_written               584.21
cpu_busy                          2.12
avg_processor_busy          1.49
total_processor_busy         5.98
num_processors                4
Screen output is valuable part but parameter -Output tells script to save data into CSV file. Here is an example of CSV files:
Time, avg_processor_busy, cifs_ops, cpu_busy, disk_data_read, disk_data_written, fcp_ops, hostname, http_ops, iscsi_ops, net_data_recv, net_data_sent, nfs_ops, num_processors, ontap_version, read_ops, serial_no, sys_avg_latency, sys_read_latency, sys_write_latency, system_id, system_model, total_ops, total_processor_busy, write_ops,
3/28/2011 5:32:25 PM, 3.17, 0.00, 17.30, 6773.59, 21667.06, 1031.74, BP-SAN-04, 0.00, 0.00, 17.41, 284.66, 0.00, 12, NetApp Release 8.0.1 7-Mode: Wed Jan  5 17:23:51 PST 2011, 558.10, 700000501660, 0.83, 0.89, 0.75, 1873760944, FAS6280, 1031.54, 37.98, 473.44,
3/28/2011 5:33:26 PM, 2.07, 0.00, 10.88, 8511.15, 16221.77, 869.91, BP-SAN-04, 0.00, 0.00, 6.29, 91.75, 0.00, 12, NetApp Release 8.0.1 7-Mode: Wed Jan  5 17:23:51 PST 2011, 656.24, 700000501660, 0.80, 0.79, 0.84, 1873760944, FAS6280, 869.70, 24.89, 213.46,
3/28/2011 5:34:27 PM, 0.83, 0.00, 3.59, 3311.89, 5268.20, 131.53, BP-SAN-04, 0.00, 0.00, 1.84, 9.72, 0.00, 12, NetApp Release 8.0.1 7-Mode: Wed Jan  5 17:23:51 PST 2011, 50.07, 700000501660, 0.81, 1.05, 0.65, 1873760944, FAS6280, 131.35, 10.00, 81.28,
3/28/2011 5:35:28 PM, 1.66, 1.70, 10.61, 2518.90, 3812.95, 241.06, BP-SAN-04, 0.00, 0.00, 12.41, 25.53, 0.00, 12, NetApp Release 8.0.1 7-Mode: Wed Jan  5
Performance data is exported into Microsoft Excel for further analysis and nice performance graphs created within minutes:
Script is attached to this post.

i can't start this script - i have error:================C:\ps\Get-NaSysStat.ps1:52 row:10 + $Filer = Connect-NaController $NaIP -Credential $Creds +          ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo          : ObjectNotFound: (Connect-NaControllertring) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException================what can i do?

Similar Messages

  • Uploading data in MM01 for different material types

    Hi,
    I have a doubt regarding uploading the data in MM01 for different material types.
    Generally in MM01, we have different views for different material types. The number of views will vary depending upon the material type that we select.
    I have a scenario, where in to upload the data, I have a flat file that consists of data for different message types. So, how to upload the data in such case.
    Can anyone help me on the same by providing explanation or sample code...? What would be the possible ways to upload data in such scenario.
    That would be of great help.
    Thanks & Regards,
    Pradeep.

    See the below code and use FM SELECTION_VIEWS_FIND..
    REPORT zjpmuim306 NO STANDARD PAGE HEADING LINE-SIZE 250 MESSAGE-ID
    zjpm001.
    *&   I N B O U N D  V I A   A B A P : Batch input Session method     *
    *&   Development ID: IM_DD_306_LJP                                   *
    *&   Report        : ZJPMUIM306                                      *
    *&   The Purpose of the Object is to interface Create Input Record   *
    *&   for SAP Migration from the Material master of BPCS All the      *
    *&   information received at BPCS is collected into a single record. *
    *&   By using session method upload data from file ,one item is
    *&   created for one record                                          *
    *&   Change Log:                                                     *
    *&   Init       Who              Date         Text                   *
    *&  MALIKDH1   Seshu Reddy    26-07-2003   Initial Version           *
                             Constants                                   *
    CONSTANTS:c_vkorg(4) type c value 'JP20',        " Sales Organization
              c_vtweg(2) type c value 'TR' ,         " Distribution Channel
              c_werks(4) Type c value 'JP01' ,       " Plant
              c_viewlist(15) VALUE 'KDEALBSZXVPCFQG'," View list
              c_scm_view TYPE msichtausw-dytxt VALUE 'SCM View',
              c_sd_view TYPE msichtausw-dytxt VALUE 'SD View',
              c_seq_code(2) VALUE 'Z1',              " Sequential Code
              c_keep(1) TYPE c VALUE  'X',           " Keep
              c_group LIKE apqi-groupid VALUE 'IM306', " Session Name
              c_tcode  LIKE tstc-tcode VALUE 'MM02',  " Transaction Code
              c_blank(1) VALUE ' ',                   " Blank
              c_intls(1) VALUE 'N'.                  " Logistic Status
                  Variables                                      *
    DATA: g_flag1(1),  " Variable to hold
          g_flag(1),   " Variable to hold
          g_file LIKE rlgrap-filename VALUE
         'C:\Documents and Settings\seshur\Desktop\HCLT123.CSV'. " File name
           Internal tables/ Work area                           *
    Internal Table for Delimter
    DATA : BEGIN OF t_delim OCCURS 0,
           text(1000),
           END OF t_delim.
    Internal table for BDC processing
    DATA : t_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
    Internal table for holding the data which has to be uploaded.
    DATA: BEGIN OF t_bpcs OCCURS 0,
          matnr(15) TYPE c,  " material no
          dosage(40) TYPE c, " Dosage form(Local)
          appearance(40) TYPE c, " Appearance
          idcode(6) TYPE c,     " Identification Code
          prostformno(10) TYPE c, "SOP
          weitab(7) TYPE c,    " Weight/tablet
          uom1(2) TYPE c,     " UOM of Carton
          uom2(2) TYPE c,     " UOM of Case
          carsize(14) TYPE c, " Carton size
          cassize(14) TYPE c, " Case size
          rupqty(11) TYPE c,  " Round up
          abvname(3) TYPE c,  " Product short name
          END OF t_bpcs.
    *Internal table for t_bpcs
    DATA: BEGIN OF t_mdata OCCURS 0,
          matnr  LIKE marc-matnr, " Material number
          zzjp_dos_frm LIKE marc-zzjp_dos_frm, " Dosage form(Local)
          zzjp_aprn LIKE marc-zzjp_aprn, " Appearance
          zzjp_con_id LIKE marc-zzjp_con_id," Identification Code
          zzjp_nyu_sop LIKE marc-zzjp_nyu_sop,"SOP
          zzjp_wei_tab(10) type c , " Weight/tablet
          zzjp_bio  LIKE marc-zzjp_bio,"Biologics Indicator
          zzjp_itf LIKE marc-zzjp_itf, " ITF code
          zzjp_car(2) type c, " UOM of Carton
          zzjp_cas(2) type c, " UOM of Case
          zzjp_car_size(11) type c," Carton size
          zzjp_cas_size(11) type c, " Case size
          zzjp_rupqty(11) type c,  " Round up
          zzjp_init_ls LIKE marc-zzjp_init_ls, " Logistic Status
          zzjp_re1 LIKE marc-zzjp_re1, "Document type(Local)
          zzjp_re2 LIKE marc-zzjp_re2, "Report type
          zzjp_re3 LIKE marc-zzjp_re3, "Shipping report type
          zzjp_pro_id LIKE mvke-zzjp_pro_id," Product output sequence
          zzjp_bu_id LIKE mvke-zzjp_bu_id, " Business unit indicator
          zzjp_abv_name LIKE mvke-zzjp_abv_name," Product short name
          zzjp_abv_id1 LIKE mvke-zzjp_abv_id1," Product short name output
          zzjp_abv_id2 LIKE mvke-zzjp_abv_id2," Product short name internal
          zzjp_spl_id LIKE mvke-zzjp_spl_id,  " Sample internal order
          END OF t_mdata.
    Internal table for Mara Table
    DATA: BEGIN OF t_mara OCCURS 0,
          matnr LIKE mara-matnr,  " material Number
          vpsta LIKE mara-vpsta,  " Maintenance status of complete material
          pstat like mara-pstat,  " Maintenance status
          END OF t_mara.
    Internal table for Material Master View Selection Screens
    DATA: BEGIN OF t_bildtab OCCURS 0.
            INCLUDE STRUCTURE mbildtab.
    DATA: END OF t_bildtab.
    internal table for T_bildtab
    DATA: t_bildtab_dup LIKE t_bildtab OCCURS 0 WITH HEADER LINE.
    *Work area for T_bildtab internal table(Views Selection)
    DATA: BEGIN OF w_data,
          flag1 type c,
          anzd70 TYPE i,
          field1(20) type c,
          field2(20) type c,
          field3(20) type c,
          field4(20) type c,
          count(2) TYPE c,
          END OF w_data.
                Main Processing                           *
    START-OF-SELECTION.
    Store data from file into internal table
      PERFORM f_uplaod_data.
    Transfer the uploaded data into t_mdata internal Table
      PERFORM f_process_data.
    Selecting The views based on Material number
      PERFORM f_view_list.
    Open a BDC Session
      PERFORM f_bdc_open.
    *Selecting the fields from mara table
      SELECT matnr
             vpsta
             pstat
        FROM mara
      INTO TABLE t_mara
      FOR ALL ENTRIES IN t_mdata
      WHERE matnr = t_mdata-matnr.
      SORT t_mara BY matnr.
      SORT t_mdata BY matnr.
    Transfer the uploaded data into BDCDATA structure
      PERFORM f_process_bdc.
    Close The BDC Session
      PERFORM f_close_group.
    *&      Form  F_VIEW_LIST                                             *
             Routine to used for Calling the function module            *
              Selection_views_find                                      *
    FORM f_view_list.
      CALL FUNCTION 'SELECTION_VIEWS_FIND'
           EXPORTING
                bildsequenz     = c_seq_code
                pflegestatus    = c_viewlist
           TABLES
                bildtab         = t_bildtab
           EXCEPTIONS
                call_wrong      = 1
                empty_selection = 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.                    " F_VIEW_LIST
    *&      Form  f612_view_sort                                          *
      Routine to used for Selecting The views based on Material Number  *
    FORM f612_view_sort.
      t_bildtab_dup[] = t_bildtab[].
    Reading the Internal table t_mara
      READ TABLE t_mara WITH KEY matnr = t_mdata-matnr.
      TRANSLATE t_mara-pstat USING ' $'.
      CLEAR: w_data-flag1, w_data-anzd70.
      LOOP AT t_bildtab_dup.
        IF t_bildtab_dup-pstat CA t_mara-pstat.
          w_data-anzd70 = w_data-anzd70 + 1.
          IF t_bildtab_dup-kzanz IS INITIAL.
            t_bildtab_dup-kzanz = 'X'.
            w_data-flag1 = 'X'.
            MODIFY t_bildtab_dup.
          ENDIF.
        ELSE.
          IF NOT t_bildtab_dup-kzanz IS INITIAL.
            CLEAR t_bildtab_dup-kzanz.
            w_data-flag1 = 'X'.
            MODIFY t_bildtab_dup.
          ENDIF.
        ENDIF.
      ENDLOOP.
      TRANSLATE t_mara-pstat USING '$ '.
      IF NOT w_data-flag1 IS INITIAL.
        SORT t_bildtab_dup BY kzanz DESCENDING idxbd ASCENDING.
      ENDIF.
    *Reading The internal table for T_bildtab_dup
      READ TABLE t_bildtab_dup WITH KEY dytxt = c_scm_view.
      IF t_bildtab_dup-kzanz = 'X'.
        WRITE sy-tabix TO w_data-count.
        w_data-count = w_data-count + 2.
        IF w_data-anzd70 > 18.
          w_data-count = w_data-count - 18.
        ENDIF.
        CONCATENATE 'MSICHTAUSW-DYTXT(' w_data-count ')' INTO w_data-field1.
        CONCATENATE 'MSICHTAUSW-KZSEL(' w_data-count ')' INTO w_data-field2.
      ENDIF.
      READ TABLE t_bildtab_dup WITH KEY dytxt = c_sd_view.
      IF t_bildtab_dup-kzanz = 'X'.
        WRITE sy-tabix TO w_data-count.
        IF w_data-anzd70 > 18.
              w_data-count = w_data-count + 2.
          w_data-count = w_data-count - 18.
        ENDIF.
        CONCATENATE 'MSICHTAUSW-DYTXT(' w_data-count ')' INTO w_data-field3.
        CONCATENATE 'MSICHTAUSW-KZSEL(' w_data-count ')' INTO w_data-field4.
      ENDIF.
    ENDFORM.                    " f612_view_sort
    *&      Form  f_uplaod_data                                           *
    Routine to used for Uploading the data from file to Internal table *
    FORM f_uplaod_data.
      CALL FUNCTION 'WS_UPLOAD'
           EXPORTING
                filename                = g_file
                filetype                = 'DAT'
           TABLES
                data_tab                = t_delim
           EXCEPTIONS
                conversion_error        = 1
                file_open_error         = 2
                file_read_error         = 3
                invalid_type            = 4
                no_batch                = 5
                unknown_error           = 6
                invalid_table_width     = 7
                gui_refuse_filetransfer = 8
                customer_error          = 9
                OTHERS                  = 10.
      IF sy-subrc <> 0.
             MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      IF t_bpcs IS INITIAL.
        LOOP AT t_delim.
          SPLIT t_delim-text AT ',' INTO t_bpcs-matnr
                                         t_bpcs-dosage
                                         t_bpcs-appearance
                                         t_bpcs-idcode
                                         t_bpcs-prostformno
                                         t_bpcs-weitab
                                         t_bpcs-uom1
                                         t_bpcs-uom2
                                         t_bpcs-carsize
                                         t_bpcs-cassize
                                         t_bpcs-rupqty
                                         t_bpcs-abvname.
          APPEND t_bpcs.
        ENDLOOP.
      ENDIF.
    ENDFORM.                    " f_uplaod_data
    *&      Form  F_BDC_OPEN
          Routine  to create BDC Session to be processed
    FORM f_bdc_open.
      CALL FUNCTION 'BDC_OPEN_GROUP'
           EXPORTING
                client              = sy-mandt
                group               = c_group
                keep                = c_keep
                user                = sy-uname
           EXCEPTIONS
                client_invalid      = 1
                destination_invalid = 2
                group_invalid       = 3
                group_is_locked     = 4
                holddate_invalid    = 5
                internal_error      = 6
                queue_error         = 7
                running             = 8
                system_lock_error   = 9
                user_invalid        = 10
                OTHERS              = 11.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
      MESSAGE S000 WITH 'Batch input session is created successfully'(T02).
      ENDIF.
    ENDFORM.                    " F_BDC_OPEN
    *&      Form  F_PROCESS_BDC
          Processing of BDCDATA Structure
    FORM f_process_bdc.
      LOOP AT t_mdata.
        PERFORM f612_view_sort.
        PERFORM f_bdc_dynpro USING 'SAPLMGMM' '0060'.
        PERFORM f_bdc_field USING 'BDC_CURSOR'
                                      'RMMG1-MATNR'.
        PERFORM f_bdc_field USING 'BDC_OKCODE'
                                      '=AUSW'.
        PERFORM f_bdc_field USING 'RMMG1-MATNR'
                                      t_mdata-matnr.
        PERFORM f_bdc_dynpro USING 'SAPLMGMM' '0070'.
        PERFORM f_bdc_field USING 'BDC_CURSOR'
                                  'MSICHTAUSW-DYTXT(01)'.
        IF w_data-anzd70 > 18.
          PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                      '=P+'.
          PERFORM f_bdc_dynpro      USING 'SAPLMGMM' '0070'.
          PERFORM f_bdc_field  USING 'BDC_OKCODE' '/00'.
        ENDIF.
    reading the t_bildtab internal table
        READ TABLE t_bildtab_dup WITH KEY dytxt = c_scm_view.
        IF t_bildtab_dup-kzanz = 'X'.
          PERFORM f_bdc_field       USING 'BDC_CURSOR'
                                        w_data-field1.
          PERFORM f_bdc_field       USING w_data-field2 'X'.
          g_flag = 'X'.
        ENDIF.
    reading the t_bildtab internal table
        READ TABLE t_bildtab_dup WITH KEY dytxt = c_sd_view.
        IF sy-subrc EQ 0.
          g_flag = 'X'.
        ENDIF.
        IF t_bildtab_dup-kzanz = 'X'.
          PERFORM f_bdc_field       USING 'BDC_CURSOR'
                                        w_data-field3.
          PERFORM f_bdc_field       USING w_data-field4 'X'.
          g_flag1 = 'X'.
        ENDIF.
        IF g_flag = 'X' AND g_flag1 = 'X'.
          PERFORM f_bdc_dynpro      USING 'SAPLMGMM' '0080'.
          PERFORM f_bdc_field       USING 'BDC_CURSOR'
                                        'RMMG1-VTWEG'.
          PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                        '=ENTR'.
          PERFORM f_bdc_field       USING 'RMMG1-WERKS'
                                        c_werks.
          PERFORM f_bdc_field       USING 'RMMG1-VKORG'
                                        c_vkorg.
          PERFORM f_bdc_field       USING 'RMMG1-VTWEG'
                                        c_vtweg.
          CLEAR g_flag.
          CLEAR g_flag1.
        ELSE.
          IF g_flag = 'X'.
            PERFORM f_bdc_dynpro      USING 'SAPLMGMM' '0080'.
            PERFORM f_bdc_field       USING 'RMMG1-WERKS'
                                        c_werks.
            PERFORM f_bdc_field      USING 'BDC_OKCODE' '/00'.
          ELSE.
            IF g_flag1 = 'X'.
              PERFORM f_bdc_dynpro      USING 'SAPLMGMM' '0080'.
              PERFORM f_bdc_field       USING 'BDC_CURSOR'
                                            'RMMG1-VTWEG'.
              PERFORM f_bdc_field       USING 'RMMG1-WERKS'
                                          c_werks.
              PERFORM f_bdc_field       USING 'RMMG1-VKORG'
                                            c_vkorg.
              PERFORM f_bdc_field       USING 'RMMG1-VTWEG'
                                            c_vtweg.
              PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                             '=ENTR'.
            ENDIF.
          ENDIF.
        ENDIF.
    *Processing of SCM View
        PERFORM f_bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM f_bdc_field       USING 'BDC_CURSOR' 'MARC-ZZJP_DOS_FRM'.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_DOS_FRM'
                                      t_mdata-zzjp_dos_frm.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_APRN'
                                      t_mdata-zzjp_aprn.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_CON_ID'
                                      t_mdata-zzjp_con_id.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_NYU_SOP'
                                      t_mdata-zzjp_nyu_sop.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_WEI_TAB'
                                      t_mdata-zzjp_wei_tab.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_CAR'
                                      t_mdata-zzjp_car.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_CAS'
                                      t_mdata-zzjp_cas.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_CAR_SIZE'
                                      t_mdata-ZZJP_CAR_SIZE.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_CAS_SIZE'
                                      t_mdata-ZZJP_CAS_SIZE.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_RUPQTY'
                                       t_mdata-ZZJP_RUPQTY.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_BIO'
                                      t_mdata-zzjp_bio.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_ITF'
                                      t_mdata-zzjp_itf.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_INIT_LS'
                                      t_mdata-zzjp_init_ls.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_RE1'
                                      t_mdata-zzjp_re1.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_RE2'
                                      t_mdata-zzjp_re2.
        PERFORM f_bdc_field       USING 'MARC-ZZJP_RE3'
                                      t_mdata-zzjp_re3.
        PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
    *Processing of SD View
        PERFORM f_bdc_dynpro      USING 'SAPLMGMM' '4000'.
        PERFORM f_bdc_field       USING 'BDC_CURSOR' 'MVKE-ZZJP_PRO_ID'.
        PERFORM f_bdc_field       USING 'MVKE-ZZJP_PRO_ID'
                                      t_mdata-zzjp_pro_id.
        PERFORM f_bdc_field       USING 'MVKE-ZZJP_BU_ID'
                                      t_mdata-zzjp_bu_id.
        PERFORM f_bdc_field       USING 'MVKE-ZZJP_ABV_NAME'
                                      t_mdata-zzjp_abv_name.
        PERFORM f_bdc_field       USING 'MVKE-ZZJP_ABV_ID1'
                                      t_mdata-zzjp_abv_id1.
        PERFORM f_bdc_field       USING 'MVKE-ZZJP_ABV_ID2'
                                      t_mdata-zzjp_abv_id2.
        PERFORM f_bdc_field       USING 'MVKE-ZZJP_SPL_ID'
                                      t_mdata-zzjp_spl_id.
        PERFORM f_bdc_field      USING 'BDC_OKCODE' '/00'.
        PERFORM f_bdc_dynpro      USING 'SAPLSPO1' '0300'.
        PERFORM f_bdc_field       USING 'BDC_OKCODE'
                                      '=YES'.
    perform f_bdc_insert.
    REFRESH T_BDCDATA.
      ENDLOOP.
    ENDFORM.                    " F_PROCESS_BDC
    *&      Form  f_bdc_dynpro
      p_prog is the program name to which data is passed                *
      p_dyno is the screen number to which the data is passed
        Routine for populating the BDCDATA structure with the
        Screen related information
    FORM f_bdc_dynpro USING    p_prog
                               p_dyno.
      t_bdcdata-program  = p_prog.
      t_bdcdata-dynpro   = p_dyno.
      t_bdcdata-dynbegin = 'X'.
      APPEND t_bdcdata.
      CLEAR t_bdcdata.
    ENDFORM.                    " F_bdc_dynpro
    *&      Form  F_BDC_FIELD
          p_fnam is the field name to which value is passed
          p_fval is the field value which is passed
       p_fnam is the field name to which value is passed
       p_fval is the field value which is passed
    FORM f_bdc_field USING    p_fnam
                              p_fval.
      t_bdcdata-fnam = p_fnam.
      t_bdcdata-fval = p_fval.
      APPEND t_bdcdata.
      CLEAR t_bdcdata.
    ENDFORM.                    " F_bdc_field
    *&      Form  F_PROCESS_DATA                                          *
         Routine to used for moving data from T_bpcs internal table to  *
         t_mdata Internal Table                                         *
    FORM f_process_data.
      LOOP AT t_bpcs.
        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
             EXPORTING
                  input  = t_bpcs-matnr
             IMPORTING
                  output = t_mdata-matnr.
        MOVE t_bpcs-dosage TO t_mdata-zzjp_dos_frm.
        MOVE t_bpcs-appearance TO t_mdata-zzjp_aprn.
        MOVE t_bpcs-idcode  TO t_mdata-zzjp_con_id.
        MOVE t_bpcs-prostformno TO t_mdata-zzjp_nyu_sop.
        MOVE t_bpcs-weitab TO t_mdata-zzjp_wei_tab.
        MOVE c_blank TO t_mdata-zzjp_bio.
        MOVE c_blank TO t_mdata-zzjp_itf.
        MOVE t_bpcs-uom1 TO t_mdata-zzjp_car.
        MOVE t_bpcs-uom2 TO t_mdata-zzjp_cas.
        MOVE t_bpcs-carsize TO t_mdata-zzjp_car_size.
        MOVE t_bpcs-cassize TO t_mdata-zzjp_cas_size.
        MOVE t_bpcs-rupqty TO t_mdata-zzjp_rupqty.
        MOVE c_intls TO t_mdata-zzjp_init_ls.
        MOVE c_blank TO t_mdata-zzjp_re1.
        MOVE c_blank TO t_mdata-zzjp_re2.
        MOVE c_blank TO t_mdata-zzjp_re3.
        MOVE c_blank TO t_mdata-zzjp_pro_id.
        MOVE c_blank TO t_mdata-zzjp_bu_id.
        MOVE t_bpcs-abvname TO t_mdata-zzjp_abv_name.
        MOVE c_blank TO t_mdata-zzjp_abv_id1.
        MOVE c_blank TO t_mdata-zzjp_abv_id2.
        MOVE c_blank TO t_mdata-zzjp_spl_id.
        APPEND t_mdata.
      ENDLOOP.
    ENDFORM.                    " F_PROCESS_DATA
    *&      Form  f_bdc_close
          Routine to close the BDC Session
    FORM f_close_group.
      CALL FUNCTION 'BDC_CLOSE_GROUP'
           EXCEPTIONS
                not_open    = 1
                queue_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.                    " f_close_group
    *&      Form  f_bdc_insert
         routine to input batch data into the Transaction MM02 from the
         session created
    FORM f_bdc_insert.
    CALL FUNCTION 'BDC_INSERT'
             EXPORTING
                  tcode            = c_tcode
             TABLES
                  dynprotab        = t_bdcdata
             EXCEPTIONS
                  internal_error   = 1
                  not_open         = 2
                  queue_error      = 3
                  tcode_invalid    = 4
                  printing_invalid = 5
                  posting_invalid  = 6
                  OTHERS           = 7.
        IF sy-subrc <> 0.
             MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    ENDFORM.                    " f_bdc_insert
    Reward Points if it is useful
    Thanks
    Seshu

  • Data inconsistency: posting with restricted transaction type (FAA_POST047)

    Hi colleagues!
    I have the following error:
    Data inconsistency: posting with restricted transaction type
    Message no. FAA_POST047
    Diagnosis
    You are trying to post in company code 1000 with transaction type 130 in ledger group 0N. According to table TABWA, this transaction type is limited. Nonetheless, according to your entries, you want to post to area 11.
    System Response
    Using limited transaction types is obsolete and would lead to an inconsistent posting in this situation. The system rejects the posting.
    Procedure
    Use a transaction type that is not limited. And, if possible, choose the ledger group and/or depreciation area on the initial screen.
    According to specific accounting we shouldn't post to one of the depr. area, so most of the tr.types are restricted to post to all areas except this one.
    Because of this, posting from MM with acc.assignment 'A' is impossible - I have this error.
    Any ideas how to solve?
    Thanks in advance

    Hi Anton
    This looks like your transaction type -130 is limited to post only in ledger group-0N as per the transaction type configuration. Due to which system is unable to post all the ledgers and hence this lead to inconsistency.
    Please verify the transaction type 130- in configuration T code - OAYA and see if it is restricted by depreciation area (eventually allow to post only ledger group- 0N.
    Tcode - OAYA (Limit Transaction Types to Depreciation Areas)
    please verify and let us know the update. hope this helps
    Best Regards
    Jomon

  • Error message "Data cannot be maintained for set type COMM_PR_PUR_1

    Hi
    While replicating the material master through R3AS I am getting an error for which the details to be checked in SMW01. In SMW01 when I selected the record for error details I am getting above error message.  How to resolve ? Pls guide me stepwise. For your information I has cleared SMQ1 in R3 & SMQ2 in SRM
    For curioisity next I selected all such error logs & deleted. It gave me one warning (some inconstinecies error) which I ignored. After that I checked SMQ1 of R3 & SMQ2 of SRM. No log
    But I observed a strange thing. Whatever material codes I am creating it is going straightway to SRM without running R3AS transaction. I checked R3AM1, selected the row and cancelled. But still going without any interferrance. Why ? How shall I stop this.
    Thanks

    Hello,
    >
    BNR wrote:
    > Hi
    > While replicating the material master through R3AS I am getting an error for which the details to be checked in SMW01. In SMW01 when I selected the record for error details I am getting above error message.  How to resolve ? Pls guide me stepwise. For your information I has cleared SMQ1 in R3 & SMQ2 in SRM
    >(...)
    Have a look at OSS note 1049693 - Data cannot be maintained for set type COMM_PR_PUR_1.
    Regards.
    Laurent.

  • Sync error with Workspace "Data in this list references content type "", which is no longer in the list schema"

    Dear,
    I saved a document library containing folders and files as a template to use it as a template when I created a document library.  It contains a lot of folders and files.
    When I tried the document library to sync with workspace it gives an error "Data in this list references content type "", which is no longer in the list schema"
    I checked with this error and I found out that it has issue with onenote file, but my library does not contain any onenote file. 
    I wonder if there is any issue regarding the number of folders to sync at a time because when I tried to sync with document library similar to the big library but lesser folders and files. 
    Thanks

    This is caused by certain OneNote files.  I've filed a support ticket on this.  See my
    post on possible workarounds.  You might view the entire library in windows explorer or flatten the folder structure in a view to confirm that there are not any OneNote related files.
    Corey Roth blog: www.dotnetmafia.com twitter:
    @coreyroth

  • HT1918 I am trying to change my card and after putting in the card number and the expiry dates it will not let me type in the security code please help

    I am trying to change me paymenet method by changing my card, after typing in the card number and expiry dates it will not let me type in the box for the security number   I am trying to do this on the computer
    Jill

    finally ...
    1. Logout from all apple devices
    2. open "App Store" application on your macbook. Login and change all the details for card.
    3. Login in itunes, iphone ... I will see that all the details are already updated automatically.
    I've just bought some app from itunes

  • What date's data is most recently collected

    Hi
    In a 12.1 Audit Vault database, how can i query what date's data is most recently collected from target database?
    Audit Vault is collecting 2 months of audit data from target database and it didn't finish yet. How can i see the how much of the data is collected by AV.
    Thanks.

    thanks again,
    as i said there is 500GB audit data on aud$ and this is being a big problem.
    collector didn't manage to finish a full read of aud$ yet (experienced snapshot too old and some other problems) and everytime we restart it, it writes the complete data again.
    now i realized that on audit vault, for some dates, data was inserted 2/3 times from target database. ( when compared avsys.event_log of AV and sys.aud$ of target database)
    so i decided to empty data on AV and restart the collector.
    Now question is what is the quickest way to delete all data on AV?
    Thanks

  • What types of data are entered in the order type?...

    Hello SAP-team!
    What types of data are entered in the order type?
    - Settlement profile
    - Sample order
    - Settlement rule
    - Order category
    - Costing sheet for overhead rates
    ps: thanks to SAP-community!
    Eugene

    Hi,
    What types of data are entered in the order type?
    - Settlement profile- True
    - Sample order -True(by model order)
    - Settlement rule-True
    - Order category-True
    - Costing sheet for overhead rates-False
    Regards
    Sudhakar Reddy

  • Post data into Ajax function for Item type plugin

    Please advise how to post data into Ajax function for item type plugin
    Edited by: Casufi on Jan 16, 2013 7:44 AM

    Casufi wrote:
    Casufi wrote:
    Please advise how to post data into Ajax function for item type plugin
    Edited by: Casufi on Jan 16, 2013 7:44 AMI used the following code
    var get = new htmldb_Get(null, html_GetElement(''pFlowId'').value, ''NATIVE='||apex_plugin.get_ajax_identifier||''', $v(''pFlowStepId''));
    get.addParam(''x01'', node.data.key);
    gReturn = get.get();You should use this published true ajax API instaed. apex.server.process( pAjaxIdentifier, pData, pOptions )

  • UNIFIED MANAGER ALERT : on EXPIRING SSL certificates in clustered Data ONTAP systems

    The default ssl certificates on clustered Data ONTAP systems are valid for 1 year.
    Since we have cDOT clusters monitored via Oncommand Unified Manager 6.2, we would like Unified Manager to alert on expiring Certificates.
    Is this possible in OCUM 6.2?
    Thanks

    Thanks Saravanan, Initially i had it on RHEL 6.6, and i see some of the existing packages were of a older version and created some issues while rrdtool and sql installation. but i managed to do the installation and faced the same issue. I Didnt know that this is a user account issue not a package dependency issue.and thats the reason i got my server upgraded to RHEL 7.1 and the installation went fine but the same issue. But its working for now, thanks again :-)

  • PDF Preview: Making the Transition To Clustered Data ONTAP

    NetApp has refined its tools and processes for a smooth transition to clustered Data ONTAP. The latest software release removes the remaining barriers to entry, so if you’ve been holding back it’s time to make the move from 7-Mode to take full advantage of nondisruptive operations, scale-out, and more. This article explains the transition framework and provides links to the latest resources and tools.

    Please can someone help with NSO-157 exam study guide

  • Unable to save the data in a .CSV format

    Hi All,
    I am trying to pull some data with the help of the sql query from the database and then trying to save this string of data in csv file by using the following code as shown below.The problem iam facing here is that while the file Save as window opens stating to be saved as .CSV format but when i try to save it ,it doesnt givme a csv option ,only html option appears.Can any one help me on this..,,,,,,,,,,,,?
    <%@include file="jtfincl.jsp" %>
    <%@page session="false" %>
    <%@page import="java.io.PrintWriter"%>
    <%@page import="oracle.apps.ibe.util.RequestCtx"%>
    <%@page import="oracle.apps.iri.iribe.postsales.IrIbeOrderSearch"%>
    <%@page import="oracle.apps.ibe.util.*" %>
    <%@page import="java.io.IOException" %>
    <%
    pageContext.setAttribute("_securePage", "true", PageContext.REQUEST_SCOPE);
    pageContext.setAttribute("_guestNotAllowed", "true", PageContext.REQUEST_SCOPE);
    pageContext.setAttribute("_unapprovedNotAllowed", "true", PageContext.REQUEST_SCOPE);
    RequestCtx rCtx = RequestCtx.start(request, response);
    int status = Session.checkContextValues(request, response);
    if(RequestCtx.userIsAnonymous()) {
    signin(out, pageContext, request, response, false);
    return;
    // Set the response type which in this case will be a .csv file
    response.setContentType("application/csv");
    response.setHeader("Content-disposition","attachment;filename=SearchResults.csv");
    String queryStartDate = request.getParameter("queryStartDate");
    String queryEndDate = request.getParameter("queryEndDate");
    String queryField = request.getParameter("queryField");
    String queryOperator = request.getParameter("queryOperator");
    String queryValue = request.getParameter("queryValue");
    String queryOrderByField = request.getParameter("queryOrderByField");
    String showOpenOrdersOnly = request.getParameter("showOpenOrdersOnly");
    IrIbeOrderSearch orderSearch = new IrIbeOrderSearch(
    queryStartDate,
    queryEndDate,
    queryField,
    queryOperator,
    queryValue,
    queryOrderByField,
    showOpenOrdersOnly
    orderSearch.initialise();
    java.util.ArrayList results = orderSearch.getItemTrackerSearchResults();
         out.println("The result array size is======="+results.size()) ;
    // Output the results as the page resonse as a csv file
         try
    write(results, response.getWriter());
         catch(exception e)
         out.println("The stack trace is======="+e.printStackTrace()) ;
         if(IBE_logEnabled) IBEUtil.log("iribeCOtdOrdSearchExport.jsp","Inside the exception"+e.toString);
    %>
    <%!
    * This method will take a ResultSet and JspWriter object and print out the details of the ResultSet as a
    * comma seperated value file.
    * @param results
    * @param writer
    public static void write(java.util.ArrayList results, PrintWriter writer) {
    if(results == null || results.size() == 0) {
    writer.print("No Data Available");
    return;
    String [] data = null;
    String output = "";
              if(IBE_logEnabled) IBEUtil.log("iribeCOtdOrdSearchExport.jsp","Inside the write method");
    for(int i = 0; i < results.size(); i++) {
    data = (String []) results.get(i);
    output = "";
    for(int j = 0; j < data.length; j++) {
    // If its not the last column
    if(j != data.length - 1) {
    output += formatField(data[j]) + ",";
    // If it is the last column
    } else {
    output += formatField(data[j]);
    writer.println(output);
    writer.flush();
    * Format a string value so that it becomes a valid field in a .csv file. This involves making sure that any null
    * data is treated as an empty string, that any quotes are padded and if the file contains any commas that the
    * field is surrounded by quotes.
    * @param value
    private static String formatField(String value) {
    String output = null;
    // Check for null values
    if(value == null) {
    output = "";
    } else {
    output = value;
    // Pad any existing quotes
    output = output.replaceAll("\"", "\"\"");
    // If there is a space or commas then add surrounding quotes
    if(output.startsWith(" ") || output.endsWith(" ") || output.indexOf(",") != -1) {
    output = "\"" + output + "\"";
    return output;
    %>
    <%!
    void signin(
    JspWriter out,
    PageContext pageContext,
    HttpServletRequest request,
    HttpServletResponse response,
    boolean reauth
    ) throws IOException, SQLException, FrameworkException {
    String query = IBEUtil.passQueryString(request, null).toString();
    String uri = request.getRequestURI();
    String targetJsp = uri.substring(uri.lastIndexOf("/") + 1);
    String ref = null;
    if ("true".equals(pageContext.getAttribute("_securePage", PageContext.REQUEST_SCOPE))) {
    ref = RequestCtx.getSecureFormAction(targetJsp);
    } else {
    ref = RequestCtx.getNonSecureFormAction(targetJsp);
    if(!query.equals("")) {
    ref = oracle.apps.jtf.util.Utils.encode(ref + "?" + query);
    String redirect = RequestCtx.getSecureURL("ibeCAcpSSOLogin.jsp", "ref=" + ref + (reauth ? "&reauth=t" : ""));
    // don't add the ref if the session expired and restarted
    RequestCtx rCtx = RequestCtx.getRequestCtx();
    if(rCtx.startRequestException!=null) {
    redirect = RequestCtx.getSecureURL("ibeCAcpSSOLogin.jsp", "ibe_se=t"+(reauth ? "&reauth=t" : ""));
    RequestCtx.end(request);
    response.sendRedirect(redirect);
    regds
    manish
    %>

    This would occur if you were using IE and the requested URL doesn't contain the filename part. The real web browsers would pick up the filename from the response header flawlessly.
    Having said that, this kind of logic doesn't belong in a JSP. Use Java classes (Servlet, Bean, DAO). Further on, JSP/Servlet related questions should be posted in the JSP/Servlet forum.

  • The workflow could not update the item, possibly because one or more columns for the item require a different type of information. Outcome: Unknown Error

    Received this error (The workflow could not update the item, possibly because one or more columns for the item require a different type of information.) recently on a workflow that was
    working fine and no changes were made to the workflow.
    I have tried a few suggestions, i.e. adding a pause before any ‘Update’ action (which didn’t help because the workflow past this action without incident); checked the data type being written
    to the fields (the correct data types are being written); and we even checked the list schema to ensure the list names and the internal names are aligned (they
    are), but we still cannot figure out why the workflow is still throwing this error.
    We located the area within the workflow step where it is failing and we inserted a logging action to determine if the workflow would execute the logging action but it did not, but wrote the same error message.
    The workflow is a Reusable Approval workflow designed in SharePoint Designer 2010 and attached to a content type. 
    The form associated with the list was modified in InfoPath 2010. 
    Approvers would provide their approval in the InfoPath form which is then read by the workflow.
    Side note - items created after the workflow throws this Unknown Error some seem to be working fine. 
    We have deleted the item in question and re-added it with no effect. 
    Based on what we were able to determine there don’t seem to be any consistency with how this issue is behaving.
    Any suggestions on how to further investigate this issue in order to find the root cause would be greatly appreciated?
    Cheers

    Hi,
    I understand that the reusable workflow doesn’t work properly now. Have you tried to remove the Update list item action to see whether the workflow can run without issue?
    If the workflow runs perfectly when the Update list item action is removed, then you need to check whether there are errors in the update action. Check whether the values have been changed.
    Thanks,
    Entan Ming
    Entan Ming
    TechNet Community Support

  • The workflow could not update the item, possibly because one or more columns for the item require a different type of information using Update Item action

       I got error  "The workflow could not update the item, possibly because one or more columns for the item require a different type of information "I  found out the cause is  Update Item action       
    I need to update item in another List call Customer Report ,the field call "Issues"  with data type  "Choice"   to yes
    then the error arise .   please help..

    Thanks for the quick response Nikhil.
    Our SPF 2010 server is relatively small to many setups I am sure. The list with the issue only has 4456 items and there are a few associated lists, eg lookups, Tasks, etc see below for count.
    Site Lists
    Engagements = 4456 (Errors on this list, primary list for activity)
    Tasks = 7711  (All workflow tasks from all site lists)
    Clients = 4396  (Lookup from Engagements, Tslips, etc)
    Workflow History = 584930 (I periodically run a cleanup on this and try to keep it under 400k)
    Tslips = 3522 (Engagements list can create items here, but overall not much interaction between lists)
    A few other lists that are used by workflows to lookup associations that are fairly static and under 50 items, eg "Parters Admin" used to lookup a partners executive admin to assign a task.
    Stunpals - Disclaimer: This posting is provided "AS IS" with no warranties.

  • Is there a way to download data into CSV format?

    Is there a way to download data into CSV format?
    I can't do this using delimiter as ',' because user wants the decimal format in the ','s only.
    Any suggestions?

    go through this link...
    Download CSV file in presentation server through FM GUI_DOWNLOAD
    Re: how to create a CSV file
    type-pools:TRUXS.
    data: begin of itab occurs 0,
          vbeln like vbap-vbeln,
          posnr like vbap-posnr,
          end of itab.
    data:  itab1 type TRUXS_T_TEXT_DATA.
      select vbeln
             posnr
             up to 10 rows
             from vbap
             into table itab.
    CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'
    EXPORTING
       I_FIELD_SEPERATOR          = ','
      TABLES
        I_TAB_SAP_DATA             = itab
    CHANGING
       I_TAB_CONVERTED_DATA       =  itab1
    EXCEPTIONS
       CONVERSION_FAILED          = 1
       OTHERS                     = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
       CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          filename = 'C:TEMPtest.TXT'
        TABLES
          data_tab = itab1
        EXCEPTIONS
          OTHERS   = 1.

Maybe you are looking for

  • Having logic board and inverter replaced - will post results.

    My MBP is afflicted with the CPU whine and the LCD whine, not to mention the "Moo". I solved the Airport not connecting automatically issue on my own. Talked to Apple about the whines, they wanted me to take it to the local guys, which I was happy to

  • Unsync iPhone with iPad. Please help

    My iPad mini asked if I wanted to use my iPhone phone number. I said yes. I'm new to apple products. Nowy iPad mini has my iPhone phone number. When I text from my iPad mini, it says it's being sent from my iPhone and Not from my iPad. Anybody know h

  • HOW CAN I SPLIT STEREO AUDIO TRACKS

    I'm trying to modify one of the audio tracks but both of the tracks are locked. If I do something with one of the tracks it affects the other one so how can I split it? or separate it? is it stereo? is there any way I can do it? THANKS!!!!!!!

  • Installing photoshop elements 3

    Hi I tried to install photshop elements 3, bought from the apple shop, and initially I got an error code 10660 which meant nothing to the phoneline support chap at Apple. Apple blamed Adobe and Adobe blamed Apple. So I removed all references to photo

  • Query based Authorization

    Hi, We have 3 queries Q1, Q2, Q3 We need for Profile 1 - Q1 and Q2 Profile 2 - Q2 and Q3 Any idea how to do this without including the actual name of the query in the authorization object Thanks