SKIP blank record

Hi,
Is there a way we can skip records with blank values while loading data into BPC. I have a data extract in which some dimension values are blank and it's a requirement to skip these records.
In the conversion file I tried this formula, basically if the length is zero then SKIP the record. Doesn't work
EXTERNAL          INTERNAL
                         If(vb:len("%external%")=0 then *SKIP;%external%)
thanks in advance

You have Skip into conversion file and also into transformation file.
Your mistake is coming from fact that len is string length.
That's means a string with format from 2 blanks the len is 2 not 0.
So you can find other conditions. to skip the records with blanks.
Regards
Sorin Radulescu

Similar Messages

  • How to get blank records at the start of report output for label sheet?

    Hello -
    What is the best way to get an arbitrary # of blank records at the start of report output?
    I am writing a report that will be printed out on label sheets -- some of which might already be used. For example, there might be 3 labels per page but the first 2 have been used the last time the report was run.. so the report needs to display 2 blank records first so that the first record that gets printed on a label is in the 3rd position on the page. (the user would indicate - through a parameter - what the starting postion would be)

    Hi Scott
    Create a user parameter that reads in the number of blanks you need to 'print' before starting the actual printing.
    In the Format trigger of the outermost frame of your report write code using SRW.SET_BEFORE_PRINTING_CODE.
    Loop this method based on the user parameter and call this method with skip-line-command of your printer as its argument.
    Regards
    Sripathy

  • Import: Ignore blank records

    Hi Team,
    While automatic import, I am getting few blank records from the source system (All the fields are blank)
    These records are getting imported in MDM.
    Please suggest on how to ignore importing them.
    Thanks,
    Priti

    Hi,
    Incase you want to skip certain records from being imported you can in the Import Manager, Matching records right click on every individual record in the bottom source records pane and select skip record while allowing update all mapped fields for the other record.
    In order to skip records having null values during the auto import you can set the null value handling to ignore.
    Its important to note that multiple null entries can be there in a unique column in the MDM table as MDM treats it as a incomplete record.
    If the file is being transfered via PI to MDM distribution folder you can have this check put in PI as well to remove these entries in the xml file that is being generated.
    Regards,
    Aditya.

  • Suppress printing of blank records

    This should be simple, but I have tried everything I can think of, and trolled through the archives, without finding an answer.  Please don't chastise me for asking a question which has already been answered, too simple, in the wrong section, or any of the other sins you regularly accuse us of...
    I am printing a series of form letters which are selected on the basis of a couple of criteria.  I want to exclude records with blank fields.  (My database supports null values, but these field entries are blanks, not nulls.  The fields are string (alphanumeric) values. My selection criteria (for the 1 month letter) are below.  The first two criteria work fine; it is in the third line that I am trying to exclude the blank records.  I have tried: {LetterEnt.Gr_LastName}<>"",  {LetterEnt.Gr_LastName}<>" ", and then I got clever and tried the entry below.  None of these work.
    {LetterEnt.Letter1} = "X" and
    {LetterEnt.Site} = "Q" and
    Length({LetterEnt.Gr_LastName})>0

    +Message: AFAIK, if there are no records, there are no detail sections, so
    your report must show text from other sections.+
    (Is AFAIK some sort of "geek code" (in which case you have gone completely over my head), or are you addressing somebody by that name?  (My name is David).)
    If there are no records, there are indeed detail sections - with blank address fields.  See my previous more detailed exposition of the exact nature of the problem.
    +It is also not clear what "forces" a printout.  Are you using Crystal
    Designer (my assumption since you are posing in the Crystal Report Design
    forum) or something else (Crystal Enterprise)?  Crystal Designer doesn't
    force printouts - a user must initiate the printout.+
    Am I using Crystal Designer?  I don't know.  The program is called Crystal Reports XI in my computer.  Are you suggesting that I am in fact asking my question in the wrong forum? (I would have presumed that something called "Crystal Reports Design" deals with design issues in Crystal Reports, but if I am in error, I do apologise.  Perhaps you could direct me to the more appropriate resource.)
    What "forces" a printout? You are correct insofar as the operator has to push the Print button (at least as presently functioning.  At one stage I had the letters printing out behind the scenes using an Active-X control.  This ran for 2 weeks, then fell apart and I eventually gave up trying to make it work; but that is another story.)  How does this happen?  Crystal is adding completely blank pages as the first page on some of the reports, so it is not always immediately apparent to the operator that there is a letter sitting there with a blank address.  (And this, too, is a separate issue.  I have gone through all the instructions in the knowledge base as to how to get rid of the leading blank sheet.  None of the instructions have worked, and I eventually gave up trying.  Thinking about it, I have had an awful lot of frustration with this program.  Perhaps I am unreasonable, but if I can't get something to work after 3 or 4 hours' trying, I give it up as a bad job and live with the fault.)
    +You can always suppress those other sections with a condition such as
    IsNull({some field that is never Null).+
    It is not clear to me what this means.  All the sections other than the detail section are blank - always.
    +There are 3rd-party Crystal Reports tools that allow you to skip
    processing (printing/exporting/emailing) if the report comes up with zero
    records.+
    Aha!  Am I interpreting this correctly, as saying that I cannot do what I want to do (suppress printing of letters with blank addresses) in Crystal Reports, and that to do this I need to get a third party add-on?

  • Skip Blank Values in Import-CSV

    I am attempting to do a mass import of user attributes (phone number, address, city, state, zip code, title, company). All goes well until I hit a blank value in the CSV. Here is the Powershell script I am trying to use.
    Import-Csv IA-Test2.csv |
    ForEach-Object {
    $record = $_
    get-ADUser -LDAPFilter "(samaccountname=$($record.samaccountname))" |
    Set-ADUser -city $record.l -postalcode $record.postalcode -OfficePhone $record.OfficePhone -company $record.company -streetaddress $record.streetaddress -title $record.title
    How can I modify this to skip blank values?

    Okay.  They're not really blank, but null.
    $properties = @(
    'city',
    'postalcode',
    'OfficePhone',
    'company',
    'streeaddress',
    'title'
    Import-Csv IA-Test2.csv |
    ForEach-Object {
    $params = @{}
    foreach ($property in $properties)
    if ($_.$property)
    { $params.$property = $_.property }
    get-ADUser -LDAPFilter "(samaccountname=$($_.samaccountname))" |
    Set-ADUser @params
    [string](0..33|%{[char][int](46+("686552495351636652556262185355647068516270555358646562655775 0645570").substring(($_*2),2))})-replace " "

  • How to skip first record while inserting data from a flat file to BW system

    Hi Experts,
    In my project we have to upload flat file into a BW system. I have written a program and it is working fine.
    Now we have got another requirement. The flat file will have a header record (first row). While uploading the flat file we have to skip this record. How I can do so?
    The code is as below:
    FORM upload1.
      DATA : wf_title    TYPE string,
              lt_filetab  TYPE filetable,
              l_separator TYPE char01,
              l_action    TYPE i,
              l_count     TYPE i,
              ls_filetab  TYPE file_table,
              wf_delemt TYPE rollname,
              wa_fieldcat TYPE lvc_s_fcat,
              tb_fieldcat TYPE lvc_t_fcat,
              rows_read TYPE i,
              p_error   TYPE char01,
              l_file      TYPE string.
      DATA: wf_object(30)  TYPE c,
              wf_tablnm TYPE rsdchkview.
      wf_object = 'myprogram'.
      DATA i TYPE i.
      DATA:
           lr_mdmt                TYPE REF TO cl_rsdmd_mdmt,
           lr_mdmtr               TYPE REF TO cl_rsdmd_mdmtr,
           lt_idocstate           TYPE rsarr_t_idocstate,
           lv_subrc               TYPE sysubrc.
      TYPES : BEGIN OF test_struc,
               /bic/myprogram TYPE  /bic/oimyprogram,
               txtmd   TYPE rstxtmd,
               END OF test_struc.
      DATA :    tb_assum TYPE TABLE OF /bic/pmyprogram.
      DATA: wa_ztext TYPE  /bic/tmyprogram,
            myprogram_temp TYPE ziott_assum,
            wa_myprogram TYPE /bic/pmyprogram.
      DATA : test_upload TYPE STANDARD TABLE OF test_struc,
             wa2 TYPE  test_struc.
      DATA : wa_test_upload TYPE test_struc,
             ztable_data TYPE TABLE OF /bic/pmyprogram,
             ztable_text TYPE TABLE OF /bic/tmyprogram,
             wa_upld_text TYPE /bic/tmyprogram,
             wa_upld_data TYPE /bic/pmyprogram,
              t_assum TYPE ziott_assum.
      DATA : wa1 LIKE  test_upload.
      wf_title = text-026.
      CALL METHOD cl_gui_frontend_services=>file_open_dialog
        EXPORTING
          window_title            = wf_title
          default_extension       = 'txt'
          file_filter             = 'Tab delimited Text Files (*.txt)'
        CHANGING
          file_table              = lt_filetab
          rc                      = l_count
          user_action             = l_action
        EXCEPTIONS
          file_open_dialog_failed = 1
          cntl_error              = 2
          OTHERS                  = 3.                          "#EC NOTEXT
      IF sy-subrc <> 0.
        EXIT.
      ENDIF.
      LOOP AT lt_filetab INTO ls_filetab.
        l_file = ls_filetab.
      ENDLOOP.
      CHECK l_action = 0.
      IF l_file IS INITIAL.
        EXIT.
      ENDIF.
      l_separator = 'X'.
      wa_fieldcat-fieldname = 'test'.
      wa_fieldcat-dd_roll = wf_delemt.
      APPEND wa_fieldcat TO tb_fieldcat.
      CALL FUNCTION 'MESSAGES_INITIALIZE'.
      CLEAR wa_test_upload.
    Upload file from front-end (PC)
    File format is tab-delimited ASCII
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                = l_file
          has_field_separator     = l_separator
        TABLES
         data_tab                = i_mara
        data_tab                   = test_upload
        EXCEPTIONS
          file_open_error         = 1
          file_read_error         = 2
          no_batch                = 3
          gui_refuse_filetransfer = 4
          invalid_type            = 5
          no_authority            = 6
          unknown_error           = 7
          bad_data_format         = 8
          header_not_allowed      = 9
          separator_not_allowed   = 10
          header_too_long         = 11
          unknown_dp_error        = 12
          access_denied           = 13
          dp_out_of_memory        = 14
          disk_full               = 15
          dp_timeout              = 16
          OTHERS                  = 17.
      IF sy-subrc <> 0.
        EXIT.
      ELSE.
       CALL FUNCTION 'MESSAGES_INITIALIZE'.
        IF test_upload IS NOT INITIAL.
          DESCRIBE TABLE test_upload LINES rows_read.
          CLEAR : wa_test_upload,wa_upld_data.
          LOOP AT test_upload INTO wa_test_upload.
            CLEAR :  p_error.
            rows_read = sy-tabix.
            IF wa_test_upload-/bic/myprogram IS INITIAL.
              p_error = 'X'.
              MESSAGE s153 WITH wa_test_upload-/bic/myprogram sy-tabix.
              CONTINUE.
            ELSE.
              TRANSLATE wa_test_upload-/bic/myprogram TO UPPER CASE.
              wa_upld_text-txtmd  = wa_test_upload-txtmd.
              wa_upld_text-txtsh  = wa_test_upload-txtmd.
              wa_upld_text-langu =  sy-langu.
              wa_upld_data-chrt_accts = 'xyz1'.
              wa_upld_data-co_area = '12'.
              wa_upld_data-/bic/zxyzbcsg = 'Iy'.
              wa_upld_data-objvers = 'A'.
              wa_upld_data-changed = 'I'.
              wa_upld_data-/bic/zass_mdl = 'rrr'.
              wa_upld_data-/bic/zass_typ = 'I'.
              wa_upld_data-/bic/zdriver = 'yyy'.
              wa_upld_text-langu = sy-langu.
              MOVE-CORRESPONDING wa_test_upload TO wa_upld_data.
              MOVE-CORRESPONDING wa_test_upload TO wa_upld_text.
              APPEND wa_upld_data TO ztable_data.
              APPEND wa_upld_text TO ztable_text.
            ENDIF.
          ENDLOOP.
          DELETE ADJACENT DUPLICATES FROM ztable_data.
          DELETE ADJACENT DUPLICATES FROM ztable_text.
          IF ztable_data IS NOT INITIAL.
            CALL METHOD cl_rsdmd_mdmt=>factory
              EXPORTING
                i_chabasnm     = 'myprogram'
              IMPORTING
                e_r_mdmt       = lr_mdmt
              EXCEPTIONS
                invalid_iobjnm = 1
                OTHERS         = 2.
       CALL FUNCTION 'MESSAGES_INITIALIZE'.
       **Lock the Infoobject to update
            CALL FUNCTION 'RSDG_IOBJ_ENQUEUE'
              EXPORTING
                i_objnm      = wf_object
                i_scope      = '1'
                i_msgty      = rs_c_error
              EXCEPTIONS
                foreign_lock = 1
                sys_failure  = 2.
            IF sy-subrc = 1.
              MESSAGE i107(zddd_rr) WITH wf_object sy-msgv2.
              EXIT.
            ELSEIF sy-subrc = 2.
              MESSAGE i108(zddd_rr) WITH wf_object.
              EXIT.
            ENDIF.
    *****Update Master Table
            IF ztable_data IS NOT INITIAL.
              CALL FUNCTION 'RSDMD_WRITE_ATTRIBUTES_TEXTS'
                    EXPORTING
                      i_iobjnm                     = 'myprogram'
                      i_tabclass                   = 'M'
           I_T_ATTR                     = lt_attr
                    TABLES
                      i_t_table                    = ztable_data
                      EXCEPTIONS
                     attribute_name_error         = 1
                     iobj_not_found               = 2
                     generate_program_error       = 3
                     OTHERS                       = 4.
              IF sy-subrc <> 0.
                CALL FUNCTION 'MESSAGE_STORE'
                  EXPORTING
                    arbgb  = 'zddd_rr'
                    msgty  = 'E'
                    txtnr  = '054'
                    msgv1  = text-033
                  EXCEPTIONS
                    OTHERS = 3.
                MESSAGE e054(zddd_rr) WITH 'myprogram'.
              ELSE.
                CALL FUNCTION 'MESSAGE_STORE'
                  EXPORTING
                    arbgb  = 'zddd_rr'
                    msgty  = 'S'
                    txtnr  = '053'
                    msgv1  = text-033
                  EXCEPTIONS
                    OTHERS = 3.
              ENDIF.
    *endif.
    *****update Text Table
              IF ztable_text IS NOT INITIAL.
                CALL FUNCTION 'RSDMD_WRITE_ATTRIBUTES_TEXTS'
                  EXPORTING
                    i_iobjnm               = 'myprogram'
                    i_tabclass             = 'T'
                  TABLES
                    i_t_table              = ztable_text
                  EXCEPTIONS
                    attribute_name_error   = 1
                    iobj_not_found         = 2
                    generate_program_error = 3
                    OTHERS                 = 4.
                IF sy-subrc <> 0.
                  CALL FUNCTION 'MESSAGE_STORE'
                    EXPORTING
                      arbgb  = 'zddd_rr'
                      msgty  = 'E'
                      txtnr  = '055'
                      msgv1  = text-033
                    EXCEPTIONS
                      OTHERS = 3.
                ENDIF.
              ENDIF.
            ELSE.
              MESSAGE s178(zddd_rr).
            ENDIF.
          ENDIF.
          COMMIT WORK.
          CALL FUNCTION 'RSD_CHKTAB_GET_FOR_CHA_BAS'
            EXPORTING
              i_chabasnm = 'myprogram'
            IMPORTING
              e_chktab   = wf_tablnm
            EXCEPTIONS
              name_error = 1.
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
    ****Release locks on Infoobject
          CALL FUNCTION 'RSDG_IOBJ_DEQUEUE'
            EXPORTING
              i_objnm = 'myprogram'
              i_scope = '1'.
        ENDIF.
      ENDIF.
      PERFORM data_selection .
      PERFORM update_alv_grid_display.
      CALL FUNCTION 'MESSAGES_SHOW'.
    ENDFORM.
    Please let me know how I can skip first record of the flat file?
    Regards,
    S

    go through this hope u can get some idea
    REPORT  ztest no standard page heading line-size 255.
                          Declaration                            *
    TYPES t_itab1 TYPE alsmex_tabline.
    types: begin of t_csks,
           kostl like csks-kostl,
          end of t_csks.
    types: begin of t_cska,
           kstar like cska-kstar,
          end of t_cska.
    data: begin of t_flatfile,
          docdate like COHEADER-BLDAT,
          postdate like COHEADER-BUDAT,
          doctext like COHEADER-BLTXT,
           costele like RK23F-KSTAR,
           amount like RK23F-WTGBTR,
           scostctr like RK23F-SKOSTL,
           rcostctr like RK23F-EKOSTL,
           rintorder like RK23F-EAUFNR,
         end of t_flatfile.
    data: begin of t_flatfile1,
          docdate like COHEADER-BLDAT,
          postdate like COHEADER-BUDAT,
          doctext like COHEADER-BLTXT,
           costele like RK23F-KSTAR,
           amount like RK23F-WTGBTR,
           scostctr like RK23F-SKOSTL,
           rcostctr like RK23F-EKOSTL,
           rintorder like RK23F-EAUFNR,
           NUM LIKE SY-INDEX,
         end of t_flatfile1.
    data: itab like table of t_flatfile with header line.
    data: itab2 like table of t_flatfile1 with header line.
    DATA: it_itab1 TYPE STANDARD TABLE OF t_itab1 WITH HEADER LINE,
          MESSTAB1 LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE,
          MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    data: begin of bdcdata occurs 0.
            include structure bdcdata.
    data: end of bdcdata.
    data:t_lin type i VALUE '0',
         u_rec type i VALUE '0',
         s_rec type i VALUE '0'.
    data: it_csks type standard table of t_csks,
          wa_csks type t_csks.
    data: it_cska type standard table of t_cska,
          wa_cska type t_cska.
    *Selection Screen
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME  TITLE text-010.
    parameters: p_docdat  LIKE  COHEADER-BLDAT obligatory,
                p_postda LIKE  COHEADER-BUDAT obligatory,
                p_doctxt  LIKE  COHEADER-BLTXT.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME  TITLE text-011.
    parameters: p_file LIKE RLGRAP-FILENAME obligatory,
                DIS_MODE LIKE CTU_PARAMS-DISMODE DEFAULT 'N'.
    SELECTION-SCREEN END OF BLOCK b2.
                  A T  S E L E C T I O N   S C R E E N                  *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      PERFORM get_local_file_name USING p_file.
    *Start of Selection
    START-OF-SELECTION.
      Perform get_Excel_data.
      perform validate_data.
      Perform Process_Data.
                    end-of-selection
    end-of-selection.
      perform display_data.
    *&      Form  get_local_file_name
          text
         -->P_P_FILE  text
    FORM get_local_file_name  USING    P_P_FILE.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        CHANGING
          file_name = p_file.
    ENDFORM.                    " get_local_file_name
    *&      Form  get_Excel_data
          text
    -->  p1        text
    <--  p2        text
    FORM get_Excel_data .
      FIELD-SYMBOLS : <FS>.
      DATA : V_INDEX TYPE I.
      CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
        EXPORTING
          filename                = p_file
          i_begin_col             = 1
        i_begin_row             = 2
          i_begin_row             = 1
          i_end_col               = 256
          i_end_row               = 9999                        "65536
        TABLES
          intern                  = it_itab1
        EXCEPTIONS
          inconsistent_parameters = 1
          upload_ole              = 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.
        Message text-013 type 'E'.
      ENDIF.
      IF IT_ITAB1[] IS INITIAL.
        Message text-001 type 'E'.
      else.                                    "IF IT_ITAB1[] IS INITIAL.
        data: itab2 like itab occurs 0 with header line.
        SORT IT_ITAB1 BY ROW COL.
        LOOP AT IT_ITAB1.
          MOVE :IT_ITAB1-COL TO V_INDEX.
          ASSIGN COMPONENT V_INDEX OF STRUCTURE itab2 TO  <FS>.
          MOVE : IT_ITAB1-VALUE TO <FS>.
          AT END OF ROW.
            MOVE-CORRESPONDING itab2 TO itab.
            APPEND itab.
            CLEAR:itab,itab2.
          ENDAT.
        endloop.
        describe table itab lines t_lin.
      endif.               "IF IT_ITAB1[] IS INITIAL.
    ENDFORM.                    " get_Excel_data
    *&      Form  Process_Data
          text
    -->  p1        text
    <--  p2        text
    FORM Process_Data .
      data:l_tabix type sy-tabix.
      data:l_periv like t001-periv,
           l_monat like bkpf-monat,
           l_gjahr like bkpf-gjahr,
           l_amt(21) type c.
      data: l_ddate(10),
            l_pdate(10).
      WRITE p_docdat TO l_ddate.
      WRITE p_postda TO l_pdate.
      clear: l_periv,l_monat,l_gjahr.
      select single periv from t001 into l_periv where bukrs = '5000'. "P_bukrs
      if sy-subrc eq 0.
        l_gjahr = p_postda+0(4).
        call function 'FI_PERIOD_DETERMINE'
          EXPORTING
            i_budat = p_postda
            i_bukrs = '5000'     "p_bukrs
            i_periv = l_periv
            i_gjahr = l_gjahr
          IMPORTING
            e_monat = l_monat.
        clear:l_periv.
      endif.
      loop at itab2.
        refresh:bdcdata.
        clear:bdcdata.
        l_tabix = sy-tabix.
        perform bdc_dynpro      using 'SAPLK23F1' '1200'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '/00'.
        perform bdc_field       using 'COHEADER-SEND_REC_REL'
                                      '10SAP'.
        perform bdc_field       using 'RK23F-STATUS'
                                      'S'.
        perform bdc_field       using 'COHEADER-BLDAT'
                                 itab-docdate.
                                      l_ddate.
        perform bdc_field       using 'COHEADER-BUDAT'
                                 itab-postdate.
                                      l_pdate.
        perform bdc_field       using 'COHEADER-PERIO'
                                       l_monat.                 "'9'.
        perform bdc_field       using 'COHEADER-BLTXT'
                                 itab-doctext.
                                      p_doctxt.
        perform bdc_field       using 'RK23F-KSTAR'
                                      itab2-costele.
        WRITE itab2-amount TO l_amt.
    l_amt = itab-amount.
        condense l_amt no-gaps.
        perform bdc_field       using 'RK23F-WTGBTR'
                                       l_amt.
                                 itab-amount.
        perform bdc_field       using 'RK23F-WAERS'
                                      'USD'.
    *perform bdc_field       using 'RK23F-SGTXT'
                                 itab-doctext.
        perform bdc_field       using 'RK23F-SKOSTL'
                                      itab2-scostctr.
        perform bdc_field       using 'BDC_CURSOR'
                                      'RK23F-EAUFNR'.
        perform bdc_field       using 'RK23F-EKOSTL'
                                      itab2-rcostctr.
        perform bdc_field       using 'RK23F-EAUFNR'
                                      itab2-rintorder.
        perform bdc_dynpro      using 'SAPLK23F1' '1200'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=POST'.
        perform bdc_field       using 'COHEADER-SEND_REC_REL'
                                      '10SAP'.
        perform bdc_field       using 'RK23F-STATUS'
                                      'S'.
        perform bdc_field       using 'COHEADER-BLDAT'
                                 itab-docdate.
                                      l_ddate.
        perform bdc_field       using 'COHEADER-BUDAT'
                                  itab-postdate.
                                      l_pdate.
        perform bdc_field       using 'COHEADER-PERIO'
                                 '9'.
                                        l_monat.
        perform bdc_field       using 'COHEADER-BLTXT'
                                  itab-doctext.
                                      p_doctxt.
        perform bdc_field       using 'BDC_CURSOR'
                                      'RK23F-KSTAR'.
        perform bdc_field       using 'RK23F-WAERS'
                                      'USD'.
        CALL TRANSACTION 'KB15N' USING BDCDATA MODE DIS_MODE MESSAGES INTO MESSTAB.
        If sy-subrc = 0.
          s_rec = s_rec + 1.
        ELSE.
          u_rec = u_rec + 1.
          move ITAB2-NUM to messtab1-msgv1.
          concatenate itab2-costele ' | ' itab2-scostctr  ' | '  itab2-rcostctr ' | ' itab2-rintorder  into  messtab1-msgv2.
          condense messtab1-msgv2.
          condense messtab1-msgv1.
          append messtab1.
        endif.
        clear:itab2.
      endloop.
    ENDFORM.                    " Process_Data
          BDC_DYNPRO                                                     *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR BDCDATA.
      BDCDATA-PROGRAM  = PROGRAM.
      BDCDATA-DYNPRO   = DYNPRO.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
    ENDFORM.                    "BDC_DYNPRO
           BDC_FIELD                                                     *
    FORM BDC_FIELD USING FNAM FVAL.
      IF FVAL <> ''. "NODATA.
        CLEAR BDCDATA.
        BDCDATA-FNAM = FNAM.
        BDCDATA-FVAL = FVAL.
        APPEND BDCDATA.
      ENDIF.
    ENDFORM.                    "BDC_FIELD
    *&      Form  display_data
          text
    -->  p1        text
    <--  p2        text
    FORM display_data .
      skip 2.
      write:/15 text-002.
      skip 2.
      write:/8 text-003.
      SKIP.
      write:/12 text-008,
             25 P_DOCDAT.
      SKIP.
      write:/12 text-009,
             25 P_POSTDA.
      SKIP.
      write:/12 text-012,
              25 P_DOCTXT.
      SKIP.
      write:/12 text-004,
             25 p_file.
      skip 2.
      write:/8 text-005,
            60 t_lin.
      skip.
      write:/8 text-006,
            60 s_rec.
      skip.
      write:/8 text-007,
            60 u_rec.
      skip.
      write:/10 'row no',
             20 'Information'.
      skip.
      loop at messtab1.
        write:/10 messtab1-msgv1,
               20 messtab1-msgv2.
        clear:messtab1.
      endloop.
    ENDFORM.                    " display_data
    *&      Form  validate_data
          text
    -->  p1        text
    <--  p2        text
    FORM validate_data .
      data: l_tabix1 type sy-tabix.
    data: l_tabix2 type sy-tabix.
      if not itab[] is initial.
        select kostl from CSKS into table it_csks.
        if sy-subrc eq 0.
          sort it_csks by kostl.
        endif.
        select kstar from CSKA into table it_cska.
        if sy-subrc eq 0.
          sort it_cska by kstar.
        endif.
        loop at itab.
          l_tabix1 = sy-tabix.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT         = itab-scostctr
    IMPORTING
       OUTPUT        = itab-scostctr .
          read table it_csks into wa_csks with key kostl = itab-scostctr.
          if sy-subrc ne 0.
            u_rec = u_rec + 1.
           L_TABIX2 = l_tabix1 + 1.
           move l_tabix2 to messtab1-msgv1.
            move l_tabix1 to messtab1-msgv1.
            move itab-rintorder to messtab1-msgv2.
            concatenate itab-costele  ' | ' itab-scostctr  ' | '  itab-rcostctr  ' | ' itab-rintorder  into  messtab1-msgv2.
            condense messtab1-msgv2.
            condense messtab1-msgv1.
            append messtab1.
            clear:wa_csks.
           CLEAR:L_TABIX2.
            continue.
          endif.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT         = itab-rcostctr
    IMPORTING
       OUTPUT        = itab-rcostctr .
          read table it_csks into wa_csks with key kostl = itab-rcostctr.
          if sy-subrc ne 0.
            u_rec = u_rec + 1.
           L_TABIX2 = l_tabix1 + 1.
           move l_tabix2 to messtab1-msgv1.
            move l_tabix1 to messtab1-msgv1.
              concatenate itab-costele ' | ' itab-scostctr  ' | '  itab-rcostctr ' | ' itab-rintorder  into  messtab1-msgv2.
            condense messtab1-msgv2.
            condense messtab1-msgv1.
            append messtab1.
            clear:wa_csks.
           CLEAR:L_TABIX2.
            continue.
          endif.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT         = itab-costele
    IMPORTING
       OUTPUT        = itab-costele .
          read table it_cska into wa_cska with key kstar = itab-costele.
          if sy-subrc ne 0.
            u_rec = u_rec + 1.
           L_TABIX2 = l_tabix1 + 1.
           move l_tabix2 to messtab1-msgv1.
            move l_tabix1 to messtab1-msgv1.
            concatenate itab-costele ' | ' itab-scostctr  ' | '  itab-rcostctr ' | ' itab-rintorder  into  messtab1-msgv2.
            condense messtab1-msgv2.
            condense messtab1-msgv1.
            append messtab1.
            clear:wa_csks.
           CLEAR:L_TABIX2.
            continue.
          endif.
    move-corresponding itab to itab2.
    MOVE l_tabix1  TO ITAB2-NUM.
    append itab2.
    clear: itab2.
          clear:itab.
        endloop.
      else.
        message 'No records in File'  type 'S'.
      endif.
    ENDFORM.                    " validate_data

  • Skipping Blank Lines in text File

    I am working on an assignment in which i have to read from a text file and store the strings individually. The problem i have is that the text file has blank line between each set of strings. So i figured to use "fin.nextLine();" to skip that blank line and continue with storing the values. but i get
    "Exception in thread "main" java.util.NoSuchElementException: No line found
         at java.util.Scanner.nextLine(Unknown Source)
         at processmsg.ProcessMessages.choice1(ProcessMessages.java:68)
         at processmsg.ProcessMessages.main(ProcessMessages.java:25)"
    which is where the fin.nexLine() is at. How can i just skip that blank line?
    System.out.println("Please enter the file location");
              Scanner stdin = new Scanner(System.in);
              String fileName = stdin.nextLine();
              // read the information from the file
              try {
                   Scanner fin = new Scanner(new File(fileName));
                   String tSendName = fin.nextLine();
                   while(tSendName != null)
                        String tRecieveName = fin.nextLine();
                        String tPhoneNumber = fin.nextLine();
                        String tDate = fin.nextLine();
                        String tTime = fin.nextLine();
                        String tStatus = fin.nextLine();
                        String tMessage = fin.nextLine();
                        PhoneMessage phonemessage = new PhoneMessage(tSendName, tRecieveName,
                                  tPhoneNumber, tDate, tTime, tStatus, tMessage);
                        fin.nextLine();
                        tSendName = fin.nextLine();

    don't know if you want the whole code, the whole code is kind of large and spread out over 3 different classes. and yes the text file is standard
    sender
    reciever
    phone number
    date
    time
    status
    message
    sender
    reciever
    phone number
    date
    time
    status
    message
    sender
    reciever
    phone number
    date
    time
    status
    message
    private static void choice()
              // scan the file location from the user
              System.out.println("Please enter the file location");
              Scanner stdin = new Scanner(System.in);
              String fileName = stdin.nextLine();
              // read the information from the file
              try {
                   Scanner fin = new Scanner(new File(fileName));
                   String tSendName = fin.nextLine();
                   while(tSendName != null)
                        String tRecieveName = fin.next();
                        String tPhoneNumber = fin.next();
                        String tDate = fin.nextLine();
                        String tTime = fin.nextLine();
                        String tStatus = fin.nextLine();
                        String tMessage = fin.nextLine();
                        PhoneMessage phonemessage = new PhoneMessage(tSendName, tRecieveName,
                                  tPhoneNumber, tDate, tTime, tStatus, tMessage);
                        // skip blank line between entries
                        fin.nextLine();
                        // test date string for correct format
                        int month = Integer.parseInt(tDate.substring(0,2));
                        int day = Integer.parseInt(tDate.substring(3,5));
                        int year = Integer.parseInt(tDate.substring(6,10));
                        // test time string for correct format
                        int hour = Integer.parseInt(tTime.substring(0,2));
                        int minute = Integer.parseInt(tTime.substring(3,5));
                        int second = Integer.parseInt(tTime.substring(6,8));
                        tSendName = fin.nextLine();
                        msgList.add(phonemessage);
                   fin.close();
              } catch (FileNotFoundException e) {
                   System.out.println("The file " + fileName + " was not found!");
              } catch (java.lang.NumberFormatException e) {
                   System.out.println("The date and/or time is not of the correct format");
         }

  • Blank Record Appearing in Power Pivot, How do I ensure that my Power Query script is filtering out all the Blank Records

    Hi,
    I noticed once of my Fact tables in my Power Pivot model contains a blank record. I can't understand why.
    So I added a Filter expression to the underlying Power Query query, something like; -
    Text.Length("MyField") > 0
    However after refreshing the Power Query query which contains the above expression the blank record still appears within my Power Pivot table.
    Kind Regards,
    Kieran.
    Kieran Patrick Wood http://www.innovativebusinessintelligence.com http://uk.linkedin.com/in/kieranpatrickwood http://kieranwood.wordpress.com/

    hi..
    As my understand, the blank record in Power Query will be return null value . So that, You try to use Text.Length("MyField" ) <> null.
    Regards,

  • IDoc to file - how to delete a blank record at the end of the file.

    Hi,
    My senario is IDoc to file.  I have successfully implemented this using FCC. But when i checked the flat file, it has a blank record at the end of the file( i think PI adds one blank line/record at the end of the file).  Please suggest me What i need to do, to delete the blank record .
    Thanks & regards
    Sreeni

    Kindly Check below.
    Check whether the problem is at mapping level of  adapter level.. to do this count no. of rows/IDOC before mapping and after mapping in IE and no. of rows in the output file.
    Thnx
    Subbu

  • How to skip a record in flat file to idoc scenario?

    Hi,
    Anybody have good suggestions on how to skip a record(xi not process the record) based on certain conditions?  I don't want to use bpm, anybody has experience with file to idoc can advise how to deal with this situation?
    Thanks,
    Meg

    Meg,
    Its very clear. It can be easily done. I hope u might be knowing about Michal's changing the IDOC occurence blog. Based on that blog change the IDOC occurence to 0...Unbounded.
    Now map all the necessary fields to the target IDOC. On the IDOC root node set condition from source if the source field is not Delete then create IDOC else don't create.
    Source --- If without else[Check condition if  the source is delete] -
    IDOC(root node).
    /people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
    Hope its clear, if not kindly revert back.
    Best regards,
    raj.

  • Blank records are showing as '0' in Analytical View

    Hi,
         How to avoid blank records not to be shown as '0' in Analytical View?  Can you please help me on this?
    For your information: from the above image, there's no data for column 3 for Fiscal Period 005 - 012 but it's displaying as '0' rather than showing it as blank while I do a data preview of an analytical view.
    Regards,
    Antony Jerald.

    Hi,
         The analytical view generated in Hana is based on Bex query imported from BW.
         Actually I'm calculating Year till date (YTD) Last Year(LY) Sales, TY(This year) Sales based on posting period.
         In Bex query for YTD Sales last financial year data its posting period would be from 1-12(ie., for the entire last year what's my sale).
          While doing calculation for YTD current year, since we are in posting period 4 which is july month(i.e,calculation would be from 1-4), rest of the month's would not have any data for YTD Current year.  It's showing as blank in Bex query.  But hana analytical view is displaying as '0' which ideally should come as blank. 
         Kindly let me know how can we handle this.
    Regards,
    Antony Jerald.

  • XL Reporter Do Not Display Blank Records

    hey all,
    I've built a standard P&L Budget report in XL Reporter with parameters for each segment of the account code as made possible by patch 02.  However, when I uncheck "Do not display blank records," the generated report lists an instance of each account for each segment that I've chosen in the parameters.
    The selections for the account segmentation don't seem to filter the accounts themselves, instead they filter the balances of each account.  Does anyone know why it only filter's the balances rather than the accounts themselves and ends up repeating the accounts for each segment selected?  Is this a bug?
    thanks in advance!
    Kevin Lee

    Hi Kevin,
    Seems that noone in this forum can answer your question. Maybe this is related to the fact that the main focus here is the SAP Business One SDK?
    In case the question is still open:
    I would recommend that you try these forums - which should fit better:
    For SAP partners only there's a forum where you can discuss implementation questions etc.:
    Got a question about customization / implementation? Maybe ask it in CPSN!
    ...and here's the SAP Business One Forum in the "SAP Community" (public to anybody):
    Re: Got a question about customization / implementation? Maybe ask it in CPSN!
    ...or you might try your luck with SAP Support?
    Bugs should anyway be reported to SAP Support!
    HTH
    Frank

  • Custom Oaf form inserting blank records into custom table

    Hi all,
    I have developed custom OAF form to insert vendor details mapped to custom table.
    Oaf form is working fine without giving any error.
    In back end blank records is inserting into the custom table i.e. only WHO columns (creation_Date, created_by, last_update_login etc.) values are populating correctly but the
    data which i am entering in OAF form is not populating into the table.
    Please help, tnx in advance.
    Regards,
    Mohit

    Do you have mapping of your form fields with the view object and view attribute ?

  • Problem in showing blank records in tableview.

    Hi All,
    The requirement is to show a tableview which is completely(contains no data in any cell) blank. The user enters data as free text.
    I managed to create an internal table with blank records and using it for the tableview so that the table view shows blank cells , where user can punch data.
    I need to do some validations if the cell is initial(user have not enterd any data and press the button)
    Now the problem is that , all cells conatin a SPACE (dont have an idea where it is coming from) and thus cells are not INITIAL.
    I tried using condense and replace all occurences of cl_abap_char_utilities=>cr_lf , but the space is not removed.
    Any one having any idea , why this space is coming or how INITIALIZE the work area.
    Regards,
    Anubhav

    Hi Vijay,
    The code is written in
    RENDER_CELL_START
    Code snipet:
    DATA: o_ip_desc TYPE REF TO cl_htmlb_inputfield,
                o_fr TYPE REF TO cl_bsp_find_and_replace,
                o_bee  TYPE REF TO cl_bsp_bee_table.
    DATA: find TYPE string.
      DATA: replace TYPE string.
    WHEN 'SLA_DESC' .
            CLEAR replace.
            CLEAR find.
            replace = `value=""` .
            find = `value=" "`  .  <---& n b s p(is displayed as space here)
            replace = replace.
            o_fr = cl_bsp_find_and_replace=>factory( find = find
                                                                      replace = replace
                                                                      mode =  `FIRST_OCCURRENCE` ).
            o_ip_desc = cl_htmlb_inputfield=>factory( id = p_cell_id
                                                      maxlength = '6'
                                                          size = '6'
            o_ip_desc->value = m_row_psc_main_ser->sla_desc.
            CREATE OBJECT o_bee.
            o_bee->add( level = 1 element = o_fr ).
            o_bee->add( level = 2 element = o_ip_desc ).
            p_replacement_bee = o_bee.
    Regards,
    Anubhav

  • How to suppress Blank records

    Hi All,
    I am having a tab delimeted .txt file which contains blank records which need to be supressed otherwise i get empty XML tags in the output as shown below.
    - <Header>
      <PERNR />
      <BEGDA />
      <ENDDA />
      <SCHKZ />
      </Header>
    Actually i am getting a tab in PERNR field. I tried the createif function but its not working .Can anyone help me out in this

    Hi,
    The following way is one way if you are using sender file with content conversion.
    NameA.fieldContentFormatting
    &#9679;     Specify trim to remove all the leading and subsequent blanks for a value found. This is the default.
    &#9679;     Specify nothing to ensure that the value remains unaltered.
    The second way is..
    if target structure is 0..unbound then
    source -- exists-- createIf -- target node
    or write UDF to handle input string is null then return
    ResultList.SUPPRESS in you UDF.before that the target parent node/node should be having occurrences 0..unbound/0..1
    please clarify
    Regards
    Chilla..

Maybe you are looking for